Today I’ll be going over a basic design or plan for audio editing layout, taking inventory of the available commands and thinking of a hotkey scheme.

Currently using REAPER 6.18

Contents

Introduction

I’ll be covering a general layout of the commands I expect to use, and the commands that correspond to this use. I wrote this article in that order, so the actual commands may deviate slightly from the description of what I want!

I’m going to deviate from previous posts and list the commands directly under each concept. I’ll put the commands in code blocks to separate them visually.

I have SWS Extensions installed now. I am not yet using any of its capabilities, but I’ll be listing SWS commands where there is nothing else available.

I have installed Reapack as well. I AM USING IT to install a library.

As usual, I’m assuming that “delete” works on selected items.

An aside

I am a somewhat unique user, but I think it’s pretty silly that I haven’t even made it as far as figuring out how to use the program, within its general capabilities, without installing scripts.

It could be argued that “its general capabilities” means the ability to install scripts, but there are some silly omissions from the default program that I am (and will be) using scripts for.

Oh well.

Grid

The existence of a grid simplifies cursor movement, and note length and selection.

I generally only use the following grid positions, which I believe are enough to get to the common locations in 3 or fewer key presses.

  • 1 measure
    • Grid: Set to 1
  • 1/2
    • Grid: Set to 1/2
  • 1/4
    • Grid: Set to 1/4
  • 1/4t
    • Grid: Set to 1/6 (1/4 triplet)
  • 1/8
    • Grid: Set to 1/8
  • 1/8t
    • Grid: Set to 1/12 (1/8 triplet)
  • 1/16
    • Grid: Set to 1/16
  • 1/16t
    • Grid: Set to 1/24 (1/16 triplet)
  • 1/32
    • Grid: Set to 1/32

Focus

Being in the “right place” is necessary for certain commands to work.

  • Focus the arrange view
    • SWS/BR: Focus arrange
  • Focus Track List
    • SWS/BR: Focus tracks
  • Focus MIDI Editor
    • SWS/SN: Focus MIDI editor
  • Focus Track Manager Search
  • Focus Track Manager List

Search Focus Script

function GetTrackManager()
    local _, list = reaper.JS_Window_ListFind('Track Manager', true)
    for adr in "[^,]+" do
        local hwnd = reaper.JS_Window_HandleFromAddress(adr)
        -- check if window also has a child (ID of 'show all' button)
        if reaper.JS_Window_FindChildByID(hwnd, 0x422) then return hwnd end 
    end
end
  
local tm = GetTrackManager()
    if not tm then
    reaper.Main_OnCommand(40906, 0) -- View: Show track manager window
    tm = GetTrackManager()
end

if tm then
    local filter = reaper.JS_Window_FindChildByID(tm, 0x3EF)
    if filter then reaper.JS_Window_SetFocus(filter) end
end

REAPER has no default way to focus the Track Manager (track search). So here’s a script based on one from the forums that will find and focus the track manager’s filter box.

That means installing yet another script (library). I installed this using the awesome Reapack

Temporal movement

N-division narrowing buys us a lot of functionality with few commands:

  • Jump - Move to an arbitrary time or a time >3 bars away.
  • Move to start of measure
    • Move edit cursor to start of current measure
  • Move left by grid
    • View: Move cursor left to grid division
  • Move right by grid
    • View: Move cursor left to grid division
  • Move to next item
    • Item navigation: Move cursor right to nearest item edge
  • Move to previous item
    • Item navigation: Move cursor left to nearest item edge
  • Move to next transient
    • Item navigation: Move cursor to next transient in items
  • Move to previous transient
    • Item navigation: Move cursor to previous transient in items
  • Move to next envelope point
    • SWS/BR: Move edit cursor to next envelope point
  • Move to previous envelope point
    • SWS/BR: Move edit cursor to previous envelope point
  • Move to next automation item
  • Move to previous automation item

Track Selection

Projects can have 100s of tracks. This means that searching for tracks will generally be the most efficient.

  • Search for track and select
  • Retain track selections and add searched track to selection
  • Select track and all children
    • SWS: Select children of selected folder track(s)
  • Select next track
    • Track: Go to next track
  • Select previous track
    • Track: Go to previous track
  • Select next track, retaining selection
    • Xenakios/SWS: Select next tracks, keeping current selection
  • Select previous track, retaining selection
    • Xenakios/SWS: Select previous tracks, keeping current selection

Time Selection

  • Set input point
    • Time selection: Set start point
  • Set output point
    • Time selection: Set end point
  • Set time selection to selected item(s)
    • Time selection: Set time selection to items
  • Disable time selection
    • Time selection: Remove time selection

Groups

  • Turn on Group 1-10
  • Turn off Group 1-10
  • Turn on all groups associated with selected track.
  • Turn off all groups associated with selected track.
  • Add track to group 1-10
    • SWS/S&M: Set selected tracks to group 1 (default flags) - Close, but no cigar.
  • Remove track from group 1-10

Item Selection

Projects can have 1000s of items, and items can be minutes apart or dozens of tracks apart. This means that searching for items or locations is the first stage of the process followed by

  • Search for item
  • Select item(s) at edit cursor on selected track(s)
    • Xenakios/SWS: Select items under edit cursor on selected tracks
  • Select between time selection on selected track(s)
    • Item: Select all items on selected tracks in current time selection
  • Select Next Item
    • SWS: Select next item (across tracks)
  • Select Previous Item
    • SWS: Select previous item (across tracks)

Item Movement

  • Move item’s left edge to cursor
    • Item edit: Move left edge of item to edit cursor
  • Move item’s right edge to cursor
    • Item edit: Move right edge of item to edit cursor
  • Move item left by grid
    • Item edit: Move items/envelope points left by grid size
  • Move item right by grid
    • Item edit: Move items/envelope points right by grid size
  • Move item’s contents to cursor
    • Item edit: Move contents of item to edit cursor
  • Move selected item(s) to next track
    • Item navigation: Select and move to item in next track
  • Move selected item(s) to previous track
    • Item navigation: Select and move to item in previous track

Item Editing

  • Split selected items at edit cursor
    • Item: Split items at edit cursor (no change selection)
  • Split items on selected tracks at edit cursor
    • Item: Split items at edit cursor (no change selection)
  • Split items at transients
    • Xenakios/SWS: Split items at transients
  • Move left edge of nearest item on selected track to edit cursor
  • Move right edge of nearest item on selected track to edit cursor
  • Move left edge of selected items on selected track(s) to edit cursor
    • Item edit: Move left edge of item to edit cursor
  • Move right edge of selected items on selected track(s) to edit cursor
    • Item edit: Move right edge of item to edit cursor
  • Move left edge of selected items on selected track(s) to edit cursor by the amount of the distance between the edit cursor and closest item. All items are changed by the same amount.
  • Move right edge of selected items on selected track(s) to edit cursor by the amount of the distance between the edit cursor and closest item. All items are changed by the same amount.
  • Item volume up
    • Item: Nudge items volume +1dB
  • Item volume up
    • Item: Nudge items volume -1dB

Crossfades and fades

  • Move fade/crossfade to the right of the cursor on selected item(s) to edit cursor
    • Item: Fade items in to cursor
  • Move fade/crossfade to the left of the cursor on selected item(s) to edit cursor
    • Item: Fade items out to cursor
  • Change fade/crossfade shape to ?
    • Item: Set crossfade shape to type 1 (linear, equal gain) etc…
  • Cycle fade/crossfade shapes
    • Item: Cycle through crossfade shapes
    • Item: Cycle through fade-in shapes
    • Item: Cycle through fade-out shapes
  • Remove left fade on selected item
    • Item: Remove fade in
  • Remove right fade on selected item
    • Item: Remove fade out
  • Crossfade selected overlapping items
    • Item: Crossfade any overlapping items

Automation

Unfortunately, I expect to be using the mouse or a fader for automation.

  • Create 4 envelope points at time selection for envelope.
    • Envelope: Insert 4 envelope points at time selection
  • Add point at Cursor
    • Envelope: Add/edit envelope point value at cursor
  • Delete automation in time selection.
    • Envelope: Select points in time selection then
    • Envelope: Delete all selected points

Pitch and Stretching

I am leaving out “selected items” type commands because I never use these.

  • Move left edge of nearest item on selected track to edit cursor by stretching the item
  • Move right edge of nearest item on selected track to edit cursor by stretching the item
  • Create Stretch Marker at edit cursor
    • Item: Add stretch marker at cursor
  • Move stretch cursor to the right of the cursor on selected item (or item under cursor on selected track) to the cursor
  • Move stretch cursor to the left of the cursor on selected item (or item under cursor on selected track) to the cursor

Markers (not regions!)

  • Insert marker at cursor
    • Markers: Add/move marker 1 to play/edit cursor
  • Goto Marker 1-20
    • Markers: Go to marker 01 etc..
  • Goto next marker
    • Markers: Go to next marker/project end
  • Goto previous marker
    • Markers: Go to previous marker/project start
  • Reorder Markers
    • Markers: Renumber all markers in timeline order
  • Delete marker in time Selection
    • Markers: Remove all markers from time selection

Other

  • Lock selected item(s)
    • Item properties: Lock
  • Unlock selected item(s)
    • Item properties: Unlock
  • Lock selected track(s)
    • Track: Lock track controls
  • Unlock selected track(s)
    • Track: Unlock track controls
  • Freeze selected track(s)
    • Track: Freeze to stereo (render pre-fader, save/remove items and online FX)

Hotkey design ideas

These are some first run ideas on hotkeys. Many are similar to what I use in other DAWs (and have never talked about!). They may change, and I’ll likely have a post on all of my hotkeys once I feel like committing to them. As of this point, I am still using “Vanilla” REAPER.

Modifier meanings:

  • Shift is for selection
    • Alternatively, when using vim-like keys Shift implies “capital letter”. Only used when no selection is available.
  • Command is for alternative related action
  • Option is for a different class of action of the non-modified key.
    • Alternatively, same function as command if it’s an OS shortcut (like command-s)
  • Control is for changes to “size” of an action
    • Including deletion of something

There are some general themes I’ll be using:

  • Numbers for grid sizes
  • F-keys for selecting a window
  • Vim keys for moving something
    • h (left)
    • l (right)
    • j (down)
    • k (up)
    • ^ for start of thing
    • $ for end of thing
    • for markers
  • f for fades
  • x for crossfades
  • b for changing the beginning of something
  • e for changing the ending of something
  • i for start of a selection (in)
  • o for end of a selection (out)
  • s for split.
  • a for automation/envelope commands.

Edit Cursor Movement

Use time division for hotkey, +1 for triplets.

  • 1 Grid: Set to 1
  • 2 Grid: Set to 1/2
  • 4 Grid: Set to 1/4
  • 5 Grid: Set to 1/6 (1/4 triplet)
  • 8 Grid: Set to 1/8
  • 9 Grid: Set to 1/12 (1/8 triplet)
  • 6 Grid: Set to 1/16
  • 7 Grid: Set to 1/24 (1/16 triplet)
  • 3 Grid: Set to 1/32

Focus

These are used so often that I’ll be utilizing the Function keys, with Command-F2 for track search (since F2 is select track control panel).

F7 for MIDI Editor selection since F6 is MIDI editor (some relationship,)

  • F1 SWS/BR: Focus arrange
  • F2 SWS/BR: Focus tracks
  • F3 SWS/SN: Focus MIDI editor
  • F7 FocusTrackManager.lua - see script

Temporal movement

I’m using vim hotkeys.

  • h View: Move cursor left to grid division
  • l View: Move cursor left to grid division
  • a Move edit cursor to start of current measure
  • command-l Item navigation: Move cursor right to nearest item edge
  • command-h Item navigation: Move cursor left to nearest item edge

These are deviations based on common OS hotkeys

  • tab Item navigation: Move cursor to next transient in items
  • shift-tab Item navigation: Move cursor to previous transient in items

Track Selection

I’m using vim hotkeys.

  • Shift-V SWS: Select children of selected folder track(s)
  • option-j Track: Go to next track
  • option-k Track: Go to previous track
  • shift-option-j Xenakios/SWS: Select next tracks, keeping current selection
  • shift-option-k Xenakios/SWS: Select previous tracks, keeping current selection

Time Selection

  • i Time selection: Set start point
  • o Time selection: Set end point
  • command-i Time selection: Set time selection to items
  • command-escape Time selection: Remove time selection

Item Movement

I’m using vim-like hotkeys.

  • option-h Item edit: Move left edge of item to edit cursor
  • option-l Item edit: Move right edge of item to edit cursor
  • command-option-h Item edit: Move items/envelope points left by grid size
  • command-option-l Item edit: Move items/envelope points right by grid size
  • ??? Item edit: Move contents of item to edit cursor
  • command-↓ Item navigation: Select and move to item in next track
  • command-↑ Item navigation: Select and move to item in previous track

Item Editing

I’m using vim-like hotkeys, plus s for “split” and d for “dynamic split”

  • s Item: Split items at edit cursor (no change selection)
  • unused Xenakios/SWS: Split items at transients
    • Substitute option-s Item: Dynamic split items...
  • b Item edit: Move left edge of item to edit cursor
  • e Item edit: Move right edge of item to edit cursor
  • k Item: Nudge items volume +1dB
  • j Item: Nudge items volume -1dB

Crossfades and fades

  • f Item: Fade items in to cursor
  • command-f Item: Fade items out to cursor
  • option-f Item: Cycle through fade-in shapes
  • command-option-f Item: Cycle through fade-out shapes
  • control-f Item: Remove fade in
  • control-command-f Item: Remove fade out
  • x Item: Crossfade any overlapping items
  • option-x Item: Cycle through crossfade shapes

Automation

  • option-a Envelope: Insert 4 envelope points at time selection
  • a Envelope: Add/edit envelope point value at cursor
  • control-a Delete automation in time selection.
    • Envelope: Select points in time selection then
    • Envelope: Delete all selected points

Pitch and Stretching

  • s Item: Add stretch marker at cursor

Markers (not regions!)

These are NUMBER PAD keys. I have a secondary number pad to the left of my main keyboard, so it is easy for me to hit modifier+numberpad with my left hand.

  • Markers: Add/move marker 1 to play/edit cursor
  • NUM1 Markers: Go to marker 01 1-10
  • command-NUM1 Markers: Go to marker 01 11-20
  • command-‘ Markers: Go to next marker/project end
  • command-option-‘ Markers: Go to previous marker/project start
  • control-option-command-‘ Markers: Renumber all markers in timeline order
  • control-‘ Markers: Remove all markers from time selection

Other

  • l Item properties: Lock
  • u Item properties: Unlock
  • option-l Track: Lock track controls
  • option-u Track: Unlock track controls

Meta

This post took:

  • 11 hours to write