The Magnetophone is a sound sculpture with 14 guitar strings and 14 homemade electromagnets. Continuously generative, electromagnetic fields make the strings vibrate. Pictures available on the project’s main page.

Constructed out of aluminum and acrylic, the Magnetophone measures 3ft tall.



The circuitry sits atop the Magnetophone, with an Arduino Mega lowered down on a platform slightly below.


The Arduino sends out square waves to LM386 based amplifiers that power the electromagnets at the resonant frequencies of each of the strings. Its possible to sound overtones of the strings if upper partials of the harmonic series for an individual string are sent.


The circuit boards were acid etched, then treated with tinnit to keep them from oxidizing, thus the silver finish underneath. Each board has either 3 or 4 amplifier circuits, depending on which side of the Magnetophone it is being used for.



I made the electromagnets out of sewing machine bobbins wrapped with 32 gauge enamel covered magnet wire.


The electromagnets needed to have 8 ohms resistance to work properly with the amplifier circuits. After a lot of testing I found that 348 turns on the bobbin with the wire was the proper number. To help with the wrapping I used an Arduino, a photocell, and a drill. I put a strip of white tape on the chuck of the drill and every time it passed the photocell the level of light changed on the photocell and the Arduino counted for me. A light comes on when the right amount of turns is reached (thanks to Eric Rosenthal for the idea). Here is a sample video aiming for 10 turns:

When electricity passes through the coil a magnetic field is generated. Since I’m sending a square wave to the coil, the magnetic field is oscillating on and off at the frequency of the wave. I put a bolt through the hole of the bobbin, which becomes magnetized and vibrates with the magnetic field. The magnetic field from the bolt pulls and releases the string making it vibrate, which makes sound. On the back of the bolt I put a small rare earth magnet. One earth magnet strengthened the magnetic field nicely, anymore actually weakened it. Instead of sending a frequency to the coil, an input coil (50 ohms resistance) can be substituted. However, I found that the string vibrates more when it’s resonant frequency is sent rather than having an input coil.

To attach the coils I designed a complex insert and locking system, that would allow me to move the coils closer or further away from the strings:


But I needed to be able to move the coils side to side as well, and found that I couldn’t do it with this system. I ended up going a much simpler route, holding the coils down in place with one strip of material above them.


Here’s a test video vibrating a string:

Instrument Design

Acoustically, the strings vibrate the bridge, which vibrates the front plate, which pushes air molecules inside the resonance chamber back to bounce off the back wall. Plywood sheets are more resonant than 1/4″ acrylic, but the wood looked a little too much like a grandfather clock to me. Plus, I wanted it to look less like an instrument.


The strings spiral up around the sides of the piece. Different gauges of guitar string were used within each side to achieve variety on each side. They are tuned to an Ab major scale, but this was fairly arbitrary, the potentials for tuning being quite wide. The tone holes are also spaced so that no tone hole is facing another, my theory being that the air molecules should bounce back and forth against the sides inside the chamber.

Screen Shot 2013-12-02 at 12.13.27 AM


The Arduino is making some decisions about what to play, and will continually keep generating new music. It switches between two modes, sometimes choosing random strings to play, sometimes generating a pattern or sequence, then looping that melody for a bit.

Using the tone library (not the built in one), the Arduino Mega can play up to six tones at one time (it has six timers). In order to reuse the timers (not a standard function), shifting them to other pins for different strings, I had to modulo the tone pin count for the amount of timers I wanted to use. For example, if I wanted to use 4 of the Mega’s timers i would do this in the tone.cpp file:


Since I was using a Mega 2560 I also had to change everywhere in the .cpp file that said:

#if defined(__AVR_ATmega1280__)


#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)


Here is a schematic for one circuit, and an image of the three circuit board:

schematicMagnetophone 3ampsbrd


Thanks to Scott Garner for aiding me in my times of need, and to the Basic Analog Circuits class at ITP for etching a ton of PCB boards for me.

Special thanks to Danny Rozin, Eric Rosenthal, and Marina Zurkow for guidance, support, ideas, and bobbins.

Life Patterns

Curious about my daily patterns I decided to explore the location data from my cell phone recorded over the course of a year. I set out to make a year long installation where people could see where I was in real time, as I move about my life.

I started out by creating a map with TileMill and then laser-etching it onto wood, creating a 16 square foot map of NYC:

I used openPaths on my phone to record the location data. To access that data I wrote a Ruby script that goes online and gets any new locations I’ve been too and updates a CSV file containing all my locations:

This script is run from within openFrameworks automatically, which I used for the visuals. I wanted to create something similar to a flight pattern map that airlines use. To do this I decided that if the next point was above the preceding point the path would curve upwards, and if it was below, downwards. Also, I thought the radius of the arc should be based on the distance between the current point and the destination point, so some fun trigonometry ensued:

I then used MadMapper to projection map on the wood:

Of course, can’t have the grey map image projected too, so just black for the background:

What was really interesting to me, was how beautiful the predictability of my life ended up being, drawn out like this. But perhaps I should explore all those blank areas on the map more? Let me know where you think I should go…

Here’s some video:

Moshi Moshi (aka wife alert)

I have a hard time getting in touch with my wife. Usually when I call, the phone is in the other room or switched on vibrate and she hardly ever picks up. I decided to try a little more earnestly to get her attention (this may end up being really good, or really bad). I set out making what I call Moshi Moshi (Japanese for ‘hello’ on the telephone). Now, whenever I call her, our house is filled with a warm embrace of music. She also gets an email letting her know I’m trying to reach her. We’ll see how it works out…

I used Asterisk, Ruby, Sinatra, and an Arduino Due with an ethernet shield to make Moshi Moshi. When I call Kiori a Ruby script makes a post request to a Sinatra app that logs the call in a yaml file, and sends an email to her letting her know I’m calling. Every 10 seconds the Arduino is polling a web page served from the Sinatra app, which pulls data from the yaml file. If a new call comes in, a music file I created is played in our apartment from the Due (which can play audio files). There is a button on the hardware interface she can press to mute it.

moshi moshi (wife alert)
more photos

One of the challenging parts was actually getting the audio file to play more than once on the Due (seems like it should be simple right?). I discovered if I set the pre buffering to 0 (the examples set it to 100) then it worked fine: Audio.begin(88200, 0);

Continue reading

Water Jet Cutting

Water Jet Cutting is an industrial manufacturing technique that uses a very highly pressurized stream of water to cut through just about it anything.

It can cut rubber, foam, plastics, leather, composites, stone, tile, metals, food, paper, aluminum, and more. The water stream is usually mixed with an abrasive powder, but pure water can be used when cutting softer materials. A water cutter does not generate any heat when cutting, as other methods do, and thus can be used with materials sensitive to heat.

Typically water cutters move forward/back, right/left, and up/down. Some newer models also allow multi-axis cutting with angles ranging from 50 to 60, and sometimes even 90 degrees.

Locally you can get things water cut at Z-Studios in Brooklyn. Zach is very friendly and helpful there. Z-Studios prefers CAD files in .bxf and .dwg formats, but can work from other sources (drawings even), though that will cost more. In your CAD file make sure there are no layers and that all the lines are snapped together. Square angles are fine, but acute and oblique angles need to be slightly rounded. Typically it costs about $175-$200/hour. Depending on the thickness and density of the material, a large amount can be cut in an hour. They have a simulator that calculates exactly how long it will take to cut your job based on your CAD file and the material being cut. The maximum size Z-Studios can work with is 6″ thick, and 6′ x 11′ sheets of material.

If you need to cut material thicker than that you can go to Par Systems, a company that fabricates for the aerospace and shipping industries. They can cut material ranging up to 3′ thick.

eMachine Shop is an online vendor that provides water cutting service.

Other Considerations With Water Cutting:

  • Edges are good but usually not as smooth as milling or punching.
  • Some spots along the edge, such as where the cut ends, may be less smooth.
  • The edges of the cut part generally have a dull finish.
  • Kerf width is typically ~.060″, hence inside corners will be rounded to ~.03″ radius.
  • There may be some hazing on the surface – especially near the edges.
  • Thin flimsy structures and shapes where a high proportion of material is removed may present difficulty in meeting dimensional and flatness tolerances.
  • Edges will be slightly sloped – the bottom side will have slightly more material at the edge than the dimensioned top side.