multiple parameters from one control

Is there any way to assign more than one H6 parameter to a macro page control? I’m specifically trying to emulate the behavior of the Multi Delay time knob and the way it automatically switches to the sync note value when the sync switch is engaged. But, these two functions are separated in the parameters list. There’s a delaytimeoverall parameter and a syncnote1 function. Since I can only assign one of them to a knob, if I assign delaytimeoverall to a delay time knob I create on the macro page, that same knob can’t be used to change the sync note when I engage sync mode.

I tried a workaround using a stack that switched between two different knobs, but I couldn’t figure out how to make one switch change both the sync status of the Multi Delay and also switch groups in the stack at the same time. I thought that maybe I could stack two switches on top of one another, but that doesn’t work since the switch that’s higher in the GUI tree essentially blocks out what’s underneath it so that only one switch is active.

Anyway, this seems like it should be easy, but I seem to be missing something…

I still have no idea how to simultaneously control more than one parameter from a single control, but I did manage to solve my particular problem with emulating the Multi Delay time/sync knob.

My mistake was thinking that a stack group could only be controlled by a Variable. I guess because that was mainly how the examples in the manual were structured, it didn’t occur to me that I could use an H6 parameter to change the stack status instead. So, in case anyone else is interested in doing this, here’s the procedure:

Make a switch and assign the temposync1 Multi Delay parameter to the switch value. Name the switch Sync.

Make a knob and assign the delaytimeoverall Multi Delay parameter to the knob value. Name the knob Time.

Duplicate the knob and position it directly behind the Time knob. Assign the syncnote1 Multi Delay parameter to the knob value. Name the knob Sync Note. You’ll see both labels overlapping.

Make a Stack in the GUI tree. Assign the temposync1 Multi Delay parameter to the stack value.

Put the delay Time knob and the Sync Note knob inside of the new stack. Make sure that the Rate knob is above the Sync Note knob in the GUI tree. This is what makes the Time knob appear while the Sync switch is off and the Sync Note knob appear when the Sync switch is on.

Now, when you activate the Sync switch, the knobs will switch out and time will be controlled when the switch is off and sync note will be controlled when the switch is on, just as it works in the Multi Delay interface. This trick also works with any of the other effects that have a sync switch - for instance, the modulation effects.

Disclaimer: I’m a complete newbie at this, so I won’t be surprised if there’s a more elegant solution, but I just wanted to throw a method out there that works in case someone else wants to do something similar.

Hi Splunk,

dunno if that is the right way to do, but you can use either a quickcontrol assignment or scripting to do this.
If you use quickcontrol you just have to right click on the parameter you want to control together with the others > assign quick control
Assign all the parameters you want to use together to the same quickcontrol.
Then use a “Sound” editor tab or window and select the layer to edit how much influence the qc shall have on the parameters.
Now you can connect the QC to the macropage.

Your delay scenario can be solved as well, just make sure to connect it once to qc with sync enabled and once without.

Hope that helps.

… and: First Post Yeay! :smiley:

Thanks Tekknovater. Yes, I use quick controls a lot and I really wish the macro controls had the same ability to add multiple parameters and set limits and curves so that I didn’t have to waste a quick control for that purpose. I know this can be done with scripting, but I’m not there yet and sadly, will probably need some tutorials or more help before I dive into that pool.

But, my problem in the scenario above has to do with the value that’s displayed when the macro knob is moved. If I used a macro, I just got a generic 0 - 100 value, but I wanted the user to be able to see the delay time when time was selected or the sync value when tempo sync was activated. This can only happen if the control is directly linked to the parameter itself, at least as far as I could figure out. That’s why the using stacks was a better solution for what I was trying to do in this particular case.

Splunk, maybe you should give scripting a try, it’s not that hard. For example, here’s a script of mine, which enables one knob to control multiple parameters (Cutoff, Resonance, Distortion) with different ranges each:

function onFilterCombiChanged()
	new_cutoff = FILTER_COMBI * FILTER_COMBI * 2
	new_resonance = 80 - (FILTER_COMBI * 0.8)
	new_distortion = 60 - (FILTER_COMBI * 0.6)
		
	this.parent:getZone():setParameter("Filter.Cutoff", new_cutoff)
	this.parent:getZone():setParameter("Filter.Resonance", new_resonance)
	this.parent:getZone():setParameter("Filter.Distortion", new_distortion)
end

defineParameter("FILTER_COMBI", "FILTER COMBI", 100, 0, 100, 1, onFilterCombiChanged)

With that script I can connect the FILTER_COMBI parameter to any knob on the macro page. If you want help on this, let me know.

If I used a macro, I just got a generic 0 - 100 value, but I wanted the user to be able to see the delay time when time was selected or the sync value when tempo sync was activated. This can only happen if the control is directly linked to the parameter itself, at least as far as I could figure out. That’s why the using stacks was a better solution for what I was trying to do in this particular case.

Yea, I totally agree with you there. It is a pitty that the format can’t be set. Marco’s way is quite good though. Curves are a little harder to achieve, I really had to dig out the mathbook from school. The example below is a little bit embarassing, as I did trial and error to get it to work. But the parameter now moves in a nice curve.

zoneIAmWorkingWIth:setParameterNormalized(“Filter.MorphY”, (2 - (math.sinh(sampleFilter * 2.32))))

If anybody knows why I need that 2 - offset value?

I figured out that multiplication values is at least a nice way to do curves. The more you multiply a parameter with itself, the steeper the curve gets.

Yeah, nice one. I propably do not need the sine stuff then :wink:
This really makes me feel dumb. I work in IT, but I do not have to touch any math at all for what I do…

This is excellent! I wonder if there’s another way to set curves with this. This could prove to be extremely useful.

Yes, as written above: “I figured out that multiplication values is at least a nice way to do curves. The more you multiply a parameter with itself, the steeper the curve gets.”

I should’ve specified. I meant similar to control you get with setting quick controls such as also setting range or even reversing the direction of the curve.