surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.13k stars 400 forks source link

Modulate modulation amounts? #857

Closed hems closed 3 years ago

hems commented 5 years ago

Is your feature request related to a problem? Please describe. When setting up modulation amount, for instance LFO -> Cutoff the modulation amount is 'fixed' and can't be modulated by the browser.

image

Describe the solution you'd like

Quick solution: Expose Mod Ammount for LFO -> Cutoff ( and any other routing ) to the DAW

Describe alternatives you've considered Have a Matrix Modulation view ( like Serum's Mod Matrix )

Additional context Could be also nice to modulate Mod Amount of for instance Velocity -> Cutoff using another LFO.

I heard on Slack that's what the SLFO is for, but i'm not aware of how to use SLFO, so i need to look into that to see if it solves this issue for me.

Thank You!

baconpaul commented 5 years ago

Your idea is basically right now the surge modulation architecture is "p = p0 + a modsource1 + b modsource2" etc but a and b aren't themselves modulatable

If the mod sources are LFOs they are modulatable by other LFOs (that's what the little arrow does) so you can get there. But if, say, you want velocity sensitivity to change as a function of an envelope there's no real way to do that now.

Interesting observation. Hard to fix.

hems commented 5 years ago

i wouldn't need a and b to be modulatable, just a ( which i assume is the amount amount of modsource, or "how much you want to modulate" or "modulation amplitude" ) to be exposed to the DAW!

baconpaul commented 5 years ago

yeah clever idea. some reasons it is hard (including a fixed parameter space at initialization in vst) but I'll think about a way to do something like this.

Obvious approach is to bind a midi controller to the modulation amount for instance...

hems commented 5 years ago

Obvious approach is to bind a midi controller to the modulation amount for instance...

exactly, but this isn't possible yet right?

baconpaul commented 5 years ago

No it isn't. Was just designing out loud on GitHub! Sorry.

hems commented 5 years ago

For inspiration purposes i'll post here this absolutely insane "modulation environment" for ableton live: https://isotonikstudios.com/product/signal/ maybe when dealing with modulations / mod matrix and others some inspiration could be found on that environment.

mkruselj commented 4 years ago

I think this FR is unfeasible for implementation, considering sheer number of parameters and possible modulations, it goes up to likely tens of thousands of parameters. So, maaaaaaaaybe leave it for OSC implementation, but IMHO there is no point in making this possible via MIDI learn or host automation.

baconpaul commented 4 years ago

There's two issues here

expose it to the daw have modulation amounts be internal modulation targets

I thin the second we want to keep open

I would just rename this issue and make it explicit that daw exposing os too much

hems commented 4 years ago

I think this FR is unfeasible for implementation, considering sheer number of parameters and possible modulations, it goes up to likely tens of thousands of parameters.

maybe for the future implementation there could be a MOD MATRIX, similar to what SERUM has, and then you would be able to change amount / bipolar / unipolar per route instead of all routes at the same time.

this way it would not be "thousands and thousands of parameters", it would just be limited to the amount of slots on the mod matrix, which could be something like 128 or 256..

I mean, does anyone use more than 128 or 256 routes for mod in one preset? i know @K0rrid0r uses dozens and dozens in some of his presets but i would guess not more than 100 routes..

mkruselj commented 4 years ago

Never guess how somebody might use something! I bet there are people going nuts with everything in Surge.

Mod matrix would stifle and kill one of most unique things about Surge, its modulation system. It's much more flexible and capable than mod matrix. Plus it would be a considerable redesign of both UI, UX and the way things are in the codebase, so I don't think you will see that happen.

hems commented 4 years ago

Mod matrix would stifle and kill one of most unique things about Surge, its modulation system. It's much more flexible and capable than mod matrix. Plus it would be a considerable redesign of both UI, UX and the way things are in the codebase, so I don't think you will see that happen.

I don't see how a mod matrix would kill surge, if anything it would enhance surge as it would be easier to see all the modulations happening from one place.

Surge already have a mod matrix it just doesn't have a UI built for it.. So i think we are not talking about the same thing.

I can agree tough that building a UI for a Mod Matrix would be a lot of work.

baconpaul commented 4 years ago

I agree @hems - surge has a mod matrix just it isn’t exposed and isn’t fixed rank so exposing it as a true matrix would be odd. It’s really a paired list of mod tuples (source,dest,amplitude) but that’s is of course a reasonable sparse matrix representation

The right ui for that is not a square 50x700 matrix though (or whatever the mod source and mod sink count is) and I think that’s evils point

I do like the idea though of having say 20 mod apmlitude params - kinda like macros - and you could map that To a particular point in the list. So as part of your modeling you consciously choose which edges in the mod graph to expose to modulation. If you think in a modular sense this is kind of like adding cv controlled multipliers in the modulation path.

K0rrid0r commented 4 years ago

"cv controlled multipliers in the modulation path" would be very nice to have somehow. i just wanted to state that in.

baconpaul commented 4 years ago

Yeah right. Imagine a modulation source which was also a modulation target and exposed itself to the daw

We actually have that now of course. Burn an lfo by setting it in envelope mode set the rate to zero modulate the phase and the daw modulate the amplitude. But it is clumsy

mkruselj commented 4 years ago

So i think we are not talking about the same thing.

We are talking about the same thing. You're talking about limiting the mod matrix to a particular number of slots. I'm talking that would stifle everything that's possible with Surge BECAUSE it doesn't have such a fixed-size mod matrix. Instead, it has any-modulator-can-modulate-pretty-much-anything-simultaneously sort of thing which is quite unique.

However, do see this issue for some of my thoughts on how to improve workflow with modulation in Surge.

mkruselj commented 3 years ago

@baconpaul Is it just me, or wouldn't mod mixers (as in Zebra) basically sort this issue out, too? Yeh, I think they would. :)

mkruselj commented 3 years ago

And just to confirm after yet again rereading this issue - mod mixers are DEFINITELY the final solution for this request! So, linking this issue to #1384 - closing that one should close this one too.

mkruselj commented 3 years ago

In fact, I'm going to close this issue right now since modmixers are superceding this issue.