Hi Keith, Thanks for answering!
After reading your reply I became aware that I didn't mention that the way of triggering the Braille output should be similar to the way midi export is done, for example in the form of a \braille tag. I might be wrong, but I don't think creating a separate Braille context will work, as it would require the same music to be defined twice, one as normal music and one as Braille. MusicBraille is like normal notation, but uses different symbols, and doesn't use postscript, but plain text files as output. > Maurits Lamers <maurits <at> weidestraat.nl> writes: > >> This is a new initiative to bring Braille music output to Lilypond. > > Maybe let LilyPond read the input, iterate through the timing, and > prepare the music streams as she does to send to each context such > as 'Staff'. > > You might make a new context(s) ('BrailleRow'?) that contain new > engravers that listen for the events that need to be recorded in the > braille. I am not sure this approach will work without having to define all music twice. > > You might want to have these engravers create TextScript or LyricText > objects for LilyPond to print in a row beneath the same music in > engraved notation, so sighted programmers can debug the transformation. This is a very helpful hint for sure! > >> Scenario 4. >> Just take the lilypond syntax and write a separate parser. > > LilyPond syntax is extremely flexible, full of history, and thus messy. > The parser for LilyPond is rather complicated. I am aware of this, and I only included it to be sort of complete. This would be a last resort I think, if at all. > >> Scenario 5. >> Write a complete set of engravers for every grob. > > This might be the best approach, because you can write engravers > one at a time, based on the chord_name_engraver, note_name_engraver, > dynamic_engraver, etc, for each type of notation. > > There manual has two examples of engravers written entirely in Scheme. > > LilyPond is a big program, so I cannot say what existing engravers might > be good models, but the system is built to support adding new ways to > engrave the same music: > music = \chordmode {c2:dim ges2:m} > <<\new ChordNames \music > \new FretBoards \music > \new TabStaff \music > \new Staff \music >> > My main question here still is how this would work if both Braille and normal notation would be generated. If the Braille engravers "override" the normal engravers, how would this work exactly? cheers Maurits _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel