AutoHotKey Repository for Macros in Musescore

• Jan 13, 2021 - 07:30

Hello all!

I have just published on my GitHub a function library to easily connect AutoHotKey and Musescore. This gives you the flexibility to add any palette item through a shortcut, as well as call more specific functions that speed up your workflow.

I would be remiss if I did not thank @MichLeon for his script ( (which I borrow heavily from) that inspired me to create this.

I also included the script (musescoreMain.ahk) that I use in case you do not want to write your own. It already it has shortcuts for every function in the library as well as every palette item.

My GitHub has a detailed installation guide as well as an explanation for every function. I plan on adding more in the future.

Check it out here:



Dear Noah,

In response on
Thank you for posting your webinar on
I found it very interesting and as you can imagine especially the part about AutoHotkey macros and 'Applying symbols from Palette'.
And thanks for posting your MscAHK Extensions on github. Very instructive!
Including the functionlist and ini files as you did in your scripts is certainly the most elegant way to organise them. A possible drawback for musicians mainly interested in improving their workflow: it demands more knowledge if you want to change something. For me an important reason to organise the script in a somewhat less elegant but easier to comprehend/change way.

About speed of execution and reading IF statements, I presume that the time difference is negligible.
See the post of Lexikos in about benchmarking trivial code.

In the palettelist.ini you have outcommented the shortcuts for parentheses and brackets around accidentals because the characters are there illegal.
For these cases I suggest the less elegant approach.
If (PaletteSymbol = "[]") ; glyph 087, Add brackets to accidental
Send x-8
If (PaletteSymbol = "()") ; glyph 088, Add parentheses to element
Send x-9


In reply to by MichLeon

Hi Michael,

Thank you for your kind words! I did not know that the performance benefit with INI files is only marginal in AHK, but it seems to work more reliably on my system. Either way, a benefit of INI is that you can add more palette items to the list without having to edit the file with IniWrite(); I'm currently working on a function that will automate this process so that your only interaction is renaming the palette item itself.

I also took a look at your Musescore AHK repository (I have not even got an chance to read through the full documentation yet!), and I am absolutely blown away! I cannot imagine how long that took you to create, and its functionality is incredible. Would you be interested in presenting it in an upcoming webinar? I'm sure lots would be interested in seeing a demonstration of it.


Do you still have an unanswered question? Please log in first to post your question.