I've needed to do some part of this quite a few times now, so...
I think I have a solution that should work in theory with the math module, but it's an epic kludge, so I just want to double check before going down that rabbit hole that I'm not missing another option:
Is there some other way to allow two modulators to control a single parameter?
Two MP's can control a parameter because they only send data when changed or initiated. With modulators, though, there doesn't appear to be any dormant state. In other words, an MP only sends a message when there's a change, but it appears that modulators are essentially generating continual automation even during static holds, or when waiting for trigger input.
Is there any way to override this to allow whichever modulator is triggered to affect the parameter?
Open to anything. For instance, off the top of my head: what if the modulators didn't control the parameter directly, but were piggybacked. In other words, Moldulator A is triggered, but rather than applying it's envelope directly to the parameter, it somehow enables and triggers Modulator B which uses ITS envelope to control the parameter after which the envelope from ModulatorB closes which then disengages Modulator B. (forces a "dormant state" when envelope not engaged)
If that were also happening with Modulator C/D, each set could take turns... the only issue being if they tried doing something at the same time.
Not sure about a few of the details in that plan, and it's not ideal... just indicating I'm open to any sort of outside the box thinking here.... hopefully something simpler.
MXXX: Multiple controls for a single parameter
-
- KVRist
- 70 posts since 31 Jul, 2016
Maybe try something like this:
mod1 envelope modulates MP1 (e.g. target is global -> param1).
mod2 envelope modulates MP2. (e.g. target is global -> param2).
MP1 and MP2 both control the parameter of interest.
Assuming you can keep the envelopes from firing together (I guess one is listening to the sidechain?) I think it might work the way you want.
This wouldn't work for anything that is "always on" like the Normal LFO modulator. Nor would it work if you wanted to sum multiple modulation sources to a single target like most synths do. If you need to do either of those you'll need to "daisy chain" the modulators together, where mod1 modulates mod2's value which in turn modulates the parameter.
mod1 envelope modulates MP1 (e.g. target is global -> param1).
mod2 envelope modulates MP2. (e.g. target is global -> param2).
MP1 and MP2 both control the parameter of interest.
Assuming you can keep the envelopes from firing together (I guess one is listening to the sidechain?) I think it might work the way you want.
This wouldn't work for anything that is "always on" like the Normal LFO modulator. Nor would it work if you wanted to sum multiple modulation sources to a single target like most synths do. If you need to do either of those you'll need to "daisy chain" the modulators together, where mod1 modulates mod2's value which in turn modulates the parameter.
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
I was just actually trying something along the lines o forcing dormancy by routing through MP's.
Oddly, I was just modulating an LFO with an ADSR earlier, and it still hadn't occurred to me to essentially modulate one envelope with another. I think it's the difference in signal flow between MP's and modulators that gives me dyslexic fits. It's all new to me, so I'll have to mull that for a bit, but it sounds about right.
Oddly, I was just modulating an LFO with an ADSR earlier, and it still hadn't occurred to me to essentially modulate one envelope with another. I think it's the difference in signal flow between MP's and modulators that gives me dyslexic fits. It's all new to me, so I'll have to mull that for a bit, but it sounds about right.
-
- KVRist
- Topic Starter
- 452 posts since 21 Jul, 2018
Will do some experiments with daisy-chaining.
Still trying to figure out which use cases can be achieved. Might help to list the ones that have popped up so far:
1) 2 modulators: Parameter is sum.
2) 2 modulators: Parameter is greatest value between the two.
3) 2 modulators: Newest trigger takes over
EDIT: OK, I got the second case working... at least for positive values. Haven't checked inverse behavior. It's a bit confusing, but it goes like this:
Mod 1 controls target parameter in interval mode
Value=0.
Max Value=desired Mod 1 envelope height
Mod 2 controls Mod1 Param1 Value in interval mode
Value=0
Max Value = desired Mod 2 envelope height
Mod 2 controls Mod1 Param1 Max Value in interval mode
Value= Mod1 height
Max Value = Mod2 height
It's pretty straight forward when both heights are positive, and it outputs the greater of the two values at any given point. Still figuring out a few things when one or both heights are negative.
Quick note: It's modulating the output level. I find it MUCH easier to measure these things by squashing some pink noise with a brickwall, then feeding it in at -12dB or so, and viewing the output on a static cyclic waveform display.
I'd be interested to hear how others do their measurements, though. One modulator is generating a +9dB square wave, and the other, a .6db sine wave. Note that the top of the square wave is always 3db above the highest sine peaks regardless of overlap.
Anyone got any leads on achieving either of the other 2 cases I mentioned?
1) 2 modulators: Parameter is sum
2) 2 modulators: Newest trigger takes over
Still trying to figure out which use cases can be achieved. Might help to list the ones that have popped up so far:
1) 2 modulators: Parameter is sum.
2) 2 modulators: Parameter is greatest value between the two.
3) 2 modulators: Newest trigger takes over
EDIT: OK, I got the second case working... at least for positive values. Haven't checked inverse behavior. It's a bit confusing, but it goes like this:
Mod 1 controls target parameter in interval mode
Value=0.
Max Value=desired Mod 1 envelope height
Mod 2 controls Mod1 Param1 Value in interval mode
Value=0
Max Value = desired Mod 2 envelope height
Mod 2 controls Mod1 Param1 Max Value in interval mode
Value= Mod1 height
Max Value = Mod2 height
It's pretty straight forward when both heights are positive, and it outputs the greater of the two values at any given point. Still figuring out a few things when one or both heights are negative.
Quick note: It's modulating the output level. I find it MUCH easier to measure these things by squashing some pink noise with a brickwall, then feeding it in at -12dB or so, and viewing the output on a static cyclic waveform display.
I'd be interested to hear how others do their measurements, though. One modulator is generating a +9dB square wave, and the other, a .6db sine wave. Note that the top of the square wave is always 3db above the highest sine peaks regardless of overlap.
Code: Select all
$eNrFVl9z2jgQf8+n0PheE7ANxmYG6EACLTOhyWEu5FW1BdZFlnySTEM-fVcyBocm7fVmMscDllb797e7Wg0+POcM7YhUVPCh47VcBxGeiJTy7dAp9eYqcj6MLgaLx8dHRbQGskJ-AKODrgVjuFAkXdJtpu8xJ2zouIbOtYQz0Dnl+AsjaUWWQikBlhYiJUPH76aTtkh042C1L+BgzDETWwfdyP2a6PFmQxKt5rwo9UdMubX88a95TL8RHza9fngZ+v0jbYrVHujuJVi8pfzJmr5dxgWjWhNpWDwQ8zvhORmkOh3fQQv8fDu7mzCRPBkyUA1x8sKdu1I3-WluwZWHGs0wCrtBzxkNjiGa4PbfiERxLoTOOFEKPGy5gYPWlKfia4XBJ8w5iN1LsqEM-APUYSco12jG8FZNwGwXDD+bjHVcz-X7-X7Q6zntt9i652ztM+VSJOCMkC46Jg0kZ5Qxu4gz8RUSLuQDZiVRlrbKaGIBbjfkPWTZTA7Gke9HsxngA5FLmhJ78raofxSN-Mhzx78h2vnvot2Gw-408n8t2v4hndAgXzBP3UNnvFpCMWFQOiS9Z+XWFIp7CSUYl1KKkqfXGWScsEPDgJLDzxSB5Vdgt2Z+EKzMiXHEGgXjYE2NzP9Z9iT5p4Ru3lde2b77LGSOGVg24WWHCgYrWOKcQDWgWcnYEvMt8HZtKDbjpkp7UQh1euT8DJ+hU9U+2oImqPyXrHY7wclTWRhiYMCb8h1hojDux3QL+J35tatUBOBTrEmB5prk0LFXEIBZdk7L4LQM7RJU3hVEYg3NZ-BqVwZA0Z4n6Jbwrc7g4rEpNFhZxLy3EOu0eh03jNygG4bvBR5oLRnWQip0ZUwgD74nbV6F4OtAvp-RWkMzn-6P6TS0f59QW8vvnFHPZtR-te4X85s5qn2FfpaYK0q4rk6nHBowIelPkvnLum8g0-M7gdvpB30v-FmqjvTmnPwNO0E-iHohjMDA95qpGA3G6c7Gg8ZaY3txtVyA4mDnRfmie4KfPgmWWia4qJaLuEa2IhzZoTD+NMTQDT23F0aeF4UGypJU8taJ9skLg3m9Q+PEZPFusxk6sRYFUjB3GGTiQOeGjKU+0W-i5YrkhTC5Bhw2G6cZjV-v4gybkQnI3ZAE7+tQ7aZ5xuyZgw6hQpnlOUkp1mQJNzNWFd9p3fKPu5Oaamzbt5HZlUrXKJ65OhqsJMlhfFjZd7zjmmZg24QcyqBMqThmAEbe3zCCmnGuaE4O-YF5aXxbZZKozGJkpRsUmzu3STBjDIJYmHK13rww+L-f8H71UTAhTZXtCLx54BGLpinV1c19DenfCrk3JuZ8I9C41JkZ+dArC0yZWRi6+a7Xa-iA6muYw3BzoKpBrbGmemNNFmgJqitfLg4AjQZrmupsAe6KUiYmIacnWP22qFnaB5kLWDXe3qOL7+wMrZA=Anyone got any leads on achieving either of the other 2 cases I mentioned?
1) 2 modulators: Parameter is sum
2) 2 modulators: Newest trigger takes over
