Skip to content
This module encodes a JSON representation of MIDI data into a binary MIDI file.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
src build(config): update tsconfig file Jun 13, 2019
test
.gitignore
.travis.yml
LICENSE
README.md
gruntfile.js
package-lock.json
package.json

README.md

json-midi-encoder

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.

Usage

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 ...
    ]
};

encode(json)
    .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.

You can’t perform that action at this time.