Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 1.81 KB

index.rst

File metadata and controls

35 lines (27 loc) · 1.81 KB

Representations

MusPy supports several common representations for symbolic music. Here is a comparison of them.

Representation Shape Values Default configurations
Pitch-based T x 1 {0, 1, ..., 129} 128 note-ons, 1 hold, 1 rest (support only monophonic music)
Piano-roll T x 128 {0, 1} or N {0,1} for binary piano rolls; N for piano rolls with velocities
Event-based M x 1 {0, 1, ..., 387} 128 note-ons, 128 note-offs, 100 tick shifts, 32 velocities
Note-based N x 4 N List of (time, pitch, duration, velocity) tuples

Note that T, M, and N denote the numbers of time steps, events and notes, respectively.

MusPy's representation module supports two types of two APIs---Functional API and Processor API. Take the pitch-based representation for example.

  • The Functional API provide two functions:
    • muspy.to_pitch_representation: Convert a Music object into pitch-based representation
    • muspy.from_pitch_representation: Return a Music object converted from pitch-based representation
  • The Processor API provides the class muspy.PitchRepresentationProcessor, which provides two methods:
    • muspy.PitchRepresentationProcessor.encode: Convert a Music object into pitch-based representation
    • muspy.PitchRepresentationProcessor.decode: Return a Music object converted from pitch-based representation

pitch pianoroll event note