Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to transpose MIDI signal up or down #19148

Open
Reloup38 opened this issue Aug 23, 2023 · 5 comments
Open

Ability to transpose MIDI signal up or down #19148

Reloup38 opened this issue Aug 23, 2023 · 5 comments
Labels
feature request Used to suggest improvements or new capabilities MIDI Issues related to MIDI input/export, or MIDI devices

Comments

@Reloup38
Copy link

Your idea

There would be a way to transpose the MIDI signal from a part up or down without altering the notation. For exemple, add a -1 transposition, play MIDI note 64, but the instrument receive the instruction to play the note 63.

Problem to be solved

This would allow for more control over midi playback, like when using a soundfont or VST at A415 you might want to transpose MIDI instead of pitch shifting.

I also allows you to fake other instruments using the "transpose then pitch shift back" method, used to fake instruments of weird transposition, and fake unison playing without messing up the notation part.

Prior art

This is a feature present in many DAWs, with very simple implementation.

Additional context

No response

@muse-bot muse-bot added the feature request Used to suggest improvements or new capabilities label Aug 23, 2023
@shoogle
Copy link
Contributor

shoogle commented Aug 23, 2023

There is actually a way to do this already, but it's quite labour intensive and risks changing the enharmonic spelling of some notes.

Workaround:

Step 1: Transpose the notes

  1. Select all notes for the instrument you want to transpose.
    • E.g. select its first measure, then shift+click its final measure.
    • Or select its first measure, then press Ctrl+Shift+End (macOS: Cmd+Shift+Fn+Right).
  2. Go to Tools > Transpose.
  3. Choose "Transpose chromatically" and "By interval".
  4. Enter your desired interval (e.g. "Minor second") and direction ("Up" or "Down").
  5. Make sure that "Transpose key signatures" is selected.
  6. Press OK.

This changed how the notes look as well as how they sound. In the next step we will make the notes look like they did before, while keeping their new sound.

Step 2: Transpose the instrument

  1. Right-click on an empty region of the staff you want to transpose.
    • Empty region means a region that is not a note or a rest. You need to right click on the actual staff lines.
  2. Go to Staff/Part properties.
  3. Look next to "Transposition". What are the interval and direction currently displayed there?
    • If it currently says "Perfect unison" up or down, simply change it to match the interval and direction used in step 1.
    • If it says anything else, you must add this interval to the interval you used in step 1, taking direction into account. The result of this sum gives you the new interval to use in this dialog.
      • E.g. major 3rd up + perfect 5th down = minor 3rd down.
      • Adding intervals is tricky, but you can use trial and error until the key signature and most of the notes go back to what they were prior to step 1. There may be some changes in enharmonic spelling (e.g. C-natural becomes B-sharp, or vice versa). Pick the interval that gives the fewest of these changes.

If you got step 2 correct then the key signature and most of the notes will look like they did at the very beginning, but sound like they did after step 1.

@shoogle
Copy link
Contributor

shoogle commented Aug 23, 2023

A proper (non-workaround) solution might be to ask this when the Staff/Part properties dialog is closed after adjusting the transposition setting:

Transposition changed
How should the new setting affect notes already written in the score?
◉ Transpose the notation (keep the current sound)
◎ Transpose the sound (keep the current notation)

If the user chooses to transpose the sound then the current notation would be preserved, including enharmonic spelling.

FWIW, this is another case where the expected outcome depends on whether you are composing a new piece or transcribing something that has already been written.

@Reloup38
Copy link
Author

@shoogle while the workaround works, It has the problem of forcing you to work in written pitch. I personnally tend to compose in concert pitch then transpose to written when i have to give a part to a performer for exemple.

The old "capo setting" in musescore 3 did exactly what i would need, except you could only transpose up because you can't put a capo on fret -7, it would transpose MIDI without altering notation wether concert or written, and display the same note names i before. While i feel like this is bad for a capo feature (as i don't think you read a G on a guitar with a capo on the 3rd fret as an E...), it's exactly what would be needed for the applications i described.

@rgreen5
Copy link

rgreen5 commented Aug 24, 2023

The old "capo setting" in musescore 3 did exactly what i would need, …

There is a capo feature in MS4 as well. See also, #16838.

@Reloup38
Copy link
Author

The old "capo setting" in musescore 3 did exactly what i would need, …

There is a capo feature in MS4 as well. See also, #16838.

Ok, so the capo setting does work for transposing up instruments, however it messes with the ranges of the instruments, which isn't a really big deal, and it's actually great for actual capo settings, but not great when you just want dumb transposition

@bkunda bkunda added the MIDI Issues related to MIDI input/export, or MIDI devices label Aug 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Used to suggest improvements or new capabilities MIDI Issues related to MIDI input/export, or MIDI devices
Projects
None yet
Development

No branches or pull requests

5 participants