midilib
Erlang MIDI Library
Setup
Include one of the following in your project's rebar.config:
%% Latest Release
{deps, [
{midilib, "0.5.0"}
]}.or
%% Development
{deps, [
{midilib, {git, "https://github.com/erlsci/midilib", {branch, "release/0.6.x"}}}
]}.midibin
Support for the decoding and encoding of device-ready binary MIDI messages. Note that Erlang term messages (which are encoded to binary, and which are created when decoding binary) are of the same form as those in the midimsg module.
midimsg
Functions for creating Erlang term versions of MIDI messages. All messages are wrapped in a {midi, ...} tuple to support parallel use in multi-purpose genservers, avoiding tuple collisions.
midifile
Reads and writes type 1 MIDI files (note that type 1 files may contain any number of tracks that would be performed synchronously.
midiutil
Utility functions for handling note lengths, beats, quantization, and note names, and more.
Testing
Perform any checks / tests:
$ rebar3 as test checkResources
- MIDI on WikiPedia
- MIDI 1.0 Specification
- MIDI File Format Specification
License
MIT License