Creating an Auto BPM setting in Synthesia (Piano Software)

I use Piano Software Synthesia for practicing Piano.

I've wanted a feature for it for a long time, so I was wondering recently maybe it's possible to create it through Keyboard Maestro.

This Screenshot will hopefully help give context of what I would like to do

The idea is this:

When it has reached the end of the piece of music.

It will Calculate the Percentage of Correctly Played Notes to the amount of Total Notes in the piece of music

And then if the Percentage is Higher than 95% then it will press the Plus Symbol to Raise the BPM (Speed that the music is played)

And if I don't Play 95% of the Notes Correctly the BPM is not changed it's stays the same

Just in case that didn't make sense, to put it in simple terms.

When I play the Piece of Music well. it will Increase the Speed at the end so when I play it again, it will be quicker (making it more difficult)

This looks doable with either OCR of the success percentage, or preferably AppleScript UI-Scripting to grab the static text in the tool bar.

That's Great News! i'm glad that it might actually be possible.

the only problem is i don't have any experience with OCR or Apple Script.

Is it possible for you to help me, or point me in the right direction to be able to do it

Many Thanks!

AppleScript is out – Synthesia sports a non-standard UI...

Here's a place to start:

Thank You! @ccstone for pointing me in the right direction.

I appreciate it.

I have read those posts you shared, and I'm going to start to create a macro.

One thing which I don't understand is how can I screen capture when the song reaches the end?

Each song obviously has different lengths of time, so how could I tell Keyboard Maestro that the end of the song has been reached?

1 Like

I have a working Macro.

When you play 100% of the notes correctly it will speed up the tempo which is great.


My problem with it is I don't know what trigger to use.

I want to trigger the macro when it reaches the end of the song, but I don't know how to do that.

Here is the macro:

Macro Image

1 Like

From looking at another post i found that you can trigger midi using a range of notes.

This works for this macro.

So this macro is complete, it could probably be improved but it does the job.

Here is the Trigger i used for it

1 Like