from musicscore.xmlwrapper import XMLWrapper
from musicxml.xmlelement.xmlelement import (
XMLF,
XMLFf,
XMLFff,
XMLFfff,
XMLFffff,
XMLFfffff,
XMLFp,
XMLFz,
XMLMf,
XMLMp,
XMLP,
XMLPf,
XMLPp,
XMLPpp,
XMLPppp,
XMLPpppp,
XMLPppppp,
XMLRf,
XMLRfz,
XMLSf,
XMLSffz,
XMLSfp,
XMLSfpp,
XMLSfz,
XMLSfzp,
)
__all__ = ["DYNAMICS", "Dynamics"]
#:
DYNAMICS = {
"f": XMLF,
"ff": XMLFf,
"fff": XMLFff,
"ffff": XMLFfff,
"fffff": XMLFffff,
"ffffff": XMLFfffff,
"fp": XMLFp,
"fz": XMLFz,
"mf": XMLMf,
"mp": XMLMp,
"p": XMLP,
"pf": XMLPf,
"pp": XMLPp,
"ppp": XMLPpp,
"pppp": XMLPppp,
"ppppp": XMLPpppp,
"pppppp": XMLPppppp,
"rf": XMLRf,
"rfz": XMLRfz,
"sf": XMLSf,
"sffz": XMLSffz,
"sfp": XMLSfp,
"sfpp": XMLSfpp,
"sfz": XMLSfz,
"sfzp": XMLSfzp,
}
[docs]class Dynamics(XMLWrapper):
"""
This is a simple wrapper for dynamics objects. Value must be a key in :obj:`DYNAMICS`.
"""
def __init__(self, value: str, *args, **kwargs):
super().__init__()
self.XMLClass = DYNAMICS[value]
self._xml_object = self.XMLClass(*args, **kwargs)