midi.io

receive input from MIDI devices in the browser

npm install midi.io
1 downloads in the last day
7 downloads in the last week
17 downloads in the last month

midi.io

a midi library for the web browser built on nodejs.

installation

$ npm install midi.io

example app contained for reference.

use

midi.io is a connect middleware. it requires a socket.io instance as it's first argument.

var connect = require('connect'),
    socketio = require('socket.io'),
    midi = require('midi.io');

var server = connect.createServer(),
    io = socketio.listen(server);

server.use(midi(io));
server.listen(9000);

the server above will create the following resources:

GET /midi/devices - show all midi devices
GET /midi/devices/:id - get a specific midi device by port number
WS /midi/devices/:id - creates a websocket subscription to midi events from a specific device

client library

a backbone client library is also provided. it creates two classes:

MidiDevice - this is a backbone model which emits midi events
MidiDevices - this is a collection to manage multiple devices

<script src="/midi.io/midi.io.js"></script>
<script>

    var devices = new MidiDevices();

    // show all midi devices
    devices.fetch({
        success: function() {
            console.log('found devices', devices.models);
        }
    });

    // tie a midi event to a specific function
    devices.learn(function() {
        console.log('the next midi button pressed will always log me!');
    });

    // log all midi events for all devices
    devices.on('midi', function(msg) {
        console.log('got midi', msg);
    });

</script>
npm loves you