On Wednesday 15 January 2003 18.10, Steve Harris wrote: > On Wed, Jan 15, 2003 at 03:43:52 +0100, David Olofson wrote: > > Another observation: > > > > There are two ways you could start notes on a monophonic synth: > > 1. Use the same VVID for all notes > > 2. Use a new VVID for each note. > > I dont think that a (typical) monosynth should have or use VVIDs at > all.
No, and it doesn't have to. It can still respond to VVID allocation events by just assuming they're about this single, physically non-existent, fake VVID. All you need to know is when the sender wants you to start a new context, and that's what the VVID allocation event tells you. > However I do now see your paino example, if we can implement this > cleanly its a natural way for the gong example to work too. Can't see any real issues with it so far. You basically just have each voice of a poly synth act as a mono synth. The closest thing to an issue is that you need to implement *some* form of "continue" feature for the synth to do something sensible when a sender uses this feature. This could actually just be a recommendation to synth authours, but I think it should be easy enough to do something sensible in practically any synth. The nice way for a sampler or similar to handle it would be to set the current voice to a quick declick release, while grabbing a new voice for the new note. The old voice will be released as soon as the declick envelope has finished. Obviously, you can implement that as part of each voice or something like that as well. Point is that reusing a VVID effectively makes the context steal it's own voice. *How* this is done is an implementation issue - but "nice" voice stealing is something every serious synth must have anyway. (This even goes for some kinds of mono synths.) If you're *real* lazy, you can just treat new notes while the voice is playing by restarting the envelopes. Given that you handle pitch in the usual way (ie as continous pitch - like MIDI pitch + pitch bend, basically), you get primitive legato when reusing VVIDs. Pretty much a free bonus feature. A virtual analog synth would just retrig envelopes and stuff, but (depending on the patch) perhaps not reset the oscillator phase. (Rather similar to the "free legato", that is.) Entirely implementation and patch dependent, though - this is just an example. Glisando and similar pitch effects would be handled in similar ways. The common logic here is that the current state of the context effectively becomes parameters for the new note - and this applies to both mono and poly synths. //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 -' --- http://olofson.net --- http://www.reologica.se ---