Reaper ReaScript effects randomization scripts

edit : update on 24th November 2014.

-Added script to remove all learned parameters

-Moved download link to ge.tt

edit : update on 18th October 2013.

-Added new script to mutate parameter values

-Added some message boxes to confirm adding or removing parameters succeeded

This will be of interest mostly to Cockos Reaper users who are already familiar on how to use ReaScript. (Explaining setting up Python for use with Reaper is beyond the scope of this blog post. But if you came reading here based on the forum threads at Cockos’ forum, ask for ReaScript assistance there.)

I did some Python script actions for Reaper to randomize parameters of VST/JS etc plugins. These actions work for multiple plugins on different tracks. They can even keep settings per Reaper project since they use the Reaper assigned GUIDs (Globally Unique IDentifiers) to keep track of plugins. (ReaScript doesn’t have proper facilities to save and load settings per Reaper project, so this is the best that could be done so far.) The settings of the system are stored at the same location as Reaper’s INI-setting files with the name “xenakios_fxparamlearn.json” in JSON text format. If you encounter a problem using these scripts, looking/editing or deleting that file might solve the problem.

In the zip file a folder of following scripts is included :

randomize_fx_params_learn_last_touched.py

When you have touched (moved) a parameter of a plugin, this will assign that parameter to the randomization system.

randomize_fx_params_add_all_parameters_of_touched_plugin.py

When you have touched a parameter of a plugin, all parameters of that plugin will be assigned to the randomization system, excluding the bypass and wet/dry mix parameters added to the plugins by Reaper itself. These parameters can however be manually assigned in addition, using the action randomize_fx_params_learn_last_touched.py.

Adding all parameters of a plugin might produce very unpredictable and even useless results. I recommend manually assigning only “nice” parameters to the system.

randomize_fx_parameters.py

This does the actual randomization once at least one parameter of some plugin has been added to the system.

randomize_fx_mutate.py

Randomizes assigned parameters by adding a random amount (that can be either negative or positive) to the current parameter value.

randomize_fx_params_set_lowlim.py

randomize_fx_params_set_highlim.py

These allow constraining the randomization of a parameter to a range. Move the plugin parameter to a desired limit position and call either of these actions to set the limit. If the parameter was not already added to the randomization system, it will be added automatically.

randomize_fx_params_unlearn_last_touched.py

Move a plugin parameter and call this to remove that parameter from the randomization system.

randomize_fx_params_unlearn_all.py

Run this to remove all currently assigned parameters.

randomize_fx_params_show_assignments.py

This shows the currently stored randomization assignments in a dialog box.

randomize_fx_params_helpers.py

This contains internal implementation details and should not be added into Reaper as an action.

Download :

http://ge.tt/3sQunA52/v/0?c

The scripts have been developed and tested with Python 3.3 (earlier versions should work but I recommend to use Python 3) and Reaper 4.53 pre5 on Windows 7. Let me know if these run on OS-X or not, though I can’t test on OS-X myself at the moment, problems might be fixable anyway.

Advertisements
This entry was posted in Programming. Bookmark the permalink.

6 Responses to Reaper ReaScript effects randomization scripts

  1. Martin says:

    this is pretty awesome… works fine on macos 10.9.5 with python 3.4

  2. Konstantin says:

    can you reapload somewhere or send directly to elphecy@gmail.com?

  3. Anon says:

    Please reupload.

  4. xenakios says:

    Damn ge.tt, seems to be going worse and worse, I must seek another alternative for uploads. But in the meanwhile, a Google Drive link https://drive.google.com/file/d/0Bwi8r1Zqbjh_QUxoUkJyblJibUU/view?usp=sharing

    I won’t be offering any support/enhancements for these, as I’ve dropped using Python for Reaper scripting. But I’ve been planning on rewriting these with Lua. Might as well start working on that now, I guess…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s