Source code for vmf_converter.core.articulation_converter

from music21.articulations import Staccato, Staccatissimo, StrongAccent, Accent, Tenuto


[docs]class ArticulationConverter: """ Converts between music21 and VMF articulations """ @classmethod
[docs] def articulation_to_vmf(cls, articulation): """ Converts and articulation to a vmf articulation :param articulation: The music21 articulation :return: The vmf encoding """ if type(articulation) is Staccato: return 3 elif type(articulation) is Staccatissimo: return 4 elif type(articulation) is StrongAccent: return 5 elif type(articulation) is Accent: return 6 elif type(articulation) is Tenuto: return 7 else: raise ValueError("Articulation is not supported")
@classmethod
[docs] def vmf_to_articulation(cls, vmf): """ Converts a vmf encoding to an articulation :param vmf: The vmf value :return: An articulation object. """ if vmf == 0: return None elif vmf == 3: return Staccato() elif vmf == 4: return Staccatissimo() elif vmf == 5: return StrongAccent() elif vmf == 6: return Accent() elif vmf == 7: return Tenuto() else: raise ValueError("Articulation is not supported")