Plugin Request: Mirror Inversion of Notes Around Center D4 for Opposite-Hand Practice (Piano)

• Nov 6, 2024 - 19:22

Hello MuseScore Community!

I’m looking for a plugin that could be a huge asset for pianists aiming to improve technical skill and hand coordination. The idea is to have a tool that flips any imported score around a specific line of symmetry, which would be D4 (middle D). Essentially, the notes would mirror as follows:

D4 stays as D4 (acts as the symmetry center)
C4 would become E4, B3 would turn into F4, and so on across the full range.

Purpose and Use Case:
This plugin would be especially useful for pianists looking to develop both hands through opposite-hand reinforcement. By flipping a difficult piece this way, the left hand could play what would normally be the right-hand part, and vice versa. Practicing these mirrored parts indirectly strengthens the other hand, as the mirrored part maintains the same technical challenges but applies them in reverse.

For a bit more context, here’s a Tonebase video on symmetrical inversion in piano: https://www.youtube.com/watch?v=LRi-u10zSkA&t=131s Additionally, here’s an inverted version of a Chopin étude to illustrate what the effect looks like in practice: https://www.youtube.com/watch?v=CzpvtXy9-pA

Desired Features:
Flip all notes around D4: Any note below D4 mirrors upward, and any note above D4 mirrors downward.
Maintain Rhythm and Dynamics: The plugin should retain the original rhythm, tempo markings, and dynamics as in the imported score, simply inverting the pitch.
Single Command Execution: Ideally, the plugin would perform this inversion with a single button or command for ease of use.

Why This Would Be Valuable
This tool could be an invaluable resource for pianists and educators, providing a unique way to work on technically challenging pieces by enabling “opposite-hand” practice. The mirrored scores could also serve as a new sight-reading tool, presenting familiar material in an unfamiliar layout to further develop coordination and mental flexibility.

Thank you for considering this request! Any guidance or insights would be greatly appreciated, as I’m not a programmer myself but am excited about the potential for a plugin like this to support piano practice in a unique way.

Best regards,
Davide


Comments

This sounds quite feasible since plugin code can modify pitch information. The process would only need to go through the score and process each pitch, leaving everything else alone - temp, rhythm etc. I don't know what happens to a note when pitch change would imply a move to the other clef; whether this would happen automatically or whether the plugin would need to take care of it.

I have too many plugins on the go right now but you may find another taker before I have some time.
Is it for MuseScore 3 or 4? (I only use MS3).

Update Pitch:
https://musescore.org/en/node/320673#s8

In reply to by yonah_ag

Thank you for the feedback! It’s great to hear that pitch modification is straightforward within the plugin framework. Both MuseScore 3 and 4 would work perfectly, so no worries there.

About handling pitch changes that cross clefs, ideally, the plugin would automatically shift notes between staves when needed, or at least adjust the clef to maintain readability

In reply to by yonah_ag

Hi!
I’ll attach a few measures of both Chopin’s Op. 10 No. 1 and Op. 10 No. 2 before and after the inversion.

Along with these measures, I’ll also include a chart showing the corresponding inverted piano keys, so you can see how the pitch changes with the symmetrical inversion around D4.

Attachment Size
inverte op 10 n 1.jpg 78.38 KB
inverteo op 10 n 2.jpg 20.34 KB
op 10 n 1.jpg 107.8 KB
op 10 n 2.jpg 29.72 KB
notes.jpg 69.96 KB

It seems very difficult to create a plugin that can imagine, in the context described here, a reassignment of the voices and 'what does the right hand do' and 'what the left hand does' (and then why the D4 and not the C3, or rather the most suitable note that particular piece?). One could imagine a sheet music for single-staff and single-voice piano, and this would reduce the problems, but you certainly don't want a score so un'pianistic' and so unprofessional; The management of the double staff seems to me to be very problematic, for the simple reason (apart from the programming difficulties) that a plugin cannot make decisions that only a human being is able to determine.
The important point, however, seems to me to be another: does the existing piano teaching literature really not have pieces that allow the development of the left hand? Are you sure? Since from a musical point of view the result obtained is senseless, is there any need to 'massacre' Chopin for this purpose?

In reply to by ILPEPITO

My interest in this is purely from a programming standpoint and meeting the specification requirements, (if practicable), of the OP. I have little interest in whether the results have a wide applicability or whether the plugin would only be of use to the OP.

For me, it's a learning opportunity and a recreational rest from my day job. I don't yet know what a double staff looks like in MuseScore's object model and this intrigues me. It's an interesting challenge and, if I can assist a fellow MuseScorer then that's a bonus.

On a technical point, I have no intention of reassigning voices whatsoever. Why do you suggest that would be necessary? (You may save me from going down a dead end here.)

In reply to by yonah_ag

I understand your intentions and i have nothing against it, everyone can have fun (and educate themselves) as they see fit. Attached i enclose a file with the first 3 problems that came to mind (two simple, one complicated), which i think is better than a thousand words. Here i will limit myself to adding this consideration: it is ambiguous to speak, for example, of D4, without specifying which is the middle C (C3? C4? C5?).
In the European tradition (the so-called cradle of civilization) the middle C is C3; in most notation software (including Musescore) it is C4. For guitarists, the confusion is greater because guitar sheet music is written an octave higher than the actual sounds. It's just a matter of understanding each other. Either way, have fun.

Attachment Size
Piano_examples.mscz 18.24 KB

In reply to by ILPEPITO

Thank you for your thoughts on the project.
The core idea behind this technique is rooted in modern day Pianos' keyboard symmetries. D4 was chosen specifically because it is closest to the center of the keyboard.
I’m aware that this method might seem unusual to non-pianists, however this technique is used everyday by thousands (often by hear) in order to bring consciousness to minimal unnecessary movements the original hand might have unconsciously learned during the reading process (therefore being slowed down by)

In reply to by .ash86

I am not the requester, and I am not interested in developing the plugin in question, however your proposal is interesting: one could think of applying it to the two staves of a piano score separately, then manually creating the final score. It wouldn't be the optimal solution but it certainly could work: I just have a question, for the benefit of those interested, how does it work with 2 or more voices?

In reply to by .ash86

Well, it seems to me that your great plugin is just what you need to 'vermutog'. The only manual operation should be the exchange between right and left hand, and probably some adjustments here and there (or maybe he does that too... as well as making coffee!). Very beautiful also graphically, definitely professional.

In reply to by .ash86

In your case, it would be a great thing if it produced beer, according to what I read... yesterday in my haste I think i missed a detail: your plugin does not directly process polyphony but uses Musescore's 'selection filter' window to process one voice at a time. This means only a little more manual work, in the case of polyphonic scores. I imagine instead that there are no problems with two or more simultaneous notes in the same voice.

In reply to by .ash86

Great, evidently i didn't understand the meaning of your answer, even if rereading it now it wasn't as clear as it is now. One last curiosity, then i won't bother you anymore: if you process two voices (let's say voice 1 with the high notes and voice 2 with the low notes, to simplify) it is evident that, at least in the case of this discussion (mirror inversion on a fixed note), whatever the note-pivot, voice 1 becomes the bass and voice 2 the high part. What does the plugin do, swap voices, or what else?

In reply to by ILPEPITO

Right! it calculates the inverse/mirror of each note as a function of the chosen pivot note. So higher notes will become lower notes and vice versa. If you need to flip the voices after that MU has an "exchange voices" option. if you only want to flip the stem direction without exchanging voices Mu also does that, i think the shortcut is v.

In reply to by .ash86

Well, i think we have clarified everything that can be used to 'vermutog'. To reverse the stems the shortcut is 'x'; 'v' is for making elements visible or invisible, but since you created this wonderful plugin i think i can forgive you... Thank you for taking the time to answer me.

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