The gradual dynamic object

Type: Dictionary

A gradual dynamic is one that applies gradually over time, as opposed to immediately, temporarily or relatively. This represents hairpins (crescendo, diminuendo).

To encode a hairpin with both starting and ending dynamic values (such as "p < f"), use two separate dynamic groups:

Attributes

Name Type Required? Description
type The string "gradual" Yes
value dynamic value No The dynamic value at the beginning of the gradual dynamic.
end measure rhythmic position Yes The endpoint of the gradual dynamic.
wedgeType wedge type Yes Defines whether the hairpin is gradually opening or gradually closing.
position rhythmic position Yes The rhythmic position at which this dynamic group starts.
staffEnd staff number No Optionally encodes the staff at which the hairpin ends, for hairpins that are angled diagonally and cross staves.
glyphs An array of smufl glyph objects No Optional list of SMuFL glyphs to use when displaying the dynamic in "value".

If this is provided, consuming applications should use these specific glyphs. If this isn't provided, consuming applications should automatically determine the SMuFL glyphs based on "value".
prefix string No Optional text to display before the dynamic marking, such as "più".

This is free-form text displayed alongside the marking.
suffix string No Optional text to display after the dynamic marking, such as "sub.".

This is free-form text displayed alongside the marking.
placement multi-staff placement No Where the dynamic group is positioned, relative to the staff.

If not provided, the default value is "auto".
staff staff number No The staff index to which this dynamic group applies. By default, a dynamic group applies to all staffs in the part.
visuallyContinues ID No Points to the ID of the directly previous dynamic group, as a hint to rendering engines that this dynamic group and that previous one should be rendered as a single unit. (Typically this means the dynamics and hairpins are drawn at the same vertical position.)

There is no limit to the length of a "visuallyContinues" chain. For example, it's perfectly OK for three or four dynamic groups to each define "visuallyContinues" pointing at the previous dynamic group.

Encoding this is only strictly necessary if it can't be automatically derived by comparing consecutive dynamic groups' "position" and "end" attributes. Rendering engines are encouraged to determine the visuallyContinues value on their own, if it's not explicitly encoded.
voice voice name No The voice to which this dynamic group applies. By default, a dynamic group applies to all voices in the part.

Plus globally available attributes: _c, _x, id

Parent objects

This object is used by the following parent objects: