• Stars
    star
    253
  • Rank 154,995 (Top 4 %)
  • Language
    Ruby
  • License
    Other
  • Created about 13 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Realtime MIDI IO for Ruby

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

More Repositories

1

micromidi

A Ruby DSL for MIDI
Ruby
135
star
2

d3-audio-spectrum

Spectrum analysis demo using D3 and HTML5 audio
JavaScript
106
star
3

diamond

MIDI arpeggiator in Ruby
Ruby
46
star
4

viddl

Ruby/Command line tool to download, cut, crop and resize video clips
Ruby
32
star
5

twigs

Alternate firmware for Mutable Instruments Branches synthesizer module
C++
26
star
6

midi-eye

Ruby MIDI input event listener
Ruby
24
star
7

web-repl

Javascript/Web REPL in Ruby
Ruby
22
star
8

nibbler

Ruby MIDI message parser
Ruby
21
star
9

audio-playback

Ruby/Command Line Audio File Player
Ruby
21
star
10

midi-message

Ruby MIDI message objects
Ruby
19
star
11

three-audio-spectrum

Spectrum Analysis using Three.js and the HTML5 Web Audio API
JavaScript
17
star
12

midi-winmm

Realtime MIDI IO with Ruby for Windows/Cygwin
Ruby
15
star
13

topaz

MIDI syncable tempo in Ruby
Ruby
15
star
14

alsa-rawmidi

Realtime MIDI IO with Ruby for Linux
Ruby
12
star
15

crontest

For testing cron jobs
Ruby
12
star
16

osc-access

Build OSC into Ruby objects
Ruby
8
star
17

micro-osc

A Ruby DSL for OSC
Ruby
8
star
18

mmplayer

Control MPlayer with MIDI
Ruby
6
star
19

midi-jruby

Realtime MIDI IO in JRuby
Ruby
5
star
20

pulse-analysis

Measure pulse timing accuracy in an audio file
Ruby
4
star
21

diamond-touchosc

Use TouchOSC to control the Diamond arpeggiator
Ruby
3
star
22

grandpa

ruby-gosu + mvc
Ruby
3
star
23

patch

Universal controller message hub
JavaScript
3
star
24

sequencer

Perform a sequence of events at tempo
Ruby
2
star
25

midi-instrument

Core MIDI instrument functionality
Ruby
2
star
26

midi-fx

Realtime MIDI effects
Ruby
1
star
27

analog

A Ruby helper for scaling numbers
Ruby
1
star
28

studio_config

my music studio config files
Ruby
1
star
29

liveset

Performance code/notes
Ruby
1
star
30

arirusso.com

HTML
1
star