-
Notifications
You must be signed in to change notification settings - Fork 20
using the modulation parameters
The newer branches contain modulation functionality, intended mostly to be used creatively with sources of external control like OSC or MIDI, and also internal sources like the LFOModulationPlugin or SoundReactPlugin.
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.
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.
LFOModulationPlugin and SoundReactPlugin send modulation signals, and WJSendPlugin can receive modulation signals and map them to internal parameters.
ManipulatePlugin stores a copy of recent mod values as variable, so you can reuse them in other bindings if necessary (check the ManipulatePlugin page to see these updating)
- doctea 2020-01-29 (revised 2020-03-16)
Back to Home