New Tool (3.4) command_palette

command_palette

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.

see the source on gitlab

download from direct link (this zip includes all my other tools as well)

consider donating :heart:

28 Likes

now we need LSP per genre :stuck_out_tongue:
Great work!

3 Likes

Thanks!

What is LSP? I assume you donā€™t refer to her.

3 Likes

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.

1 Like

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.

2 Likes

version 0.2 :recycle:

command_palette_loop

added a few more commands such as

  • N : set number of Note columns
  • F : set number of FX columns
  • V : set velocity
    ā€“
  • q : loop beats from position
  • Q : sequence loop from position with length

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.

The q command works pretty much the same as Q except for beats inside a pattern. However its range can get messed up when changing patterns or restarting the song, which is a bug with Renoise itself and will be fixed in the next update

6 Likes

Terrific, canā€™t wait to test this out. Digital Performer added this feature (called ā€œRun Commandā€)

1 Like

OMG Iā€™ve been hoping someone would make such a thing! thank you! Canā€™t wait to test.

2 Likes

Great tool thanks

1 Like

@NER @trueschool @static_noise

This thread woke up hah!

Glad you like the tool. Cheers!

1 Like

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

Yeah itā€™s a great ideaā€¦

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?

1 Like

Step length?

If you mean Edit Step it can do it already with ā€œeā€.

:sweat_smile:
right
thanks for helping to read

No worries, guess it should be higher on the list since it is more commonly needed than other stuff (and reading lists is boring).

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.

@tkna Thanks! It should already remember the last command you have used and open with that selected.

Or do you mean executing the last command with the last argument again? This should be fairly easy to add but in what case would it be useful?

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.

I imagine it might be useful to use 0 as the argument when the argument is omitted, etc.