Friday, September 07, 2007

Sensor Computing Summary and Recommendations

We have come to the end of my series of articles on sensors for music production. In the introductory article, Instrument / Device / Sensor: A Continuum I discussed how experimental musicians have taken to using an ever-increasing variety of transducers to shape their sound production. I then took a look at the common types of sensors you might choose to employ. These require controlling with some sort of micro-processor board. The third article looked at the characteristics of these, following which I listed 22 different available boards, ranging from home-built kits for the price of parts to professionally finished gear costing a couple of grand.

Meanwhile, over on my programming blog, diagrammes modernes, I have been looking at the software side of the equation. My study of music control languages began by listing some criteria for choosing between them. I took a look at both specialised tools and those based on the Python language. Then I focused on the intriguing language ChucK, with an introduction and a look at the language features.

Through all of this I have tried to keep a pragmatic tone and make my decisions as explicit and general as possible. Aesthetics has not really entered the discussion; these articles are more technical than artistic.

Put another way, this series is designed to help you quickly answer the technical questions so you can dedicate more time to the artistic particulars of your project. I have also tried to pitch the material to those of you just getting started in this field.

In the future I hope to write about what I have personally done with the knowledge gained through this research. Until then I have a more immediate task: I'd like to narrow down the exhaustive list of controllers, so as to make your decision-making even easier.

Making The Cut

The first part of this process is quite easy. Several of the kits we looked at were, for the most part, quite similar. Some can be eliminated from consideration since they are older technology (The BASIC Stamp, BasicX), others because they are incomplete, under-documented or require extensive assembly (Gainer, MAnMIDI, USB MultI/O-Box, MIDIsense). Those with an educational orientation are either larger than necessary or also require much soldering (The Bare-Bones Board, CUI, BlueSense). Three devices on the high end are distinctly over-priced considering the competition (I-CubeX, MIDIcreator, gluion). And one unit, the "thing", is not available in Europe.

I am fascinated by the SquidBee which intelligently networks to collect environmental data. But given that it is built from Arduino boards, it is possible to recreate the same functionality for less money. The price premium is for the integration.

This leaves nine products for consideration. For ease of comparison I will price these in euro with shipping inclusive to a typical European location.

Expensive But Worth It

On the expensive side of the spectrum I favour two units for those who want fully finished plug'n'play solutions with minimum hassle. The Eobody 2, so far unreleased, can be recommended on the basis of its predecessor. It is unique in providing a small performance interface for real-time tweaking of the received signals. Of course it is easy enough to add some input pots or switches to any of the boards I looked at, but Eowave has done this for you in a rather cool housing. And since it outputs MIDI it can be connected to a plethora of standard gear without hassle. For about €500 it is a handy performance tool.

For those who need ultra-low latency and high bandwidth the Teabox is the ticket. Built like a tank from the best possible components it will cost a lot more in terms of connectors (eg: sensors should be fitted with XLR sockets) and requires specially conditioned sensors for best performance. Consider the €315 spent on the (reasonably priced) base unit as a small part of the investment needed to build up a system around this interface.

Most of us, however, neither need that sort of performance, nor can afford it for one off or experimental projects. At a lower price point, there are two distinct classes of boards, based on their output protocol: MIDI or serial.

MIDI Solutions

MIDI has the advantage of being an accepted standard within the music industry, with thousands of products that can simply plug'n'play. No computer is necessary and no engineer or musician will look at you twice -- it's business as usual. Yet it's also easy to connect to a computer when you need to; computers may not come with MIDI I/O but add-on cards or USB adaptors are commonplace.

We have two MIDI solutions to consider. The Doepfer Pocket Electronic comes ready-made with firmware programmed for most sensors. But if you need to programme the board you must be running Windows as the software supports only that OS. The PE is limited in having no output pins. The website has lots of pictures of cool projects done with this device, but little support and no dedicated community. Still, for about €90 it is a great deal.

The physically larger (183 cm3 compared with 112 cm3) MidiTron is also more expensive at about €132. However it has two advantages. First, it has output pins in case you want to rig up LEDs, displays, or the like. Second, the configuration is done with SYSEX messages, which opens up device programming to any OS (or even non-computer MIDI devices). Of course this doesn't mean that it's easy to write the System Exclusive codes, only that it is possible.

Serial Boards

Serial output on USB ports is completely compatible with any computer system, but not with audio devices. But it has the advantage of 10-bit resolution, equal to what you are likely getting on the analog inputs to the boards. Compare that to the 7-bit of MIDI and you'll see that the serial boards are a lot more sensitive, which is handy if you're rigging up sensors that need smooth responses.

I prefer products that are open source, have a USB port (as opposed to RS-232), support cross-platform development and have an active community of helpful developers. This rules out Ezio, which in any case is expensive for what it does at €175. The PhidgetInterfaceKit is a more reasonable €80 and has an active forum. Though they sell their own line of plug'n'play sensors, one is not necessarily limited to these.

Still, it doesn't make the grade. Based on cost alone I'd prefer the Arduino Diecimila, obtainable for about €32. The development languages are open, cross-platform and purpose-built, unlike the scattershot approach of Phidget. It is proudly open source and international, with one of the best support networks I have seen.

Furthermore, the family of boards supports many different applications. The Arduino Mini is perfect where space is at a premium (its the smallest of all the products under consideration). The Arduino BT has built-in Bluetooth communications. Furthermore the full-sized Arduino can be fitted with one of a number of "shields" to enhance functionality. One of these provides RF communication (so you can build a SquidBee!), another enables motor control (for robotics), and so on.

If you need more I/O pins or on-board memory, consider Wiring, since it too is open source, cross-platform, and well supported. Better yet, the programming languages are similar, so you can easily move from one board to the other with a small learning curve. However, it's about twice the price at €66, so if you don't need the extra features, don't buy them.

Wiring is topped in capabilities and price by the Make Controller Kit, which is notable for its up-to-date technology. It has USB 2 and Ethernet ports and communicates using OSC -- the perfect solution (protocol here). They have a forum and helpful tutorials, though there's less info than for the other two products since this one is newer. But it's physically larger and twice as expensive again at €132. Unless you really must have OSC Arduino and Wiring are more cost effective.

Grand Finale

If you need 12-bit resolution and lightning fast responses get The Teabox.

If you require a MIDI device, don't need more than 7-bit resolution, would like to avoid any sort of assembly, and don't need to control output devices directly, the Doepfer Pocket Electronic will suit you fine.

If you don't mind doing a bit of building and want the most flexible cheapest solution, you won't go wrong with Arduino (adding in the Wiring board as a "big brother" if needs be).

OK, that's all. Now get out there and build something!

I thank the Arts Council for their support in this research.



Anonymous said...

Just wanted to say thanks for getting this together- this really is a great list to have.

Will you continue updating it?


robin said...

I originally did this research 9 months ago and did update it (with about 4 additions) before publishing it here. Perhaps I will have the time to continue this process. In any case, this isn't a field where things change too rapidly. There is so much you can do with the existing microprocessors that it's hard to imagine needing more.

robin said...

Well, I eat my words. Read Sensor Board Update: Eowave and Doepfer.

Post a Comment