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: Nathaniel Virgo (nathaniel.virgo_AT_ntlworld.com)
Date: Wed Dec 11 2002 - 19:09:07 EET


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


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 - 19:10:16 EET