For our final project in Sculpting Data Into Everyday Objects, I worked with Ben Kauffman to visualize the cohort* dropout rate for high schools in New York City using data from the city’s Department of Education.
Each bead on the map represents one high school in New York City, placed in its geographic location. The length of the string represents how many students dropped out from that high school. A bead is glued at each end to hold the string in place and enable it to hang down. If there are multiple high schools at one location, extra beads are added.
Instagram takes your photos and makes them look bad, because vintage is trendy. Instagramophone imagines what would happen if phone calls worked the same way. My final project for Redial, Instagramophone* is a service that lets a user choose from five different vintage audio filters to apply to their voice. You can try it out for yourself by calling (360) 215-1975 (edit: I took down the server that ran this, so the number no longer works).
Callers are asked to choose one of five different filters for their voice, all inspired by vintage sound media. The choices are a wax cylinder, an LP record, an FM radio, a cassette tape and scrambled porn. After recording their message, the effect is applied and played back. Callers then have the option of uploading their sound to Soundcloud.
The application was built in Asterisk, with SoX to do the audio processing and Ruby to upload to Soundcloud. When a user records their message, Asterisk sends the recorded file in to a shell script that does the necessary slicing and dicing to create my desired effect. The cassette tape filter, for example, looks like this:
#split the source recording and apply bends up and down
sox $1 /projects/instagramophone/temp/$tempConversionDir/bend.wav trim 0 1 bend .25,300,.25 .25,-300,.25 : newfile : restart
#recombine the split files
sox /projects/instagramophone/temp/$tempConversionDir/*.wav -c1 /projects/instagramophone/temp/$tempConversionDir/mixdown.wav
#add cassette tape sound effects to beginning and end
sox -c1 /projects/instagramophone/static/wav/cassette.wav /projects/instagramophone/temp/$tempConversionDir/mixdown.wav -c1 /projects/instagramophone/static/wav/cassetteend.wav -r 8000 -c1 /projects/instagramophone/messages/altered/$sourcefile
The scrambled porn filter is a little more complicated. After watching this clip of scrambled pay-per-view (SFW), I wanted to make my filter cut the audio in and out rapidly. I did that by splitting the recorded file in to many tiny chunks and alternating the volume up and down:
#split the file in to 0.1 second chunks
sox $1 /projects/instagramophone/temp/$tempConversionDir/trim.wav trim 0 0.1 : newfile : restart
declare -i counter=0
#loop through all the chunks
for i in /projects/instagramophone/temp/$tempConversionDir/*.wav; do
#alternate high and low volume
if [[ $counter%2 -eq 0 ]]; then
sox -v2.0 $i /projects/instagramophone/temp/$tempConversionDir/$tempEffectDir/$filename
sox -v0.1 $i /projects/instagramophone/temp/$tempConversionDir/$tempEffectDir/$filename
#recombine and add scrambled porn background
sox /projects/instagramophone/temp/$tempConversionDir/$tempEffectDir/*.wav /projects/instagramophone/temp/$tempConversionDir/mixdown.wav
sox -m -v1.5 /projects/instagramophone/temp/$tempConversionDir/mixdown.wav -v0.8 /projects/instagramophone/static/wav/scrambledporn.wav -r 8000 -c1 /projects/instagramophone/messages/altered/$sourcefile
Please call it up and leave a message!
*I searched the name and found that a similar project already exists with the name Instagramophone (link, GitHub), so I hope they don’t mind me using it as well. Both our projects use SoX to apply effects to the voice, but that’s about as much as they have in common.
Update: I added the video I had looping at ITP’s Winter Show at the bottom of the post. Also, the project got picked up on Engadget – check it out here! You can see my setup at the show and hear me talk about it for a bit.
My final project for Phys Comp is Cat Car, a “Feline Fitness Frenzy!” It was intended as a cat exercise toy, however ultimately the cats I tested it on didn’t really care much for it. But that’s not the point! I learned quite a bit about accelerometers, gyroscopes and XBees along the way, which I’ll share here.
Cat Car lets humans “drive” their cats by turning a laser pointer from side-to-side. The laser pointer is attached to a harness worn by the cat and its angle is determined by a steering wheel. The cat, wanting to follow the laser, will go where it is. We hope.