On Wednesday 11 December 2002 19.49, Nathaniel Virgo wrote:
On Wednesday 11 December 2002 5:19 pm, David Olofson
wrote:
(Oops. Replied to the direct reply, rather than
via the list.
Please, don't CC me - I'm on the list! :-)
Sorry, I just tend to hit "reply to all" because some lists seem to
be set up so that "reply" doesn't go to the list.
I like the idea of enforced "explicit
casting", but I think it's
rather restrictive not to allow synths to take note_pitch. That
would make it impossible to have synths with integrated event
processors (including scale converters; although *that* might
actually be a good idea)
That would be bad. If a synth takes note_pitch it's bound to
interpret it as 12tET, which would be annoying to someone trying to
use a different scale.
That would be a sloppy implementation, which pretends to understand
scales, but is hardcoded to 12tET.
Either way, point taken; it's probably a good idea to at least
*strongly* discourage people from ever touching note_pitch in synths
and the like.
A synth could still have a built in event
processor, but it should only process linear_pitch events.
Yes - but you could not implement a useful arpeggiator that way, for
example. It would do the wrong thing as soon as you're not using
12tET anymore - and *now*, users wouldn't have clue as to why this
happens, because the synth *lies* and says that it cares only about
linear_pitch...
Scale
converters should definately not be built into synths.
I think I agree, but I bet *someone* will eventually figure out a
valid reason to do it... ;-)
Either way,
there will *not* be a distinction between synths and
other plugins in the API. Steinberg did that mistake, and has
been forced to correct it. Let's not repeat it.
I wasn't thinking so much of an API distinction as a very
well-documented convention. Also I was thinking more of the
distinction being between scale-related event processors and
everything else, rather than synths and everything else which I
agree would be bad.
Ok, then I agree.
You could enforce it with rules like "if it's
got a note_pitch
input port it's not allowed to have any other kind of port, except
in the case of a plugin with one note_pitch input and one
linear_pitch output, which is a scale converter" - but there might
be the odd case where these rules don't make sense.
Yeah. We could "strongly suggest" things, but officially saying "you
cannot do this" about things that are physically possible is
dangerous. Host coders might actually take your word for it!
And then everyone goes "Hmm... That's actually useful, after all."
Bang! VST host incompatibilities reinvented... *heh*
//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 ---