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