lilypond-user
[Top][All Lists]
Advanced

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

Re: Customizing staff to display Bohlen-Pierce scale?


From: Keith OHara
Subject: Re: Customizing staff to display Bohlen-Pierce scale?
Date: Mon, 2 Mar 2015 06:19:55 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

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.

reply via email to

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