music-encoding icon indicating copy to clipboard operation
music-encoding copied to clipboard

Muting parts

Open craigsapp opened this issue 4 years ago • 5 comments

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.

craigsapp avatar Dec 20 '20 19:12 craigsapp

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".

pe-ro avatar Dec 20 '20 21:12 pe-ro

That is good, although it would be useful to allow visibility and audibility to be decoupled.

craigsapp avatar Dec 20 '20 22:12 craigsapp

Yep. For that a new attribute will be needed, probably on <instrDef>.

pe-ro avatar Dec 20 '20 22:12 pe-ro

The new attribute will also be independent of @midi.volume.

pe-ro avatar Dec 20 '20 22:12 pe-ro

Why wouldn't <instrDef midi.volume="0" /> work?

rettinghaus avatar Mar 14 '22 18:03 rettinghaus

@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…

kepper avatar Oct 02 '22 09:10 kepper