Replies: 2 comments 5 replies
-
We have input and output queues so I prefer the design pattern where we couple input and output ports. That is you create a pair of note ports then have an extension or attribute for midi2_bidrectional_pair Note the midi2 in clap right now is just for ump packets basically but geil has thought a lot about the other protocol parts. Do you have a host or device which can support this? I think most of us are pretty excited for windows m2 support in 2024 and think this will be exciting sruff |
Beta Was this translation helpful? Give feedback.
-
Let me start by saying I fully understand why you think bidirectional ports are a good idea. But perhaps this isn't how plugins (of any format) are going to work. Quite a few MIDI-CI features are covered by plugin formats already (state saving, info about parameters etc.). Having two conflicting ways to do the same thing could be problematic. And it could be quite a bit of work for plugin developers to implement all of this. Also, MIDI-CI Property Exchange is a rather inconvenient way to communicate between host and plugin: it's designed for communicating over a cable, so there's handshaking and all that just to get a string value etc. Some MIDI-CI features don't really apply to plugins. Mentioning Capability Inquiry and Device Inquiry more or less implies you expect plugins to talk to the outside world, behind the DAW's back. That's an exciting idea, but DAW developers may not be keen to allow this. Perhaps plugins aren't going to be full blown "MIDI devices". There's more to it than just technical preferences: if VST3 and AU don't go this way, DAWs won't go this way either so it's never going to work. It's difficult to decide on something until we know what other formats will do. In the meantime, MIDI-CI isn't being overlooked. There's an idea for the MIDI-CI Profiles, which Paul mentioned already, for example. |
Beta Was this translation helpful? Give feedback.
-
MIDI (2.0) allows bidirectional communication.
There are many features in MIDI 2.0 that use this bidirectional communication.
This is allows MIDI controllers to get information about the device they are controlling, e.g. CI data.
I think this could be implemented in CLAP in a very easy way.
Design 1 (simplest):
is allowed on that note-port.
3a) A host may send MIDI (2.0) data to note output ports if the port supports CLAP_NOTE_DIALECT_MIDI_BIDIRECTIONAL.
3b) A plugin may send MIDI (2.0) data to note input ports if the host supports CLAP_NOTE_DIALECT_MIDI_BIDIRECTIONAL.
Design 2 (allows overlapping port numbers for bidirectional/input output ports):
is allowed on that note-port.
by the host to send MIDI data to output ports and the plugin to send MIDI data to input ports.
3a) A host may send MIDI (2.0) data to note output ports using CLAP_EVENT_MIDI_SYSEX_BACK or CLAP_EVENT_MIDI2_BACK if the port supports CLAP_NOTE_DIALECT_MIDI_BIDIRECTIONAL.
3b) A plugin may send MIDI (2.0) data to note input ports using CLAP_EVENT_MIDI_SYSEX_BACK or CLAP_EVENT_MIDI2_BACK if the host supports CLAP_NOTE_DIALECT_MIDI_BIDIRECTIONAL.
Beta Was this translation helpful? Give feedback.
All reactions