On Friday 21 September 2007, Ralph Little wrote: > Hi, > The code behind MIDI output and Performance seem to be pretty much > tightly tied together. > > Was it ever intended that Performance be used for other output types? > The Performance class contains specific MIDI references. > > I was under the impression that MIDI output was but one implementation > of the Performance facility, but that does not now seem to be the case.
I don't remember exactly, but I think performers generate some kind of intermediate data structure (containing the information interesting to MIDI generation), this data structure is then is converterted into MIDI. So yes, it's likely that much of the information produced by performers are very midi specific. It is also possible that you can generate non-MIDI from the intermediate format, just as you can generate either gnome or tex output from grobs/stencils. Long ago, Han-Wen suggested to make a major rewrite of the MIDI back-end, to produce richer output. I think one part of this would be to improve the intermediate data structure generated by performers. I don't think this ever was done. But in any case: Engravers (which produce a sheet-music-friendly grob graph) and Performers (which produce some midi-friendly data structure), are both subclasses of Translators. If you are going to produce Braille output (which is my guess for some unknown reason), you could either create your own subclass of Translator (which probably would resemble Engraver but be simpler), or you could try creating a translator framework in Scheme (which would be cooler but slower). Or, if Braille output is very similar to MIDI in structure (I am clueless), it may be possible to refactor performers, so they generate datastructures containing the union of interesting information for MIDI and braille, and then create the braille output as a back-end behind performers. Erik _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel