Developing a plugin to train playing the piano skills

• Nov 22, 2023 - 19:14

Hello everybody,

I found a nice project to train playing the piano skills here:
https://www.instructables.com/MuseScoreArduinoLEDsMIDI-Piano-Tutor/
There, the source code of musescore was modified and the complete musescore application needs to be compiled.
I don't like that solution, because it is not possible to update to a newer version of musescore easily.

Is it possible to develop a musescore 4 plugin with the following requirements:
Open a piano music sheet (e. g. as midi file), additionally show the virtual piano keyboard and then control the "playing" (with volume turned of) over a MIDI device?

Then I could connect the PC with a MIDI keyboard / e-piano and when playing the shown notes and keys correctly, musescore "scolls" to ne next notes, which need to be played.
It's hard to explan, but maybe you get an idea of what I'd like to have. Basically it is the "play button functionality", but controlled with a MIDI device when playing the shown notes.

Is it possible with the musescore 4 plugin API to implement such functionality?
If yes, can you give me some information how to get started (API documentation or some required method calls)?

Best regards,
Matthias


Comments

In reply to by AnotherLonelyM…

For the first part, at least MuseScore 3.6 should have that midi functionality

Receiving midi input and then moving the page is not something I'm aware of plugins being able to do, I don't think plugins can do that.

You said there's already a MuseScore derivation that can do that...I would say use it. You can have more than one musescore version installed on the computer, but they won't work if you run them at the same time

In reply to by AnotherLonelyM…

A lot of new features come with changes in the code of musescore, which plugins can't replicate. Plugins can pretty much only automate changes to the score, but they can't change the user interaction. Plugins in this case work differently than they may for other programs - here they use qml, a javascript-based language that is used to read and write data to the score. You can have a look at the currently available plugins if you want to get a better idea what plugins can do.

But basically it's not possible to make plugins to replicate new musescore features in older versions (I think that's what you mean).

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