DISTRHO / Cardinal

Virtual modular synthesizer plugin
https://cardinal.kx.studio/
GNU General Public License v3.0
2.07k stars 141 forks source link

Requesting multitimbral / multichannel MIDI I/O support in Ableton Live #679

Open beguinne opened 2 weeks ago

beguinne commented 2 weeks ago

Description

I'd like to request that the Cardinal main variant VSTi (and perhaps the other variants too) appear as a multitimbral instrument in Ableton Live, so that MIDI can be routed in and out of the plugin on all 16 channels. As of 22.05, we may only route an outside track's MIDI into and from Cardinal on channel 1. If the plugin appeared as multitimbral in Live, this would enable possibilities for patches using multiple Host MIDI modules listening to different channels.

Though maybe it's worth mentioning it doesn't seem like the VCV Rack Pro plugin itself even supports this yet according to the manual: https://vcvrack.com/manual/RackPro#Ableton-Live-1.

dromer commented 2 weeks ago

As you can see from the Ableton manual this is their limitation. Its internal routing happens only on midi channel 1.

There is nothing that Cardinal can do to change the behavior of Ableton.

I don't see any kind of "multitimbral" option that configures that. The only thing I would was something about requiring multiple audio outputs, which is only available for Cardinal.vst3/main variant (not the FX and Synth which have specific plugin configurations for hosts that require the distinction). https://www.ableton.com/en/blog/ins-and-outs-multitimbral-instruments-live/

They also mention that you need multiple midi inputs, which is currently not possible with DPF but also would make for a very odd 16 midi input channel plugin, that ultimately should just work with midi channels.

That sounds like a "won't fix" issue to me, but if you have better documentation on this ..

ps;

There is no 22.05, do you mean 24.05? :)

beguinne commented 2 weeks ago

Hi dromer! Oops, yes I meant 24.05 haha.

I know nothing about plugin development or specifications, so I'm sorry I can't provide more documentation on the notion of "multitimbral" for now. But I think it might be a distinction that is specific to Ableton Live and how it identifies plugins that support multichannel MIDI input (maybe other DAWs read this distinction too?), for example these big sampler or workstation plugins like Kontakt, Maschine, or UVI Falcon.

Here is an example. I have the free TX16Wx sampler and Cardinal loaded in Ableton Live 12. Because Live sees TX16Wx as "multitimbral," it lets me route MIDI inputs to specific channels on the TX16Wx plugin. With Cardinal, however, I don't have this option, and I can only route to channel 1:

Multitimbral TX16Wx and Cardinal comparison in Live 12

For contrast, in REAPER, inputting MIDI on specific channels to either TX16Wx or Cardinal works exactly how you'd expect... just send the MIDI on the channel you want. So this leads me to think there is something specific to Ableton Live that needs to be implemented for Cardinal to support multichannel MIDI input.

I also wished for multichannel MIDI output in the FR, but I looked into it further just now and I think this support page says Live can't do that. So I guess scratch that (though it already works in REAPER just fine hah).

Do you think multichannel MIDI input in Live is worthwhile to look into? I think Ableton Live has some very nice MIDI sequencing features and I'm sure many Cardinal users could make some great patches this way.

washikano commented 2 weeks ago

OP, have you tried running Cardinal standalone and routing to and from it instead of using the VST? Or you could use REAPER as a MIDI bus for Live (there's multiple ways to send MIDI between REAPER and Live; either via ReWire, virtual MIDI cables, ReaStream, etc.). It's unlikely that something will be implemented in Cardinal just to work around what seems to be a Live-only issue :(

beguinne commented 2 weeks ago

I found documentation from Steinberg on multitimbral VST instruments: Steinberg Docs To me the "Units and Tracks" and "Routing" chapters seem promising, but again I wouldn't know if these are the actual parts of the API that Live checks to expose a plugin's MIDI input channels.

Thanks for the suggestion washikano. Maybe this is off topic but that comment did inspire me to explore that idea and so hopefully someone else will find this interesting. I didn't try routing between Live and Cardinal standalone because I don't have an interface with loopback and I'm wary of virtual / aggregate audio device software in Windows (maybe if you want to use Live only as a sequencer then standalone will be good). But I did have success with this combination!:

Here is a clip of using Live to sequence different sounds in a single Cardinal patch and vice versa with this setup.

Why not just use Live alone and multiple instances of Cardinal + Carla modules?... I guess that works too 😅 but I think there is something appealing about fitting everything in one patch and so having MIDI input channels exposed in Live would simplify this.