Skip to content

Repository files navigation

midi-parser

Parse MIDI data into JSON and back again.

This library is for you if:

  • You need to parse raw midi data into a more readable format.
  • You need to generate raw midi data to send to a device.
  • You need to manage midi device registration with a library of your choosing (ie. work directly with browser or node-midi APIs)
  • You need to easily parse all midi messages you receive.
  • You do not want to use an event based approach to midi parsing.
import{MidiMessage}from'midi-message-parser';constrawMidiData=[144,60,64];// <-- imagine this came from a midi device.consttimestamp=740;// <-- timestamp that came along with midi data.// Take raw midi info (from node-midi, browser midi events, etc.)// and parse it into something easier to understand.constmessage=newMidiMessage(rawMidiData,timestamp);// Message is a simple object describing the midi message.console.log(message.type);// 'noteon'console.log(message.channel);// 0console.log(message.number);// 60 (the key pressed)console.log(message.value);// 64 (the velocity)console.log(message.timestamp);// 740console.log(message.ccMode);// false (something like 'monoon' for channel mode messages)// You can also construct one from a browser MidiMessageEventconstmessage2=newMidiMessage(midiMessageEvent);// Or create one manually.constmessage3=newMidiMessage('noteon',64,// note number60,// velocity2,// channel0,// timestamp);// You can convert a midi message back into raw midi data to send.constoutputMidiData=message.toMidiArray();console.log(outputMidiData);// [144, 60, 64]

Some other midi libraries you may find useful:

If this library doesn't fit the bill, try one of these...

  • node-midi (open midi device ports with node)
  • noble (open ble midi ports with node)
  • midi-help (react to specific midi events like 'noteOn', 'cc', etc.)
  • ble-midi-parser (get the raw midi data from a ble midi event which you can pass to this library)
  • webmidi (easily work with browser Web Midi API)
  • func-midi-parser (parse midi files)
  • midi-parser-js (another midi file parser)
  • midi-node (stream based midi file/event parser)

About

Parse MIDI data into JSON and back again.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages