Skip to content

andrewangelle/midi-json-tools

Repository files navigation

MIDI JSON Tools

Packages to convert a binary MIDI file to JSON and back again.

Credit

These packages and the majority of their code originate from midi-json-parser and json-midi-encoder. I've condensed it to a monorepo and removed necessary bits to make it work in a node environment.

Packages

@midi-json-tools/midi-to-json

npm version @midi-json-tools/midi-to-json

@midi-json-tools/json-to-midi

npm version @midi-json-tools/json-to-midi

@midi-json-tools/json-midi-message-encoder

npm version @midi-json-tools/json-midi-message-encoder

Getting Started

Clone the repo

git clone https://github.com/andrewangelle/midi-json-tools.git

Install packages

cd ./midi-json-tools && npm i

Examples

See the examples folder for basic usage

Convert a MIDI file to JSON

import * as fs from 'node:fs/promises';
import * as path from 'node:path';
import * as url from 'node:url';
import { midiToJson } from '@midi-json-tools/midi-to-json'

const __dirname = url.fileURLToPath(new URL('.', import.meta.url));

const filename = path.join(__dirname, './Example.mid');
const response = await fs.readFile(filename);
const jsonFile = midiToJson(response.buffer);

Convert a JSON file to MIDI

import * as fs from 'node:fs/promises';
import * as path from 'node:path';
import * as url from 'node:url';
import { jsonToMidi } from '@midi-json-tools/json-to-midi';

const __dirname = url.fileURLToPath(new URL('.', import.meta.url));

const filename = path.join(__dirname, './ExampleMIDIJSON.json');
const response = await fs.readFile(filename);
const json = JSON.parse(response.toString());

const midiFile = await jsonToMidi(json);

Scripts

$ npm run build
$ npm run test
$ npm run lint
$ npm run format
$ npm run test

About

Packages to convert a binary MIDI file to JSON and back again.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •