Chord playback too loud in piano

• Feb 20, 2018 - 19:26

Chord playback sounds way too loud in MuseScore because each note plays equally loud as a in single voice line. Whenever a human player with at least a minimum training plays a chord, he or she plays all notes softer. Professional players can even play each note with different strength at will. Of course this is also possible in MuseScore by tweaking each note's velocity, but it is too tedious if there are many chords. (*)

Default playback would improve if each note in a chord were played with a negative velocity offset such as -10 (for three note chords) with respect to the dynamic indication, except when each note is on different voices, such as in counterpoint textures.

I'm aware of some difficulties this feature could imply, for instance, what if one wants the chord to be effectively louder, or if one wants to polish the loudness of each note. My proposal could be optional, and it should be overridden by any custom velocity setting by the user. It is also possible that the exact offset would depend on the particular piano or soundfont. Another possibility is that the offset value be a user preference. However, I think that for a start -10 is a safe choice that would much improve chord playback.

(*) In the meantime, a way to select only the notes of a passage with many successive chords is to select the chords, point at a notehead, then right click, then choose from the contextual menu Select / All similar elements in range selection. Then we can apply an offset velocity to all of them from the Note inspector (just selecting the chords does not open the Note Inspector since the chord has heterogenuous elements such as noteheads and stems).


Comments

Hmm, I would agree that a pianist is capable of playing a chord more softly to match its volume to that of surrounding single notes, but would disagree that he would necessarily always do this by default. It's a performance choice, sometimes appropriate, sometimes not, and really requires human expertise to figure out which is which. I suppose some sort of extra AI-like pass could be performed on a score via a plugin or some such, along with other requests like tweaking the start and end times to be a little randomized, to try to detect the melodic line and bring that out, etc. But I would not want to see MuseScore just blindly reducing volume of chords.

In reply to by Marc Sabatella

Marc, note I'm not speaking of getting an accomplished performance, just a tolerable rendering. See (or listen), for instance, this Mozart's piano sonata: https://musescore.com/mossmanlucas/scores/2200926. it's horrible! I can assure that blindly reducing the chord velocity by -10 turns the rendering much more intelligible. It is the first lesson a piano teacher would give to a starting student: to play chords softer. Then would come the refinements, which is not what I'm asking for, since it is a much more dfiicult problem (for the record, there is a project for an AI music player capable of winning the Chopin International Competition by 2050! It is not easy, is it?)

In reply to by fmiyara

For the record, I am a professional pianist and educator with a music degree, and again, I would disagree that just because a pianist can play a chord softer that this means he necessarily would by default, or that any piano teacher should be misleading students into thinking they should be doing this automatically. Any competent pianist would know it all depends on situations, and very often the whole reason a composer writes a chord in the middle of an otherwise linear passage s that he wants it louder. And the Mozart example you cite is not one where I think it objectively clear whether or not it is appropriate. Might sound "horrible" to you, but it's actually quite effective to my own not-untrained ears. In a word, it's subjective.

In reply to by Marc Sabatella

I acknowledge that there isn't a single or standard way to play a chord, but except in the cases where the intention is to make it sound much louder, in which most composers would write a sforzato or one or more dynamic levels louder (you can refer to Gardner Read's book on notation effectiveness), in the vast majority of cases a chord is expected to be at the same level or lower than the average level of a single voice at the same dynamic level. And this is true from Bach to Prokofiev and beyond.
Regarding the Mozart example, I'm afraid no pianist except somebody at a very basic level would ever play it with such a lack of balance between the melodic line and the accompanying chords. May I ask: Have you ever played this sonata at a concert? In that case, did you play it that way? And a last challenge: Ask ten professional pianists acquainted with classical music their opinion on the dynamics of that rendering. That's what matters, not my opinion or your opinion.

In reply to by fmiyara

Well, I am one, and I have already expressed my opinion, but feel free to ask nine others :-) My guess is it would quickly degenerate into squabbling about dozens of other details, with no particular consensus developing on any one point.

Oh, and no I haven't performed this particular sonata but have performed countless similar pieces. There really is far more subjectivity here than you seem to be acknowledging.

In reply to by fmiyara

Given that you found your solution (set the playback offset to -10 on the chord), I don't see what the issue is. You have your resolution to your playback problem; after all, MuseScore is primarily a notation software. If you want the playback to sound as you imagine it should, it's going to take work.

In reply to by LuuBluum

MuseScore, as is right now, allows in a way or another to accomplish virtually everything that can be expected or imagined in a score, even the most complex ones. Does this mean that development should stop here?
So new refinements have to do with making the life easier for the engraver--and the composer, the student, the conductor, the music lover, the aficionado...
The issue is: Why to do it manually when it could be done automatically? At least as an option...
I don't mean the programmers team should do this right now, but rejecting the idea alltogether means almost certainly that it will never be done.
At least three people in this forum have put forward or supported the idea with thoughtful arguments along time.

In reply to by LuuBluum

Really it takes much more effort than mere transcription. A trained musician usually devotes more time to intellectually put things together than to solve technical problems.

My proposal can be handled automatically (it is a rather simple criterion: whenever there is a chord in one voice (in MuseScore's sense of "voice") apply a negative offset to the velocities of the chord. And if it doesn't guarantee a good performance, at least it removes the disappointment caused by too harsh a rendering.

In reply to by LuuBluum

It occurs to me there has perhaps been a misunderstanding here, and as I look at at the Mozart example again, I think maybe I can clarify a bit.

I was thinking you were saying that all three notes of the chord in Mozart example should be played more quietly than the surrounding. I am quite confident that any ten experienced pianists would say this is just plain wrong. What we would agree is that the melody note within the chord needs to be played more loudly than the accompaniment notes. So the "C" in the right hand of measure 3 of the Mozart needs to be played as loud as every single one of the previous notes, but the Eb and G do indeed need to be played more quietly. It sounded like you were saying the entire chord - all three notes 0 should be played more quietly, which is why I disagreed.

But assuming you really just mean, accompaniment should be quieter than melody, then sure, of course, I and all experienced pianists would agree. I said as much in my first response here.

Unfortunately, that's a much more complex problem. Consider, the accompaniment might be a chord, but it might just as easily be a single note line, or multiple single note lines in different voices. And the melody might be played as part of the same chord in the same voice and staff as some of the accompaniment (as I initially thought you were talking about), or it might be played as part of the same chord spread between two staves (as is the case in the Mozart example), or it might be played alone while notes in other voices / staves continue to ring out, or it might be played completely unaccompanied, and all of these cases need to be handled differently. And to top it all off, there is simply no objective way for an algorithm to be sure which note is the melody.

So again, I am all in favor of the idea that the accompaniment should be quiet than the melody, but this is not what I understood the initial post to be suggesting. And actually implementing an algorithm to attenuate the accompaniment in a reasonable way given all the complications I mention above is basically an AI research project. It is most definitely not even 8close* to being as simplistic as, "any time a chord happens, reduce volume of each note of the chord by X". That won't even come close to doing the right thing, and will actually make the situation worse quite often (as in this case, if we take the melody note to be part of the chord).

In reply to by Marc Sabatella

I'm happy you´ve finally understood what I was referring to. I hope you now realize that I´m not expecting an accomplished performance, but just to remove the first ear-offending impression that cause the overstressed chords. I agree that automatically accomplishing even a standard performance is an overwhelming problem and I don't claim it should be of any priority.

In the case of this sonata transcription, I acknowledge there are other problems, for instance the total lack of dynamic marks, which makes the rendering even worse. The original (urtext) version has indeed different dynamics for the right and left hands in certain passages. If added, the rendering is of course more tolerable. Moreover, since chords are sparsely used, the effect is not so severe as in the other Mozart's sonata in the same open score list, the A minor one, which begins with a melody on the right hand and repeated accompanying chords on the left hand, which sound indeed as hammer strikes.

I think an intermediate position between yours and mine would be a tool available in the contextual menu of a selection allowing to add a velocity offset to every note in the selection (even if the selection is not limited to note elements). Being able to change velocity in a more direct way than through the inspector (particularly on a batch basis), is a frequent need.

In reply to by fmiyara

I am glad we understand each other better now, but I still have some issues with what you are suggesting.

Consider, what if Mozart had chosen to write that passage on one staff instead of two, putting the melody note on the same stem as the accompaniment notes? If the algorithm attenuated all notes of the chord, now the melody note would be quieter than the preceding melody notes. I maintain this would be worse than the status quo, where at least this melody note is as loud as the others. Your change would make the melody harder to hear. That is why I still say it is likely to be something that users will have to do themselves if they care about such subtleties in playback (as opposed to simply using it for error checking and quick demos).

As for putting things into the context menu, we're actually moving in exactly the opposite direction for 3.0 - relying more on the Inspector, less on dialogs and context menus. The Inspector is perfectly capable of working on selections of multiple notes at once, and of converting a range selection to a selection of notes in a single click of the Notes button. While I understand that you might happen to use the velocity control often enough to want it duplicated on the context menu, realize that not everyone is tweaking the performance details of their scores to such an extent that they ever touch the velocity control. To someone else, it's the color control most lacking in the context menu, to someone else still, it's the size properties, to someone else, it's the head controls, and so on. Eventually we'd have the entire Inspector duplicated in the context menu. Instead, we focus on the most important control for all users.

In reply to by Marc Sabatella

Indeed, Mozart did as you say, but he was careful to place the melody and the accompaniment on different voices so, as I said earlier, if the effect were applied within a voice (in MuseScore's sense) instead of globally or across voices, the problem you mention would not exist. But it is academic discussion since the feature will not be included.

Thanks for the tip of selection-range-to-notes conversion, I was not aware and is great!

Last and final attempt: I understand that moving to the inspector all property editing stuff gives great unity to the application and that's very good. But why not allow customizing 1) the context menu (as in other applications, such as Word) and/or 2) the Inspector, so that one can toggle hiding seldom used features. When using a small screen (such as in a laptop) where some frequently used features of the Inspector are buried at the bottom of the screen, having to scroll all the way down to reach them for each minute change is tedious.

In reply to by fmiyara

It's already the case that 3.0 should come with some more UI customizations, and indeed, I'd like to see more still. In fact it's an important component of a project I hope to mentor for Google Summer of Code.

As for the velocity adjustment, I wouldn't say there is no chance of something like that ever happenig. But I would rather see this be but one element of more general "human playback" (to borrow the term used in Finale) feature, and really look at the big picture and prioritize accordingly.

In reply to by Marc Sabatella

Perhaps there are elegant and simple solutions. Please correct me if I am mistaken, but a piano dynamic applies to the instrument (not the staff. A piano has 2 staff). If the chords are on a separate staff, which can be made piano separately, this would be an elegant solution, as all the softer chord notes can be placed there.

In reply to by yaqzaanw

"If the chords are on a separate staff, which can be made piano separately, this would be an elegant solution"

Well, MuseScore versions up to and including MS3 allowed us to set separate dynamics for the two staves of a grand staff (great stave). See the options Stave, Part and System below:
MS3_Dynamic_range_options.png

Unfortunately this very useful feature was one of many which were discarded in the brave experiment that MS4 became. We are promised a more mature method of controlling dynamics in some future version of MS4...

In reply to by yaqzaanw

yaqzaanw,
I understand what you want to say, but it's a bit scrambled. In the piano both staves may have, and frequently do have, different dynamics. Moreover, each voice or line may have different dynamics, even if they are on the same staff (and are played by the same hand), for instance polyphonic music, and a melody accompanied by chords might be played by the same hand (and hence usually written on the same staff).
On the other hand, when transcribing piano music, most frequently it is necessary to honor the visual distribution the composer decided, and most often all the notes of a chord are written on the same staff, so the notes cannot simply be split to assign different dynamics.
Chord dynamics may be even more complicated. Maybe some note needs to be emphasized, which dependes more on the nature of the music than on a mechanical algorithm.
My original post dealt with the typical case. A piano chord should, by default, reduce the velocity of its notes to yield a better out-of-the-box playback experience. If then the user wants to refine the expression, it is always possible to modify the velocity of the individual notes of the chord to achieve the desired balance.

There was a discussion about this a couple of years ago:

https://musescore.org/en/node/97326

I tend to agree with fmiyara, as I explain in my comment in that thread. I'm not 100% sure, but I'm pretty confident that the default should be less than the sum of the notes when played stand-alone.

Whilst a chord with four notes will be louder than one note it will not really be four times louder since sound is logarithmic. We perceive it as much louder sometimes becasue of the way we appreciate music. Often it is meant to sound that way and that is why the chord was written in the first place. Sometimes the chord is meant ot be played softer but I would say this is the exception rather than the default.

In reply to by underquark

There are several questions here.

1) Playing different (synthesized) notes at the same velocity doesn't mean that they have all the same energy or the same loudness. For instance, C5 is 2 dB louder than C4 at most velocities.

2) The computation of loudness is not as straightforward as it may seem. Loudness is a psychoacoustic quantity which is a rather complicated function of the intensities of all the harmonics present in the combination. For instance, four sounds A, B, C and D may have the same loudness, say, 1 sone (the sone is the unit for loudness). However, the total loudness of A + B may be 2 sone while that of C + D may be as low as 1.3 sone. Moreover, loudness increases faster with intensity at low frequencies (but again, musical sounds are complex and even low-pitched sounds contain high frequency harmonics).

3) The real meaning of loudness is actually related to the comparison of a sound delivered to both ears, and then to a single ear amplified so that it is perceived equally loud as in the first case. This is loudness doubling, and repeating this process a loudness scale can be constructed. Music dynamics, however, is not thought of in terms of psychoacoustic loudness. Some experiments measuring intensity of sounds from pp to fff in MuseScore show that the difference in level between consecutive dynamic marks is 7 dB at low levels and 2 dB at high levels, while the velocity increment is roughly constant around 16-14. Psychoacoustic doubling is roughly equivalent to a 10 dB increase, so loudness is close to doubling when increasing one dynamic step at low levels and much less at high levels. For instance, the relative loudness increase from pp to p equals approximately that from mf to fff. The moral is that it is difficult to compare the musical dynamics experience with the rather aseptic psychoacoustical concept of loudness. Most often musical dynamics is highly contextual, so assigning velocities of 33, 49, ..., 126 to the dynamic marks pp, p, ..., fff is an oversimplification.

4) It is not true that "sound is logarithmic". The real result is that loudness grows with a power 0.6 with sound pressure or a power 0.3 with sound intensity at 1 kHz.

5) Most of the time when a composer writes a chord it is to convey some harmony or a timbral color, not because more loudness is needed. When more loudness is required it is indicated by means of a dynamic mark such as forte, fortissimo, sforzando or several kinds of accents, and finally, where extreme loudness is required, more notes may be added to the chord (often duplicating other voices, or, in contemporary music, using clusters and increasing the number of chords per beat. It is frequent to find pp indication with chords of several notes. Beethoven has many examples of eight- note chords at p or pp followed by two-note chords at ff, and the same is true for many contemporary composers.

Agreed, underquark, with your noting that a 4 note chord will not be perceived as 4 times as loud as a single note. It's a good point. (This is why I was careful and used "energy" and not "loudness", in my earlier comment.) So yes, this softens the blow of crudely rendering the chord, compared to what one might think. I do think, however, that people normally play them quieter than the sum of the parts. I would guess that even professional players have never thought directly about the comparison of the loudness of individual notes in a chord to the stand-alone notes, but rather played to make the total effect what they wanted.

In case anyone is interested, the psycho-acoustic effect above concerns the fact that human perception of loudness is not linear with power. I was very surprised many years ago to learn that when you twist the knob on your stereo, you need about a factor of 8 in power to give a factor of 2 in perceived loudness. The rule of thumb these days is 10 dB, which is a factor of 10. Sticking with 8, that makes our chord with 4 times the power come out at about 1.6 times as loud, perceptually.

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