Quantize tool by mpl

From CockosWiki

Jump to: navigation, search

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.

Main GUI.png

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.


Reference settings menu (left menu)

Left menu.png

  • 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'.

Qt mode.jpg

  • 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.

Quantize objects settings (right menu)

Right menu.png

  • 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)

Top menu

Main menu.png

  • 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/