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: Steve Harris (S.W.Harris_AT_ecs.soton.ac.uk)
Date: Tue Dec 10 2002 - 00:05:23 EET


On Mon, Dec 09, 2002 at 09:04:17 +0100, David Olofson wrote:
> There is potentially a "current" scale for each *Channel* of an event
> generator/processor. (I'm not even sure it's that simple...)

Ok, fine, that doesn't change anything.

> * Getting what you actually *need* for the synth. Is
> this something that can be narrowed down to one or
> two formats (frequency and period?), or is it perhaps
> better left to plugins to perform the linear->"value"
> conversion? Is there a point in using a host callback
> to make sure you have linear pitch, if you *still*
> need to convert again, into something else?

Surely this is another argument for using explicit function calls?
 
> * How do you manage scales, if they're not handled by
> "normal" plugins? Should all hosts have built-in UIs
> for this? How sophisticated must this be to actually
> be usable?

I was jsut thinking that there would be a scale hint on a control, and the
host could manage it. I would image that some hosts would only support
12tET in which case they dont need to expose it.
 
> Again, that's why 12.0/octave makes sense. It doesn't make a
> difference technically, but it makes *this* stuff a whole lot easier,
> since it just "happens" to result in note_pitch and linear_pitch
> being identical as long as you stick with 12tET.

It makes note steps marinally simpler for 12tET and illogical for other
tunings. I dont see that as a big win. It also ecourages the 12tone way of
thinking, which I dont particularly like (can you tell ;).

I prefer APIs to be culturaly neutral.

> Why make this a special case, when it's actually just another event
> processor - on that most people will never need to use?

OK, I can concede that providing scale conversion functions is a special
case, but so are conversion plugins and you still havent explained how
your going to implement conversion plugins without host provided
functions.
 
> Unless your LFO or whatever *understands* scales (ie has it's own
> built-in scale converter, or can actually "think" in non-linear
> scales), it would *always* see and generate 12.0/octave.
>
> If you don't like 12.0, scale and use whatever you like internally.
> It doesn't change anything.

But it does mess up the API.
 
> > What happens when your not using 12 tone? Do you use eg.
> > 5.0 per octave?
>
> Nothing. You still se, and are expected to send, 12.0/octave.

Right, wouldn't it be less confusing to just always use 1.0. Its just that
one note is 1/(number of notes), rather than 12/(number of notes). I
really, really dont think that any 12tET based programmer is going to be
confused by having to add 1/12 to go up one note!

> > Its what CV
> > synthesisers settled on after a good few years of battling, it just
> > makes everything simpler.
>
> 1.0 Volt is a nice and handy figure. Easy to remember, and it goes
> well with SI units when you design analog cirquits. There's nothing
> magical about the figure as such.

Well, it is /the/ unit, and like you said its easy to remember. Its much
more magical than 12. Conventions are useful things.

Thsi has been a long discussion, so, my position:

        I do like 1.0 per octave, linear pitch
        I dont like "notes" being in the API.

- Steve


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

This archive was generated by hypermail 2b28 : Tue Dec 10 2002 - 00:11:24 EET