Tempo manipulation with SWS

From CockosWiki

(Difference between revisions)
Jump to: navigation, search
(About)
m (About)
Line 1: Line 1:
==About==
==About==
-
This is part of Reaper documentation on SWS features regarding tempo and tempo mapping. You need to have pre-release version of [[SWS extension]] installed, version 2.5.1.0 or later. You can get it [http://www.standingwaterstudios.com/reaper here]. All coding by Breeder.
+
This is part of Reaper documentation on SWS features regarding tempo and tempo mapping. You need to have pre-release version of [[SWS extension]] installed, version 2.5.1.0 or later. You can get it [http://www.standingwaterstudios.com/reaper here]. All coding by [http://forum.cockos.com/member.php?u=27094 Breeder]. [https://www.paypal.me/ReaBreeder Support the developer here ]
==Tempo manipulation==
==Tempo manipulation==

Revision as of 21:24, 25 September 2018

Contents

About

This is part of Reaper documentation on SWS features regarding tempo and tempo mapping. You need to have pre-release version of SWS extension installed, version 2.5.1.0 or later. You can get it here. All coding by Breeder. Support the developer here

Tempo manipulation

Lets assume that you've built a tempo map according to steps explained in Tempo mapping with SWS (or by other means).
If you now play your song through, maybe with an added metronome or basic beat, you'll possibly find that the tempo map is less accurate than desired. Or you'd like to polish/change tempo in other ways.

Note: All actions described are designed to modify any number of selected tempo markers without screwing the rest of the tempo map


Move tempo marker


Name in the action list:

  • SWS/BR: Move tempo marker back
  • SWS/BR: Move tempo marker forward
  • SWS/BR: Move closest tempo marker to edit cursor

These actions are designed to help you reposition tempo markers without having to go through process of remapping tempo every time you want to change their position. They move selected tempo markers while preserving time positions of the rest of the tempo markers in the project:
Moving square tempo.gif

Note:

  • It's recommended to keybind versions without ms attribute. Those move points depending on zoom level - the more zoomed project is, less the point gets moved.
  • Because of their characteristic to preserve time position of other markers - they will not work reliably in a situation when there is a linear tempo marker(s) 2 points behind the selected point. The reason is that additional tempo acrobatics are needed in order to preserve time positions of those tempo markers. Illustration
  • If you don't need the precision these actions provide you will probably want to use Warp grid instead:
Warp grid mouse sws.gif

Edit tempo marker


Name in the action list:

  • SWS/BR: Increase tempo marker (preserve overall tempo)
  • SWS/BR: Decrease tempo marker (preserve overall tempo)

Designed to let you edit tempo markers up/down while preserving the overall sync/tempo. Their main characteristic is that they will always preserve time position of the selected tempo marker (or time position of musical middle in case of consequential selection). It works by changing the value and position of surrounding tempo markers - sometimes just one and in other cases both. It depends on which which type (linear/square) of tempo markers are present around the selected marker.

Intended usage for these actions is to smooth so called "peaks" in a tempo map that consists of linear tempo markers:
Editing linear tempo.gif

Delete tempo marker


Name in the action list:

  • SWS/BR: Delete tempo marker (preserve overall tempo and positions if possible)

Deleting tempo markers using standard reaper procedure moves all subsequent tempo markers.
This action allows for deletion of selected tempo markers while at the same time preserving musical and time position (when possible) of the rest of the tempo map:
Deleting square tempo.gif

Note:

  • In certain cases involving linear tempo markers it would be impossible to preserve all time position. In that case, only one tempo marker after the deleted point will change it's time position.
  • You can use this action to reduce number of points in tempo map to ease editing. To do it in bulk you might want to use Select and adjust tempo markers...


Change tempo marker shape


Name in the action list:

  • SWS/BR: Set tempo marker shape to linear (preserve positions)
  • SWS/BR: Set tempo marker shape to square (preserve positions)
  • SWS/BR: Set tempo marker shape (options)

Changing tempo marker's shape via standard reaper procedure preserves musical position but changes their time positions.
However, sometimes you want to change shape without disturbing positions at all. These actions are here to help. They work by the same principle presented in Tempo mapping with SWS - by creating additional middle point(s) which help preserve time positions of existing tempo markers.

Main differences between SWS and REAPER procedure:

REAPER SWS
Musical position preserved preserved
Time position changed preserved
BPM preserved averaged when converting to square


Settings that affect creation of middle points when changing shapes can be found in action list: SWS/BR: Set tempo marker shape (options):
Tempo shape options.png

Explanation on how it works:

  • Splitting turned off: one tempo marker is created in the musical middle
  • Splitting turned on: two tempo markers are created - ratio (between 0 and 1) can be typed (decimal or fraction) or chosen from the list. Dictates by how much created markers will get moved from the musical middle. Recommended ratios are 1/2 and 1/3.
  • When changing shape to linear, middle point(s) always get created after the selected point
  • When changing shape to square, middle point(s) may get created before the selected point

Tips:

  • When tempo mapping and creating gradual tempo changes you might find yourself in a situation where fixing anything requires a complete remap. Instead of tempo mapping with linear points it may be more productive to tempo map using square points since they are easier to move and delete. Once you are completely satisfied with the result you can change shape to linear and obtain fluctuating tempo.
  • When converting widely spaced linear tempo markers to square, consider using Increase tempo map density beforehand to obtain higher resolution that will reflect converted transitions more truthfully
  • Leave settings dialog open while changing shapes - actions will react to change of settings immediately

Alter slope of gradual tempo marker


Name in the action list:

  • SWS/BR: Alter slope of gradual tempo marker

It alters the BPM of selected gradual (linear) tempo marker and in turns moves next tempo marker in order to preserve tempo map - result is alteration of the slope. Selected tempo marker might move, depending if there is a linear tempo marker behind it.

This is intended to be a helper action used for fixing things up:

  • When deleting tempo in linear tempo map, tempo marker after the deleted marker might get moved and produce undesired results. Select previous tempo marker and use this action to compensate for this:

Alter linear tempo slope.gif

  • When tempo mapping gradual tempo it is not so easy to move markers around using existing move actions. You can try and use this action on middle point (or second middle point if split) to move a tempo marker on the next beat.
  • When tempo mapping gradual tempo - with option turned on to split middle point - you can use this action on the first middle point (select only the first) to fix the slope of two middle points

Randomize selected tempo markers


Name in the action list:

  • SWS/BR: Randomize tempo markers

Randomize selected tempo markers.png

Use this dialog to randomize the value of selected tempo markers:

  • Set minimum and maximum values to taste and decide on which unit you want to use, BPM or %
  • Obey absolute threshold lets you impose minimum and maximum limits on the resulting tempo map
  • New random seed creates a new randomization. Once satisfied, apply. Or just cancel and get your tempo map back

Tips:

  • If you have only a small number of tempo markers in your project you might want to create more markers between them to get more realistic randomization (Increase tempo map density feature can come in handy here)
  • Once randomized, change their shape to linear (with SWS or default reaper procedure) to get fluctuating tempo
  • It can also be used to set all of the selected points to ONE value. Check absolute threshold and set the value you want in both min and max. Make sure you're using BPM. Press New random seed and Apply

Increase tempo map density


Name in the action list:

  • SWS/BR: Create tempo markers at grid after every selected tempo marker
  • SWS/BR: Insert envelope points on grid using shape of previous point

As the name suggest, this action will insert new tempo markers (or envelope points if using second version) at grid while preserving the whole tempo map. Markers are created until the next tempo marker - if last tempo marker in the project is selected, points are created until the end of project (markers and regions included)

Tips:

  • If exporting a linear tempo map you will probably want to convert all markers to square - consider using this action in tandem with SWS shape actions to obtain more resolution in the exported tempo map.


Draw tempo map


While REAPER doesn't allow for drawing of the tempo map, it can be achieved using SWS

The far easiest way is to assign shortcut to the action:
SWS/BR: Freehand draw envelope while snapping points to left side grid line (perform until shortcut released)

After that, simply selected tempo map envelope, press the assigned shortcut and move mouse around tempo map to make it work: It works with any envelope, not just tempo map:

Cursor sws env pen grid.gif


There are other actions that can help with this kind of stuff:

  • SWS/BR: Create tempo markers at grid after every selected tempo marker
  • SWS/BR: Insert envelope points on grid using shape of previous point
  • SWS/BR: Set closest envelope point's value to mouse cursor (perform until shortcut released)
  • SWS/BR: Set closest left side envelope point's value to mouse cursor (perform until shortcut released)


Note that you can also manipulate envelope points on/between grids using these actions:

  • SWS/BR: Select envelope points on grid
  • SWS/BR: Select envelope points between grid
  • SWS/BR: Add envelope points located on grid to existing selection
  • SWS/BR: Add envelope points located between grid to existing selection
  • SWS/BR: Delete envelope points on grid
  • SWS/BR: Delete envelope points between grid

Hint: Note that all of these actions also have versions that obey time selection. Using these actions, you can create macros to increase/decrease tempo map density.

Select and adjust tempo markers

You can find this dialog in the action list under "SWS/BR: Select and adjust tempo markers"
It is separated into two parts - one for selecting and other for editing BPM and shape of selected tempo markers.

Note: The number of selected points is displayed in the dialog header

Selecting tempo markers


Select and adjust tempo markers.png

  • BPM range: Check to set a range for selection
  • Time signature: Note that this option doesn't differentiate between types of tempo markers. Points to be selected don't need to have explicit time signature set
  • Time range:
    • All: The whole project is used
    • Time selection: Only points within time selection are taken into account
    • Ignore time selection: Only points outside time selection are taken into account
  • Shape:
    • All
    • Linear
    • Square
  • Type
    • All
    • Tempo markers
    • Time signatures
  • Add to current selection: Instead of creating new selection, add to existing selection
  • Inverting obeys criteria: Use this if you want to invert selection only within time selection or other criteria
  • Select
  • Deselect
  • Clear
  • Invert
  • Deselect every...

Deselect every.png


Adjusting tempo markers


Adjust tempo markers.png

  • Current: Displays value of the first selected point, value at cursor and value for the last selected point.
  • Target: You can enter target values here to set amount of adjustment
  • Adjust selected markers by: Choose unit (BPM or percent) and enter desired amount.
  • Shape of selected markers
    • Preserve: No changes
    • Invert: Invert shape of selected points
    • Linear: Set all selected points to linear
    • Square: Set all selected points to square

For changing shape and preserving time positions, you have to use actions SWS/BR: Set tempo markers shape

Other tools

Create project markers from tempo markers

Name in the action list: SWS/BR: Create project markers from selected tempo markers

Tempo mapping is performed using project markers. It may happen that you accidentally removed those project markers which is a bummer if you want to delete existing tempo map and remap everything.

This action let you go back to start:


Split selected items at tempo markers

Name in the action list: SWS/BR: Split selected items at tempo markers

Since Reaper V4 didn't allow for one audio item to be affected by more than one tempo marker, this could have been used to accomplish some sort of elastic audio.
Use this action to split selected items on each tempo marker so when you change tempo, items will change their length accordingly. Note that you will also have to play a bit with crossfades for those items. Crossfade editor can really come in handy here.

Another shortcoming of Reaper is that audio items cannot follow gradual (linear) tempo changes (audio items will assume the average tempo) so using this method on linear tempo changes is not so easy.
Alternate method for linear points would be to split all the affected items to a grid with the action "Items: Split items at timeline grid". Grid should be set to at least 1/8. Don't forget to play with crossfades afterwards.


Note that in REAPER v5, stretch markers can follow tempo changes so this hack shouldn't be necessary anymore. Most SWS actions that deal with tempo will automatically insert stretch markers when modifying tempo, like this. You can turn this feature off by using the action SWS/BR: Options - Automatically insert stretch markers when inserting tempo markers with SWS actions

Preserve MIDI items timing when editing tempo map

While REAPER doesn't obey timebase preferences when it comes to MIDI items, SWS can help with that.

All you need to so is run the action on troublesome MIDI items:

  • SWS/BR: Enable "Ignore project tempo" for selected MIDI items preserving time position of MIDI events (use tempo at item's start)

After that, position and length of events within MIDI items should remain constant even when editing tempo map. Once satisfied, just glue MIDI item to "embed" tempo information into it so it can again follow tempo manipulations. Instead of gluing, you may also use SWS/BR: DIsable "Ignore project tempo" for selected MIDI items preserving time position of MIDI events

See also