Math Sequence to MIDI
Project description
rmidipy
This python library is intended to open midi files as python objects. Midi file is binary files, list in form of tracks. Every track contains sequence of events. Each event is assosiated delta time, which refers to time from perivous event, current event should occur.
In same structure rmidi has MIDI
as base class, MIDI.Track
for track representation and MIDI.Track.Event
to represent each event.
Getting Started
rmidi
is available on python pip
. You can install library through below command.
pip install rmidi
MIDI
>>> from rmidi import MIDI
>>> y = MIDI.parse_midi(<midi_file_name>)
OUTPUT
| Absolute Time | Duration | Delta Time | ETYPE | Event ID | META | LENGTH | DATA
|______________________________________________________________________________________________________________________________ . . .
| 0.000000 | 0.000000 | 0x0 | META | 0xff | 0x58 | 0x4 | 0x04 0x02 0x18 0x08
| 0.000000 | 0.000000 | 0x0 | META | 0xff | 0x59 | 0x2 | 0x00 0x00
| 0.000000 | 0.000000 | 0x0 | META | 0xff | 0x51 | 0x3 | 0x07 0xa1 0x20
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x79 0x00
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xc0 | 0 | 0x1 | 0x00
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x07 0x64
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x0a 0x40
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5b 0x00
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5d 0x00
| 0.000000 | 0.000000 | 0x0 | META | 0xff | 0x21 | 0x1 | 0x00
| 0.000000 | 0.000000 | 0x0 | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x00
| 0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x50
| 0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x00
| 0.000000 | 0.000000 | 0x1 | META | 0xff | 0x2f | 0x0 |
OR
Absolute Time | Duration | Delta Time | ETYPE | Event ID | META | LENGTH | DATA |
---|---|---|---|---|---|---|---|
0.000000 | 0.000000 | 0x0 | META | 0xff | 0x58 | 0x4 | 0x04 0x02 0x18 0x08 |
0.000000 | 0.000000 | 0x0 | META | 0xff | 0x59 | 0x2 | 0x00 0x00 |
0.000000 | 0.000000 | 0x0 | META | 0xff | 0x51 | 0x3 | 0x07 0xa1 0x20 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x79 0x00 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xc0 | 0 | 0x1 | 0x00 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x07 0x64 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x0a 0x40 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5b 0x00 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5d 0x00 |
0.000000 | 0.000000 | 0x0 | META | 0xff | 0x21 | 0x1 | 0x00 |
0.000000 | 0.000000 | 0x0 | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x00 |
0.000000 | 0.000000 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x50 |
0.000000 | 0.000000 | 0x71f | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x00 |
0.000000 | 0.000000 | 0x1 | META | 0xff | 0x2f | 0x0 |
Absolute midi
Absolute Midi is defined as its time from start, in seconds.
>>> from rmidi import MIDI, AbosluteMidi
>>> y = MIDI.parse_midi('Kuch_Toh_Hai_1.mid')
>>> yabs = AbsoluteMidi.to_abs_midi(y)
OUTPUT
| Absolute Time | Duration | Note Time | Delta Time | ETYPE | Event ID | META | LENGTH | DATA
|______________________________________________________________________________________________________________________________ . . .
| 0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x58 | 0x4 | 0x04 0x02 0x18 0x08
| 0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x59 | 0x2 | 0x00 0x00
| 0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x51 | 0x3 | 0x07 0xa1 0x20
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x79 0x00
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xc0 | 0 | 0x1 | 0x00
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x07 0x64
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x0a 0x40
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5b 0x00
| 0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5d 0x00
| 0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x21 | 0x1 | 0x00
| 0.000000 | 31.649306 | 1.0666666666666667 | 0x0 | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x50
| 33.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x50
| 66.666667 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x50
| 100.000000 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x50
| 133.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x50
| 166.666667 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x50
| 200.000000 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x50
| 233.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x50
| 0.000000 | 0.000000 | 0 | 0x1 | META | 0xff | 0x2f | 0x0 |
*******************************************************************************************************************
OR
Absolute Time | Duration | Note Time | Delta Time | ETYPE | Event ID | META | LENGTH | DATA |
---|---|---|---|---|---|---|---|---|
0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x58 | 0x4 | 0x04 0x02 0x18 0x08 |
0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x59 | 0x2 | 0x00 0x00 |
0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x51 | 0x3 | 0x07 0xa1 0x20 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x79 0x00 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xc0 | 0 | 0x1 | 0x00 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x07 0x64 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x0a 0x40 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5b 0x00 |
0.000000 | 0.000000 | 0 | 0x0 | CHANNEL | 0xb0 | 0 | 0x2 | 0x5d 0x00 |
0.000000 | 0.000000 | 0 | 0x0 | META | 0xff | 0x21 | 0x1 | 0x00 |
0.000000 | 31.649306 | 1.0666666666666667 | 0x0 | CHANNEL | 0x90 | 0 | 0x2 | 0x48 0x50 |
33.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4a 0x50 |
66.666667 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4c 0x50 |
100.000000 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4d 0x50 |
133.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x4f 0x50 |
166.666667 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x51 0x50 |
200.000000 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x53 0x50 |
233.333333 | 31.649306 | 1.0666666666666667 | 0x61 | CHANNEL | 0x90 | 0 | 0x2 | 0x54 0x50 |
0.000000 | 0.000000 | 0 | 0x1 | META | 0xff | 0x2f | 0x0 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rmidi-0.0.29.tar.gz
(27.6 kB
view hashes)
Built Distribution
rmidi-0.0.29-py3-none-any.whl
(32.2 kB
view hashes)