Photo of Sound Branch, an arduino instrument with metal pieces hanging and turning next to bottles

Sound Branches

Working Video

How I made it

Last week's fingertap player

Last week I experimented with Fingertap Player, an instrument that replays fingertap by hitting objects with different materials. There were two problems with the previous version: I found out that combining force sensitive resistors(FSRs) were not very good at capturing rhythms, and servo motors were not strong enough to produce fast sounds.

So I instead took a different approach - I focused on making percussive sounds with servos instead of capturing rhythm precisely.

I also changed how I control the instrument: instead of using FSR, I used voice commands to control the instrument. This was possible thanks to the Teachable Machine and ml5.js library that I learned from Yining Shi's Machine Learning for The Web.

Code

Testing the code to make sounds

p5.js web editor

I modified Yining's sample code and applied my own voice trained model made with Teachable Machine to the instrument's controls. The sample code uses p5.serialcontrol to let the p5 code in the browser communicate with arduino's serial ports.

As a result, the voice control responds to three words - one, two and three. The 'one' command makes the servo turn 0 degrees, 'two' command 90 degrees, and 'three' command 180 degrees respectively.

Servo motors

Hanging metal pieces with wires to the servo wings

The biggest problem from last week was that the servos were too weak to produce any audible sounds. After several attempts I finally found out the problem - the USB cables. After changing the USB cables it worked nicely. However, the speed was still not sufficient to produce rhythmical movements, so I had to just settle with producing movements. (Because of these reasons, I am planning to use actuators next time when I make an instrument again.)

Materials used for the pendulum: scrap metal pieces, acrylic beads

I wanted to make a wind-chime like instrument, but instead of making bell sounds, I wanted to make the pendulum hit nearby bottles to produce different sounds. I attached metal scraps and acrylic beads to wires and made them hang from the servo motors' wings.

Bottles and Cans

Soup can, aluminum beer can and glass beer bottle

I used a glass beer bottle, aluminum can and soup can to produce sounds. These are all products that I consumed the last week - I explored some local beer in NYC and ate noodles with soup for breakfast. I also used an acrylic stand to adjust the height of soup can.

Hiding the wires and parts

Hiding the arduino, wires and servo in the stand - to make it look like an instrument

I had do find a way to hide the wires and breadboard, and making the servos hang from a high position.

I made a makeshift stand with a paper cup from cupcake packaging, wood block and readymade wood frames. I hid the breadboard inside the wood frame and connected the wires by drilling a hole in the wood block. I used a paper cup because it resembled a speaker/bell and hid the servo motors.