Quantize tool by mpl

From CockosWiki

Revision as of 10:56, 1 October 2015 by G-Sun (Talk | contribs)
Jump to: navigation, search

Contents

What is this?

It`s LUA script for REAPER. I suppose you to have installed last version of REAPER and SWS/S&M extension.

What it was created for?

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". Also there was some limitations in Groove Tool from SWS/S&M extension, which is also very powerful tool. So, I decided to build something that combines some useful features in case of snap and groove contexts.

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.

How to use this

Ok there is actually two windows. First window is main and contain one selector for objects you wanna get 'groove points' from and another selector for choosing object you wanna quantize. Second window contains settings and link to information about me and 'readme' info, you watching now.

Reference section

Here we somehow get 'groove points'. Count of reference points is in parentheses.

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

- is a slider with grid selector. Project Grid is leftmost value. It is also apply button. Works only in Local (Pattern) mode.

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 (right menu)

9.1 Save current groove to .rgt file in REAPER/Grooves, compatible with SWS Fingers Groove Tool. 9.2 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'. 9.3 Pattern length. Starts from first reference point. 9.4 Pattern edges. Add edges to start and end of pattern. 9.5 Using reference velocity. When quantize, use also velocity/value/gain of selected reference objects if possible. 9.6 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. 9.7 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. 9.8 Allow to get stretch markers only within time selection.

10. Quantize objects settings (left menu) 10.1 Reset stored stretch markers. 10.2 Same, but for marker within time selection. 10.3 Sync stored items to reference positions. Works only in Global mode. 10.4 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. 10.5 Snap direction. That means if destination object position is right beetween two points, it will snap to point defined in this selector. 10.6 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. 10.7 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. 10.8 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)

11 Top menu 11.1 About. Info about me, version (should be same as title). 11.2 Show changelog in console 11.3 Current Help. 11.4 Donate button opens paypal donate link in default browser 11.5 Sometimes display take a lot of CPU. You can disable it.

7. Control. 7.1 Use mpl_Quantize_tool_set_swing.lua to control swing value via OSC or MIDI CC. Check TopMenu - GitHub/Tools/ 7.2 Use mpl_Quantize_tool_set_strength.lua to control strength value via OSC or MIDI CC. Check TopMenu - GitHub/Tools/


Michael.

Personal tools