midi.io
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:receive input from MIDI devices in the browser
# midi.io

a library for capturing midi hardware input in the browser. it is a nodejs middleware which listens for midi input on and forwards the midi message to the client via socket.io.

## installation

    $ npm install midi.io  

## use

midi.io's primary functionality is on the server. it is responsible for creatting http and websocket routes your client can use to learn about midi devices. additionally, midi.io serves a backbone client library to use for accessing these resources. the server and client components can be used together or independently. a full [client and server example](https://github.com/catshirt/midi.io/tree/master/example) is contained in the repository for reference.

a basic midi.io server creates the following resources:

- `GET /midi/devices` - show all active midi devices  
- `GET /midi/devices/:id` - show details for a specific midi device
- `WS /midi/devices/:id` - a socket.io namespace for receiving midi messages from a specific device

## getting started (server)

to enable midi.io, simply pass it into your http server as a middleware, with your socket.io instance as it's first argument. the following example is the complete code for a simple midi.io server:

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

## getting started (client)

the midi.io client library is served via `/midi.io/midi.io.js` and requires backbone. it creates a single model and a single collection used to manage your midi devices:

- `MidiDevice` - a backbone model which emits midi events
- `MidiDevices` - a backbone collection used to browse and select midi devices  

the following code shows the client library in action:

    var devices = new MidiDevices(),
      midi_device = new MidiDevice({ id: 1 });

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

    // tie the next inbound midi message 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);
    });

    // only log midi events from device 1
    midi_device.on('midi', function(msg) {
      console.log('got midi from device 1', msg);
    });

## building documentation

[formatted documentation](http://catshirt.github.com/midi.io) is available and can be built using groc:

    npm install -g groc
    groc lib/**/*.js src/**/*.js readme.md

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。