A musicXML parser written in Python based on a SAX analyzer

pip install musicxml_parser==0.1


MusicXML parser


pip install musicxml_parser


from musicxml_parser.scoreToPianoroll import scoreToPianoroll
score_path = "test.xml"
quantization = 16
pianoroll, articulation = scoreToPianoroll(score_path, quantization)

Description :

Music XML parser written in Python based on a SAX analyzer. Given a mxml file, outputs two dictionaries indexed by instruments names:

  • a pianoroll
  • a binary articulation which is the same matrix as the pianoroll but with shorter duration so that we can distinguish between a long note or several repeated occurences of the same note. Hence, if a quarter note lasted 4 frames in the pianoroll it would be 3 in the articulation. Staccati notes are 1 whatever their duration.

Packages dependencies :

  • numpy


The main function is ScoreToPianoroll in It takes as input the path to a MusicXML file and output two python dictionnary of the form :

{'track_name' : matrix}

where matrix is two-dimensional, first axis begin the time, second the pitch.