[gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: David Olofson <david@xxxxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Wed, 31 Dec 2003 00:12:20 +0100
On Tuesday 30 December 2003 22.46, Jeff McClintock wrote:
> >In real code, you don't actually check for events once for each
> > sample
>
> frame, but that doesn't change the fact that you will have
> processed all events for each sample frame before you start
> processing the audio.
>
> Agree. Plugins will receive all events in advance of needing to
> 'parse' them. So surely it's easy for a plugin to process all the
> events that are 'grouped' (due at the same time). Do we really
> need additional gesture information? ('gesture' meaning: a group of
> syncronised parameter changes).
Well, there are these "latched controls", which serve as an
alternative to MIDI style multiple argument events, but that's not
quite the same thing.
Either way, given that control events with the same timestamp are to
be handled as if they were processed in parallel, latched controls
work pretty much automatically. Bundling a state change with it's
arguments (say, in a sequencer that emulates MIDI style
multi-argument events) is just a matter of giving all the control
events involved the same timestamp.
Note that this works even if timestamps have to be converted or
adjusted, for example in between two hosts that use different sample
rates. Rules required:
1. Any number of simultaneous events (ie having the
same timestamp) must still be simultaneous after
the timestamps have been adjusted.
2. The order of events must not be changed, even
when different input timestamps become identical
output timestamps. (This implies that pre-
adjustment time must never move backwards in
relation to post-adjustment time.)
This shouldn't require any extra work normally, but piping events over
something like UDP would obviously require some extra protocol layer.
(As would piping audio over such a transport layer. Not very
different at all; lost or out-of-order data is a major PITA in both
cases.)
//David Olofson - Programmer, Composer, Open Source Advocate
.- Audiality -----------------------------------------------.
| Free/Open Source audio engine for games and multimedia. |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
--- http://olofson.net --- http://www.reologica.se ---
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- References:
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: Paul Davis
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: David Olofson
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: Jeff McClintock
Other related posts:
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- » [gmpi] Re: Reqs 3.8 Events - gesture start/end
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: Paul Davis
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: David Olofson
- [gmpi] Re: Reqs 3.8 Events - gesture start/end
- From: Jeff McClintock