On Fri, 2007-11-30 at 02:39 +0100, David Olofson wrote:
On Friday 30 November 2007, Dave Robillard wrote:
That's why I'm using a Port as the smallest "connection unit",
much like LADSPA ports, so there is no need for an event type
field of any kind at all, let alone a URI.
Ports /are/ the smallest "connection unit". But ports can /contain/
events, and if we want multiple kinds of events in a single port,
then the events themselves need a type field.
Sounds like there's a fundamental difference there, then. I'm using a
model where a port is nothing more than something that deals with a
value of some sort. There are no channels, voices, different events
or anything "inside" a port - just a value. An output port
can "operate" that value of a compatible input port.
LV2 ports can contain /anything/. It's a void*, completely 100% opaque
in every way. There might be 'channels' or 'voices' or a 'value'
or
whatever in there, it's just data.
The data in the events *could* be MIDI or whatever
(the host
doesn't even have to understand any of it), but normally, in the
case of Audiality 2, it'll be modular synth style ramped control
events. That is, one port controls exactly one value - just like
in LADSPA, only using timestamped events with ramping info instead
of one value per buffer.
The host might not have to (though in practise it usually does), but
other plugins certainly do. You can't process events if you don't
even know what they are.
Yes, obviously. I don't quite see what you think I'm trying to say
here. :-)
[snip]
Me neither :)
There are of course infinite ways to do 'events' for plugins (and an
infinite number of interpretations of what 'events' means). Nice thing
about LV2 is you can do them all. Something like your non-flat event
stuff (with queueing and linked lists and dispatching and such, rather
than plain old directly connected buffers) may find a place in LV2 as
well - may have to for certain message-based (ahem) "programming"
modular stuff ala Max. What we have now is the sample accurate hard
realtime sort of 'events' (ala Jack MIDI).
Havn't quite figured out the bridging of those two worlds yet....
-DR-