"Expressive" and "non-expressive" sounds
Most "sounds" available for the inbuilt Fluid synthesizer come in two versions, "expressive" and what I will call "non-expressive". The difference between the two that I know of is:
• Expressive sounds: The synthesizer responds to what I call "secondary volume" MIDI Control Change messages, such as CC11 [Expression] and CC2 [Breath control], the latter being MuseScore's default. But it does not respond to the MIDI velocity values of the sent notes.
• Non-expressive sounds: The synthesizer does not responds to "secondary volume" MIDI Control Change messages, such as CC11 and CC2. But it does respond to the MIDI velocity values of the sent notes.
As an aside, for both types of sound, the synthesizer responds to what I here will call a "primary volume control message", CC7 [Volume]. (Again, I rely on the external MIDI stream to tell me what I think is being sent to the internal synthesizer.)
It is a good thing that neither version responds to both of those stimuli. If our note velocity values are of the "offset" type, and we have dynamic marks in our score, then during play:
• MuseScore makes the MIDI velocity parameters of the sent notes based on a function of both the note velocity value and a velocity value determined by the dynamic mark in effect. (This is sometimes called "dynamic control via velocity".)
• At the dynamic mark,MuseScore sends a secondary volume MIDI message (perhaps CC2) whose value is the velocity value associated with that dynamic mark. (This is sometimes called "dynamic control via volume control messages".)
Thus, if the synthesizer responded both to the notes' MIDI velocity values and the (for example) CC2 messages, we would have a "double dip" insofar as implementing the impact of the dynamic mark, leading to a probably-unrealistic rendering of the dynamic profile.
But in fact this mishap will not occur, since whenever type of sound is in use will make the synthesizer respond to the notes' MIDI velocities, or the value of (for example) a CC2 message, but not both.
I note that since the famous "single note dynamic" functionality works (as seen in an external MIDI stream, at least) by sending a succession of secondary volume control messages (by default, CC2), then its successful use requires us to use the "expressive" type of sound.
On the other hand, if we have differing note velocity values (maybe hand-tuned to attain some musical effect, or to make the rendering "more human", or perhaps those having been captured when the notation was originally crated by transcription of a performance on a MIDI keyboard), we must use a "non-expressive" type of sound.
If we wish to exploit the "single-note dynamics" capability, and also to have individual notes' velocity values be effectual in playback, I think we are just out of luck.
That all having been said, my question is this: Other than the two considerations I mention above, what might determine whether we should use an "expressive" sound and when we should use a "non-expressive" sound?
Thanks.
Best regards,
Doug
Comments
As a somewhat related matter, I note that the check box on the Staff/Part Properties dialog, "Use single note dynamics",actually means "send volume control messages for dynamics". With it unchecked, no secondary volume control messages are sent.
Maybe in MuseScore speak, "single note dynamics" refers to the broad concept of sending secondary volume control messages for dynamics, not merely the sending of several such while a note is playing.
With the box unchecked, if the note velocities are of the "offset" type, the note velocity is still "modulated by" the current dynamic state to become the MIDI velocities. This form of dynamic mark execution is responded to is the sound is of the not-expressive type.
Many notation programs allow us to choose whether dynamics are to be executed by modulation of note velocities or by volume control messages (hopefully the latter via a secondary volume control message, not so easy in many those programs). (Encore allows is to choose both executions, the normal mode of MuseScore.
But we can work around that in MuseScore if we wish. If (sending to an external synthesizer) we wish to have dynamic marks executed by modulation of the note velocities and no volume control messages sent, we can uncheck the "Use single-note dynamics" box. If we wish to have dynamic marks executed with volume control messages and the note velocities not be modulated, we can change all our note velocities to "user". (The latter can be a little tricky.)
Doug
To my knowledge, support for SND is the one and only reason "expr" sounds exist, and the one and only consideration in choosing between expr and non-expr sounds. If you want SND, use expr. If you don't, then use non-expr.
And yes, as far as I know, the velocity is ignored when using SND, although in my opinion it shouldn't be, it seems to me like it should determine which sample is used and thus generally modify the attack and tone. But I'm no expert. In any case, these sorts of details are among the things likely to be completely replaced in MuseScore 4 from what I understand.
In reply to To my knowledge, support for… by Marc Sabatella
Hi, Marc,
It just seems odd that in 2021 one should have to have a "special" behavior of a synthesizer for it to respond to various "volume family" CCs (CC2, CC11, etc.).
Part of the confusion here might be just what "SND" is intended to mean. It might mean:
• Changing the volume of note rendering while the note is sounding (in particular, via "volume family" CC messages).
or
• Changing the volume of note rendering with "volume family" CC messages, not necessarily while the note is sounding. (The name doesn't seem to really fit that, but . . .)
Now a reason for not having the expressive sounds respond to MIDI note velocities is that (if we have offset type note velocity values) (if we do not uncheck Use Single note dynamics), MuseScore executes dynamics both by the modulation of the note velocity values and by sending a volume family CC.
If a mode of synthesizer operation includes both response to the MIDI velocity note values and volume-family CCc (the normal situation for the synthesizers I am otherwise familiar with), that would constitute a "double dip" of rendering volume from dynamics (a "double dip" of dynamic control).
Doug
In reply to Hi, Marc, It just seems odd… by Doug Kerr
SND means "single note dynamics". In the general sense, that means changing volume of a note after it initially sounds. If in the current release that happens to be achieved by using CC messages exclusively, and this has whatever other effects it happens to have, then one needs to account for that. As I said, I'm not the expert here. But note that future releases might use different means to accomplish the same goal - e.g., not sure what MIDI 2.0 brings to the table, or how MuseSampler or the newly proposed MusePlaybackEvents will work once MuseScore 4 rolls around.
In reply to SND means "single note… by Marc Sabatella
It is disappointing to think that the Fluid synthesizer with the standard MuseScore library is only able to respond generally to volume family CCs as an accidental side effect of its being able to support SND, (which side effects we have to "account for").
Thanks.
Doug
In reply to It is disappointing to think… by Doug Kerr
I didn't say that. To be clear: MuseScore generates CC messages specifically to support SND. As far as I know, it doesn't use them for any other purpose whatsoever, and it never used them in any way prior to when SND was implemented. So, no CC message, no SND. And no SND, no CC. This isn't an accident, it's exactly how it was designed.
In reply to I didn't say that. To be… by Marc Sabatella
Marc,
You say:
"To be clear: MuseScore only generates CC messages to support SND. As far as I know, it doesn't use them for any other purpose whatsoever, and never used them in any way prior to when SND was implemented."
But of course if we have a dynamic mark and do not set it to change the volume in the course of the note (which you say, and this makes sense, would be the definition of SND), MuseScore nevertheless sends a CCx message (where CCx is the "secondary" volume CC, such as CC2, and not the "primary" volume CC, CC7) (as it should).
But, according to your (quite reasonable) definition of SND, this is not an occasion of SND. So to say that "no SDN, no CC" is not really accurate. What does seem to be the case is "no dynamic change, no CCx." And that makes sense.
In fact, compliance with the GM (GM1) specification requires that the synthesizer respond to CC11 as well as CC7 (and I realize that MuseScore's default CCx is CC2, not CC11).
Doug
In reply to Marc, You say: "To be clear:… by Doug Kerr
I mean, if a staff isn't set up to enable SND, you won't get any CC messages. I believe this to be true, anyhow. But if SND is enabled for a staff, CC messages are used for all dynamics, not just the ones that happen to occur within single notes. This is completely consistent with my original statement - "no SND, no CC" - by "no SND", I mean, "without SND being enabled for a staff". THis was in response to your implication that somehow something was being missed by not responding to CC in some sort of mythical others cases. But there re no other case. The only time CC messages happen is when MuseScore own internal playback engine generates dynamics for staves that have SND enabled. No SND, no CC.
So the question of what a synthesizer "responds" to is completely moot here. MuseScore's synthesizer doesn't repsond to anything except what it generates itself - there is no capability to use it as a general purpose synthesizer to be controlled externally. There is no special reason MuseScore's internal synthesizer, controlled by its own internal playback engine, should necessarily use MIDI at all. It just happens to for the convenience of the programmers, but that shouldn't be all that relevant to users. Again, it seems likely this is all changing pretty drastically for MuseScore 4.
In reply to I mean, if a staff isn't set… by Marc Sabatella
Marc,
You say; "by 'no SND', I mean, 'without SND being enabled for a staff'. "
Ah, now I get it.
Doug