On Tuesday 21 January 2003 10.18, Steve Harris wrote: > On Tue, Jan 21, 2003 at 05:09:34 +0100, David Olofson wrote: > > For example, setting the initial level of an envelope and then > > setting up the delay or attack phase won't work, unless you wait > > for one frame before sending the RAMP event for the delay or > > attack phase. Similarly, an attack duration of 0 would result in > > the decay starting at the current value, instead of the attack > > peak level. > > Yes, you're right. Damn. > > OTOH If we define that RAMP events arring in the same timestamp for > the same control override each other then it becomes the hosts job > to normalise them (not a hard task).
It's not hard, but I didn't like the way it looked in Audiality's EG, and I don't like the logical glitch that is a broken duration 0. With only RAMP events and RAMP(value, 0) as a special case on the receiver end, the EG code is nice and simple, and the receiver end if() is trivial. I could just test for 0 duration in the EG, but the only really straightforward solution would be to delay for an extra frame, which would effectively make a 0 duration stage take one frame too many ==> timing error build-up. Then I would need to shorten the next section by 1 - but what happens if the next section is 0 or 1 frames...? I don't feel like I need that when I'm adding multiplication with ramped input - and this is still pretty basic event processing! :-) > Envelope sections with 0 duration are often not provided anyway. They definitely generate nasty clicks, but setting the initial level of an envelope higher than 0 generally doesn't, unless the waveform starts with a click. Anyway, this isn't as much of an issue as the special-casing needed in senders, I think. //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 ---
