AutoHotKey Repository for Macros in Musescore
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 (https://musescore.org/en/node/303798) (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: https://github.com/nuomegaalpha/musescoreAHKExtensions
Cheers,
Noah
Comments
Dear Noah,
In response on https://musescore.org/en/node/315380:
Thank you for posting your webinar on https://youtu.be/-pf1B7P4IBw
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 https://www.autohotkey.com/boards/viewtopic.php?t=63452 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
Michael
In reply to Dear Noah, In response on… 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.
-Noah
In reply to Hi Michael, Thank you for… by flavius.vitellius
Hi Noah,
Sorry for the delay in answering your request to present the AutoHotkey macros in a webinar. Triggered by feature requests on the forum my attention was more directed on enriching the macro collection to include List (Re) selections and the automation of the Mixer. I have published these macros today.
In the meantime I have also experimented with OBS Studio. I found that my first generation video card is not up to the (multi) tasks in my 2014 computer. Also AutoHotkey reaction times seem to become unpredictable and the focus on a MuseScore window frequently gets interrupted.
I'll experiment a bit further. Maybe it's possible to make an instructive video showing the biggest timesavers.
But probably it makes more sense to keep an eye on the forums. To make Windows users aware that for many of their urgent requests the answers already exist if they are willing to invest some time in the DIY items of the relevant macros. For that reason a clear documentation of the macros is the real important thing. But I realise the attractive value of videos as appetizer.