midi2osc - MIDI to OSC forwarder
================================

midi2osc register itself as a writeable MIDI device. It then forwards
the MIDI messages it receives to the specified OSC destination.

Build prerequisites:

libasound(-dev)	(ALSA)
liblo(-dev)	(OSC)

Compilation:

make


Usage
-----

To use it with the Milkymist One,

- enable Ethernet on the M1
- ./midi2osc IP-address-or-host-name
- launch qjackctl
- click on the Connect button in qjackctl
- in the "Connections" window, drag a connection from each MIDI device
  you want to connect to midi2osc
- MIDI events will now show up in the MIDI settings dialog, etc.

midi2osc can also remap MIDI controls. The syntax is

c[<chan>][.<control>]=c<chan>[.<control>[=<value>]]

where <chan> is a channel number and <control> is the optional control
number. For example,

./midi2osc c8.1=c0.1 c8.2=c0.2 c9.1=c0.3 c9.2=c0.4 c0.7=c0.5 c7.7=c0.6 m1

would map the joysticks and two faders of a Faderfox LV3 to the
controls 1 through 6 on channel 0, and send the OSC messages to
a host called "m1".

If <value> is given, that value will be assigned for any control
message that matches the input pattern, irrespective of the input
value.


File-based mappings
-------------------

To load mappings from a file containing #-style comments, the
following invocation can be used:

midi2osc `sed 's/#.*//' filename` ...
