Plugin Request: Mirror Inversion of Notes Around Center D4 for Opposite-Hand Practice (Piano)
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 This sounds quite feasible… 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 Thank you for the feedback!… by vermutog
I don't play piano, (only guitar), but if you care to post a few measures of before-and-after plugin scenario then I can do a few tests to see how well it might work.
In reply to I don't play piano, (only… 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.
In reply to Hi! I’ll attach a few… by vermutog
It would help me enormously if these were .mscz files. I can enter guitar tab quickly but I am really slow with standard notation.
In reply to It would help me enormously… by yonah_ag
I’m using MuseScore 4, so I hope the .mscz file will work
In reply to I’m using MuseScore 4, so I… by vermutog
MS3.7 can open MS4 files.
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 It seems very difficult 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 My interest in this is… 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.
In reply to It seems very difficult 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)
Check out "pitch and rhythm transformer" plugin
https://musescore.org/en/project/pitch-and-rhythm-transformer
In reply to Check out "pitch and rhythm… 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 I am not the requester, and… by ILPEPITO
Works with voices and treats each voices seperately. THe plugin also respects the selection filter i.e. only applies transformation for the selected voices.
In reply to Works with voices and treats… 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 Well, it seems to me that… by ILPEPITO
haha making coffee would be a cool upgrade :P
In reply to haha making coffee would be… 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 In your case, it would be a… by ILPEPITO
What i meant was that it does processes all voices. And in case you have multiple voices and need to process a single voice, say voice 2, you could unselect voice 1 from mu filter and the plugin wont process it.
Ah, Beer, coffee, all good haha
In reply to What i meant was that it… 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 Great, evidently i didn't… 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 Right! it calculates the… 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.
In reply to Well, i think we have… by ILPEPITO
Anytime, man ;)
In reply to Check out "pitch and rhythm… by .ash86
@.ash86
Many thanks. That's really helpful.
A thought: are you interested in adding vermutog's requirements as an option in your plugin?
In reply to Many thanks. That's really… by yonah_ag
Cheers man!
Unless I misunderstood something, vermutog was asking to flip (invert) a passage across a specific pivot note. The plugin does that already.
In reply to Cheers man! Unless I… by .ash86
Fantastic! I hadn't realised exactly what inversion mode was doing.
In reply to Cheers man! Unless I… by .ash86
Thank you so much!
It's exactly what I was looking for! This will save me countless hours
In reply to Thank you so much! It's… by vermutog
@verutog:
Just in case you haven't seen it there is a feedback page for .ash86's plugin with some interesting discussions on it:
https://musescore.org/en/node/355104
So nice that this plugin was already made and waiting for you. I'll have a look at it to learn some more plugin techniques.