├── .gitignore ├── LBX Chaos Engine.lua ├── LBXCE_Input_Morph.lua └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Lua sources 2 | luac.out 3 | 4 | # luarocks build files 5 | *.src.rock 6 | *.zip 7 | *.tar.gz 8 | 9 | # Object files 10 | *.o 11 | *.os 12 | *.ko 13 | *.obj 14 | *.elf 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Libraries 21 | *.lib 22 | *.a 23 | *.la 24 | *.lo 25 | *.def 26 | *.exp 27 | 28 | # Shared objects (inc. Windows DLLs) 29 | *.dll 30 | *.so 31 | *.so.* 32 | *.dylib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | *.i*86 39 | *.x86_64 40 | *.hex 41 | 42 | -------------------------------------------------------------------------------- /LBXCE_Input_Morph.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------- 2 | -- SCRIPT 2 --bind it to MIDI or OSC control 3 | ----------------------------------------- 4 | 5 | is_new_value,filename,sectionID,cmdID,mode,resolution,val = reaper.get_action_context() 6 | reaper.SetExtState( 'LBX_Morph', 'MorphValue', val/resolution, false) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LBXChaosEngine 2 | Reaper FX Plugin Parameter Morphing and Sequencing 3 | 4 | *** LBX Chaos Engine. 5 | 6 | A reascript (Lua) utility to automate plugin parameters manually and automatically. 7 | 8 | IMPORTANT NOTE: Some parameters can cause huge amounts of gain to be added to the signal (ie EQ's etc) - 9 | ALWAYS USE A LIMITER AND KEEP MONITORING LEVELS LOW WHEN MESSING ABOUT WITH THE RANDOMIZE BUTTON! 10 | Ear and monitor damage might occur if things go a bit mad. 11 | 12 | 13 | 14 | ------ MPL is my hero ------ 15 | 16 | This utility script is based on code by mpl: Randomize Track FX Parameter.lua. From virtually this code alone - 17 | I was able learn the ins and outs of Lua scripting language - and also build upon it to create this utility. 18 | I am most grateful to mpl for this, and for allowing me to build upon his code. 19 | 20 | ---------------------------- 21 | 22 | 23 | 24 | *** TO INSTALL: 25 | 26 | Place in folder \Scripts\LBX\ 27 | 28 | The LBX folder must exist to enable all features. 29 | 30 | 31 | 32 | *** TO USE: 33 | 34 | 1. To get started - you must first choose a preset slot (P1, P2, P3 etc...). Click on the Setup Px button. 35 | 36 | 2. Focus a track FX plugin by opening it - then use the Get Focussed FX button to initialize it within the Chaos Engine utility. 37 | 38 | 3. Choose the parameters you wish to automate using the parameter list on the right of the utility GUI. 39 | 40 | 4. Once happy that parameters are chosen - click again on the Setup Px button (now glowing red). 41 | 42 | 5. Now set up different values for the parameters - either within the plugin, or dragging the parameter bars in the 43 | Chaos Engine GUI (you can also randomize the parameters using the red randomize button). 44 | 45 | 6. When the plugin is set up (ie. you like the sound) - click a Capture button to save those settings in a slot (A-H). 46 | It's required that the morph slider (middle bottom) is over all the way to the right to enable correct capturing of the values 47 | (especially when using the randomize button). 48 | 49 | 7. Then repeat steps 5 and 6 - to capture alternative settings and capture into different slots. 50 | 51 | Then you can select different slots on each side of the morph slider. Say the blue (left side) you select slot A, and the 52 | red side (right side) slot B. You can then morph between these settings using the morph slider. 53 | 54 | The Red side also allows you to automorph between slots. Right click on a new slot (Red side only) and the Chaos Engine 55 | will morph between the two presets (like an LFO) depending on the morph settings above the morph slider. 56 | 57 | You can then start to play with the sequencer also - to add more variation to the morphing. These parameter changes can be syncronized to the project tempo and you can get some great rhythmic movement going on. 58 | 59 | Please note - each preset can hold 1 or more FX plugins parameters if you wish to control more than one FX plugin using the morph slider. You caan also start multiple sequencers at once using the Play Grp settings, and play buttons, but you uneed to set these up. 60 | 61 | Ok - that's the gist - go play with it. 62 | 63 | 64 | 65 | NOTES: 66 | 67 | Morphing some parameters can cause unwanted artifacts - especially things like delay times, reverb sizes, predelays etc. To avoid these - remove these from the selected morph parameters. 68 | 69 | The sequencer and auto morphing is not sample accurate - but should stay in time with the project. Small variations in timing will occur (especially when many parameters are selected) - as this is entirely CPU dependant. Faster CPU's are obviously better at keeping everything accurate - but nevertheless - the system should never go horribly out of time - but there might be bigger jumps between parameters if the system cannot keep up. 70 | 71 | The faster changes (1/8 note and faster) can sometimes struggle to keep up too - but again - it's there for those systems that can handle it. 72 | 73 | Morph shapes available: TRI = linear morphing 74 | SIN = Simple Sine wave morphing 75 | SQR = square wave 76 | FST = fast attack 77 | FST2 = very fast attack 78 | SLW = slow attack 79 | SLW2 = very slow attack 80 | SMO = smooth - like a sine wave but faster (steeper) across the centre. 81 | 82 | Rebound means that when the current morph is finished - it jumps back to the start position. Setting rebound along with a SQR morph shape - will result in no morphing at all. 83 | 84 | The system should be able to cope with moving the FX plugins up and down the fx order. 85 | 86 | IMPORTANT NOTE: Some parameters can cause huge amounts of gain to be added to the signal (ie in EQ's etc) - ALWAYS USE A LIMITER AND KEEP MONITORING LEVELS LOW WHEN MESSINGS ABOUT WITH THE RANDOMIZE BUTTON! Ear and monitor damages can occur if things go a bit mad. 87 | 88 | 89 | MORE FEATURES: 90 | 91 | I plan to add features when I have time. I already have plans to allow the system to generate offline the fx envelopes at the edit cursor - so you can insert the sequences exactly as they're meant to sound. Also - I have disabled the Rec Automation button as this no longer works currently as designed due to vast changes to the project made since I added that code. 92 | 93 | I also plan to further optimize where I can. Possibly including a stripped down 'LIVE' version - where you cannot change any of the settings - but can trigger and run the morphing and sequences. This may allow for more accurate reproduction of the parameter changes. 94 | --------------------------------------------------------------------------------