On Wednesday 11 December 2002 17.17, Steve Harris wrote:
On Wed, Dec 11, 2002 at 04:25:56 +0100, David Olofson
wrote:
(1/12)/note makes more sense because theres /is/ someting very
12ey about 12tET notes (the clues in the name ;), whereas there
is nothing 12ey about octaves. At all.
There is nothing 12ey *at all* about notes if you're into 16t...
So, 1.0/note makes sense, (1/12)/note does *not*. :-)
Well I was only talking about 12tET, if youre working in 16tET then
its 1/16. If your working in a non ET scale then its non trivial,
but we know that.
It's always <whatever>/note, and it's always trivial. The non-trivial
stuff goes on in the scale converter plugin.
MIDI pitch is always MIDI pitch, which is 1/note. This is the same
thing, only you can say
note pitch 0.5
instead of
pitch bend range +/-2; pitch bend 2048; note pitch 60
and do that independently for each note without going Universal SysEx
or one note/channel.
You don't change the value of "1" in the MIDI protocol when using a
MIDI scale converter. You don't change the value of 1.0 when using a
scale converter plugin.
Your piano argument is not really a problem as its the
piano
mechaism that generates the off-notes, that would be done at the
midi->pitch stage, sureley?
That *is* the scale converter, if you're dealing with a "primitive"
sampler that cannot implement this properly. But indeed, you may do
it directly in the sampler as well. (And IMHO, that's the way you
*should* do it, since, as I suggested, the need for this tuning is
directly related to the sound of the instrument.)
By the time it reaches the oscilators
its allready been shifted.
Maye I'm thinking at a different scope to you, but I view things
like big complex sequencers as working outside this API, for ont
thing it will have the same GUI issues as LADSPA.
A sequencer is just something that records and plays back events. A
kind of event processor. You may integrate it with your host, or you
may use some sequencer plugin that comes with the SDK, or whatever.
The API shouldn't rule any of this out, or it will rule out a number
of interesting plugins, such as phrase sequencers and virtual analog
sequencers.
The GUI is another issue - which indeed, is something we have to
consider for all plugins, if we're going anywhere with this API. The
way I see it, the Control interface should be a sufficient plugin/GUI
interface, so that all we need is a standard way of connecting
controls to the external, non-RT applications that GUIs will normally
be. Whatever comes in should go throgh the host's "preset database",
so that the host knows the current value of every control at all
times.
I'm thinking in terms of GUI == non-RT plugin, or rather client to
the event system. That is, inside a XAP host, you would see GUI as an
ordinary plugin in the net. Although it's not really physically in
there; what you see is a gateway plugin that interfaces with the
non-RT GUI plugin outside.
//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 ---