lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance and MIDI


From: Erik Sandberg
Subject: Re: Performance and MIDI
Date: Sat, 22 Sep 2007 14:52:34 +0200
User-agent: KMail/1.9.6

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]