On Wednesday 11 December 2002 4:29 pm, David Olofson wrote:
On Wednesday 11 December 2002 13.59, David Gerard
Matthews wrote:
Steve Harris wrote:
On Wed, Dec 11, 2002 at 12:40:18 +0000, Nathaniel
Virgo wrote:
I can't really say I can think of a better way
though.
Personally I'd leave scales out of the API and let the host deal
with it, sticking to 1.0/octave throughout, but I can see the
advantages of this as well.
We could put it to a vote ;)
- Steve
I vote 1.0/octave.
So do I, definitely.
There has never been an argument about <something>/octave, and there
no longer is an argument about 1.0/octave.
The "argument" is about whether or not we should have a scale related
pitch control type *as well*. It's really more of a hint than an
actual data type, as you could just assume "1tET" and use both as
1.0/octave.
I don't think that should be permitted. I think that this case should be
handled by a trivial scale converter that does nothing. No synth should be
allowed to take a note_pitch input, and nothing except a scale converter
should be allowed to assume any particular meaning for a note_pitch input.
If you have an algorithm that needs to know something about the actual pitch
rather than position on a scale then it should operate on linear_pitch
instead. I think that in this scheme note_pitch and linear_pitch are two
completely different things and shouldn't be interchangeable. That way you
can enforce the correct order of operations:
Sequencer
|
| note_pitch signal
|
V
scaled pitch bend (eg +/- 2 tones) /
arpeggiator / shift along scale /
other scale-related effects
|
| note_pitch signal
|
V
scale converter (could be trivial)
|
| linear_pitch signal
|
V
portamento / vibrato /
relative-pitch arpeggiator /
interval-preserving transpose /
other frequency-related effects
|
| linear_pitch signal
|
V
synth
That way anyone who doesn't want to worry about notes and scales can just
always work in linear_pitch and know they'll never see anything else.
The need for 1.0/note or similar arrise when you want
to work with
something like 12t without deciding on the exact tuning, and also
when you want to write "simple" event processor plugins that think it
terms of notes rather than actual pitch.
//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 ---