Instr automation device - how to set parameter names?

i want to use some meta device, where i can set the parameter names myself? is it possible, please?
i really need this.
any meta device with sliders, please.

i found the instr control can be renamed, but they all show up as “Disabled” in automation lane :frowning:

ok, doofer apparently can’t be used for this tweak ( New Tool (2.8): Ezgroovesettingsformidi - #13 by vvoois )
unfortunately. which is a shame, because doofer would be ideal for this. this is a big ol shame.

what’s the solution here? i really need to be able to name automation lanes.

Just make sure to update all names after loading and associating a virtual instrument with the device.

If you can display the names of any device, you can do so with *Instr. Automation (for any case if there is no native notifier, use a timer, or at least add an “update this” button).

Most things are in the documentation. You just need to dig deeper. If you can’t find something, print to the terminal to locate properties. It will save you a lot of asking around on the forums.

i am placing the instr automation on Master.
because i am not using it for plugin automation. i’m using it for Renoise features.

i need a way to name them so they’re not called “No Parameter”, so that when i automate, i see that okay, i’m on automation 5, and that is called x

You have the parameter index. The parameter list starts at 1. You can rename all the names with their corresponding index. That way you will know how to tell them apart. Does that help?

Thanks Raul, this sounds great, how do i do it? Parameter.name is read only. What am i missing? :o

>>> renoise.song().selected_device.parameters[2].name="jee"
*** property 'name' is read only
*** stack traceback:
***   [C]: in function '__newindex'
***   [string "do..."]:22: in function <[string "do..."]:9>
***   [string "renoise.song().selected_device.parameters[2..."]:1: in main chunk

also there’s nothing called a parameter_index in the documentation.

You can rename names in your tool window. But you cannot change the names that appear in the DSP device of the Instr. Automation track from the API. These names can only be loaded from the plugin or charged from the device itself. A plugin can have over 1000-2000 parameters. This DSP device will have a parameter limit of the maximum hexadecimal value (xZyy) available for automation.

If there is no plugin loaded, what is the point of renaming a name that “means nothing”? In each parameter slot you can load any parameter name, but this name must be available in the plugin.

If you want all the names of all the parameters, it is possible to return the list, which will always have a fixed order.

Load a plugin of your current instrument
Go to Terminal
Write and read: oprint(renoise.song().selected_instrument.plugin_properties.plugin_device)

oprint(renoise.song().selected_instrument.plugin_properties.plugin_device)
class: InstrumentPluginDevice
 properties:
    active_preset
    active_preset_data
    active_preset_observable
    device_path
    external_editor_available
    external_editor_visible
    name
    parameters
    presets
    short_name
 methods:
    __STRICT
    parameter
    preset

parameters is a table of data to these parameters. Then, for view the first parameter data, write:

oprint(renoise.song().selected_instrument.plugin_properties.plugin_device:parameter(1))

class: DeviceParameter
 properties:
    is_automatable
    is_automated
    is_automated_observable
    is_midi_mapped
    is_midi_mapped_observable
    name
    polarity
    show_in_mixer
    show_in_mixer_observable
    time_quantum
    value
    value_default
    value_max
    value_min
    value_observable
    value_quantum
    value_string
    value_string_observable
 methods:
    __STRICT
    record_value

Then, name is the name of the parameter 1.

To create a table list, iterate between all the parameters:

local tbl_names={}
local dev=renoise.song().selected_instrument.plugin_properties.plugin_device
local nop=#dev.parameters
if (nop>=1) then
  for n=1,nop do
    tbl_names[#names+1]=dev:parameter(n).name
  end
  rprint(tbl_names)
else
  print("not parameters!")
end

i didn’t really look at your post, cos i figured how to do it via Doofer:


am still tweaking the code and this requires a one instrument slot to be specifically devoted to “never having a plugin instrument” - but now it is possible to run scripts, or tweak global groove, or toggle any transport functions, with automation.

thanks for the help.

unfortunately this requires that everytime i go back to Renoise, I need to re-initialize this notifier setup.
i think i need to put it to the automated “startup” script that is run everytime Renoise is activated.

Great, I’m glad you were able to solve it!

In my previous comment you have some steps to be able to print in the terminal things that perhaps are not described in detail in the documentation, or are difficult to find. In the end, if you know how to print, there is no need to consult the documentation. There you will be able to find all the available properties and functions…

because i am using it with notifiers for reading what the slider says, and then running a script with that value to do something else. think of it like automating scripts. or functions in renoise that are not automatable directly.

so i’m hijacking a “no instrument” *Instr. Automation Device to do something very different. like editstep, octave, lpb, bpm, pattern length control, or running any script in my tool.

does it now make sense? :slight_smile:

global groove automation

anyway that image is outdated, this is a better one
doofer

now trying to get two doofer devices successfully.

Note that while it’s probably fine to set such automation values initially or sporadically, any automation that goes through tools via notifiers, is not applied in real time in the audio thread. The timing of such automation will be wonky, applied with a delay and lagging randomly.

There’s no way to add real-time automation from tools. Tools don’t run in the realtime audio thread, but in the GUI, so tools can only create real-time automation through existing automatable parameters via the existing automation in Renoise.

1 Like

what i’m doing seems to be almost completely realtime and works as expected.

i can send a build if you’re interested, and you could maybe then tell me if it is realtime or lagtime. i’ve not seen it go lagtime or somehow lurch. it seems stable.

edit: i’m not sure what you mean by “tools creating real-time automation” - i’m writing automation to an automation lane, and it affects a device, which’s notifiers are read by Renoise to run scripts / tweak values.

This is not possible to realize with tools.

Try e.g. rendering such an automation. It will sound slightly different each time.

thanks, i’ll do a few renders and see how badly they fluctuate. i think this is gonna be for live gig / jam session use only :slight_smile:
until Renoise architecturally allows for doing stuff like automating scripts.