Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

midi-message-parser

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

midi-message-parser

Parse MIDI data into JSON and back again.

  • 2.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

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';

const rawMidiData = [144, 60, 64]; // <-- imagine this came from a midi device.
const timestamp = 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.
const message = new MidiMessage(rawMidiData, timestamp);

// Message is a simple object describing the midi message.
console.log(message.type); // 'noteon'
console.log(message.channel); // 0
console.log(message.number); // 60 (the key pressed)
console.log(message.value); // 64 (the velocity)
console.log(message.timestamp); // 740
console.log(message.ccMode); // false (something like 'monoon' for channel mode messages)

// You can also construct one from a browser MidiMessageEvent
const message2 = new MidiMessage(midiMessageEvent);

// Or create one manually.
const message3 = new MidiMessage(
  'noteon',
  64, // note number
  60, // velocity
  2, // channel
  0, // timestamp
);

// You can convert a midi message back into raw midi data to send.
const outputMidiData = 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)

Keywords

FAQs

Package last updated on 04 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc