web-midi-api

2.3.0 • Public • Published

Web MIDI API for Node.js

nodejs windows macos linux raspberry pi
npm npm build Coverage

This package is deprecated and kept here for the old projects compatibility. It redirects to jzz:

// index.js:
module.exports = require('jzz');

If you are starting a new project, please consider using jzz directly.

Other versions

Usage

npm install web-midi-api

var navigator = require('web-midi-api');
// consider using var navigator = require('jzz');

var midi;
var inputs;
var outputs;

function onMIDIFailure(msg) {
  console.log('Failed to get MIDI access - ' + msg);
  process.exit(1);
}

function onMIDISuccess(midiAccess) {
  midi = midiAccess;
  inputs = midi.inputs;
  outputs = midi.outputs;
  setTimeout(testOutputs, 500);
}

function testOutputs() {
  console.log('Testing MIDI-Out ports...');
  outputs.forEach(function(port) {
    console.log('id:', port.id, 'manufacturer:', port.manufacturer, 'name:', port.name, 'version:', port.version);
    port.open();
    port.send([0x90, 60, 0x7f]);
  });
  setTimeout(stopOutputs, 1000);
}

function stopOutputs() {
  outputs.forEach(function(port) {
    port.send([0x80, 60, 0]);
  });
  testInputs();
}

function onMidiIn(ev) {
  var arr = [];
  for(var i = 0; i < ev.data.length; i++) {
    arr.push((ev.data[i] < 16 ? '0' : '') + ev.data[i].toString(16));
  }
  console.log('MIDI:', arr.join(' '));
}

function testInputs() {
  console.log('Testing MIDI-In ports...');
  inputs.forEach(function(port) {
    console.log('id:', port.id, 'manufacturer:', port.manufacturer, 'name:', port.name, 'version:', port.version);
    port.onmidimessage = onMidiIn;
  });
  setTimeout(stopInputs, 5000);
}

function stopInputs() {
  console.log('Thank you!');
  navigator.close(); // This will close MIDI inputs, otherwise Node.js will wait for MIDI input forever.
  process.exit(0);
}

navigator.requestMIDIAccess().then(onMIDISuccess, onMIDIFailure);

/web-midi-api/

    Package Sidebar

    Install

    npm i web-midi-api

    Weekly Downloads

    306

    Version

    2.3.0

    License

    MIT

    Unpacked Size

    5.73 kB

    Total Files

    4

    Last publish

    Collaborators

    • jazz-soft