Quantize tool by mpl
From CockosWiki
Contents |
About
The mpl Quantize tool is a LUA script for REAPER.
It was created because of limitation of REAPER snap/grid settings for main arrangement, especially around swing grid context. Early times it was small script with simple GUI called "Swing Items".
Disclaimer: This could a very useful stuff. But it is still very rough-coded. So, just don`t forget to save you projects before using this tool.
Requiments
REAPER 5.03, SWS 2.8.1
Installation
The script can be downloaded here.
You need to install it in Reapers Script-folder. Then load it in the Actions dialog. Help
Reference section
Here we somehow get 'groove points'. Count of reference points is in parentheses.
Left side of the GUI.
Items
To get reference points from items select items in your project and click on 'items'.
Stretch Markers
To get reference points from stretch markers select items with stretch markers in your project and click on 'stretch markers'.
Envelope Points
To get reference points from envelope points select envelope points in any envelope (as track as take shold works) and click on 'envelope points'.
Notes
To get reference points from notes select items with notes in your project or open take in midi editor and select notes and click on 'notes'.
User Groove
Here you can manually select SWS Fingers Groove Tool File.
Project Grid / Custom Grid
Project Grid / Custom Grid is a slider with grid selector. Project Grid is leftmost value. It is also apply button. Works only in Local (Pattern) mode.
Swing Grid
Swing Grid is also a slider / apply button, so can listen what you swing on the fly.
Destination section
Here we store objects and their positions. Note! If you stored object to script by clicking this area, and move it to somewhere (so you manually change position), after every click on any 'Apply' action their positions and volumes will be firstly restored! This done to prevent feedback (store and snap->store and snap once again -> etc). Also count of objects placed in parentheses
Items
Select items in project you wanna quantize and click 'Items' button. Number of items should be shown in parentheses.
Stretch markers
Select stretch markers in item you wanna quantize and click 'Stretch markers' button. Also to be clear - be careful with stretch markers, because they could be very buggy and even crash Reaper if you will do something extreme. Of course I will fix something in future, but for now just be carefull and always save your current project state before using!.
Envelope Points
Select envelope points (as track as take envelope shold works) in project you wanna quantize and click 'Envelope points' button.
Notes
Select notes or items with notes in project you wanna quantize and click 'Notes' button.
Display
Could be disabled from top menu to free some CPU.
- Green lines represent reference groove points and values (if any).
- Blue lines represent quantized objectspositions and their values (if any).
- White lines represent bars and beats.
- Yellow line is play cursor.
- Red line is edit cursor.
Right click on display can save current groove to REAPER/Grooves folder.
Main 'Apply' slider
- Left click on this slider set quantize parameters and snap objects positions and values (if any) to reference points.
- It is also strength slider, so if slider is 50%, snap is 50% stronger, 0% - nothing happened with objects, 100% solid snap to points.
- Right click or 'R' buttom from left restore objects positions to the moment when you stored them.
- Save current groove to .rgt file in REAPER/Grooves, compatible with SWS Fingers Groove Tool.
- Snap reference mode. When 'Global' is selected, snap points is writed to the memory directly with their positions. When pattern mode is on, script firstly convert position of point in seconds to position in bar/beats. When it convert all of reference points, generates pattern and multiply this pattern to all project timeline. It is like 'new ghost grid generator'.
- Pattern length. Starts from first reference point.
- Pattern edges. Add edges to start and end of pattern.
- Using reference velocity. When quantize, use also velocity/value/gain of selected reference objects if possible.
- How to get reference notes. You can set option if you wanna get only selected notes in selected items or all notes in selected items.
- How to get reference stretch markers. You can setup how do you wanna get stretch markers positions - relative to grid or relative to bar of first item of first stretch marker.
- Allow to get stretch markers only within time selection.
- Reset stored stretch markers.
- Same, but for marker within time selection.
- Sync stored items to reference positions. Works only in Global mode.
- Use gravity. If this selector is on 'Use gravity', then objects are quantized only if their positions are closer (area in seconds) to reference points. 'Snap everything' means every object you selected will be snapped to reference point. Be carefull with this when using with stretch markers.
- Snap direction. That means if destination object position is right beetween two points, it will snap to point defined in this selector.
- Swing scaling is made because of my previously misunderstanding REAPER setting of MIDI Editor, so when unchecked, 0.5x is half-grid, that`s REAPER native behaviour.
- Quantize notes. Select this if you wanna quantize all notes in item or only selected. You can also select notes in MIDI Editor, close it and select item.
- Allow to stretch stretch marker which are placed only within time selection. Other markers will be stayed at their place. If you wanna change markers selection, again set time selection and store destionation stretch markers (see 5.2.0)
- About. Info about me, version (should be same as title).
- Show changelog in console
- Current Help.
- Donate button opens paypal donate link in default browser
- Sometimes display take a lot of CPU. You can disable it.
Control
- Use mpl_Quantize_tool_set_swing.lua to control swing value via OSC or MIDI CC. Check TopMenu - GitHub/Tools/
- Use mpl_Quantize_tool_set_strength.lua to control strength value via OSC or MIDI CC. Check TopMenu - GitHub/Tools/