repeated transpositions - plugin?

• Apr 10, 2022 - 17:23

I going through a piano score with the idea of adapting it for 2 guitars; this score is full of changes between bass and treble clefs in both parts (presumably because it's an imported midi file?).
The bass clef was tedious but easy enough to change to the usual guitar clef (treble 8va bassa) since the range is close enough.
The treble clef will require transposition to get the parts into a more appropriate range (1 octave down in first approach). That's going to be VERY tedious with the current interface; way too many clicks.

Is it possible to write a qml plugin that does the following (1-3 or 2-3 if 1 can only be done by hand, one by one):
1. select all segments that use the treble clef
2. transpose them down by an octave
3. change the clef to "guitar clef" (simply removing the clef would have the same effect)

I tried to use the script recorder but that feature seems to be score dependent (and mis-reference the file, in fact) plus it simply calls up the transpose dialog, which isn't good enough.

PS: here's a thought: it'd probably help a lot if the transpose dialog reopened with its previously used settings rather than the pointless default.


Yes, you could write a plugin that does this.

Alternative approach (since your octave-wrapping is pretty much pitch-dependent):

  1. Right-click a clef and use Select all similar elements in staff to select all clef changes in one go
  2. Delete them
  3. Right-click within the staff (not on an element within it) and choose "Split staff" from the options
  4. Choose your desired octave wrap point
  5. Select everything that remained on the top staff (Click first, Ctrl/Cmd+Shift+End)
  6. Transpose them down an octave (Ctrl/Cmd+down arrow)
  7. Select both staves
  8. Tools > Implode
  9. Select top staff only
  10. Tools > Implode
  11. Edit > Instruments and remove the now superfluous 2nd staff

Apply the guitar clef to the start of the staff if still required.

In reply to by jeetee

Of course this would all not be required if there were an option to delete/change a clef while keeping the notes on the same ledger lines (= with transposition) ;)

Was it clear from my OP that the clef changes occur in both parts of the score? From what I've seen all notes currently noted with a treble clef are NOT higher than the ones noted with a guitar clef, so splitting staves on pitch is going to be tricky.
FWIW, the "let's just replace the treble clef by guitar clef and make those segments sound an octave lower" might not be optimal either in the end...

In reply to by rjvbertin

I guess I'm not entirely following along then. If the score is the result of importing a midi file, then the note pitch will be identical to what is in the midi, regardless of which clef MuseScore happens to choose when importing it.
So all that should be required then is to indeed just remove the clefs.

Or if you've not modified a lot yet, re-import it but this time don't allow clef changes during the import..

In reply to by jeetee

I see I must have used a confusing term - adapting instead of arranging. Keeping everything within tonal range isn't my only concern.

Does the manual have all the required information to figure out how to write a plugin that does what I want, or are there other/better resources?

In reply to by rjvbertin

Plugin creation has little documentation, outside of the API documentation there are only other plugins to inspect.

I don't think I'm fully along with the intended workflow and/or the expectancy here. Your request is to octave shift the notes for which MuseScore chose a treble clef during MIDI import (again, this clef is not information from the MIDI itself, it is just a guess by the importer).
But for some reason, you're not looking for pitch-wrapping of the entire staff, but just for those few notes/sections where MuseScore guessed to use a certain clef?

To me it then seems that if you performed those changes, you'd likely end up with some notes shifted too low (in relative comparison now) in those cases where MuseScore guessed differently from you.

I think I'm still failing to see how such a plugin would gain you anything over the staff-split and pitch-wrap method.

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