Platform independent realtime MIDI input and output for Ruby


Keywords
alsa, alsa-rawmidi, gem, hardware, jruby, linux, midi, midi-controller, midi-device, midi-messages, music, osx, ruby, ruby-gem, synthesis, synthesizer
License
Apache-2.0
Install
gem install unimidi -v 0.4.4

Documentation

UniMIDI

Platform independent realtime MIDI input and output for Ruby.

Also see MicroMIDI which builds a full MIDI messaging DSL on top of this library.

Features

  • Supports Linux, JRuby, OSX, Windows and Cygwin
  • No compilation required
  • Both input and output to and from multiple devices concurrently
  • Generalized handling of different MIDI and SysEx Message types
  • (OSX Only) Use IAC to internally route MIDI to other programs

Requirements

UniMIDI uses one of the following libraries, depending on which platform you're using it on. The necessary library should install automatically with the unimidi gem.

Platform

Install

If you're using Bundler, add this line to your application's Gemfile:

gem "unimidi"

Otherwise...

gem install unimidi

Usage

Blog Posts

In addition, some examples are included with the library

Tests

UniMIDI includes a set of tests which assume that an output is connected to an input. You will be asked to select which input and output as the test is run.

The tests can be run using

rake spec

See below for additional notes on testing with JRuby

Documentation

rdoc

Platform Specific Notes

JRuby
  • javax.sound has some documented issues with SysEx messages in some versions OSX Snow Leopard which do affect this library.
Linux
  • libasound and libasound-dev packages are required

Author

Ari Russo <ari.russo at gmail.com>

License

Apache 2.0, See the file LICENSE

Copyright (c) 2010-2022 Ari Russo