From: Clemens L. <cl...@la...> - 2003-06-06 17:40:11
|
Chris Cannam wrote: > Rosegarden currently stores the pitch of a note using MIDI values, > [...] > each note stores an optional accidental, used only to determine how > to draw the note on the staff (i.e. the pitch value alone determines > its performed pitch at the moment). > > Tunings that do not fit into this system appear to me to fall into > three categories: > [...] > There are surely big dependencies here on how people actually want > to write and manipulate these scales, too. Since my understanding > is very limited, I'd ideally like to be able to come up with some > magic solution that was very simple and general so that I didn't > suddenly find I'd missed something very important later -- but I'm > not sure that's entirely possible. AFAICS what all scales have in common is that they have a distinct number of pitch values (often more than 12 per octave), and that the pitch value of a note can be determined by the position of the note on the staff, together with its accidental(s). (Here, my meaning of "pitch value" is very similar to that of "MIDI note value", i.e., it uniquely identifies a frequency at which the note is to be played.) The actual number of pitch values (per octave?), the mapping between pitch values and staff positions/accidentals (both ways?), and the mapping of pitch values to frequencies all can be different, so IMHO these would be the data structures and algorithms that would have to be customizable. > I took a look at Scala, which is a tool for calculating and setting > tunings. The problem with it (from our perspective) is that it's > _too_ simple and flexible: it represents a scale as simply a set > of tunings per octave, without any information about which notes > are which (for example, as far as it's concerned the default MIDI > tuning consists of 12 equal semitones and nothing more, whereas to > represent and edit that we still need to know that certain notes > are "in scale" and others have accidentals, etc). I guess Scala acts this way because a set of 12 tuning values is what most MIDI synthesizers actually support when it comes to customizing tuning. (It's defined in the GM2, GS and XG standards, with a difference of no more than -64/+63 cents from equal temperament.) Another standard is the "MIDI Tuning Standard" which lets you assign pretty much any frequency to each of the 128 MIDI note values, but this isn't widely supported. Regards, Clemens |