Dynamic accents

In accent dynamics, such as sf or fz, an MNX document encodes the accent metadata (the "s" prefix of "sf", or the "z" suffix of "fz") structurally.

The "accentPrefix", "value", "accentSuffix" and "residualValue" concatenate to the conventional abbreviation, so "s" + "f" + "z" results in "sfz" and "r" + "f" + "z" results in "rfz".

Note: if not explicitly encoded, "accentPrefix" defaults to "s" and "accentSuffix" defaults to "z", meaning the common case (sfz) can be encoded as {"type": "accent", "value": "f"}. To encode a dynamic without that prefix or suffix, use an empty string: {"type": "accent": "accentPrefix": "", "value": "f"} encodes fz.

The second measure here demonstrates "residualValue", which is the dynamic that applies after the initial attack.