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). > 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. 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. Someone with a good knowledge on mathematics could tell us how many groups from this sequence are needed to represent all (1 to 4096)/4096 values (after quantisation, of course): {{1/1}, {1/2, 2/2}, {1/3, 2/3, 3/3}, {1/4, 2/4, 3/4, 4/4}...} Perhaps that number could be used as the limit for resolution. Other software (like the so far postponed abc2sco) can use a very higher precision to handle fractions like 1/3, 1/11, 1/13, without MIDI resolution restrictions. Hudson -- '-------------------------------------------------------------------. Hudson Lacerda <http://geocities.yahoo.com.br/hfmlacerda/> *Não deixe seu voto sumir! http://www.votoseguro.org/ *Apóie o Manifesto: http://www.votoseguro.com/alertaprofessores/ == THE WAR IN IRAQ COSTS == http://nationalpriorities.org/index.php?option=com_wrapper&Itemid=182 .-------------------------------------------------------------------' -- _______________________________________________________ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com 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/