[Script] A collection of scripts focused on improving SynthV's lack of hotkeys

There are many functions in SynthV Studio that can only be accomplished with a mouse. I’ve created a few scripts intended to offer basic functions that can be assigned a hotkey with a focus on reducing reliance on the mouse for repetitive tasks to improve workflow.

These are the scripts available:

  • Move selected notes left/right/up/down (ie with arrow keys)
  • Scroll the viewport to the current selection
  • Select previous note (many people dislike the default ctrl+tab, so this offers an alternative)
    • sadly this cannot be bound to shift+tab as many people have requested, since the default tab behavior still applies and moves the selection forward anyway
  • Select next note
    • this works the same as default tab but can be rebound, and if no notes are selected will select the first note after the current playhead position
  • Set phonemes for the selected note
    • there’s no way to simply set a note to be in “edit mode” without using a popup, and also no way to immediately focus the text box, so it’s not as simple as I would like it to be and you need to press tab twice to enter the text box without using the mouse
  • Set lyrics for the selected note (single note version of the default ctrl+L)
  • Preview selection
    • starts playback at the start of your selected notes and automatically stops at the end, handy for quickly previewing changes without having to manually move the playhead
  • Variations on the “Select Next/Previous” scripts that look for the next/previous note with the same lyric or phonemes as the currently selected note, as well as scripts to select all notes with the same lyric/phonemes as the currently selected one

Many of these scripts are customizable, with important variables placed at the top of the file and comments explaining how to adjust them.

Other scripts that I create which do not fit the “hotkey optimization” concept can be found in the root directory of the repository, but there are currently only a few of those. This would apply to more complex tasks that require a dialog popup and user input.

You can find these scripts in the following GitHub repository:

This direct link will allow you to download the entire repository as a zip file: https://github.com/claire-west/svstudio-scripts/zipball/main/

To only download a specific file, navigate to the desired script, right click “Raw”, and select “Save link as” to save it to your SynthV Studio scripts folder.

To locate the SynthV Studio scripts folder, Select Scripts > Open Scripts Folder from the top menus. As a reminder, scripts are only available in the Pro edition of SynthV Studio.

Keybinds can be assigned to each script via the Settings panel, and will be displayed in the Scripts menu once set:


Thank you! I’m a heavy keyboard shortcuts users, so having these basic options exposed for key-binding is a boon.
The “Set phonemes for the selected note” is very useful for my use case, no more fussing with the mouse!

1 Like

The note-moving scripts have made my workflow much easier! Dragging notes in SynthV has always been problematic.

Hi there,

Thank you very much for supplying these scripts - they are very helpful.

Would you know whether it would be possible to write a script that moves notes left/right based on the snap to grid value?

For example - I have the snap to grid value at 1/16th, and the selected notes only move that distance automatically?

I know I can go into the script and change it manually, but that would be a bit time-consumng, and I could probably move the notes with a mouse quicker.

Thank you again for the scripts.

There’s no function to get the current snap setting, but I did find a workaround that let me infer it. I’ve updated the Move Right/Left scripts to use the current snapping (if people want the old behavior they can easily toggle this off at the top of the file).

Individual script downloads: svstudio-scripts | claire-west

Latest release package (zip of all my scripts): Release Release 6 · claire-west/svstudio-scripts · GitHub


This is so cool - thank you!

Thanks Claire, would it be possible to modify the script further to actually “snap” to those positions and not move by the amount of the snap value even “off the grid”?

Absolutely perfect!

Thank you very much.

Dreamtonics should be employing you, the amount of work you do on here! :grinning:


I was hesitant to add this because if the user changes the grid this could easily override intentional timing changes - for example if a note is offset by a timing amount smaller than the current grid, and the user intends to move it forward by the grid snap amount, it would be undesirable to move the note by a different amount.

There is a built-in function to snap the notes to the grid under the “Modify” menu which can be assigned a hotkey, no scripts required. I’m somewhat in favor of not always snapping with these scripts since they are more flexible this way; the user can choose to move the notes, or move-and-snap the notes, by combining the scripts with the built-in snap function (and this way it’s capable of more than the default click-and-drag with the mouse, rather than matching the functionality exactly).

That said, it’s probably still good to have the scripts correct small timing inaccuracies, so I’ve made version 3 snap the final position to the grid, but only if it is within a certain distance of a grid marker (<25% of current grid snap setting by default). As usual this can be toggled off (or changed to always happen) using the variables at the top of the file.

1 Like

Thanks again. I still think that snapping the first (move left) or last (move right) note of the selection and move the rest (if any) according to this distance would make it complete. :wink:

Update: I realized that you mention 0.51 as SNAP_THRESHOLD in the script’s comments. This is close to what i meant, but it is like moving first and then snapping (red arrow). At least for me it would be better to always snap to the closest snap position first (green arrow).

Bildschirmfoto 2023-01-05 um 12.44.47