musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.36k stars 2.67k forks source link

An option to disable "Play notes when editing" if input comes from MIDI keyboard #17012

Open jmickelin opened 1 year ago

jmickelin commented 1 year ago

Your idea

Add an option akin to disabling the "Play notes when editing" option, but only for note input from MIDI keyboards.

Problem to be solved

I currently have my MIDI controller hooked up to both Musescore and to JACK (with a software synthesizer in the other end) in order to get better response when playing on the keyboard (e.g. sustaining notes for as long as I press the keys, and velocity control). This means that I do not want Musescore to play the notes when I use the keyboard for note input, or else I get two sounds coming out, with some delay in between. There is an option to disable note playback when editing, but this also disables the note playback when you manipulate the note in the UI (e.g. move it up and down with the arrow keys). It's also not ideal to have to go into the settings and toggle the option whenever I find myself in a situation without my MIDI keyboard at hand, and still wanting to do some editing.

It seems to me that the single all-or-nothing option for note playback is too broad. I suggest also having an option to disable note playback for only the input coming from the MIDI keyboard.

Prior art

No response

Additional context

Side note: Back in Musescore 3, I could hook up JACK to the MIDI output from Musescore itself instead of the keyboard, and combine that with disabling note playback in Musescore to get the behavior I want. Due to the removal of JACK support in version 4, I can't rely on the MIDI output in Musescore anymore, since that tries to send the output to my MIDI keyboard itself (which has no synthesizer, being just a controller).

paullovessearch commented 1 year ago

+1

Also make playing the keyboard more natural & responsive overall:

Decrease the delay between pressing the keyboard key and playing the note, pay attention to the sustain pedal, only do the note-up when the key is released, etc.

RyotaUshio commented 3 months ago

This feature would be massively helpful. I want notes to be played almost always except for when inputting them via my MIDI keyboard because I keep a separate DAW open for playing a software instrument via my keyboard.

JohnodonCode commented 2 months ago

Hey, I'd like to give this one a go for my first contribution if possible!

wizofaus commented 2 months ago

Why does it need to be an option at all? You can already turn off MIDI input easily from the playback toolbar... What's the main reason to turn off "play notes while editing" anyway?

jmickelin commented 2 months ago

Why does it need to be an option at all? You can already turn off MIDI input easily from the playback toolbar... What's the main reason to turn off "play notes while editing" anyway?

I might be misunderstanding what you mean, but surely that would prevent note input from the MIDI keyboard? It's the fact that it's coupled to the playback that is the problem. The developers have stated that live MIDI playback is out of scope for Musescore, so the the MIDI playback will likely never support note lengths or velocities (this is wrong, see below). Currently the MIDI support is very bare-bones, and missing support for note lengths and velocities. This makes it frustrating and unintuitive to pick out and type in melodies using a MIDI keyboard.

But without a way to turn off note playback, any attempt to route the MIDI input to a more suitable synthesizer results in both programs playing it. With a significant delay in current versions of Musescore because, again, zero latency isn't really the point of this project (also wrong, since latency is being worked on).

At the same time, playback from Musescore is desired when you hit "play" on your score, so you can't mute the entire program.

You could try to do various workarounds where you mute one or the other temporarily, or equivalently, toggle the MIDI input while you try something out in another program. But that adds who knows how many extra steps compared to the normal workflow where you can play things on the Piano toolbar outside of Note Input mode, and then quickly start entering notes by hitting a single key (N).

RomanPudashkin commented 2 months ago

The developers have stated that live MIDI playback is out of scope for Musescore

Please don't spread misinformation here. We have not stated this anywhere. We know that the MIDI input has some problems and they are on our radar. In fact, in 4.4 we've made some significant improvements to the MIDI input to reduce latency. So it's not "out of scope" for MuseScore

jmickelin commented 2 months ago

The developers have stated that live MIDI playback is out of scope for Musescore

Please don't spread misinformation here. We have not stated this anywhere. We know that the MIDI input has some problems and they are on our radar. In fact, in 4.4 we've made some significant improvements to the MIDI input to reduce latency. So it's not "out of scope" for MuseScore

Glad to hear that! I guess I must have misremembered (or the posts I was thinking of weren't made by a developer). It wasn't my intention to spread misinformation. I'll edit my previous post to retract it.

wizofaus commented 2 months ago

My bad, didn't read the original issue. This is for a set up where your midi keyboard is producing its own sounds, therefore you don't want midi keyboard input to trigger MuseScore playback, but you do want it for computer keyboard/mouse input/editing. Makes sense in that case.