On Thursday 12 December 2002 21.25, Nathaniel Virgo wrote:
[...]
In some cases,
yes - but remember that the arpeggiator is not the
*only* plugin in the system. If you play other synths as well,
you'll probably want the arpeggiator to respect the scales used
for those, rather than trying to find "perfect" harmonies all on
it's own. With notes + scales, you make this trivial, even with
non-ET scales, since all you have to do is use the same scale
everywhere.
Unfortunately I can think of a case where it's far from trivial: an
advanced twelve-tone arpeggiator that wants to play a major or
minor chord depending on what note is being played, so that it can
stay in the right key. This requires the plugin to know not just
the ordering of the notes on the scale, but also some arbitrarily
complex data about their harmonic and cultural relationships to
each other.
Sure; if traditional theory does not apply due to the scale being too
different, you either need to tell the plugin more about the scale,
or do it all inside the plugin, outputting linear_pitch.
Presumably this has an analog in some other types of
scale, and so
supporting it in general will be next to impossible without having
each arpeggiator designed for a specific scale.
Indeed. If the scale is too far from 12tET, traditional theory will
not apply - and deriving your own "theory" from the actual
frequencies is still bound to fail, since the definition of "harmony"
differs between cultures.
In fact, data about a scale needs to be known even for
the really
simple case of generating a chord from a note.
Yes, if it's too far from 12tET.
Basically what I'm saying is that the note_pitch
idea goes some way
towards making scales work, but not all the way,
The issues you have described are based on the assumption that there
is such a thing as "global music theory". Well, there is *not*, as
far as I'm concerned.
Different cultures have different scales, and different theory to go
with them. You don't use a 12t oriented harmonizer with 16t scales;
it just won't work, and you should not expect it to. Even if the
harmonizer *did* understand 16t (or whatever), it would not be able
to do the Right Thing, because the Right Thing differs between
cultures!
In short; note_pitch *does* make it easier to implement scale based
theory, and allows some tweaking of the scale without the theory
breaking down, but it does *not* automatically make any theory
applicable to any scale.
There is no way around this - and it's also not an API issue, but
rather a matter of users understanding that certain plugins will only
work properly with scales similar to the ones the plugins were
designed for.
and I think it's
going to keep making things more and more complicated when they
could be really simple if we just said "if it can be done in linear
pitch then fine, otherwise let the sequencer handle it."
No. It's as simple as "Don't mix scale oriented plugins with scales
they don't understand." No API support required, whatsoever.
//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 ---