New tool: Parameter Lock

I really liked working on the digitakt and digitone when I had them. I would abuse Plocks, I found them to be an easy way to modulate without ruining my original sound, which is the problem I often run into when trying to automate parameters in DAWs.

I have crafted a crude tool to simulate this functionality. You will find two hotkeys, one for “short” and one for “long” parameter locks. It works like this:

  1. type in your effect column parameter automation the parameter you want to “lock”
  2. activate the hotkey
  3. the “short” hotkey will place the original (read: currently set) values before and after your plock. This means that your sound is only changed for that step. The “long” version of the hotkey moves the “after” original value to the next note. This means your sound is changed for the entire note.

It’s important to consider that renoise actively adjusts the parameters based on their last played automation, so it’s important to be diligent when using this that the parameter you want to lock is set to the settings you like it at. I would advise you use this while renoise is paused. Other than that, it is pretty straightforward.

I’m not a programmer so I expect this to break under lots of use cases, but hopefully not. I don’t have a ton of time to test it right now and it seems to be working so I thought I would share it. Please feel free to let me know if it doesn’t work and I will have a go at fixing it.

parameter Lock

rfgd.garbanzo.ParameterLock_V1.xrnx (2.1 KB)

10 Likes

This is cool. Would it be possible to set an arbitrary step length for the lock that comes after? So, say you wanted to have the change function for 4 lines or 17 or whatever and then go back to the locked value… That could have more flexible use for ppl working at higher lpb

I could imagine a preferences setting for your second lines offset? That doesn’t seem too hard to add, I will look into that

1 Like

'twould be dope

rfgd.garbanzo.ParameterLock_V1.1.xrnx (2.1 KB)

The Parameter Lock Short hotkey now uses step edit length to place the second lock. if step edit length is 0, it’ll just place it at the next line.

1 Like

Nice. That seems like a great solution

The value that you write into the pattern seems wrong.

Below is a formula that will return the correct byte if you pass in a renoise.DeviceParameter

function byte_from_parameter(p)
  return math.floor((255 / (p.value_max - p.value_min)) * (p.value - p.value_min) + 0.5)
end
1 Like

Thanks a lot for the initiative. P.Locks are probably my favorite feature in Elektron devices and I do a similar thing with Renoise in pretty much every project (mostly for drum one shots in breakcore and drill n bass).

Doing this manually is usually kinda annoying:

I gotta go all the way to the first pattern (or start of current pattern) → set the first “default” parameter value → set my automation on the step I want it → manually insert the previous value to restore it.

Hope to see this tool improving. I’ll keep an eye :wink:

I used to own a digitakt and I also liked this feature. I figured out a way to accomplish the same thing using meta devices, if I understand the goal correctly (I haven’t tried the tool).

param_lock.xrns (198.8 KB)

Look in the instrument effects, and you can look at what I did. This is only one way of setting things up. (e.g. you could use a custom-wave lfo and automate the reset instead of the 2nd formula device – tomato tomato)

Basically, the instrument macros offer 2 control inputs sent to the same parameter (by using the meta mixer device).

“Constant Param” will indeed set the “constant” state of the parameter (filter cutoff in this case).

The “Variable Param” macro, when set to 0.0%, will simply defer to the constant param value. If you set it to anything else, the value of the Variable Param macro is what gets sent to the cutoff.

(I have also included an input inertia formula device to smooth the automation input to the Variable Param macro.)

In the song file, I have an lfo setup to modulate the “constant value” of the cutoff, and then I have programmed parameter automation in FX column.

You still have to initially set the Variable Param macro to 00 at the beginning of the song (there might be a way around this via using the formula device and song data variables but I haven’t cracked it yet, if so).

On track 2 there is a device chain that abstracts all of the above outside of an instrument.

If something isn’t clear about any this (or if I misunderstood the assignment lol) please lmk, but maybe this will help you guys do some things.

1 Like

That’s super cool, but I believe it’s slightly different than what I was going for. My objective is to change a parameter’s value for a single (or several) step(s) and have it return to the default value afterwards. What I see you’ve done is add functionality to blend modulation together, which is also useful.

I could see combining the plock tool and your meta device setup for even more modulation variation. Thank you for sharing.

Maybe I still don’t understand, but if you take out the LFO automation in my example then this is the situation you have, no?

The constant param macro sets the “default” value, and fx-column modulation changes the param’s value for only those steps (with “sustain” for those steps occuring as a result of renoise’s automation behavior). Is it this sustain that you are looking to avoid?

Cheers g :pray:

I may be misunderstanding the way your devices are set up, but when I modulate the “Variable Parameter” macro with step modulation, the next step maintains the “variable parameter”, it doesn’t use the “constant parameter”. My objective would be to use step modulation on the “variable parameter” and have the “constant parameter” everywhere else.

1 Like

rfgd.garbanzo.ParameterLock_V1.2.xrnx (2.5 KB)

Thank you Unless for fixing my math. I set something up that looked like it worked and I wasn’t sure how to fully confirm I had done it.

Other minor QOL improvements:

Short parameter lock now spills into the next pattern, provided the spot it is landing on is empty.
Long parameter lock will spill into the next pattern if there are no more notes in the current pattern. It will just place it at the beginning of that pattern.
If you are locking the first line of a pattern, it will place the default parameter onto the last line of the previous pattern. Again, only if that pattern is empty. Works the same for both hotkeys.
If anyone inspects the code, it is slightly more legible.

Potential process tip: you can apply the following technique to get closer to the elektron feel.

  1. right click the parameter you want to change. hold down right click, don’t move yet
  2. use preferred hotkey to parameter lock the original values
  3. adjust the value while you continue to hold down right click

This allows you to ‘turn the knob’ while parameter locking.
parameter Lock

3 Likes

when I press a hotkey without a selected parameter on an empty line. renoise displays this message

rfgd.garbanzo.ParameterLock_V1.3.xrnx (2.5 KB)
Thank you for trying it. I added some additional logic to cover that. It will simply not put anything down when there is no information on the currently selected line. It uses the the information on the line to tell what parameter to lock. Although I didn’t add anything, it should no longer give you an error for using it on empty lines.

2 Likes

rfgd.garbanzo.ParameterLock_V1.4.xrnx (2.3 KB)
Another minor update. This one just cleans up the code a little bit from stuff I learned on the other tool.

Also removes some potential errors you could get if you tried to use the tool on a note column or something.

Lastly, it accounts for different pattern lengths if you use it on the first line of a pattern with different pattern length than the previous pattern.

2 Likes

rfgd.garbanzo.ParameterLock_V1.5.xrnx (2.6 KB)

minor update:
add checks for panning, volume, and width parameters in case you want to lock those too
added a check for any sample commands, since I don’t see a reason to “lock” those, it will just do nothing if you have a sample command selected
added to right click menu in pattern editor
I think I added a few more minor checks, just to make sure it doesn’t throw errors in edge cases, but I can’t remember every little one, lets just call it bug fixes then

3 Likes