How do I properly transpose a score?

• Aug 19, 2021 - 21:16

In the attached file, I transposed the two parts up an octave and a fifth, and changed the instruments from cello to violin, but during playback it sounds at the original pitches.

The way I did it was by double-clicking the instrument name which brought up the Staff/Part Properties dialog. There must be a different way to do the transposition and instrument change so the playback is at the proper pitch (and no notes are red).

Attachment Size
2-I_as_well+19.mscz 27.68 KB


Transposition: use the menu option Tools > Transpose...
You can read up about transposition in the Handbook:

To change an instrument, you do need the Stave/Part Properties popup window. And if the new instrument is a transposing instrument, MuseScore will handle the required transposition and new key signature.
[EDIT] I think what you have done is to introduce transposition rules to make a cello play like a violin. That's not how it works: you need to actually change the instrument. Neither the cello nor the violin is a transposing instrument, so you should simply change the instrument. That will leave the notes at their original pitch, and you can "Select All" then move all the notes up two octaves, and handle the remaining fifth with the Tools > Transpose menu.

Change instrument.png

Attachment Size
Change instrument.png 43.38 KB

In reply to by DanielR

Thank you! I actually used both. I will begin again and see if changing the instrument there, and using the transpose tool does the trick. BTW, off topic a bit, but the layout in the 3rd measure looks terrible; if you load the file I uploaded you will see what I mean. I also have no idea how to reformat the score so the notes "lay" better.

In reply to by tpgettys

I took your MIDI file and used "Change Instrument" to make both staves Violins instead of Cellos. That's the Step 1 score attached. The notes remain at the original pitch

Then I moved all the notes up two octaves (Select All, Ctrl+UpArrow twice). That's the Step 2 score attached. Almost all the notes are now within the playable range for a violin (but see bar 29). If you want to transpose the piece any higher, you can do that with Tools > Transpose... on the Step 2 score, but the unplayable notes will be many.

PS. I use SharpEye as well, and I never export in MIDI format. The MusicXML option is much better as a transfer format. You just have to remember to change the *.xml suffix to *.musicxml after exporting: then MuseScore will open the file without problems.

In reply to by DanielR

Thank you again Daniel. I was able to achieve the desired results following your directions.

For my purposes MIDI is the desired format. Of course I would XML if layout was my goal. Since you never use MIDI it is a moot point, but you may still wish to know that Musescore does not import MIDI files correctly if the music is modal. All programs that generate MIDI files that I have used (including SharpEye) include a key signature event. There is no reason to do that except to assist a music notation program, yet Musescore ignores it, and so gets the key signature wrong for a lot of the music I play.

In reply to by Marc Sabatella

Every MIDI file created by commercial software includes a key signature event (entirely and exclusively to assist music notation software), but MuseScore does not use it. Moreover, NO commercial software provides a key signature event on each track. It is provided once, on the global track, which also includes the other global timing information and such (which MuseScore does use). Go figure.

In reply to by tpgettys

Again, MuseScore does use key signature events when present in the tracks, and you can verify this by exporting from MuseScore and then importing the result. It's simply not true that "No commercial software" does this - although apparently, the specific program you personally happen to be using doesn't.

My understanding is that the MIDI standard allows for but does not require the convention of reserving one track for global events, and that conforming programs - if they do wish to use the global track - should also place the events in the individual tracks. by doing so, it provides better interoperability with programs that are not using that unofficial convention, and it also acknowledges the possibility of different key signatures on different tracks, etc, which again is a thing in the real world.

In reply to by Marc Sabatella

Well, there may well be programs that I haven't tried, but I can say with certainty that Finale, Sibelius, Scorewriter, Sonar, Cakewalk, Sharpeye and Photoscore all honor and use the de-facto industry convention of specifying the key signature using a single event.

As far as I have been able to determine, MuseScore is unique in getting the key signature wrong for a large swatch of music. I am deeply disappointed that this is so. All the program's I mentioned that import MIDI files get the key signature correct.

In reply to by Jojo-Schmitz

Thank you for that Jojo. I was able to change the key signature on on track. I exported the score as a MIDI file and imported it into Dorico (one of the most recent, high-end notation programs) and it presented the score using just the first key signature event it encountered. I am not going to repeat the experiment with Finale or Sibelius, as I expect the same behavior. Multiple key signature events at the track level in MIDI files appear to not be part of the shared conventions.

In reply to by tpgettys

That's not what I was talking about. You said - and I quote - "NO commercial software provides a key signature event on each track". I called you on that, but you still haven't shown any evidence of this. What you are showing with your example involving Finale et al is that if you have a MIDI file that lacks these events, those other programs can still recover from that by applying the conductor track key signature to all tracks. Fine, but that in no way addresses the question of whether any commercial MIDI editors do in fact provide the ability to include key signature events on all tracks.

In reply to by Marc Sabatella

That is a non-issue, actually. The central problem is that Musescore is unique in getting the key signature wrong for a large swath of music. It is sad because MIDI files tell you what the key is; simply use the information provided.

FWIW, I did export a MIDI file from Musescore of a piece with different key signatures on two tracks. When I used Dorico to import it, only the first key signature was used. Since it doesn't understand multiple key signatures when importing, it is likely it also doesn't export them. But again, it is a non-issue; what matters is that Musescore unnecessarily gets the key signature wrong in many cases.

In reply to by tpgettys

Indeed, would be nice if someone who is affected by this issue and understands the MIDi file structure would volunteer to work on this. So far that just hasn't happened, though. MuseScore is open source, so anyone who feels this is an important issue is welcome to help!

Meanwhile, while there might be a "large swath" of music that for whatever reason does not choose to include the key signatures on each track, luckily there is also large swath that does, and those files will import as expected. And any number of MIDI editing programs that could be used to "fix" the ones that lack the information, just providing a workaround. Or, of course, simply add the desired key signature in MuseScore after import - easy enough for music that doesn't change keys.

In reply to by Marc Sabatella

Marc said:
"Meanwhile, while there might be a large swath of music that for whatever reason does not choose to include the key signatures on each track, luckily there is also large swath that does"

and yet he can not name one that does, simply because there are none. The industry-wide convention is to provide the key signature once, for all tracks. Ya, that is too bad, but it is still true. Musescore gets the key signature correct sometimes, not because the imported MIDI file contains key signature events for each track, but because Musescore ignores the only key signature event present; it just happens to guess correctly.

However, you are correct that it is easy enough to correct the error Musescore introduces. The problem is that you need to know the proper key signature in order to be able to correct it.

How about adding a popup that tells the user that the key signature in the file was X, and you can change it if you want? Seems like that would only be fair! (or Musescore could just honor the key signature in the file).

In reply to by tpgettys

No one denies it would be useful to use the conductor track as a fall back. But to say there are no examples of MIDi files actually following the original MIDI standard is not going to be hard to disprove. Should you really wish to continue to insist there is not one such example in all of recorded history, then I will be happy to provide an example to prove this assertion wrong. If it's just quibbling about percentages, then I have no claim to make about what the actual numbers might be, and am equally happy to let my original statement stand as correct for some definition of "large".

In reply to by Marc Sabatella

Marc, come on. As you have stated several times, the MIDI standard is mute about this point. It does not stipulate how to (or even require) use of key signature events. If you can come up with a single MIDI file created by some program other than Musescore that has key signature events on each track that would be great!

I have sincerely tried to find such an animal by examining many MIDI files from an assortment of sources and have not been able to. On the other side of the coin, I have created MIDI files using the big-name programs and they all contain a single key signature event in the "header" of the file. This has led me to conclude that this is a de facto industry-wide convention.

I also recently confirmed that MIDI files that actually do contain key signature events at the track level (created by Musescore, as that is the only way I know of to make such a thing) are not understood by Dorico (I still need to find someone to try reading it in Finale and Sibelius to see if they behave the same way).

In reply to by tpgettys

Exactly, because the standard doesn't say how this must be done, the smart thing to do is to export the key signature both ways, so all programs understand it, and to import correctly either way as well. This, I think, everyone should be able to agree on. And it may well be that very few programs actually meet this standard.

If you're looking for MIDI files that contain key signatures on all tracks, try ones from Reaper, which I gather is a pretty big name. They also provided controls over this from what I understand. Which is what I would expect from any program specializing in MIDI.

In reply to by tpgettys

I for one am still very interested in how those programs (for example Dorico) then exports a score that has a local key signature in it.
Do they move that into the conductor track (thus incorrectly applying it to all tracks)?
Or simply decide to ignore it completely; thus throwing away information whilst the standard allows for it to be retained?

In reply to by jeetee

OK, my friends have done the experiment I asked for us. In both cases, in Finale and Dorico, the source file had two different key signatures, but the MIDI file they exported, when read into Musescore, presented a single key signature in all tracks.

This is as was expected. Since they did not correctly import a MIDI file created with Musescore with different key signatures, it would be highly unlikely that they would export files they could not then correctly import.

Rightly or wrongly, there is an industry-wide convention that the key signature is provided in a "conductor track". I agree with Marc (and you) that we can all agree that it should be different, but this is the reality for MIDI files today.

And, the existing convention is not that hard to understand: "The key signature for all tracks is X. If that changes we will let you know." Simply initialize the key signature for all tracks to X, and if an overriding key signature event for track N is encountered later on, apply it.

In reply to by tpgettys

This doesn't yet answer the question of what is in the MIDI file, only on what the resulting import does with whatever is in the MIDI file.

> "Rightly or wrongly, there is an industry-wide convention that the key signature is provided in a "conductor track". I agree with Marc (and you) that we can all agree that it should be different, but this is the reality for MIDI files today."

There are two sides to this (which I think we indeed all agree on). My first stance is that what MuseScore does is in accordance with the MIDI standard (both MIDI1 and 2 afaik) so it doesn't need "fixing" in its export. Other programs need fixing in their import.

On the other hand, I also agree that upon import, MuseScore should default to using "conductor track" key signatures if, and only if no key signatures are found at the start of a given track. If a track has no key signature at its start, MuseScore should use the key signatures of the first track for it. Any subsequent key signatures encountered in a track then act as local overrides, just as you proposed. If the first track is also lacking a key signature, then MuseScore is free to guess.
> Would you mind creating a ticket in the issue tracker for just this subitem behavior during import?

And due to the widespread convention of a conductor track, I also think that MuseScore should allow optionally exporting a conductor track. When it does, my personal interpretation is that it should still also include them on each track as well.
Although I can see some merit into using a conductor track and erasing key signatures in other tracks I don't feel it is MuseScore's task to cleanup MIDI tracks for other programs that simply can't handle a 25yo standard.
Linking to the issue for allowing conductor tracks: #207346: MIDI export: the first track should not contain note events

In reply to by jeetee

Jeetee: "This doesn't yet answer the question of what is in the MIDI file, only on what the resulting import does with whatever is in the MIDI file."
Oh, sorry. I could provide you with the MIDI files exported by Dorico and FInale if you want to look at them at that level.

My concern is on the import side only, but yes, I agree that the Musescore export function does not need fixing. When there is a single key signature other programs seem able to correctly use it; they just don't properly see and use the multiple key signatures provided by Musescore when present.

Much of what else you talked about sound like implementation details. It seems like it could be as easy as "if the next MIDI event is a key signature event on the conductor track set the key signature for all tracks to it. Any key signature event on track>0 would simply set/overwrite the existing key signature for that track."

Oh, and regarding your request for me to create a ticket, I really do not know how to properly do that. I am hoping you are someone familiar with how to submit a ticket will do it.

To be clear: the tranposition option in staff/part properties is &not meant to actually change the pitch of the notes. It's there only to support instruments like clarinet (or trumpet, or even guitar, or bass) that need to be written at a different pitch than they sound. So that option controls how much higher (or, very rarely, lower) the music should be written in order to have the desired sound. Like clarinet needs to be written a whole step up, bass an octave up. Changing this option changes the display of the notation accordingly.

In your case, you wanted the actual pitch to change, not just how it was notated. So, instead of staff/part properties, you need Tools / Transpose.

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