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)