node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



This module encodes a JSON representation of MIDI data into a binary MIDI file.

tests dependencies version

By using this module it is possible to encode a JSON representation of a MIDI file into its binary counterpart. That JSON representation can either be created from scratch or produced by parsing an existing file with the midi-json-parser.


This module is distributed as package on npm. It can be installed by running the following command:

npm install json-midi-encoder

The only exported function is called encode(). It expects to receive a JSON representation as its only parameter. It returns a Promise which hopefully resolves with an ArrayBuffer containing the binary MIDI file. Here is a little example.

import { encode } from 'json-midi-encoder';
const json = {
    division: 480,
    format: 1,
    tracks: [
                delta: 0,
                trackName: 'example'
            // ... there are probably more events ...
                delta: 0,
                endOfTrack: true
        // ... maybe there are more tracks ...
    .then((midiFile) => {
        // midiFile is an ArrayBuffer containing the binary data.

To see what kind of events this module can handle, you may want to have a look at the JSON files used to test this module. There is also a TypeScript interface which describes the JSON representation.