On 14 Feb 2006, at 04:00, Hudson Lacerda wrote: > Philip Taylor escreveu: > [...] >> For what it's worth, BarFly uses a single signed short to represent >> pitchbend, with a resolution of 1/256 semitone, and it's mapped log >> (if I understand that correctly). > > I mean: the linear mapping of integer numerators, for example, from > -255 > to 255 fractions of semitone, corresponds to a logarithmic scale of > frequencies. If one uses the given non-quantised fractions -- abc2midi > supports (1 to 4096) / (1 to 4096) -- the resolution is not linear, > but > based on sets of rational numbers (1/3 == 3/9, but 1/3 != 33/100 > and 1/3 > != 85/256).
OK. BarFly uses a pitch set which divides the octave into 12 x 256 = 3072 equally-tempered intervals. Each step represents a frequency ratio of 2^(1/3072). > >> I use this to set global >> intonation, and don't yet support microtonal accidentals, although I >> probably will in the future once a consensus appears. 1/256 semitone >> is the basic resolution of Quicktime Music Architecture, which is >> what I use for playing, and seems sufficient resolution to me, since >> it's generally reckoned that one cent is the best resolution of the >> human ear. > > True, one cent can be taken as a limit for pitch distinction, but > in an > harmonic context, such a difference is not negligible: for example, > just > intonation intends to be beating-free; for high pitches, one cent > error > can give rise to beatings. Moreover, if the quantisation error for a > pitch can be one cent, the interval between two quantized pitches can > sum 2 cents of error. OK. > > But I think the final resolution is implementation specific. We can > try > instead to define precisely the meaning of ``NUM'' in Remo/Keenan's > BNF: > > <note> ::= [<accidental>] <pitch> [<octave>] [<duration>] > <accidental> ::= "^"+ | "_"+ | "=" | ("^" | "_") [ (<fraction> | > <quarters>) ] > <octave> ::= "'"+ | ","+ > <duration> ::= <fraction> > <quarters> ::= "'" | "," | "/" > <fraction> ::= NUM [ "/" NUM ] > > Is ``NUM'' an integer? A float? What is its valid range? > > We could accept the 14bit MIDI range as reference for ``NUM'' range: > > 2^14 = 16384 values for +2/-2 semitones, then: > one semitone = 2^14 / 4 = 4096. > > Therefore, we can have 4096 different pitchbend values inside a > semitone. Is it a too big value? Perhaps, but this allows a full > control > of MIDI pitch bends by using directly the values (1 to 4096)/4096. > > Unfortunately, ``NUM'' from 1 to 4096 will call for 24 bits to > store the > fraction. To store both numerator and denominator in a 16 bit variable > instead, the range must be 1 to 256. I don't think this matters as far as the abc format goes. It's just a ratio of two numbers, and applications can simply choose the closest-available value from the set of pitches which is available to them. It's the same as in the case of note durations. In abc you can write a duration of A7/13, which can't be represented accurately in common music notation, but player programs can play it (within the limitation of their own time resolution). Phil Taylor Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/abcusers/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/