The Infusion Systems ICubeX is a digitizer that can be used to convert analog sensor data into a MIDI data stream. The ICubeX can be used in "Host" mode, where a computer recieves the sensor values via MIDI System Exclusive messages and does its own processing (and output) based on the sensor data. It can also be used in "Standalone" mode, where a computer is used to configure the digitizer, after which it can be unplugged from its connection to the computer, and will do the mapping of sensor inputs to MIDI data by itself.
icube
is a relatively small application for Linux that
allows ICubeX users to program their digitizers from within Linux, and
also acts as a sensor->MIDI mapping program.
icube
is a functioning program that can be used with an
ICubeX. It currently only works in "Host" mode - it cannot be used to
program the digitizer for "Standalone" use (this will hopefully work
very soon). It can map sensor data
into NoteOn/NoteOff, Program Change, Controller, PitchBend, Channel
Pressure and Polyphonic Pressure messages. The NoteOn mode includes 3
variants: simple noteOn/noteOff based on a sensor threshold,
noteOnWithPressure, in which sensor changes after a note is turned on
but before its turned off are converted to channel pressure messages,
and noteOnToggle, in which a noteOn is sent when the sensor first
exceeds a threshold, and turned off the next time it exceeds (not
crosses) that threshold.
That said, its also a very new program. There is a thread related bug
during startup that will not arise if run under
gdb
, making it hard to track down. I am sure there are
other problems too. If you are not a C++ programmer, ICube is quite
likely to be more hassle than its worth right now.
It turned out that I had a poor design for handling note-on/note off mappings that led to poor performance "feel". This has been dramatically improved. There were also some other small bugfixes.
I am trying to design a mapping system that would allow the various FSR sensors (touch, mini-touch, etc.) to be used as switches with set-and-stay-set behaviour rather than the current "return to zero" when all pressure/tension/flex is removed.
trace-output
variable added to
the config file, invert button and midichannel controls now operational.
icube
is currently
available
as a tarball (.tar.gz) file,
in the same state that you'd end up with if you were using CVS.
I intend to try to reduce the library dependencies in the near future.
Its not right that such a simple program should have so many dependencies.
You will need a set of my usual audio+MIDI development libraries,
available (at this time, only via CVS) from
the Quasimodo website. Specifically,
you will need:
icube
:
% sh ./autogen.sh % ./configure % make % make install-guileDATA % make install (optional)
icube