Keyboard shortcuts
From Buzztard
Buzz and Buz� have lots of keyboard shortcuts and we should follow that practise. Also the Gnome project has a document about suggested keybindings for various widgets.
Contents |
Shortcuts
Global
| command | shortcut buzz | shortcut buzztard | description |
|---|---|---|---|
| New | CTRL+N | CTRL+N | Creates a new Buzz song |
| Open | CTRL+O | CTRL+O | Opens a song file |
| Save | CTRL+S | CTRL+S | Saves the current file |
| Exit | ALT+F4 | CTRL+Q | Close the application |
| Cut | CTRL+X | CTRL+X | Cut selection |
| Copy | CTRL+C | CTRL+C | Copy Selection |
| Paste | CTRL+V | CTRL+V | Paste Selection |
| Help | F1 | F1 | Loads the Buzz User Manual |
| Machine Editor | F3 | F3 | Used to add and route machines. |
| Pattern Editor | F2 | F2 | Used for adding patterns, adding notes/parameter changes to notes. |
| Sequence Editor | F4 | F4 | Used to devise pattern order, forming sequences. |
| Wavetable | F9 | Allows you to add and manage samples and instruments in your songs. | |
| User Notes | F10 | Allows you to add notes about this song. | |
| Play | F5 | F5 | Plays Song or loop from beginning or from the point you stopped it. |
| Play from Position | F6 | F6 | Plays the song from the current cursor position |
| Record | F7 | Records Parameter changes to patterns. | |
| Stop | F8 | F8 | Stops song or loop. |
| Loop | Enables song looping. | ||
| Toggle Dialogs | F11 | Show/Hide all machine property windows. (What about analyzers). | |
| Free Wave | F12 | not needed | Frees the Audio device for other apps, instantly muting all audio in Buzz (Panic!) |
| Context Menu | Menu | Open the context menu of the focused ui element. |
- the usage of the Fx keys is quite a mess
- I would rather use F2-F6 for the tabs and F7,F9 for Play/Stop/Record
- F10 is the menu activator for gtk
- can we use the keys on a multimedia keyboard (keybindings in gnome are saved in gconf under e.g. /apps/gnome_settings_daemon/keybindings/play)?
Machine View
no special shortcuts.
Pattern View
| navigation | |||
|---|---|---|---|
| command | shortcut buzz | shortcut buzztard | description |
| Move Cursor | Arrows | Arrows | Moves the cursor one position. |
| Next Group | TAB | TAB | Moves the cursor to the next group (wire, global, voices). |
| Previous Group | SHIFT + TAB | SHIFT + TAB | Moves the cursor to the previous group (wire, global, voices). |
| Move Page | PAGE UP/DOWN | PAGE UP/DOWN | Moves 16 rows up or down. |
| Jump Cursor Up | HOME | HOME (first row) | Moves to first field, then track, then row. |
| Jump Cursor Down | END | END (last row) | Moves to last field, then track, then row. |
| Select Area | SHIFT + Arrows | SHIFT + Arrows | Sets selection. |
| Begin Selection | CTRL+B | CTRL+B | 1. Sets the beginning of a selection, 2. Changes selection mode (on pressing more than once) |
| End Selection | CTRL+E | CTRL+E | 1. Sets the end of a selection, 2. Changes the selection mode (on pressing more than once) |
| Select Column | CTRL+L | Select only the column the cursor is in | |
| Select Group | CTRL+K | Select only the parameter-group the cursor is in | |
| Select ALL | CTRL+A | Select the whole pattern | |
| Un-select | CTRL+U | CTRL+U | Deselects. |
| Stepping | CTRL+1...0 | CTRL+1...9 (0=10? or 0='cursor right'?) | How many line to go down when editing. |
| editing | |||
| command | shortcut buzz | shortcut buzztard | description |
| Play Notes | Z S X D C V G B H N J M | Z S X D C V G B H N J M | Plays keys from the base octave. |
| Play Notes | Q 2 W 3 E R 5 T 6 Y 7 U | Q 2 W 3 E R 5 T 6 Y 7 U | Plays keys from the one octave above the base octave. |
| Play Notes | I 9 O 0 P | I 9 O 0 P | Plays keys from the two octaves above the base octave. |
| Clear Value | . (Period) | . (Period) | Clears the field under the cursor. |
| Delete | DELETE | Deletes the row under the cursor for the current column. | |
| Insert | INSERT | Inserts an empty row at the cursor in the current column. | |
| Delete Group Row | DELETE | SHIFT+DELETE | Deletes the row under the cursor for current group. |
| Insert Group Row | INSERT | SHIFT+INSERT | Inserts an empty row at the cursor in currrent group. |
| Delete Full Row | CTRL+SHIFT+DELETE | Deletes the row under the cursor for all columns. | |
| Insert Full Row | CTRL+SHIFT+INSERT | Inserts an empty row at the cursor in all columns. | |
| SHIFT values | SHIFT +/- (Keypad) | Moves all selected values up or down a single value or semitone. (Numlock must be turned off) | |
| Flip | CTRL+F | Turns the values in selection upside-down. | |
| Interpolate | CTRL+I | CTRL+I | Interpolates selected values. |
| Randomize | CTRL+R | CTRL+R | Randomizes values in selection or in field under cursor. |
| Cut | CTRL+X | Cuts current selection to buffer. | |
| Copy | CTRL+C | Copies current selection to buffer. | |
| Paste | CTRL+V | Pastes at current cursor position. (Overwrites existing values) | |
| actions | |||
| command | shortcut buzz | shortcut buzztard | description |
| Sequence Editor | ENTER | RETURN | Switches to Sequence Editor. |
| New Pattern | CTRL+RETURN | CTRL+RETURN | Creates a new pattern. |
| Copy of pattern | CTRL+SHIFT+RETURN | CTRL+SHIFT+RETURN | Creates a copy (clone) of the current pattern. |
| Pattern Properties | CTRL+BACKSPACE | CTRL+BACKSPACE | Views and allows you to change (length, name) the current pattern properties. |
| Remove Pattern | CTRL+DELETE | CTRL+DELETE | Removes the current pattern. |
| Add Track | CTRL + (plus) | CTRL + (plus) | Adds a Track to the current pattern. |
| Delete Track | CTRL - (minus) | CTRL - (minus) | Deletes the last Track from the current pattern. |
| Select pattern | -,+ (Keypad) | -,+ (Keypad) | Scrolls through existing patterns. |
| Change Wave | <,> or ALT+W | <,> | Selects from Wavetable. |
| Raise/Lower Octave | *,/ (Keypad) | *,/ (Keypad) | Raises the current octave |
| Base Octave | ALT+B | Selects the Base octave. | |
| Select Machine | CTRL+Up/Down Arrow | CTRL+Up/Down Arrow | Scrolls through various machines |
| Solo Machine | CTRL+L | Solos current generators. | |
| Mute Machine | CTRL+M | Mutes current generators. | |
| Bypass Machine | Bypass current effect (should we reuse solo shortcut?). | ||
Sequence View
| navigation | |||
|---|---|---|---|
| command | shortcut buzz | shortcut buzztard | description |
| Move Cursor | Arrows | Arrows | Move cursor one space. |
| Select Area | SHIFT + Arrows | SHIFT + Arrows | Selects rows and columns. |
| Select Area | SHIFT + Left Click | Left Click + Drag | Selects rows and columns. |
| Move Page | PAGE UP/DOWN | PAGE UP/DOWN | Moves the cursor 16 bars/a screen page up or down. |
| Jump Cursor Up | HOME | Moves to first row. | |
| Jump Cursor Down | END | Moves to last row. | |
| Begin Range | CTRL+B | CTRL+B | Sets the beginning of loop |
| End Range | CTRL+E | CTRL+E | Sets the end of loop or song |
| Un-select | Arrows | Deselects. | |
| editing | |||
| command | shortcut buzz | shortcut buzztard | description |
| Clear | . (period) | . (period) | Clears field under cursor |
| Delete | DELETE | DELETE | Deletes row under cursor from the current column |
| Insert | INSERT | INSERT | Inserts an empty row in the current column. |
| Delete Full Row | CTRL+D | SHIFT+DELETE | Deletes a row from the entire sequence. |
| Insert Full Row | CTRL+I | SHIFT+INSERT | Inserts a row in the entire sequence. |
| Cut | CTRL+X | Cuts the current selection to the clipboard. | |
| Copy | CTRL+C | Copies the current selection to the clipboard. | |
| Paste | CTRL+V | Pastes at cursor (overwriting) | |
| actions | |||
| command | shortcut buzz | shortcut buzztard | description |
| Pattern Editor | ENTER | RETURN | Switches to current pattern in the Pattern Editor. |
| New Track | CTRL+RETURN | Creates new track/column | |
| Remove Track | CTRL+DELETE | CTRL+DELETE | Removes the current track. |
| Move Track | CTRL+Right/Left Arrow | CTRL+Right/Left Arrow | Moves the current column to the right/left. |
| Solo Machine | CTRL+L | CTRL-L | Solos the current generators. |
| Mute Machine | CTRL+M | Mutes current generators. | |
| Bypass Machine | Bypass current effect (should we reuse solo shortcut?). | ||
Wavetable View
no special shortcuts.
Information View
no special shortcuts.
Layouts
Other layouts
Customization
Ideally we would implement the keyboard shortcut pane in the settings and support shortcut-layouts as separate config files. We could ship configs provided by users. People can modify the shortcut configs in the UI and save them as their own variants.
In the main UI we need to get the actual key from the current key-map. This needs to be done so that it supports modifiers. We should pass the whole key event to a function to match it. The function would return the command (enum) if a match has been found.



