This one is a little experiment for keyboard purists inspired by code editors. Navigate and configure a song using the keyboard. Go to a specific line, beat, set BPM, LPB or length by beats and more.
Navigate and configure a song using the keyboard.
Provides two key-bindings in Global / Tools
Open command palette
Repeat last command
usage
open the command palette
search for what you want by typing letters
change the selected command with up or down
type some number
press enter to apply and exit
delete your input with backspace
escape will cancel the command and close the popup
press left to recall previous commands
command types
number commands are the most common, they will show a # symbol in your top bar when you select them. These accept a single number that you can type in as soon as you have the command selected and it will be executed immeditately when the input is changed.
action commands either require no input or more complex input that can be set in a separate window. These wonāt do anything until you press enter. They have the sign >
string commands can for example rename things. These are noted with the = sign and they will open a separate text input window for you to provide the text string
Some commands open secondary palettes, these work the same way: just type or navigate until you have the match then hit enter. Some number commands will let you excecute them without input and they will open a search palette for you to pick something by text instead of providing an index.
For example if you run the ātā or āselect trackā command without an input number it will list all the tracks by name and will let you search and navigate it similarly to the main palette. The same thing works for instruments, samples or sections and even DSP devices across the whole song. If you name your things right this can help you a lot in navigating using the keyboard.
Very interesting idea you have going, it could be expanded and become massive. I often use command palettes when I donāt know shortcuts for features so thereās a lot that could be added to this tool.
From the top of my mind I think a useful addition would be a play sequence loop, I imagine typing P for play and then 3-5 to play from sequence 3 to 5.
True, most functions could be executed this way but it would need to work like a regular command palette which searches inside a list of commands, instead of having single letters hardwired to things. Guess that will be a version 2 or something.
Right now it is designed only to set single numeric values, so it isnāt ready for something more complex like your suggestion and with more commands we will also run out of letters pretty fast.
That being said I added a command Q which accepts a number for loop length and sets up the sequence loop by that, starting from where you are. So if you are on step 2, and type 3 it will loop [2, 3, 4]. Typing zero disables looping.
Chose Q because Iāll add something similar for block looping with lowercase q later and P might be good for going to a certain pattern if it exists in the sequence to complement setting the pattern of the current step with p.
The looping commands now work with negative numbers as well to be able to set up loops that end on where you are.
Example: if you are on sequence step 3 and say Q -2 it will loop [2, 3] while Q 2 will loop [3, 4].
Hope itās more useful now @Garf! I also started doing some changes to eventually support more complex commands and inputs like your suggestion for absolute loop setting.
Yeah. Especially for setting the pattern length and to select instruments. Itās a big time saver for me and leaves space for other key-bindings as well. Could you add a Step Length command as well? Thanks
There are a lot of native shortcuts for this already, try go to Preferences>Keys and search for EditStepā¦ Edit: Of course this negate the command palette but itās something you use all the time and therefore itās better to use a direct shortcut for it?
Thanks for developing and sharing. Very useful.
I felt it might be useful to have a key binding (micro macro key) to run the last executed command again.
If itās not too hard to implement, please consider it.
I was referring to the latter, where the command and arguments are memorized and then quickly executed.
In the current command system, the main use may be as a kind of bookmark!
After you have the focus or value on something, you can always go back to it if you look at something else or change the value. The idea is that you can quickly warp to the desired location or state.
It would be helpful to have an option to use hexadecimal numbers for the go to line argument.
Personally, I do not require a configuration UI, and it is fine to specify it directly in preferences.xml, for example.