[linux-audio-dev] XAP: Pitch control

David Olofson david at olofson.net
Mon Dec 9 19:19:01 UTC 2002


On Monday 09 December 2002 23.25, Steve Harris wrote:
[...]
> Right, but you do have to pay a price if you're not in 12tET, if
> you use 1.0 then theres never any price.

Then you're missing the point. My 12.0/octave linear_pitch is 
*exactly* the same thing as your 1.0 - except that it's 12.0 instead 
of 1.0. (See previous post.)


> > > But the VST people were allready lumbered with note scale, that
> > > puts them in a different situation.
> >
> > You're probably right. The main thing they wanted to convince me
> > of was that you need *both* note pitch and linear pitch - but
> > OTOH, that was thinking in the terms of the rather primitive MIDI
> > based, effectively one-way event system of current VST.
>
> Yes.
>
> There are so few cases where note numbering is the right thing. The
> only example we've come up with so far is non-ET arpegiators. Wow
> ;)

Well, you're right. That's why I'm now effectively trying to reduce 
note_pitch vs linear_pitch into a matter of interpretation, rather 
than two different formats. It's basically just all linear_pitch, 
although when messing with non-12tET scales, you (or the host - but 
that's not at all required) *may* have to care about the difference 
when using certain plugins.


> The differnce is that the VST/MIDI people are used to thinking of
> that as the default case. I'm not.

The default case would actually be MIDI pitch + pitch bend - but most 
of them seem to ignore that too, so I guess it's just totally 
impossible to use their plugins with guitar synthesizers and other 
pitch tracking devices...


> > I don't think that's true. At least in "real" music, it's really
> > rather common to mix slightly "alien" scales with 12tET. Many
> > singers, violinists and other "continous pitch" people
> > *deliberately* tweak notes to make them fit better - although one
> > might perhaps think of that as something different from scales;
> > not sure.
>
> Yes, when I do this in synthesis I do it with signals applied to
> linear pitch inputs. I guess you could do it by creating a novel
> tuning just as well, but is that easier?

No, and in this case you would have to *change* that tuning to track 
the chords in the music, since you will have to "tweak" in different 
ways depending on that. This is basically about getting the resulting 
harmonies to sound better than they normally would in 12tET.


> > AFAIK, there are even musicians that don't have much use of
> > current standard synths and applications, simply because they're
> > too restrictive, and/or way too cumbersome to deal with, when it
> > comes to scales and pitch control.
>
> Yeah, like me. The answer is not to reenfoce the 12tET system.

No, I would like to think so too - but then, what is the answer? I 
can't see an alternative that doesn't bring complexity and overhead 
into hosts and/or plugins.


> > > Granted there will be people who want to run half
> > > thier track in 12 and half in 7, but thats hardly a common
> > > case, and we dont prevent it.
> >
> > We don't? Well, lets hope that all Multichannel synths will do
> > the right thing when someone wants to play different scales on
> > *the same instance*.
>
> They will as long as you dont try to enforce note numbering in the
> API.

No note numbering is enforced. It's just that there's this stupid 
12.0 factor instead of 1.0... :-/


> Complex tunings wont map to note numbering in any useful way
> anyway.

Yes, they will. Who said 1.0/tone implies that there is an integer 
number of tones/octave, or even that the tuning repeats for every 
octave? Either way, it doesn't matter to synths anyway, since they 
don't care about numbering anyway.


> If you just represent pitch, then I can create a virtual
> instrument (connected to a physical one if neccesary) that can
> create the right pitches for the scale (or be analogue).

I *am* suggesting to represent pitch; just that it is expressed as 
12.0/octave instead of 1.0/octave, to eliminate all conversions in 
12tET systems.

12tET is indeed a default that makes sense to a lot of people - and 
if you don't care for 12tET or scales *at all*, just think pitch and 
ignore the actual figures. If you like to have scales (for the few 
plugins that should care, and for piano roll editing or whatever), 
consider pitch 1.0/tone everywhere, except on the other side of your 
scale converters.


> As soon as I have synths that will only accept note numbers I'm
> screwed, they wont accept the pitch data I want them to, the best I
> can hope for is that a pitch->note converter wont screw it up too
> much.
>
> I think this is better for unusual tunings, and it doesnt hurt the
> 12tET case.

It *does* hurt the 12tET case, at least unless you're suggesting that 
sequencers should always store 1.0/octave...?


> > Either way, scale conversions are lossless? When you're dealing
> > with *continous* pitch, you'll need either an exact formula, or
> > you'll have to use an approximation of some kind. We're not
> > talking about plain LUTs. (Pitch bend needs more than that, and
> > continous pitch is basically "pitch bend done right".)
>
> OK, yes, I'l give you that. I cant remeber what the relevance was
> though
>
> :) It does back up my point that pitch->note conversion is not
> ideal though.

Well, that's exactly why I want to avoid it entirely, by working in 
1.0/tone until I actually *need* pitch. If you do 1.0/octave 
everywhere, the tone/scale logic is lost. As long as you're doing 
12tET, it might not matter, but when you start using other scales, it 
may quickly become both expensive and innacurate.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
.- M A I A -------------------------------------------------.
|    The Multimedia Application Integration Architecture    |
`----------------------------> http://www.linuxdj.com/maia -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the Linux-audio-dev mailing list