[linux-audio-dev] XAP: Pitch control
Nathaniel Virgo
nathaniel.virgo at ntlworld.com
Wed Dec 11 12:12:00 UTC 2002
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 ---
More information about the Linux-audio-dev
mailing list