Skip to content

Keyboard cheatsheet

sadda's desktop app is built for mouse-free scanning and annotation: a two-handed home-row scheme drives playback, cursor/selection movement, and view scroll/zoom, so you can audition and mark up a recording without leaving the keyboard.

Bound by physical position, not layout

Every shortcut on this page is matched by the physical key position (US-QWERTY), not the character your layout produces. If you type Dvorak or AZERTY, the keys are where a s d f / h j k l sit on the board — your hands fall on the same shape regardless of layout. All shortcuts are suspended while a text field is focused, so they reach the editor instead.

Playback — left hand

Key Action
D Play the selection (or the whole view if nothing is selected). Press again to pause/resume.
S Play left of focus — left of the selection if there is one, else left of the cursor.
F Play right of focus.
Shift+D / Shift+S / Shift+F Loop the same span (0.5 s gap between repetitions).
A Stop and return the cursor to where playback started.
Space Alias for D (play / pause). Shift+Space loops.
Esc Alias for A (stop).

Cursor & selection — right hand

The right-hand home row moves a point through the recording. The modifier picks which point:

  • no modifier → the cursor (playhead)
  • Shift → the selection start edge
  • Alt → the selection end edge

With no selection yet, the first Shift/Alt move seeds one at the cursor, then moves that edge.

Key Movement
H Jump to the start of the recording
J Jump to the start of the window
K Glide left (hold to keep moving; speeds up the longer you hold)
L Glide right
; Jump to the end of the window
++quote++ Jump to the end of the recording

The view follows the moved point off-screen, so a glide scrolls smoothly and a jump brings its target into view.

View: scroll & zoom — lower-right row

The lower-right row controls the window itself. Bare keys scroll; Shift zooms.

Key Scroll (bare) Zoom (Shift)
N View → start of recording Fit the whole recording
M Pan left (¼ window) Zoom out
, Pan right (¼ window) Zoom in
. View → end of recording Zoom to selection

Zoom is anchored at the cursor. The mouse wheel also zooms (Shift + wheel pans); the arrow keys pan a quarter-window and Home / End jump the view to the file ends.

Bundles

Key Action
Q First bundle
W Previous bundle
E Next bundle
R Last bundle

Annotation

Navigation — moves the current-annotation highlight independently of the timeline selection, so you can step through annotations without disturbing the cursor/selection you set for playback:

Key Action
U / I Previous / next annotation on the current tier
O / P Previous / next tier (up / down)
Y Grab the current annotation into the timeline selection + cursor (so playback acts on it)

Editing:

Key Action
19 Activate the tier at that lane position (top = 1)
Shift+1Shift+9 Toggle that tier in / out of the active set (several at once)
0 Clear all active tiers
Enter Edit the current annotation's label if one is highlighted; otherwise commit the selection to the active tiers (span → intervals, point → points)
Esc Cancel a label edit / clear the current-annotation highlight
Backspace / Del Delete the selected annotation

Panes & focus

Key Action
Shift+Down Focus the Python console — every key then types into it (a clean slate for a future Vim/Emacs mode); a ring marks it
Shift+Up Leave the console, back to the main view (shortcuts resume)

Global

Key Action
Ctrl+P / Cmd+P Open the command palette
Ctrl+Enter / Cmd+Enter Run the script buffer (when the script panel is open)

Mouse

Action Effect
Click Place the cursor (and a selection point)
Drag on a lane Draw a span selection
Double-click an interval Edit its label
Wheel Zoom around the pointer
Shift + wheel Pan the view

Scripting the same navigation

The cursor/view/selection model is also exposed to Python as sadda.Timeline, with a move-to (absolute) / move-by (relative) method for each action — e.g. set_cursor(t) vs move_cursor_by(dt), set_view_range(start, end) for fit/zoom-to-selection. The desktop keys and the Python API share one implementation in the engine.