Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Allow MIDI binding enable / disable of module #31

Open
loki42 opened this issue Sep 9, 2022 · 7 comments
Open

Feature request: Allow MIDI binding enable / disable of module #31

loki42 opened this issue Sep 9, 2022 · 7 comments

Comments

@loki42
Copy link
Contributor

loki42 commented Sep 9, 2022

It would be handy to be able to MIDI bind enabling and disabling a module to a MIDI CC. This would allow you to turn on and off effects / synths etc during a performance from a controller.

@drobilla
Copy link
Owner

drobilla commented Sep 9, 2022

Agreed, but we probably need a better bypass mechanism to make that suitable for performance (no clicks, no graph recompilation, etc) before binding it would be particularly useful. Doing that really properly means plugins need to implement bypass, but as a fallback Ingen could implement a dumb one which won't be able to preserve levels but at least be mostly good enough for most cases.

@loki42
Copy link
Contributor Author

loki42 commented Sep 9, 2022 via email

@drobilla
Copy link
Owner

drobilla commented Sep 9, 2022

Interesting, I'd have expected it to be more janky.

Binding seems a bit tricky/odd since there's no control for that... I'll have a think about it.

(Thankfully I am finally almost at the end of this tedious LV2-and-friends maintenance phase so should hopefully be able to more actively start working on Ingen soon...)

@loki42
Copy link
Contributor Author

loki42 commented Sep 20, 2023

I might look into adding this soon as it's a pretty requested feature from my users.

@drobilla
Copy link
Owner

Wondering about how to best do the interface for this. Enable works, but as you say, it's a bit odd and hard to bind because it's not a control like everything else. There's also the question of plugins that actually do support bypass and have a control for it, which should be used if possible.

Maybe this is a case where Ingen should "fake" a control that's not actually on the plugin? There's current nothing like that, but it seems better to present a coherent model to the user rather than to directly expose the plugin in the most raw way possible...

Very tangentially related thing: message-based control, which also breaks the mould of "ingen just exposes the ports of the plugin directly".

@loki42
Copy link
Contributor Author

loki42 commented Sep 23, 2023 via email

@drobilla
Copy link
Owner

Yeah, I'm not sure how common those controls are, although some things definitely use them. It should certainly work gracefully for ones that do, though, since bypass done by the host is always going to have potential audible issues (clicks or slowness or wild level changes or...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants