txikitofandango <nickgeorgopoulos <at> gmail.com> writes: > #(ly:set-default-scale > (ly:make-scale > '#(0 1 3/2 2 3 7/2 9/2 5 6)) > )
> Everything looks great, and the MIDI comes out correct within the octave, with each semitone up the scale going up a MIDI number. EXCEPT, because this is a 13-note scale, but MIDI octaves repeat every 12 numbers, I'm back at square one. Lilypond is impressively flexible, but does assume that the repeat-period of the scale spans 12 semitones in midi. (We might be able to change the hard-coded 12s -- actually 6s -- so that future users can more easily use scales spanning more than an octave.) I can see two options. 1) Currently it seems your midi pitches meant to span a tritave span only an octave, so it seems you intend to post-process the midi before listening. You can fit more pitches into 12 semitones of MIDI if your post-processing can interpret the midi pitch-bend. If you multiply your scale by 12/13 #(0 12/13 18/13 24/13 36/13 42/13 54/13 60/13 72/13) and use 6/13 instead of SHARP, LilyPond generate MIDI with pitch-bends. You would have to arrange to have one MIDI channel per voice, so each voice gets its own pitch-bend. 2) You might skip using the ' and , operators, and define pitches to span the range of your instruments. CC for low C, then C c cc for the other tritaves. The scale in ly:make-scale would be quite long, but I don't think that will caus any problem. You could work out the actual pitches in terms of 12-divisions-of-an-octave semitones, and the corresponding alteration in terms of 12ET semitones for sharp and flat, and have LilyPond produce a correct-sounding midi directly. _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
