Create a button or trigger to send a “reset” value to a parameter/control.
I’m trying to implement a function that can send a fixed value to a parameter/control but can’t figure it out. It’s a performance idea I have where you could map, say, a knob or external MIDI control to a parameter for live tweaking but then have the ability to send a fixed value with a button tap to reset the parameter to a predetermined value.
I managed to get somewhere close by editing the controls on my Faderfox UC4 by using a button press to send a MIDI CC value with the min/max set to the “reset” value but I was hoping to do it within Drambo to make it more flexible.
Try using the Buttons module.
You can set the numerical value per button.
If you're setting Pitch use the Freq to CV module.
Yeah that sort of works but the problem is the buttons send either the high or low value constantly depending on the button state. I guess I need some sort of “send a value” function rather than “set a value”
Ahhhhhh,… I see what you’re saying.
Okay, I’ll think about it some more, I have a feeling that the answer
could be in the S&H module as it retains the last value it receives.
Oh, yes! You could be onto something there!
Still scratching my head on this one. The S&H works but you can sort of only send it as a modulator (along with, say, a knob) to modulate the same parameter which then adds the two modulation sources together rather than override the knob. If you see what I mean?
Yeah, I do see what you mean.
Try this instead.
This is more along the lines of keeping a fixed constant number so Gate is always either high or low.
In this case it’s always high and Buttons “1” is set to momentary.
Think I’ve got something.
First, we build something capable of detecting change in value from a knob. We send the knob signal through a short delay, then subtract the regular knob value from the delayed signal. We fully rectify it (so we get absolute value, no negatives) and check to see if that absolute value is bigger than 0. The function sends a gate signal out when it detects a change in the knob. This sends a gate to a counter module, which moves from 0 to 1. We make a button which resets the counter back to zero.
then, we take a N-1 switch. The first input is the value you want to reset to - here it’s just a number. The second input is your knob. The index for the switch is the counter. When it resets, the N-1 switch sends out your reset value. When we move the knob, the switch then takes the second input from the knob and stays there until we reset the counter by pressing the button. You would use the output of the N-1 switch as your modulation source or signal.
I was working on a rack and then.... wowsa... I happened to see what Ben had been brewing!!
Mine is a lot simpler and still a work-in-progress but here is a screenshot to get the main gist of it. I call it the "CV blaster".
In essence... it's a set of momentary buttons that each output different values and -- simultaneously -- send a gate to trigger a sample & hold module so that the value of the most recently pressed button is sustained indefinitely. One of the momentary buttons is labelled 'reset' and can either send a 0 value or other pre-defined value.
The idea is to insert this 'CV blaster' before your regular instrument rack and then set it to modulate one of the parameters on your rack (e.g. filter cutoff). In this example, you would set the filter cutoff to it's 'home' value and then the buttons on the CV blaster allow quick access to 0%, 25%, 50%, 75% etc. (or any other arbitrary value configured for that button).
All that's left to do is figure out how this can be combined with a knob control so that changes to the knob value are respected, but pressing any of the buttons on the CV blaster override the knob and return the output to the pre-defined value.
(Note - the Delay module in my screenshot is not actually necessary)
Jesus Ben, that's next fucking level. Actually that's the next 4 or 5 levels!
On the one hand at least I know that I would've never been able to come up with that 🤣
Edit: I keep looking at it (I've built it, it certainly works perfectly) and shake my head in disbelief at the simple genius of it.
Cheers Ben, much appreciated 👍🏻
The only thing @bcrichards , and I am in no way complaining, is that after pressing the reset switch you have to turn the knob past the reset value in order to make it pick up again.
I can think of reasons you'd want pick up and also not want pick up so 🤷
@neilbaldwin hmm, I’m not experiencing that problem. https://youtu.be/gdjSYQ9rKRk any movement of the knob should force the switch index to input 2 for the knobs value.
actually, pickup behavior would be a whole different animal to tackle that I’m not sure I’m ready for :)
Well if you're not....nobody is! 🤣
You're right, I had the Delay input connected up wrong.
@bcrichards weirdly, my 'incorrect' version works in a differnt but also useful way. I had the Delay input essentially unconnected which meant I had to set the first Number (that going into the Function block) had to be set to something other than 0.000 in order that it worked at all. What happens then, and so far I don't know why, is that on pressing Reset, you have to move the knob past (in either direction) the value of the reset value. I guess in that case the Switch was only getting switched when the two values were briefly equal.
Oh and this was with the Knob and Button mapped to external MIDI controls. In case that makes a difference.
I just constructed Ben's version.
Works perfectly. Pure class.
It's got me thinking about other ways you could create a 'change listener' function using different delays.
Ah - the Function was checking to see if the knobs absolute value was above zero - that would send the gate.
Yes, so you could, in theory, set the Reset value and set the Function value to 0.001 difference and it would sort of mimic a pick-up control. Very crudely.
A simple alternative would be to MIDI control an intermediate Morph knob instead and modulate it using a button on your MIDI controller to enable/disable the parameter control. Disabling would return to the original value, enabling would return to the current knob setting.
@giku It would help to have a new knob option that doesn't allow modulations to go below zero. In case of the Morph module it's counter-productive here.
@tk32 another fun use of 'change listening' is using movement on the XY pad to 'bow' a sound. when you are moving your finger, it detects change to amplify a sound. how fast you are moving your finger can change the amplitude or other parameters, and you can use the alternate axis for additional modulation.
I like that idea too, will give it a try thank you!
I messed up that that comment somehow and I don't know how to delete it!
@rs2000 I tried your idea but switching the button doesn't really 'reset' the value as the modulation control on the Morph is always a relationship value rather than absolute so the 'reset' value is always related to the Morph knob. Also the reset value is held for as long as the button is high. I can think of other uses for this trick though 👍🏻
Yep, that's why I've quoted @giku about limiting modulation ranges on knobs.