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/
 


Reply via email to