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
- 30 days of Starting over with REAPER
- Rants and GUI Tweaks (again)
- Designing MIDI commands
- MIDI Command Inventory
- Project Template, Preferences and Mouse Modifiers
- Hotkeys, again! ...?
- Look Ma! No Hands
- An evaluation and conclusion
Contents
- Contents
- Introduction
- Grid
- Focus
- Temporal movement
- Track Selection
- Time Selection
- Groups
- Item Selection
- Item Movement
- Item Editing
- Crossfades and fades
- Automation
- Pitch and Stretching
- Markers (not regions!)
- Other
- Hotkey design ideas
- Temporal movement
- Track Selection
- Time Selection
- Item Movement
- Item Editing
- Crossfades and fades
- Automation
- Pitch and Stretching
- Markers (not regions!)
- Other
- Meta
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
FocusTrackManager.lua
- see script
- 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
thenEnvelope: 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
)
- Alternatively, same function as command if it’s an OS shortcut (like
- 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...
- Substitute option-s
- 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
thenEnvelope: 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