%global _empty_manifest_terminate_build 0 Name: python-EPMS Version: 0.0.8 Release: 1 Summary: The Expressive Polyphonic MIDI Serializer is a tool to turn MIDI files into a model-friendly, expressive representation for ML projects. License: MIT License URL: https://github.com/petcomputacaoufrgs/EPMS Source0: https://mirrors.aliyun.com/pypi/web/packages/e4/d4/87e60ea56813c82ce93cc1ca450bfec6ad5f4a8563fab1699fd79ca3d198/EPMS-0.0.8.tar.gz BuildArch: noarch %description # EPMS: Expressive Polyphonic MIDI Serializer ## Introduction The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome - when we want to work with digital audio. One of its many utilities is in Machine Learning, where it allows us to train data models to generate musical pieces. However, the current literature lack a tool that transcribes MIDI data to a model-friendly structure while preserving polyphony and the whole expressive dimension of music. EPMS is being build to address that need. While simultaneously working on a LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br) of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository. With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music. ## The Concept The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network. Simply put, we transform the input file in a **Pandas DataFrame** where information is stored. ### Settings There are currently 3 setting parameters for the serialization process: 1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded. 2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer. 3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard \ For example, we can set the serial parameters like ```python SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 13, 'KEYBOARD_OFFSET': 60 } ``` that will be internally transformed into a serie. | SETTING | VALUE| |:-----------|---| | RESOLUTION | 16| | KEYBOARD_SIZE | 13 | | KEYBOARD_OFFSET | 60 | ### Serialization Each row in the serial DataFrame corresponds to a **frame** of the song and each frame is formed in a set of different *blocks*: * the **Instrument Block**, that stores information about instrument qualities | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | |:-------|:-------------|---------------:|:------------------| * the **Metric Block**, that will be our time reference across the song | MEASURE | BEAT | FRAME | |:----------|:-------|---------| * the **Environment Block**, that provides the musical context of one's model environment | ORIGINAL_KS | TS | TEMPO | |:--------------|------|---------| * and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every key in our model's 'artificial piano'. In this block we focus on representing the main expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*. \ \ With the settings values as shown before, the Performance Block would be: | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | |:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----| \ \ Finally, our frames will contain MIDI data in the following columns: | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| ### Serialization Diagram ![](docs/serial-diagram.png "Diagram representing the serial block division concept.") ## Performance Block (PB) Representation As a group project decision, the values stored in the PB are formatted in a way that we can easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent *'what notes should I play?'* kind of learning. The main point of this decision is that this way we treat the playing problem as a Classification Problem, that is easier to work on. In that sense, the data inside the PB is represented in a way where different data types provide different semantic meaning for a note's frame in the performance encoding: > ### **Boolean** > > **False**: represent silence, the note is not being played in the frame. > ### Float32 > > *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****. * **** ## Usage and Example First of all, you must import the package and define the settings for the serializer. ```python from EMS import serialization, deserialization SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 88, 'KEYBOARD_OFFSET': 21 } ``` Then, to serialize: ```python serial = serialization.file('test_midi_files/George Benson - Breezin.mid', SETTINGS, save_as='serial.pkl') ## optional ``` The following is the score for the first flute measure of George Bensons - Breezin: ![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.") The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98): | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses. Getting back to the MIDI format is simple: ```python deserialized = deserialization.file(serial, SETTINGS, save_as='result.mid') ## optional ``` %package -n python3-EPMS Summary: The Expressive Polyphonic MIDI Serializer is a tool to turn MIDI files into a model-friendly, expressive representation for ML projects. Provides: python-EPMS BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-EPMS # EPMS: Expressive Polyphonic MIDI Serializer ## Introduction The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome - when we want to work with digital audio. One of its many utilities is in Machine Learning, where it allows us to train data models to generate musical pieces. However, the current literature lack a tool that transcribes MIDI data to a model-friendly structure while preserving polyphony and the whole expressive dimension of music. EPMS is being build to address that need. While simultaneously working on a LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br) of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository. With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music. ## The Concept The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network. Simply put, we transform the input file in a **Pandas DataFrame** where information is stored. ### Settings There are currently 3 setting parameters for the serialization process: 1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded. 2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer. 3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard \ For example, we can set the serial parameters like ```python SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 13, 'KEYBOARD_OFFSET': 60 } ``` that will be internally transformed into a serie. | SETTING | VALUE| |:-----------|---| | RESOLUTION | 16| | KEYBOARD_SIZE | 13 | | KEYBOARD_OFFSET | 60 | ### Serialization Each row in the serial DataFrame corresponds to a **frame** of the song and each frame is formed in a set of different *blocks*: * the **Instrument Block**, that stores information about instrument qualities | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | |:-------|:-------------|---------------:|:------------------| * the **Metric Block**, that will be our time reference across the song | MEASURE | BEAT | FRAME | |:----------|:-------|---------| * the **Environment Block**, that provides the musical context of one's model environment | ORIGINAL_KS | TS | TEMPO | |:--------------|------|---------| * and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every key in our model's 'artificial piano'. In this block we focus on representing the main expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*. \ \ With the settings values as shown before, the Performance Block would be: | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | |:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----| \ \ Finally, our frames will contain MIDI data in the following columns: | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| ### Serialization Diagram ![](docs/serial-diagram.png "Diagram representing the serial block division concept.") ## Performance Block (PB) Representation As a group project decision, the values stored in the PB are formatted in a way that we can easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent *'what notes should I play?'* kind of learning. The main point of this decision is that this way we treat the playing problem as a Classification Problem, that is easier to work on. In that sense, the data inside the PB is represented in a way where different data types provide different semantic meaning for a note's frame in the performance encoding: > ### **Boolean** > > **False**: represent silence, the note is not being played in the frame. > ### Float32 > > *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****. * **** ## Usage and Example First of all, you must import the package and define the settings for the serializer. ```python from EMS import serialization, deserialization SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 88, 'KEYBOARD_OFFSET': 21 } ``` Then, to serialize: ```python serial = serialization.file('test_midi_files/George Benson - Breezin.mid', SETTINGS, save_as='serial.pkl') ## optional ``` The following is the score for the first flute measure of George Bensons - Breezin: ![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.") The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98): | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses. Getting back to the MIDI format is simple: ```python deserialized = deserialization.file(serial, SETTINGS, save_as='result.mid') ## optional ``` %package help Summary: Development documents and examples for EPMS Provides: python3-EPMS-doc %description help # EPMS: Expressive Polyphonic MIDI Serializer ## Introduction The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome - when we want to work with digital audio. One of its many utilities is in Machine Learning, where it allows us to train data models to generate musical pieces. However, the current literature lack a tool that transcribes MIDI data to a model-friendly structure while preserving polyphony and the whole expressive dimension of music. EPMS is being build to address that need. While simultaneously working on a LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br) of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository. With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music. ## The Concept The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network. Simply put, we transform the input file in a **Pandas DataFrame** where information is stored. ### Settings There are currently 3 setting parameters for the serialization process: 1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded. 2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer. 3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard \ For example, we can set the serial parameters like ```python SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 13, 'KEYBOARD_OFFSET': 60 } ``` that will be internally transformed into a serie. | SETTING | VALUE| |:-----------|---| | RESOLUTION | 16| | KEYBOARD_SIZE | 13 | | KEYBOARD_OFFSET | 60 | ### Serialization Each row in the serial DataFrame corresponds to a **frame** of the song and each frame is formed in a set of different *blocks*: * the **Instrument Block**, that stores information about instrument qualities | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | |:-------|:-------------|---------------:|:------------------| * the **Metric Block**, that will be our time reference across the song | MEASURE | BEAT | FRAME | |:----------|:-------|---------| * the **Environment Block**, that provides the musical context of one's model environment | ORIGINAL_KS | TS | TEMPO | |:--------------|------|---------| * and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every key in our model's 'artificial piano'. In this block we focus on representing the main expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*. \ \ With the settings values as shown before, the Performance Block would be: | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | |:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----| \ \ Finally, our frames will contain MIDI data in the following columns: | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| ### Serialization Diagram ![](docs/serial-diagram.png "Diagram representing the serial block division concept.") ## Performance Block (PB) Representation As a group project decision, the values stored in the PB are formatted in a way that we can easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent *'what notes should I play?'* kind of learning. The main point of this decision is that this way we treat the playing problem as a Classification Problem, that is easier to work on. In that sense, the data inside the PB is represented in a way where different data types provide different semantic meaning for a note's frame in the performance encoding: > ### **Boolean** > > **False**: represent silence, the note is not being played in the frame. > ### Float32 > > *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****. * **** ## Usage and Example First of all, you must import the package and define the settings for the serializer. ```python from EMS import serialization, deserialization SETTINGS = { 'RESOLUTION': 16, 'KEYBOARD_SIZE': 88, 'KEYBOARD_OFFSET': 21 } ``` Then, to serialize: ```python serial = serialization.file('test_midi_files/George Benson - Breezin.mid', SETTINGS, save_as='serial.pkl') ## optional ``` The following is the score for the first flute measure of George Bensons - Breezin: ![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.") The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98): | NAME | INSTRUMENT | MIDI_PROGRAM | SOUND | MEASURE | BEAT | FRAME | ORIGINAL_KS | TS | TEMPO | A0 | B-0 | B0 | C1 | C#1 | D1 | E-1 | E1 | F1 | F#1 | G1 | G#1 | A1 | B-1 | B1 | C2 | C#2 | D2 | E-2 | E2 | F2 | F#2 | G2 | G#2 | A2 | B-2 | B2 | C3 | C#3 | D3 | E-3 | E3 | F3 | F#3 | G3 | G#3 | A3 | B-3 | B3 | C4 | C#4 | D4 | E-4 | E4 | F4 | F#4 | G4 | G#4 | A4 | B-4 | B4 | C5 | C#5 | D5 | E-5 | E5 | F5 | F#5 | G5 | G#5 | A5 | B-5 | B5 | C6 | C#6 | D6 | E-6 | E6 | F6 | F#6 | G6 | G#6 | A6 | B-6 | B6 | C7 | C#7 | D7 | E-7 | E7 | F7 | F#7 | G7 | G#7 | A7 | B-7 | B7 | C8 | |:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------| | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.385827 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 1 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0.385827 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0.503937 | 0.503937 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0.503937 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 2 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.629921 | 0.629921 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.629921 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 3 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 1 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 2 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 3 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 4 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 5 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 6 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 7 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 8 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 9 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 10 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 11 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 12 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0.503937 | 0.503937 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 13 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 14 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0.503937 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 15 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | | Winds | Flute | 73 | wind.flutes.flute | 1 | 4 | 16 | C | 4/4 | 82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0 | False | False | 0.503937 | 0 | 0 | False | 0 | 0 | False | False | False | 0 | False | False | 0 | 0 | 0 | False | 0 | 0 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses. Getting back to the MIDI format is simple: ```python deserialized = deserialization.file(serial, SETTINGS, save_as='result.mid') ## optional ``` %prep %autosetup -n EPMS-0.0.8 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-EPMS -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 0.0.8-1 - Package Spec generated