falkTX / Carla

Audio plugin host
https://kx.studio/carla
1.58k stars 145 forks source link

Wish: mirroring of multiple instances of a plugin #49

Open wolftune opened 11 years ago

wolftune commented 11 years ago

I'd love to be able to have multiple instances of a plugin that are mirrored, i.e. to have any setting change to one also be matched in all the others.

This is not high priority, just a nice wish. It would be useful with my microtonal keyboard, but I could also appreciate keeping separate signal chains for certain parts of audio. There's various ways this could be used. For example, have multiple instances of a synth where some instances are fed to one signal chain and others are separate, where someone has two controllers, one for each synth. This way, they know one controller has one signal chain, the other has a different one. But they might want to match the base sound from the two synths.

Ok, that's a stretch maybe. I'm not sure how else this would be used, but it would be nice for the microtonal keyboard because it would enable all synths that can handle a +/- 1 pitch-bend to be effectively multi-channel.

So just a long-term dream idea. Maybe others will think of ways they'd use it too.

falkTX commented 11 years ago

This is kinda already possible, as I've implemented "clone plugin" a few days ago.

So you just: 1 - add any synth of your liking, adjust as needed 2 - clone the synth and make the small modifications 3 - connect the midi hardware to all the synth instances

there's also a "midiSplitter" plugin that may be useful here

wolftune commented 11 years ago

That's wonderful! While it's not the same as being able to change things later and have the changes mirrored, the clone feature along with mass connect options just may be doable enough. Still I'd like the full mirroring, but it's really not that important. Thanks!

kasbah commented 8 years ago

+1 for this. The way I imagined this feature was to be able to easily turn a mono plugin into a multi channel one that occupies one slot.

falkTX commented 8 years ago

I don't think of multiple instances of a plugin within the same client as mirroring. (ie, 2 plugins that are used in different chains having parameters in sync).

If you want multi-instance (mono with 5 in+outs) please report a separate bug request for it.

wolftune commented 8 years ago

@falkTX my request is precisely that I want multiple instances of a plugin where what is mirrored is the settings. Precisely, I want 16 instances of a plugin (which could be a mono plugin) and really, want it so that each could accept MIDI input on a different channel, so that I could have each them accept one of the inputs from 16 different channels of a controller ­— but the key is that I want to be able to be able to otherwise tweak settings once and have all the instances update to have that same settings change.

Another way to word this would be: multiple instances (which could certainly be in the same client, although in multiple clients is an interesting idea too) where the settings are locked to stay in sync (ideally with the ability to not sync the important item of which channel input it gets, although really, channel-input is set in Claudia/Catia etc for most plugins, so that's outside of the locked-together settings).

My specific use case (which is not unique to me) is: a tuning program that sends different pitch-bend to different channels, but I want the instruments on each channel to otherwise have the same sounds / settings…

falkTX commented 8 years ago

So you want to sync parameters but just not all of them. ie, only sync parameters after some initial setup.

This is certainly not something for 2.0, but perhaps for 3.0. We will have a more in-depth discussion later on.

wolftune commented 8 years ago

Although "sync some but not all parameters" is actually a nice idea… (a different ticket could be one that merely allows the syncing of any arbitrary paraemeters with any others across any plugins, whether the same or not), but the only thing I really want that this ticket should be for is: "sync all parameters". I don't mean to confuse things.

I am assuming for nearly all cases, that it works fine that each input channel for each of the synced instruments will show up in JACK with it's own input. That is the only unique parameter that matters — that of the set of synced instruments, it is possible to treat each channel they offer as an independent JACK input still. Other than that, the parameters for all of the clones should be synced, 100%.