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.38k stars 2.68k forks source link

Dynamic Control #24940

Open Fourniture opened 2 months ago

Fourniture commented 2 months ago

Your idea

Adjust the playback of dynamics in the properties tab. Visualization: image

Problem to be solved

Musescore's playback system currently does not account for contextual dynamics. This feature would allow very precise playback according to the composer's intentions.

Prior art

Noteperformer solves this problem with AI.

Additional context

Volume refers to the degree of a dynamic (very p or very ff). Attack refers to whether a dynamic is approached sharply or swelled into.

Checklist

wizofaus commented 2 months ago

There's definitely a need to be able to specify a "written" dynamic that captures what make sense to tell a human performer that may be different from the instruction that needs to go to the sequencer/sampler in order to get sensible balance, as human players (esp. in an ensemble where there's a conductor instructing players to bring out or hold back for particular passages) automatically make adjustments as needed in way that the current technology for computerised playback can't do. My preference would be some sort of slider or "adjustment factor" that basically means "x% of the level that this dynamic marking normally implies" - so you might mark something pp but in order to ensure it can be clearly heard against whatever else is going on, mark it as, say, "125% of the normal pp playback level". Or if a f note in a particular instrument seems to be drowning out everything else, mark it as "75% of normal f level". I'm not sure I quite see how the "hard/soft" attack thing should apply to a dynamic marking though, though I'd agree the ability to request stronger or more subtle attacks via textual instructions would be nice.

Fourniture commented 2 months ago

I had considered a slider, but rejected it for two reasons: 1) It would likely not fit in with the general design scheme, and 2) Nearly all ways of displaying dynamic adjustment are confusing. If it were to be a slider (let's say for a forte) with negative values on the left and positive values on the right, it would necessitate that the default value is 0, which just seems strange. A slider with the lowest value zero, default 100, and highest 200 would again be confusing, as it would not be clear where other dynamics lie. Is 50 mf or is 0 mf? Is 200 ff? We could have a vertical slider which seems more intuitive, but then it would look too much like the mixer. I proposed a compromise, which is to use the value box already standard in properties, and have 100 the default. True, this is the same numbering as the second slider idea, but it has precedent in the value box format and is therefore more intuitive. (I would like other ideas). As for soft and hard attack, contrast the way Andrez Orozci Estrada interprets the opening double forte passage in the Dvorak 9 finale with Gustavo Dudamel's interpretation of the same passage. Andrez has a soft attack; Dudamel a hard one. I apologize for not being able to think of any other specific cases, but there are some pieces where a forte must be approached gently, or a subito pp is hit suddenly, vital to the music and not just a conductor's interpretation.

wizofaus commented 2 months ago

My assumption was a slider with the default position being more or less in the middle at 100%. You can then slide between, say, 10% and...well...I dunno, 500% or whatever is determined makes sense. And as you drag the slider, you get audio feedback to get an idea of what the resulting volume will be like. I don't really expect it to just be a 'gain' adjustment like a mixer, though in some cases it may end up doing much the same thing - in others it may pick a different sample entirely. And yes obviously there are cases where particular passages are interpreted with different attacks, and I agree having control over that would be nice, I just don't think it's logically tied to dynamic markings. That implies that if you have a passage that moves between mf and fff with crescendos/decrescendos, the type of "attack" would need to be specified each time there was a new dynamic marking, vs it applying for the whole passage (personally I like the idea of using a text line for this sort of thing, to make it clear the extent of the music that it applies over, though in most cases composers seem to assume players/conductors will use their musical judgement to determine over what period of time a different style of playing should apply).

Fourniture commented 2 months ago

I wouldn't expect a user to have to select the type of attack every time; Musescore already has a default (hard attack for trumpets and strings, and soft attack for flutes and clarinets). The attack feature (obviously not applicable for plucked or percussion instruments et al.) is simply a way to fine-tune playback. As for using musical judgement, Noteperformer's AI capabilities take care of that. In post #10388, it seems Musescore development wants to create their own alternative to Noteperformer (presumably algorithm based). Until we have a reliable algorithm providing a musical interpretation, this idea is a temporary fix.

wizofaus commented 2 months ago

BTW I listened to Estrada vs Dudamel, to my ears the difference is fairly subtle but if anything I would say the main difference with Dudamel is more separation between notes in the horns/trumpets playing the melody, whereas in the Estrada they're more sustained (with no complete break in sound between successive notes, even for the notes marked staccato!) I assume you've also heard the "Noteperformer" version of it too, which sounds completely unmusical to me - the staccatos are far too short and there's no sense of "punch" for the notes with no articulation markings (which is most of them). I'd even say it would be very unlikely anyone would perform it the way it's almost always done just based on the markings that are present (which is presumably what Noteperformer is trying to do), and I'm actually curious what Dvorak really had in mind. But none of it really has anything to do with dynamic markings.

Fourniture commented 2 months ago

Noteperformer's interpretation gets one important thing, which is the tension in the first note and the release in the second. Musescore has none of that. As for attack, it is associated just as much with articulations as with dynamics, especially in the case of horn players. If you try to get Musescore to play the opening of Mahler 5, you'll hear almost no separation between the notes. Staff text has always been to give instructions to players, not to the program, and really should not be needed to tell a trumpet to play a group of sixteenths marcato. The problem is in the playback system itself. It would be better to fix the system now, rather than try to make workaround features with staff text. The attack feature for dynamics applies very specifically to the beginning of a phrase, i.e. how the phrase is approached. It has nothing to do with the way the rest of the phrase is played.