midi-json-parser

This module is parsing midi files into a human-readable JSON object.

Usage no npm install needed!

<script type="module">
  import midiJsonParser from 'https://cdn.skypack.dev/midi-json-parser';
</script>

README

midi-json-parser

This module is parsing midi files into a human-readable JSON object.

dependencies version

This module parses a binary MIDI file and turns it into a JSON representation. This JSON representation can then be used to pass it on to the midi-player. It can of course also be modified to be encoded as binary MIDI file at some point again by using the json-midi-encoder.

Usage

This module is available on npm and can be installed by running the following command:

npm install midi-json-parser

Once the module is installed you can use its one and only function as shown in the example below:

import { parseArrayBuffer } from 'midi-json-parser';

// Let's assume there is an ArrayBuffer called arrayBuffer which contains the binary content of a
// MIDI file.

parseArrayBuffer(arrayBuffer).then((json) => {
    // json is the JSON representation of the MIDI file.
});

In case you are comfortable with TypeScript, this is the interface which describes the JSON representation:

interface IMidiFile {
    division: number;

    format: number;

    tracks: TMidiEvent[][];
}

The type TMidiEvent is a union of all possible MIDI events. Here is the complete list of all MIDI events this module can handle:

Acknowledgement

Developing this module wouldn't have been possible without all the great resources out there. The following list tries to mention a few of them: