Skip to content

using the modulation parameters

Tristan Rowley edited this page Mar 16, 2020 · 12 revisions

Using modulation parameters

The newer branches contain modulation functionality, intended mostly to be used creatively with sources of external control like OSC and sound reactivity, and also internal sources like the LFOModulationPlugin.

How it works

Internally

There are 4 'modulation parameters', ABCD (aka 0-3). Each of these stores a float from -1.0 to +1.0, this is the 'modulation value'.

Each modulation slot has its value set using the recur actions modulate_param_0_to_amount_continuous through modulate_param_3_to_amount_continuous in a json_objects/osc_action_mapping.json or json_objects/midi_action_mapping.json file. This is also how internal plugins should send their own modulation to slots via actions.call_method_name.

User controls - setting shader modulations

By default, modulation parameter 0 is selected. Switch to different modulation parameters using select_shader_modulation_slot_X where X is the parameter 0-3. Reset all modulations for the currently selected modulation parameter using reset_selected_modulation.

To set the currently selected modulation parameter's level for a shader parameter, use set_param_X_layer_offset_Y_modulation_level_continuous where X is the shader parameter number 0-3 and Y is the shader layer.

In recur, there are 3 shader layers, and each can run one shader at a time. Each shader has 4 parameters, numbered 0-4, making for a total of 12 controllable parameters. Each shader layer parameter keeps a 'modulation level' for each modulation parameter (so 48 assignations). The average of all four modulation parameter values is applied to each shader parameter, according to the modulation parameter level respective to the parameter.

Check out the json_objects/osc_actions_mapping_APC Key 25.json file for an example of how I've mapped this to my controller -- I have it so that holding FN makes the knobs on my controller adjust the //modulation level// for the respective shader parameter, with some other buttons to select a different modulation parameter and to reset the existing one.

Plugins

LFOModulationPlugin sends modulation signals according to internal formula generation, and WJSendPlugin can receive modulation signals and map them to internal parameters.

  • doctea 2020-01-29 (revised 2020-03-16)

just a reminder of some things i still need to do for documenting:

  • update dependances
  • update develop docs with info on new structure
  • update faq from questions in the fb group
Clone this wiki locally