UPDATE: AUGUST 2009 - the Ondestrak has been published as part of a paper in the 6th Sound and Music Computing Conference in Porto Portugal! Be sure to check out all of the other cool Gametrak applications. Here's the link: http://smc2009.smcnetwork.org/programme/pdfs/243.pdf
Lastly, thanks for everyone who's shown enthusiasm in this. The word "Ondestrak" didn't exist 8 months ago, as confirmed by the total lack of Google hits. Now there are 14 pages of hits (admittedly, mostly YouTube related, but still). So, again, thanks everyone.
Step 1: Historical Background
What made the Ondes Martenot unique compared to its more popular cousin, the Theremin, was that it was a tactile instrument. As anyone who's ever played with a Theremin can attest to, they can be difficult instruments to play with any sort of intuition or accuracy because there are no physical markers to gauge one's actions with. The Ondes, on the other hand, employed a ribbon-controller composed of a looped string with a ring tied in the middle in which one placed one's finger and slid the ribbon back and forth to control pitch. In later models this controller was mounted parallel to a keyboard so that the location of the ring, or "la bague," directly corresponded to the notes above it. This configuration allowed for greater accuracy than the finicky Theremin controller and was more intuitive to musicians familiar with the traditional keyboard.
Step 2: Available Contemporary Controllers
EDIT: I've just stumbled across Electric Western's Phantastron, which looks like a very promising, reasonably affordable, all vacumn tube, kit-project instrument that gives a very convincing early synth sound with a ribbon-type controller. All I can say is that it looks very promising.
Step 3: My Project
All of the materials needed for this project are a Gametrak video game controller, a copy of the programming environment Max/MSP (found at Cycling '74), and a few sundry pieces available at any hardware store.
I really want to stress the simplicity of this project. I have as much knowledge of electrical engineering and programming " as a novice in a nunnery," so this is all within your grasp. The hardest that this project gets is a bit of soldering and hack-saw manipulation, which, trust me, you are capable of.
I sought to build a controller which mimicked a true musical instrument. By that I mean that I wanted the user to be able to alter the instrument's pitch, volume and timbre, and for the instrument to go silent when not being interfaced by the musician. I'm also interested in the way that the Ondes captures gestures with both the ribbon in the right hand and the volume button, or "touch d'intensite" in the left. I wanted all 3 aspects of my instrument's sound to be manipulated by the gestures in one hand.
Step 4: The Gametrak
You can get two types of Gametraks. I recommend staying away from the X-Box version, if only for the fact that you'll have to buy an X-Box to USB adapter. There is one other reason as well, but we'll get to that later.
Step 5: Deconstructing the Gametrak
You'll notice that the Gametrak is actually a remarkably simple device. There a basically two systems each with three variable outputs; this gives X, Y, and Z coordinates for each glove.
In each, the wire is wound around a spring-bound spool laying horizontally. On top of the casings for these spools a simple set of gears transfers the spinning of the spool to a potentiometer. This measures the gloves distance from the controller, more or less its Z axis.
From the opening in the spool casing the wire passes through a vertical pulley which sends it up under and out the tip of the joystick. This allows the wire to be freely pulled from the controller while simultaneously measuring the X and Y axis with the joystick.
The string ends in a plastic female connector which fits to matching male connector on the glove. These wires are under constant tension from the steel spring in the spool and these connectors are the only thing that keeps the wire from snapping back into the spool.
We'll be using almost all of the controller's important parts. The only parts we won't be using are the plastic casing, the gloves, the two glove-wire connectors, one plastic pulley, and the four weights found in each of the controller's corners. If you can find ways to use these in the finished project, go right on ahead. I'm all for conservation of resources.
Step 6: Turning Your Gametrak Into a HI Device
Getting your Gametrak to send data is one of the simplest steps, yet one of the most frustrating if you're just expecting your device and computer to immediately communicate. First, remove the two sets of screws and washers which connect the electrical board to the top of the spool casing. Gently lift the board up. On the bottom side you should notice a lot of text labeling the various parts of the board. Luckily, you don't really need to understand any of this.
The important parts are the ones labeled "PC" and "XBOX." These two connection points merely need a touch of solder to determine the device's output. If your Gametrak, like the one pictured, is of the X-Box variety, the conversion to HI is not too difficult. Start by scraping the solder off on the X-Box connection point. Once you have that fully removed check the PC connection point. If i's covered with a veneer of plastic, take a razor blade and shave it off until you get to the metal, being careful not to affect any other part of the board. Next, apply a dab of solder connecting the PC connection points.
Lastly, hook the USB cable into your computer and check that the HID is working. I used the HI Device Tester in MaxMSP to do this step. If it's working properly it should start spitting out numbers. If it's not, double check the solder as well as the wire connectors. They may have become disconnected when you took the board off.
For another take on getting your Gametrak to spit-out HI, try exploring this node on the website for the Center for New Music and Audio Technology (CNMAT), at the University of California, Berkeley, where I made this controller as an independent-study project.
Step 7: Taking Out the Necessary Parts
It may be a little tricky to remove all of these components considering that the wires are still under tension. Eventually you'll have to remove those plastic connectors to remove the joysticks, so you may as well go ahead and do so now. Just be careful not to loose a grip on the wires and let them snap back into the spool. Go ahead and cut the wire just below the connectors. Once you have the wires unthreaded from the joysticks I suggest putting the connectors back on before rethreading them and tying a strong knot to keep it from pulling through again. These connectors should keep the wire from fully retracting.
You'll also find that the two joysticks and the two spools will become a little unwieldy since they're all connected with rather short wires to the electrical board. These are connected to the board with small plastic connectors and you could just disconnect these, but I found them difficult to pull out without damaging the wires since they are glued in place. Overall, I found it easier to just snip each wire approximately half way, leaving enough space to strip and solder later on. You shouldn't have to disconnect the wires leading to the spool on which the board sits nor the output USB chord.
When all is thoroughly torn apart you should have been able to salvage two spools with their wires retracted (one with the board connected), two joysticks, and one pulley (you don't need the other.) These five components will form the core of the Ondestrak.
Step 8: Altering One of the Spools
The first step of this process is the messiest and most dangerous part of the entire project, removing the spring. The spool's tension is created by a tightly wound steel spring at the spool's center. This spring is coated in an incredibly slick and messy grease, is under great pressure, and has incredibly sharp edges. When you attempt to remove it, be sure to do so with some protective gloves and in an open location (i.e., not your work bench or any place with things that could get knocked over when the spring shoots out.) Begin by unscrewing the four screws which keep the spool together. When doing this be careful to keep the top and bottom halves squeezed together since they may quickly spring apart when they begin to separate. Once you have the screws remove, slowly take the spool apart, making sure to open it away from yourself. Once the spring has shot out, carefully discard of it's tangled remains, but take caution, since it may continue to sporadically uncoil even once removed from the spool. Now remove the plastic wire and set it aside. We'll be using it later.
The secondary spool should now be in three parts, the inner spool, the spool casing top (with the potentiometer), and the spool casing bottom (with a bunch of grease in it). We'll be working with the spool casing bottom. First, you'll be tempted to clean out all of the grease to make your job a bit cleaner, but I'd recommend against doing this. I did it with mine and the resulting action turned out to be a bit sticky and jerky. The first step, instead, will be to cut the small appendage off of the bottom half. This appendage is there to guide the wire out of the spool and you should leave it in place on the primary spool for just that reason, but on the secondary spool it's redundant and will get in the way. I used a fine hacksaw to trim this off. Next, I used the same saw to create an opening in the side wall of the bottom half large enough for the wire to exit the spool casing and once it has looped through the original opening. Take a look at the pictures below to get a better idea for what you're trying to accomplish with this step. The goal is to leave the spool in tact enough so that it can still screw back together but to create an opening wide enough that the wire won't wear against the edges.
Step 9: Take a Trip to the Hardware Store
You'll need a few tools for these next steps, including some sort of saw and a screwdriver. I also recommend having some sand paper, though that isn't strictly necessary.
Here is the material you'll need:
- A board: Any type of wood will do. You'll want something long, say four or five feet (your instrument will be half the length of whatever board you get), fairly deep (long enough for your fingers and most of your palm to comfortably sit on), and not to thick, about 3/4 of an inch or so (so that it isn't too heavy or bulky.
- A pair of door hinges: They don't have to be fancy, they just need to swing freely without catching.
- Four small L brackets: Not too large, just the small ones which are about an inch high. Of course, as with all of these parts, look at the final goal of what the part is trying to achieve and if you can think of a simpler or more readily-availabe part to use to do the same thing, please do.
- Five small binder clips: Not the impossibly tiny kinds, but the ones that are about the width of your index finger. This controller pretty much runs on these things.
- One (or two) compression springs: Large enough to support the hinged weight of the board, but not so strog as to be too resistive to compression.
- One small extension spring: Just long enough to give the wire some give when you pull on the ribbon controller yet strong enough to keep the ribbon's tension.
- A few wood screws and washers
- A strong adhesive: It must be able to stick to both wood and plastic and resist strong vertical and lateral stress. I used a thick and malleable double-sided tape.
Step 10: Assembling the Controller's Frame
Install the large compression spring between the two boards. I accomplished this by putting in a pair of small wood screws with washers under their heads most of the way into the boards on the spots where I wanted the spring to attach to. I then slipped the bases of the spring under the washers in such a way that it wasn't in danger of jumping out when fully depressed. I found that I only needed one spring on one corner of the board to give it the amount of give that I was looking for, however you may want to experiment with multiple springs or alternate spring placement.
As a final touch, use some sand paper to sand down the top corner of the board so that you can comfortably rest and slide your palm along it.
Step 11: Attaching the Gametrak Parts to the Frame
The two spools and the pulley were attached to the frame by a very-sticky, double-sided tape. This turned out to not be enough for the pulley so I had to screw it into the board as well. If you can devise a better way of attaching these to the board so that they withstand the lateral forces of the ribbon, go right on ahead. I just used the pieces that I had available to me. If you do choose to use wood screws as I did for the pulley be careful that the screws don't split the plastic. The secondary spool should be at the back of the instrument with the two openings facing the length of the board. The primary spool should be at the front of the controller so that the opening, with the wire-guiding appendage, sticks out over the front edge of the frame. Once you have all of the components attached to the frame, take the wire out of the primary spool and wrap it around the bottom of the frame. I attached it back around to the hinge, but any point will do as long as it keeps the wire wrapped around the front of the controller. Now, when you depress the controller, the wire should wind back into the spool and then come back out again when you release the controller.
As for the joysticks, they are a bit more tricky to attach. You'll want to make sure that they are positioned so that the front half of the ribbon passes through them. I used two sets of L-brackets, screwed into the frame, to attach the joystick boards to. I then attached the joystick boards to the L-brackets with two pairs of binder clips, being careful to ensure that the clips don't short-circuit the wiring on the board.
I think that the pictures will be your most helpful reference for this part of the project.
Step 12: Creating the Ribbon
First you have to make the ring. This is the part of the ribbon through which your finger will go when playing with the controller. I used a binder clip with the two arms removed to create a permanent loop in the plastic wire. This meant that I could avoid making any cuts in the wire and tying any more knots than I already had to. However you attach the ring, make sure that you have plenty of wire on either side to loop around the rest of the controller.
Once you've put your ring in place you'll have to thread the both ends of the wire through the joystick. This is a breeze in reverse when you're taking the instrument apart, but it can be quite the challenge when you're trying to re-thread them. My only advise is persistence. The ends of the wire can and will get through the small opening at the end of the joystick, it just takes a bit of will power.
Next, loop the ends around the two pulleys. For the secondary spool, you may want to consider using some material on the spool's surface to help it grip to the smooth plastic wire. I used a thin strip of soft velcro because it was what I had lying around, but I imagine some light, pliable rubber would do the trick nicely.
Once you have the wire looped around the entire apparatus you'll have to tie it back together. This is where the small extension spring comes in. By tying either end of the ribbon to the spring you can pull and push on the ribbon to work the two joysticks. Make sure that the point where you tie the spring doesn't limit the ring's mobility along the controller. You'll want to tie the ribbon so that it is constantly taut, not so taut that it stretches the spring, but such that the spring will immediately expand when you begin to stretch the ribbon outwards. As you can see in the picture, I decided not to cut off the excess plastic wire and instead let it lie at the back of the controller. As long as it wasn't tangling with anything I figured that it was best to leave it in case I had to re-tighten the ribbon.
Step 13: Turning Your Controller Into an Instrument
Turning your controller into an instrument is where the programming comes in. I won't go into too much detail about that here other than to give a brief explanation of what I programmed each function to do. I found MaxMSP to be a fairly-intuitive environment to learn, so I recommend using it.
In the end, the controller will give six variables. Two for each joystick and one for each spool. I programmed the primary spool to controller the instrument's volume. When the controller is released and the board is open the volume is at zero. When it is fully depressed it is at full volume.
The secondary spool controls pitch. I had it programmed to create a simple sine wave. The farther to the left the ring is, the lower the pitch and the farther to the right it is, the higher the pitch gets. I had mine programmed to have about an octave-and-a-half range. I didn't have the time to make the ribbon controller follow a linear pitch progression, like on a keyboard. Instead it grew exponentially since its physical position was directly correlated to a change in hertz. This would be an easy fix to anyone a bit more savvy with musical programming. Also, I found it helpful to have a visual pitch reference on the controller. As you can see in the pictures, I have a few pitches labeled on a piece of paper which I taped along the path of the ribbon.
As for the two joysticks, my idea was have these drive through a sort of of timbre space. I matched the X and Y coordinates from each joystick and averaged them so that the pair of controllers produced two variables, one for lifting the ring off of the frame and another for pushing and pulling it along the frame. As a short term fix I had these controls set to alter variables in frequency modulation patch which gave the affect of changing the instruments timbre, independent of the pitch control.
I've posted three videos here. The first shows the working and manipulation of the instrument from up-close. The second one is a demonstration of the instrument without the manipulation of the joysticks. The final video is another demonstration but with my attempts at timbre manipulation.
I hope that you've enjoyed this. It was a lot of fun to make, and even if you don't decide to follow my plans I hope that it's given you some ideas for cheap and easy ways to enter into the world of DIY music. Thanks!
Up-Close Manipulation (No Instrument Sound):
Without Timbre Filters (Straight Sine Wave):
With Rough Timbre Filters (Sine Wave with Frequency Modulation):