Re: [linux-audio-dev] XAP: Pitch control

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] XAP: Pitch control
From: David Olofson (david_AT_olofson.net)
Date: Wed Dec 11 2002 - 17:25:56 EET


On Wednesday 11 December 2002 12.06, Steve Harris wrote:
> On Wed, Dec 11, 2002 at 01:26:01 +0100, David Olofson wrote:
> > You're missing that I'm not talking about 1.0/octave, linear
> > pitch, but <something>/note, *note* pitch. That means
> > <something>/note should *always* apply, and that <something>
> > should be constant. Changing it is totally pointless, since you'd
> > still have note pitch.
> >
> > Changing the "size" of one note is about as silly as changing the
> > "size" of one octave; that's my whole point. (1/12)/note for note
> > pitch *is* just as silly as 12.0/octave for linear pitch.
>
> Well, only if you regard a note as a first class object (I dont).

I do, definitely. It's the *only* logical reference to anything in a
scale, since you may not even have octaves. (BTW, this applies to the
the tuning of most grands. Lower octaves are tweaked downwards, while
higher octaves are tweaked upwards. Not 100% sure why, but I suspect
it has to do with the overtone spectra for low notes. At least, that
seems to be why some phatt synth/techno bass sounds don't sound right
if you play them at the "correct" pitch.)

> (1/12)/note makes more sense because theres /is/ someting very 12ey
> about 12tET notes (the clues in the name ;), whereas there is
> nothing 12ey about octaves. At all.

There is nothing 12ey *at all* about notes if you're into 16t...

So, 1.0/note makes sense, (1/12)/note does *not*. :-)

> > Some plugins think in 1.0/note, and others in 1.0/octave. If you
> > want to connect them, you'll need "something" that expresses
> > 1.0/note as 1.0/octave according to your scale of choice. Just as
> > if you were going to connect a MIDI controller to a CV synth.
>
> Just for the record I do think that having a note representation in
> the API is wrong, but I'm letting it slide. I guess I'l never write
> any code to support it anyway.

I would have agreed with you a while ago, but I think the VST guys
have a point. Why would you *force* harmonizers, autocomp "machines"
and the like to think in terms of linear pitch?

I personally think in semitones rather than musical scales when I
compose and arrange (0-4-7, 0-3-7 etc; tracker arpeggio remember?
:-), but I would think that classical tone/scale based theory is
pretty deeply rooted in most musicians/coders. So, I'm afraid the
general reaction to an API that doesn't understand that concept would
be something like this:

        "Huh? Not aware of *notes*!? Useless for music!"

Either way, I *do* see advantages in being able to say whether you're
only interested in actual pitch, or "virtual tones in a scale of the
user's choice." For example, that avoids having to re-record or edit
everything just because you decide to change from 12tET to some other
12t tuning.

And finally, you *can* tell the host that you want 1 note/octave, and
use 1.0/octave throughout. No special support needed for that. (Well,
expect that hosts that like to nag about control hint
incompatibilities would have to be told that 1 note/octave and
1.0/octave are "compatible enough" for implicit casting.)

//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 ---


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Dec 11 2002 - 17:33:15 EET