I am looking at restructuring some of the MIDI code, in the hopes of letting the user have a little more control over the output. I have looked carefully at the way things are currently done, and have a few ideas how to go about doing this. But I have several questions first:
1) How tied is the performer abstraction to MIDI? For example, we currently have Audio_staffs, which are mapped to channels. I want to be able to be able to tweak (as a user) the definitions as to whether a particular voice, staff, staffgroup or score gets its own channel. If performers are tied tightly to midi, I could rename these Audio_channels or Audio_tracks. If not, maybe something more generic can be considered. Ideas? 2) It is friendlier, in many ways, for fundamental object in LilyPond to be scheme objects, when possible. But how specific should these objects be? For example, I am thinking about having a generic MIDI Controller event, which represents the midi controller, and value for a controller value change. Should the object be structured like this, (controller . value) or like this: ('midi-controller-object controller . value) The former is a little more terse, while the latter makes it clear what type of object this is. Personally, I lean toward the former, because I don't think there is enough structure to warrent labelling, but I really want your opinions. 3) Where is the best place to put generic defaults? For example, I want to have a place to specify a default velocity for MIDI notes. Should this be done at the score level, or done at whatever is considered to be the "channel" level. My current intention is to implement some of the articulations and better dynamics. For example, I want to use the velocity parameter of Note On wvents to implement accents. Dynamics (which are currently implemented using velocity), I want to handle using expression controller events. My primary purpose is to handle piano music a little better, but may deal with other things as they seem interesting to me. -- Michael Welsh Duggan ([EMAIL PROTECTED]) _______________________________________________ Lilypond-devel mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/lilypond-devel