# Physical Representation of Sound

11,951

81

7

This began from a desire to be able to physically represent sound, specifically the sound of myself playing piano blindfolded, complete with curses, clomps on the piano, and general frustration.
This instructable will show you how to make any song or .wav file into a three-dimensional physical object that can be created with a mill, a 3D printer, or any other method you desire.

(Note: a huge shout-out to Carlo Sammarco for the Rhino and Grasshopper instructions and defintions, and to Devon Henry for Frequency Amplitude Quantifier.)

### Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

## Step 1: DCLabs Website

Go to the wonderfully helpful website:
http://dclabs.wikispaces.asu.edu/Rhino+Resources

This .zip will contian a Rhino definition, a Grasshopper definition, a program called 'Frequency Amplitude Quantifier', and a .pdf with more detailed instructions about how to work all of them.

## Step 2: Frequency Amplitude Quantifier

After extracting the files, open the folder labeled "Frequency_Amplitude_Quantifier" and open the program of the same name.  (Image 1)

The program pops up, filled with alarmingly crowded windows.  First, take a deep breath, because this part is actually shockingly simple.   Then, select the smaller of the two windows and click on the 'clear all' button in the bottom left corner.  (Image 2)  After clicking, the text should be erased and the box should be empty.

Click the 'open' button in the upper left corner, and chose a .wav file to upload. (Image 3)

Click on the sound icon to the right of the 'open' button, so that it turns a gray-blue color.  This turns on sound collection, and you can see a box with some rapidly changing numbers underneath the 'open' button. (Image 4)

To begin data collection, click on the '1' button next to the sound icon.  In the right side of the window, you will see a rectangular box with dots representing data fluctuating as the sound is collected. (Image 5)

The collection will stop automatically once the .wav file is played through to the end, but if you want to stop it prematurely you can click on the '0' button next to the '1' button.  In the smaller of the two windows, there will be a long list of numbers, all beginning with 'sample.'  (Image 6)

Copy all of this information (Ctrl + A) and paste it into a notepad, or equivalent .txt program.  Make sure that the file is saved in .txt format.  (Image 7)

## Step 3: Grasshopper

(If you have downloaded the .zip from the DCLabs website, it included a .pdf with instructions about how do to the next step in both Rhino and Grasshopper.  I'm showing the Grasshopper method, because I personally find it easier than the Rhino method, but of course feel free to look at the .pdf and decide for yourself!)

Open Rhino, and start Grasshopper.  Open the location where the .zip file extracted. (For me, it was the desktop)  Open the 'Grasshopper Definition' file, and drag 'Audio Frequencies in Rhino' onto the Grasshopper window.  (Image 1)
In a second or two, this terrifying image will appear in your Grasshopper screen. (Image 2)
Again, take a deep breath.  Move to the far left of the definition, and on the left-most box, right click on 'path' and select 'Set one file path'.  (Image 3)
Select the .txt file you saved earlier.  (Image 4)
Zoomed out, the boxes will have changed from orange to gray, as there is now information flowing through the veins of Grasshopper!  (Image 5)

Note:
This Grasshopper Definition basically takes the data collected in Frequency Amplitude Quantifier and subtracts the words from each line of code, so only the numbers remain.  Again, credit goes to Carlo Sammarco for this amazing Grasshopper assistance.

## Step 4: Grasshopper and Rhino

At this point, you can peek over in Rhino and see the shape that has been created with the data.  (Image 1)

By adjusting the slider at the bottom of the definition in Grasshopper, you can change the height (amplitude), length (time), and width (frequency) of the three-dimensional form.  (Image 2)

Once content with the dimensions, go to the box at the very far right of the definition, right-click, and select 'bake.'  (Image 3)

There will now be a second form that, once Grasshopper is closed, will remain in Rhino.  (Image 4)

Close Grasshopper, and scale the form to whatever dimensions you want.  Since I am going to be milling out foam for a plaster mold, I have shrunk it down quite a bit.  (Image 5)

## Step 5: Preparing for the Mill

My plan for this piece was to have an end result of plaster, of the same form that you see in Rhino. (Image 1)  To do this, I will be making a solid box from which I will then subtract the wave form, so that I will be milling out the negative, and then casting the positive.  This is what I will be describing in the next step.

To successfully subtract the wave form from a solid box, the wave form must first be a solid object.  To do this, I first duplicated the edge of the wave form starting on the shallow side.  Lines were then drawn from the edges of that duplicated line to another line drawn parallel to the C plane.  (Image 2)  After joining all of the lines, I used the patch command to create a surface.  (Image 3)  I did this same thing to the other three sides, and then created a surface on the bottom. (Image 4)

Once all of the surfaces were joined together to create a solid surface capable of passing the volume test (using the volume command to check to see if the object has an internal volume and is therefore an actual solid), I created a box around the entire object.  (Image 5)

In order for the objects to Boolean difference properly, the wave form must stick out slightly.  (Image 6)
After the Boolean difference command, the object should look like Image 7.

Flip and orient the object so that the cavity is facing up, and the object is ready to put into Visual Mill.

Note:  This is the way that I decided to go through this process.  Of course, with Rhino, there are roughly 630 different ways to create any single piece; this is my own interpretation of the process.

## Step 6: Milling

Here are some images of the foam being removed from the (mostly) dried plaster.  I used pink insulation foam for this piece, because it mills well and doesn't produce much foam dust.
If you have never cast plaster from foam before, make sure you use copious amounts of Murphy's Oil Soap on the foam before casting.  Once the plaster is poured, expect a much longer curing time because the air-tight foam greatly inhibits the drying process.

## Step 7: The Final Piece

Here are some images of the final pieces, installed for presentation, and then lit by the natural light in the studio.

2 123 10K
75 20K
141 10K

## 7 Discussions

Hi readers, it's come up a few times that this app no longer exists. If I find another method I'll try and share it, but for now, this step has become obsolete. Sorry, all!

1. Line 37: Function 'ParseLine' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.

this is what i get on the grasshopper component .

how a i suppose to solve this ?

and there is another error in the component saying insufficient interpolation points for a curve.