A tactile interface instrument for improvised music, based on a woodwind-like key layout
This instrument was originally created as an alternative to the feedback flute I built for use with duck-rabbit. I wanted something that would be a more direct interface for synthesis and sound processing in SuperCollider, and an without the vulnerabilities and inconsistencies the Fluke had. I had also developed a taste for butchering the instruments that had caused me so much trauma in big bands in the past. I had been given a broken beginner C clarinet and from it, the ClariNot was born.
My hope was to retain the feeling of a woodwind instrument that I had enjoyed when using the Fluke in duck-rabbit. I wanted to use my thumbs more than I do in my saxophone playing, with a touch sensitive surface like a trackpad, and to put sensors in the sound holes of the clarinet. I started by cutting the old instrument in half. This was to make the instrument more compact, and so that a single surface could be used for both thumbs. I also sketched out a rough design for the instrument:
Inspired by Human Hard Drive's video, I downloaded the CapSense library for Arduino which allows you to turn metal objects into capacitive sensors. This allowed me to use small metal plates, covering the clarinet's tone holes, as touch sensitive keys. The resources and tutorials I found are a little out of date now, but the CapSense Library Page at Arduino.cc is a good place to start, and the videos shown above are a good place to start. If like me, you enjoy knowing how things work, the video by Pebble Soup is worth a watch.
I wired up the plates covering the clarinet's holes, threading the wires through the halves of the instrument's body. The wires were fed to a small board with some resistors and then out to the Arduino. The strength of the resistors is important; the higher the resistance, the more sensitive the metal plates are. I found 1MΩ resistors worked for me, anything above that and the plates behaved like proximity sensors rather than touch sensors.
At this point I made a few mistakes. I was not careful enough about the ammount of wiring relative to the size of the touch plates (Pebble Soup discusses this problem) and needed to re-wire the whole to make it more compact.
The second mistake I made was not realising that only one send pin from the microcontroller(µc) was needed. A circuit for a single sensor and Arduino might look like this:
At first I had wired a circuit like this for each sensor, probably an obvious mistake to someone more experienced with electronics. This caused the instrument's latency to skyrocket when several keys were pressed at once. Using the circuit below, I managed to improve this behaviour to a nearly managable level. Here only one send pin is used for all touch plates:
I modified the code example for the CapSense Library in the Arduino IDE, and set the Clarinot up so that it would send Serial messages to SuperCollider. Similarly, in SuperCollider I had modified the SerialPort.read help file example to get the Arduino data into my patches.
After a bit of dressing (and arguably too much hot glue), the first version of the ClariNot was done:
In hindsight, the hand made circuits for the capacitive touch sensors were a little but ambitious for a first build. They were also incredibly temperamental, and dealing with signal noise was a big problem.
There was also no need to use an actual clarinet. I had hoped the key layout would help make the instrument feel familiar, in reality the plates could just as easily have been arranged by those dimensions. Finally, everything in this build had been quite permanent. I had tried to make an instrument that would last (hot glue!), but it also prevented me from making any improvements or changes to the circuitry.
Clarinot Version 2
The second design of this instrument aimed to take the good aspects of the original, and produce something that was repairable, expandable and reliable in performance.
I decided not to use a clarinet to house the touch sensors anymore; the instrument body was not essential for a woodwind-like feel, and using the clarinet halves made the ClariNot bulky and awkward to hold. Instead, I cut sheets of perspex which could be fastened together with screws to make an enclosure for the Arduino and the wiring for the sensors. The touch sensors would be laid out on the bottom sheet of perspex. I had measured the layout of the keys on my soprano saxophone, and used this as a template for the touch sensors on the new ClariNot. I drilled holes into the bottom layer using the dimensions from the saxophone, and wired in metal buttons to serve as touch keys.
In this build, I didn't make my own circuitry for the touch sensitive keys. The circuit I had made for the original ClariNot had problems with latency, becoming slow when many keys were pressed simultaneously. I used the Adafruit CAP1188 breakout board, which can support up to eight touch pads. The board still has some latency, as it reads the sensors one by one rather than all at once, but the delay was much more manageable and consistent than with my own attempts. Another compromise here was that the CAP1188 only gave me an on/off value for each key, rather than an analogue stream. I didn't have to deal with signal noise, but at the cost of some reduced expressive control for those keys.
I have been using a fantastic extension to SuperCollider called MultiTouchPad which can read the touch data from an Apple touchpad. It's enabled great degree of expressive control from my thumbs with the ClariNot. It can read the position and area of contact of each finger, meaning each thumb has three dimensions of control.
The perspex enclosure also allowed me to add some simple LED's for some basic visual feedback. These were wired up and placed under the top layer of perspex, along with the breakout board. The initial layout of the ClariNot V2 is shown below:
The design of V2 has changed subtly over time, and has expanded to include five momentary switches and eight RGB LED's. I added these components because I wanted the instrument to function well enough without a laptop screen or a mixer. With V1 and the initial build of V2, I had been using a USB mixer to control parameters for the ClariNot's behaviour. This has changed since the addition of these extra components, and V2 now has enough input that it can function as a standalone instrument.
The software that accompanies the updated V2 can dynamically load sound modules which interact with each other. This has also offloaded a lot of the need for controls. Although I know how the modules behave, I have designed the software to load these modules and any samples the ClariNot uses at random. This means in performance, I have to discover how the instrument will respond while interacting with others. This version of the ClariNot's software was used for Part IV of duck-rabbit's Scattered Voices Series and the demo video shown below..
This version of the ClariNot has been a useful and reliable instrument which I have performed and recorded with as part of duck-rabbit, and more recently with other projects. The main issues with the instrument are in it's enclosure, and the touch sensors.
Although the Adafruit CAP1188 board has been reliable and easy to use, I miss having the more dynamic control I had with the eight touch sensors in V1. Capacitive touch sensing has been useful with the first two versions, but latency has been a consistent problem. My thoughts are moving towards different kinds of analogue sensors which might allow the eight fingers using these keys to have more degrees of expression as well as a fast response from the instrument. This will be something I take into consideration for a third version of the instrument.
The perspex enclosure is also becoming too small to house the new components I have added in to the ClariNot in V2. I had cut these sheets using the tools I have at home, and the enclosure is becoming a little frail as it gets hollowed out for new components. I plan to get a new enclosure made, again from perspex, which will be machine cut. This will make assembly and access to the instrument's insides much easier than with the rickety frame I have now. The enclosure will also be slightly bigger, with extra space which would allow for further extensions and additions in future. A thicker frame may also be slightly more comfortable to hold and perform with.