All Projects → chrisguttandin → midi-json-parser

chrisguttandin / midi-json-parser

Licence: MIT License
This module is parsing midi files into a human-readable JSON object.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
shell
77523 projects

Labels

Projects that are alternatives of or similar to midi-json-parser

syn2midi
Create pianobooster midi from youtube piano video lessons (Synthesia).
Stars: ✭ 42 (-48.15%)
Mutual labels:  midi
MIDIKit
🎹 Modern multi-platform Swift CoreMIDI wrapper with MIDI 2.0 support.
Stars: ✭ 26 (-67.9%)
Mutual labels:  midi
MidiAnimImporter
A custom importer that imports a .mid file (SMF; Standard MIDI File) into an animation clip.
Stars: ✭ 69 (-14.81%)
Mutual labels:  midi
LabMidi
Midi IN and OUT. Standard midi file parser and player. Midi Softsynth implementation.
Stars: ✭ 38 (-53.09%)
Mutual labels:  midi
auapp
Simple example of an AUv3 MIDI app
Stars: ✭ 18 (-77.78%)
Mutual labels:  midi
NegativeHarmonizer
A python tool to invert the tonality (a.k.a negative harmony) of midi notation
Stars: ✭ 23 (-71.6%)
Mutual labels:  midi
JZZ-midi-SMF
Standard MIDI Files: read / write / play
Stars: ✭ 28 (-65.43%)
Mutual labels:  midi
usbhostcopro
USB Host Co-processor
Stars: ✭ 54 (-33.33%)
Mutual labels:  midi
midi degradation toolkit
A toolkit for generating datasets of midi files which have been degraded to be 'un-musical'.
Stars: ✭ 29 (-64.2%)
Mutual labels:  midi
Arduino-BLE-MIDI
MIDI over Bluetooth Low Energy (BLE-MIDI) 1.0 for Arduino
Stars: ✭ 133 (+64.2%)
Mutual labels:  midi
tune
Make xenharmonic music and create synthesizer tuning files for microtonal scales.
Stars: ✭ 73 (-9.88%)
Mutual labels:  midi
android-midisuite
Android MIDI test programs and examples.
Stars: ✭ 123 (+51.85%)
Mutual labels:  midi
elektron-sysex-to-midi
A simple tool for generating MIDI-files based on Elektron MachineDrum sysex dumps.
Stars: ✭ 33 (-59.26%)
Mutual labels:  midi
kpop midi
MIDI transcriptions of kpop songs. Most examples focus on piano chord progressions.
Stars: ✭ 22 (-72.84%)
Mutual labels:  midi
MIDITapeRecorder
AUv3 MIDI Tape Recorder
Stars: ✭ 91 (+12.35%)
Mutual labels:  midi
midi-grid
DIY midi controller project
Stars: ✭ 60 (-25.93%)
Mutual labels:  midi
pacer-editor
Web editor for the Nektar Pacer MIDI controler
Stars: ✭ 16 (-80.25%)
Mutual labels:  midi
generating-music
🎷 Artificial Composition of Multi-Instrumental Polyphonic Music
Stars: ✭ 28 (-65.43%)
Mutual labels:  midi
Focusrite-Midi-Control
APP DOWNLOAD LINK (Mac OSX)
Stars: ✭ 24 (-70.37%)
Mutual labels:  midi
MidiGyver
No description or website provided.
Stars: ✭ 67 (-17.28%)
Mutual labels:  midi

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:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].