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: David Olofson (david_AT_olofson.net)
Date: Tue Dec 10 2002 - 22:22:13 EET


On Tuesday 10 December 2002 13.15, Steve Harris wrote:
[...]
> > > If you just represent pitch, then I can create a virtual
> > > instrument (connected to a physical one if neccesary) that can
> > > create the right pitches for the scale (or be analogue).
> >
> > I *am* suggesting to represent pitch; just that it is expressed
> > as 12.0/octave instead of 1.0/octave, to eliminate all
> > conversions in 12tET systems.
>
> But it doesn't, it increases thee number of conversions. There are
> more times when you care about octaves than where you care about
> making the 12tET note number to pitch mapping *very slightly*
> easier.
>
> If you allow host writers to assume that note->pitch mapping is as
> easy as casting then they will! Therefore, no interesting scale
> support, you may as well have dropped all pretense at supporting
> pure pitch.

You're missing the point with the "cast is conversion" hack. A host
writer *cannot* prevent other scales from being used, unless they
specifically refuse to load plugins that happen to do scale
conversion.

> > > I think this is better for unusual tunings, and it doesnt hurt
> > > the 12tET case.
> >
> > It *does* hurt the 12tET case, at least unless you're suggesting
> > that sequencers should always store 1.0/octave...?
>
> I thought sequencers were going to send note numbers?

Sequencers are going to store pitch in the form of floats. The
argument is about whether these should be in 1.0/note or (1/12)/note
format. (And this has nothing to do with scales or notes/octave; it's
<something>/note, period.)

> > Well, that's exactly why I want to avoid it entirely, by working
> > in 1.0/tone until I actually *need* pitch. If you do 1.0/octave
> > everywhere, the tone/scale logic is lost. As long as you're doing
> > 12tET, it might not matter, but when you start using other
> > scales, it may quickly become both expensive and innacurate.
>
> The tone/scale magic is hardly ever useful though, it it forces
> everyone else to work around a factor of 12.

Or forces a few (or so we seem to thing) to work around a factor of
1/12...

Either way, this is the situation: We have to pick *two* out of three
good things:

        1. 1.0/octave
        2. 1.0/note
        3. No conversions for 12tET.

I think I would pick 1 + 2, and accept that conversion is required
whenever you want to drive 1.0/octave from 1.0/note, but you rejected
that. I rejected the alternative of using special host callbacks to
deal with these conversions. You also rejected 2 + 3, since that
results in 12.0/octave. I rejected 1 + 3, since it results in
(1/12)/octave.

So, are there any more alternatives?

//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 : Tue Dec 10 2002 - 22:37:16 EET