Keyboard Shortcuts
This page lists every keyboard shortcut shipped with MidiEditor AI. Each row also shows the
internal action ID — you can use that ID in
Settings → Keybinds to rebind a shortcut, clear it, or restore the default.
Tip — rebinding shortcuts. Open
Edit → Settings → Keybinds, find the action by its name (or scroll to its ID),
click the field next to it and press the new key combination. The dialog warns about duplicate
bindings and offers a Reset button per row plus a global Reset All to Defaults.
Custom bindings are stored under QSettings("MidiEditor", "NONE") in the
shortcuts/ group.
Notation.
Ctrl is shown for Windows / Linux. On macOS, replace it with Cmd
(Qt maps QKeySequence::* portably). Where the source uses
QKeySequence::Save / ::New / etc., the platform native binding applies.
File
| Shortcut | Action | Action ID |
| Ctrl+N | New file | new |
| Ctrl+O | Open… | open |
| Ctrl+S | Save | save |
| Ctrl+Shift+S | Save as… | save_as |
| Ctrl+Shift+E | Export Audio… (WAV / FLAC / OGG / MP3) | export_audio |
| Ctrl+Q | Quit | quit |
Edit & Selection
| Shortcut | Action | Action ID |
| Ctrl+Z | Undo | undo |
| Ctrl+Y | Redo | redo |
| Ctrl+A | Select all visible events | select_all |
| Ctrl+C | Copy events | copy |
| Ctrl+V | Paste events (opens Paste Special dialog for cross-instance clipboard) | paste |
| Del | Remove selected events | delete |
Navigation
Step through the current selection one event at a time:
| Shortcut | Action | Action ID |
| ↑ | Navigate selection up | navigate_up |
| ↓ | Navigate selection down | navigate_down |
| ← | Navigate selection left | navigate_left |
| → | Navigate selection right | navigate_right |
| Shortcut | Action | Action ID |
| F1 | Standard tool (move / select smart) | standard_tool |
| F2 | Pencil — create new notes | new_note |
| F3 | Eraser — remove notes | remove_notes |
| F4 | Single selection | select_single |
| F5 | Box selection | select_box |
| F6 | Select left of cursor | select_left |
| F7 | Select right of cursor | select_right |
| F8 | Move tool (free) | move_all |
| F9 | Move tool (left/right only) | move_lr |
| F10 | Move tool (up/down only) | move_ud |
| F11 | Resize tool (change note length) | size_change |
| Ctrl+F1 | Measure tool | measure |
| Ctrl+F2 | Time signature tool | time_signature |
| Ctrl+F3 | Tempo tool | tempo |
Editing operations
| Shortcut | Action | Action ID |
| Ctrl+G | Glue notes (same channel) | glue |
| Ctrl+Shift+G | Glue notes (all channels) | glue_all_channels |
| Ctrl+X | Scissors — cut note at cursor | scissors |
| Ctrl+D | Delete overlaps | delete_overlaps |
| Ctrl+B | Convert pitch bends to notes | convert_pitch_bend_to_notes |
| Ctrl+E | Explode chords to tracks | explode_chords_to_tracks |
| Ctrl+Shift+E | Split channels to tracks | split_channels_to_tracks |
| Ctrl+Alt+S | Strum selection | strum |
| Ctrl+M | Toggle Magnet (snap to grid) | magnet |
Tweak — precision nudge of selected events
The Tweak family of shortcuts adjusts a single property (time / start / end / note / value)
of the current selection by a small, medium, or large step. First pick a target with
Ctrl+1…5, then nudge with the increase / decrease
shortcuts below.
| Shortcut | Action | Action ID |
| Ctrl+1 | Tweak target = Time | tweak_time |
| Ctrl+2 | Tweak target = Start time | tweak_start_time |
| Ctrl+3 | Tweak target = End time | tweak_end_time |
| Ctrl+4 | Tweak target = Note (pitch) | tweak_note |
| Ctrl+5 | Tweak target = Value (velocity / CC) | tweak_value |
| Ctrl+9 | Small decrease | tweak_small_decrease |
| Ctrl+0 | Small increase | tweak_small_increase |
| Ctrl+Alt+9 | Medium decrease | tweak_medium_decrease |
| Ctrl+Alt+0 | Medium increase | tweak_medium_increase |
| Ctrl+Alt+Shift+9 | Large decrease | tweak_large_decrease |
| Ctrl+Alt+Shift+0 | Large increase | tweak_large_increase |
Note duration presets
When the Pencil tool is active, these shortcuts pick the next note's length.
Alt+` falls back to free drag-to-size mode.
| Shortcut | Action | Action ID |
| Alt+` | Drag mode (no fixed duration) | duration_drag |
| Alt+1 | Whole note (1/1) | duration_1 |
| Alt+2 | Half note (1/2) | duration_2 |
| Alt+3 | Quarter note (1/4) | duration_4 |
| Alt+4 | 8th note (1/8) | duration_8 |
| Alt+5 | 16th note (1/16) | duration_16 |
| Alt+6 | 32nd note (1/32) | duration_32 |
| Alt+7 | 64th note (1/64) | duration_64 |
| Alt+Shift+1 | Triplet (1/3) | duration_3 |
| Alt+Shift+2 | Quintuplet (1/5) | duration_5 |
| Alt+Shift+3 | Sextuplet (1/6) | duration_6 |
| Alt+Shift+4 | Septuplet (1/7) | duration_7 |
| Alt+Shift+5 | Nonuplet (1/9) | duration_9 |
| Alt+Shift+6 | 8th triplet (1/12) | duration_12 |
| Alt+Shift+7 | 16th triplet (1/24) | duration_24 |
| Alt+Shift+8 | 32nd triplet (1/48) | duration_48 |
Transpose & alignment
| Shortcut | Action | Action ID |
| Ctrl+T | Transpose selection (semitones dialog) | transpose |
| Shift+↑ | Transpose octave up | transpose_up |
| Shift+↓ | Transpose octave down | transpose_down |
| Ctrl+← | Align left | align_left |
| Ctrl+→ | Align right | align_right |
| Ctrl+↑ | Equalize selection | equalize |
Quantize
| Shortcut | Action | Action ID |
| Ctrl+Q | Quantize selection (uses current grid) | quantize |
| Ctrl+Shift+H | Quantize tuplet… (dialog) | quantize_ntuplet_dialog |
| Ctrl+H | Repeat last tuplet quantization | quantize_ntuplet_repeat |
| Shortcut | Action | Action ID |
| Ctrl+I | Toggle MidiPilot panel (AI sidebar) | toggle_midipilot |
| Ctrl+L | Toggle Lyric Timeline | toggle_lyric_timeline |
| Ctrl+Shift+L | Import lyrics (SRT)… | import_lyrics_srt |
See MidiPilot AI for in-panel chat keys
(Enter = send, Shift+Enter = newline) and
FFXIV Channel Fixer /
Voice Limiter for those tools' modal dialogs.
View & zoom
| Shortcut | Action | Action ID |
| Ctrl++ | Zoom horizontal in | zoom_hor_in |
| Ctrl+- | Zoom horizontal out | zoom_hor_out |
| Shift++ | Zoom vertical in | zoom_ver_in |
| Shift+- | Zoom vertical out | zoom_ver_out |
| Ctrl+Backspace | Restore default zoom | zoom_std |
| Ctrl+Shift+Backspace | Reset view (zoom + scroll) | reset_view |
Playback
| Shortcut | Action | Action ID |
| Space or Ctrl+P | Play / Stop toggle | play_stop |
| Ctrl+Space (macOS: Cmd+Space) | Pause | pause |
| Ctrl+R | Record | record |
| Alt+↑, Alt+Home, Shift+J | Back to begin | back_to_begin |
| Alt+← | Previous measure | back |
| Alt+→ | Next measure | forward |
| Alt+, | Previous marker | back_marker |
| Alt+. | Next marker | forward_marker |
MIDI panic / thru
| Shortcut | Action | Action ID |
| Esc | MIDI panic — All Notes Off on every channel | panic |
Move selection to track
When tracks 0…9 exist, Shift+0…9 moves
the current selection to that track index. The shortcut is regenerated each time the track menu
is rebuilt, so it always matches the current track count.
| Shortcut | Action |
| Shift+0…9 | Move selected events to track 0…9 |
Note — tool shortcuts use function keys. The tool shortcuts
F1…F11 and Ctrl+F1/F2/F3
may be intercepted by the OS, screen reader, or window manager (especially on Linux).
If a tool shortcut does nothing, rebind it under
Settings → Keybinds.
Mouse modifiers
These are not configurable via Settings → Keybinds because they are mouse interactions, not
keyboard actions, but they're worth knowing:
| Gesture | Action |
| Right-click on note | Context menu (Quantize, Copy, Delete, Transpose, Move to Track/Channel, Scale, Legato, Export selection…) |
| Ctrl+Right-click | Create note at click position |
| Ctrl+drag (Box select) | Toggle — removes events inside box from current selection (since v1.3.3) |
| Shift+drag (Box select) | Add events inside box to current selection |
| Mouse wheel | Vertical scroll |
| Shift+wheel | Horizontal scroll |
| Ctrl+wheel | Zoom horizontal |
This page is hand-curated against the action registry in
src/gui/MainWindow.cpp (the _defaultShortcuts map). If you
add a new action with setShortcut() in the source, please update this page
as well.