node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »



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

tests 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.


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.
    .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:


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: