music-encoding
music-encoding copied to clipboard
Muting parts
A few musicians have asked me about the ability to listen to only certain parts in a score during playback. This would allow them to play their part with MIDI accompaniment from the other parts in a score. It would be useful to add an attribute to <scoreDef>
to mute a part. This would allow MEI-to-MIDI conversions such as the one built into verovio to suppress MIDI generation for the desired parts.
An option such as staffDef@mute
would be useful to add for this sort of capability.
Alternatively something like this could be via software only, such as adding options to verovio to tell it which staves to play/mute, but this functionality would be popular for interactive music applications and would be more convenient to add via document control so that independent solutions do not have to be made for each piece of software.
There could also be more legitimate document-based needs for such a feature. For example, a score could contain multiple parts that are included as alternate or obligato parts that are not intended to be played all at the same time. A mute attribute could be used to suppress secondary parts from being converted to MIDI for playback. (another name other than staffDef@mute
might be more suitable for such situations, though).
Related to the last paragraph, a less important but useful capability would be to hide notation for parts but still allow them to be converted into MIDI. So an analog to the above staffDef@mute
for suppressing visual rendering of a part but still allow MIDI rendering could be useful as well. This would allow a musician to display only their part, but have MIDI playback for all of the other parts. This would be particularly useful for orchestral scores where there are too many parts to show on one page and still have the performer's part readable.
The @visible
attribute on <staffDef>
can be used to hide a staff. The intention is that if a staff is "invisible", it is also "muted".
That is good, although it would be useful to allow visibility and audibility to be decoupled.
Yep. For that a new attribute will be needed, probably on <instrDef>
.
The new attribute will also be independent of @midi.volume
.
Why wouldn't <instrDef midi.volume="0" />
work?
@craigsapp: what do you think about @rettinghaus' proposal? An alternative could be something like @audible
in the MEI.gestural
module… Closing for now, but we can come back later if necessary…