Redefining 5.1 : The Journal
The presentation went rather well on the 4th. Technically, everything worked, and in terms of my presentation, I spoke not too badly. In other words, no one fell asleep.
On another note, Redefining 5.1 made it into the Spring 2010 ITP show.
At this point, I'm as ready as I'm going to be for my presentation later today. I've infinitely tested the headphones, and they work fine. I've also repeatedly practiced my presentation, and I feel good — not great, though. I once had a choir teacher tell me that a decent choir will sound great in front of an audience, because the choir–folk feed off the audience's energy. Let's hope for a friendly audience.
The following is a video I took during a user testing session on 17 April 2010. The music the users heard during that installation and used in the video below is called x0x0x0 and can be streamed by visiting http://www.noisefloormusic.org/music.html#x0x0x0. (A PDF score is also available.) If you attended the user testing installation, then I encourage you to compare the six channel version to the original stereo version.
After hearing from Brad Garton's students about La Monte Young's Dream House installation, from my thesis mate Drew, and finally from fellow composer Alan Blattberg, I finally went down to Church Street to hear what everyone was talking about.
The installation is housed in a large carpeted room with four loudspeakers mounted atop four enormous speaker enclosures (maybe 6'×4'×2') containing subwoofers. The room is filled with drone–like tones emanating from the loudspeakers, while the subwoofers generate bass frequencies. As you walk around the room, certain bass frequencies disappear. Like I said, interesting. (La Monte Young and Marian Zazeela are exploiting the erratic behavior of audio in a room not tuned for audio, ironically.)
On another note: I worked out all the bugs in the Max patch I used for the installation on the 17th. I tested for about five hours today — it works quite flawlessly. I'm excited about presenting on the 4th at 2:00 PM.
I also hope to showcase at the Spring 2010 ITP Show.
Although I encountered many technical issues (fucking Murphy and his law) that did not present themselves in my initial research, yesterday's installation went quite well.
About 90% of the attendees really enjoyed the experience, describing it as "wonderfully freaky," "trippy," and a "head trip" — literally. Those who didn't like it said that they didn't "understand" it. This is interesting: the overlap between both groups (those who liked it and those who didn't) laid in not understanding, but the former group wasn't concerned with it, while the latter group was.
In closing, here's a flickr set.
After countless hours of research, it turns out that I'll only be able to have one person at a time exprience this project. Using two headphones simultaneously is simply too large a burden on the computer; too many calculations taking place in Max for the audio to keep steady.
That said, however, one set of headphones works almost flawlessly. I'm looking forward to how people respond later today.
I'm going to try to install this project somewhere with both headphones in late summer 2010. I'm sure more research will yield favorable results.
I'm about 98% done with all the aspects that make up this project. All that's left is my having to finish up a few Max patches. (I've been programming Max for most of April, so I'm feeling competent.)
On Monday, I stumbled upon a big problem that could have led to disaster. I needed to tokenize data streaming into Max in four places, but I could only figure out the first place. Luckily, I found help through Emmanuel Jourdan, Chris Muir, and Luke Hall.
Finished the second direction–tracking board today. All that's left for each set of headphones are foam and screws: foam to keep the headphones' drivers at a distance from user's ears, and screws to affix the boards to each set of headphones' headband.
Finally, the dozens of programming hours have paid off: the headphones track well. As such, I will buiild the second pair of headphones this Friday.
Today I put down the myriad Arduino µcontroller C programming I've been doing for the last two weeks so I could concentrate on building the first of many Max patches for the mini–performances I plan to hold on 17 April. (A Facebook event page with a schedule is now up.) To build the patch, I had to create a 4–channel surround sound system in my home studio, along with a wireless 2–channel headphone audio stream.
I found about a one–third–of–a–second
latency glitch between my MOTU Traveler and
the headhones. I compensated for the delay with the
seek argument to Max's
I rearranged Ten Years Late for 8 channels to test the Max patch.
I mounted the board onto the headphones and all my physical calculations seem to be sound. The compass and accelerometer are centered to the board, the zip ties fit snugly around the breakout board and center the board onto the headphones' headband securely, and the entire device is not much thicker than the headband's width.
Now, get it to work.
The custom board for the head tracking system's prototype is done — and only half tested. Later today I'll fit the board onto the headphones and start serious research.
I just finished designing the breakout board for the headphones' head tracking system. I'll make the board by Sunday (28 March 2010) night.
Instead of building my own protoboard for all the tracking and wireless components, I've decided to build a breakout board, instead. The breakout board will allow me to insert and remove every item right on to the board, making the entire unit modular and serviceable.
I received two new accelerometers and another digital compass today. (I've been prototyping with Dimitris's accelerometer for the last few weeks, so it was time to acquire my own.) I have to present a rudimentary prototype in class on Monday, so I plan to have the headphones built by the afternoon of Monday, 29 March 2010.
The accelerometer is as noise–free as I'm goint to get. I had to continually weigh the amount of smoothing against the amount of delay on input from the sensor. In the end, I use an incredibly long 30–point smooth and a short 12 millisecond delay. I'm also squeezing out data from the Arduino at 115200 kbps, which I think might cause problems with the digital compass. So, I'm not out of the woods yet.
In class presentation went terribly. The projector in the classroom didn't recognize the school's laptop, so I couldn't use online images from this journal to support my presentation. This threw me off — big time.
To make matters worse, the guest thesis critics, Nancy Hechinger, Marina Zurkow, and Abigail's guest (whose name I don't remember) didn't understand my thesis idea. Of course, this was my fault, since I did not do a good job of explaining the project.
In the end, Nahana put it perfectly: "Show me the music!"
Over the last two weeks, I've been busy figuring out how to have make the accelerometer support the digital compass with as little latency as possible. This is proving to be time–consuming. In fact, this is perhaps the most difficult part of this project.
In terms of the stock Sony headhpones, they have paired very easily with the IOGEAR Bluetooth audio transmitters. However, for auio to stream uninterruptedly, I found that the headphones had to be within about 30 unobscured feet (9.1 meters) from the transmitter. When I walked around my apartment, into rooms and behind walls, the audio broke up. I haven'nt checked the stream with people in the Bluetooth's line of stream.
A nice surprise with the headphones is that they already have the amplifiers in place, so I don't have to build those.
As of today, it looks as though the headphones will be made up of the following:
Rajan and Dimitris suggested I use an accelerometer instead of a digital compass for the headphones. This was my original idea, until I consulted with the Sparkfun people back in late January. They advised me to use a digital compass instead of an accelerometer. When I did some research into the different digital compasses available, I found a tremendous price difference between the basic and advanced devices.
The basic units were priced between $30 and $40, while the advanced units were about $150. The cheaper units assume they will be placed on a flat surface. If they're tilted, they introduce noise into their x and y readings.
The more expensive units compensate for tilt by employing an accelerometer, thus yielding reliable values even if the unit isn't lying flat.
I chose a $35 model, the HMC6352, about which I discuss on the 13th below, because of the price tag. I figured I might do away with the noise in the circuit through software. Also, I considered embracing the noise.
So, at the end of class yesterday, Dimitris let me borrow his accelerometer, an Analog Devices ADXL330 accelerometer on an ADXL3xx Sparkfun breakout board:
The original code:
My code, which is tailored for colored output via the Terminal:
The output of my program looks like:
Today was our fifth thesis session, if you include the unscheduled session last week. In class, I spoke briefly about a few issues I was having with the digital compass (I'll discuss it in detail here tomorrow) and also the possibility of placing the digital compass underneath each chair, instead of on top of the headphones. This would make the headphones less intrusive, but it would also make them less personal and interactive, since each attendee would have to turn their chairs to interact with the performance.
In the end, I decided that I would build an extra set of headhpones without the compass and one with the compass. Those using the headphones laced with the compass have the option of standing up instead of sitting down to interact with the music, while those using the headphones without the compass will have to sit, since the compass will be placed underneath the seat.
Also, Drew suggested I look at composer LaMonte Young's work. Young has done something similar to what I'm doing here.
During the break, I sought out Rob Ryan, Technical Operations Manager at school, about short–throw projectors and projection screens. ITP doesn't have four screens, so he suggested trying spandex instead. (Rob has a background in film, so he knows what he's talking about.)
After school, I headed up to B&H to buy two Bluetooth audio transmitters:
I'm an idiot! The Sony Bluetooth headphones I purchased only connect to an existing Bluetooth device with A2DP. The Amazon description didn't say that. So, now I have to seek out a Bluetooth audio transmitter.
I'm spending the day updating the ITP Projects Database Web page for the spring 2010 show. This is good because I have to answer the following questions succinctly, which means I have to get to the point clearly and specifically:
- Personal Statement
- User Scenario
Hit a bit of a snafu today: the Bluetooth modules I purchased are not capable of streaming audio. It turns out that Bluetooth modules must contain something called an audio profile for them to stream audio. I assumed all Bluetooth modules contained audio streaming capabilities by default. You know what they say when one assumes: you make an ass of u and me.
In a way, however, this is a blessing in disguise. I bought a pair of inexpensive Bluetooth headphones that already have all the Bluetooth stuff, cables, and phones in place. I should have them on Thursday, 18 February, and they look like:
The wireless yaw (or direction) component of the headphones works! In other words, the components on the left side of the image I posted on 28 January (see below) are working fine. The digital compass is sending yaw data to an Arduino Mini, which in turn sends that information to a Series 2 XBee wireless module. The XBee transmits to a second XBee that is connected via USB to my computer. I'll post pictures today or tomorrow, and then I'll start working on the Max interface.
The digital compass works!
I modified some code I found via a third party
online. My code, which contains links to the
original code, is available at:
And lastly, a flickr set of how I set up the connections from the HMC6352 to an Arduino NG:
Here are the bluetooth modules I'll be using to stream audio. One module will be connected at the audio source, likely from a 1/4"–inch output from my MOTU Traveler, and the other module will sit on the headband of the phones.
In an email I received on the 4th, Abigail suggested I map out the first five weeks of class as follows (verbatim):
WEEK ONE: Feb 1 to 8:
- Come up with “thesis statement/s”, answer to questions.
- Begin construction of HEADPHONE PROTOTYPE
- Come up with detailed time–line for production with due dates and if/then branches, with some flexibility.
- PRESENT in class project summary and time line. 8 minutes presentation, 7 minutes feedback.
WEEK TWO: Feb 8 to 15:
- Incorporate feedback into project plan.
- Continue Prototype construction
- EITHER: Bring music sample, or brief description about what qualitiies music should have.
WEEK THREE (PLEASE NOTE: NO CLASS FEB 15)
- Refine project plan and project summary.
- COMPLETE PROTOTYPE ITERATION to the point of being able to Test with a live human.
WEEK FOUR: FEB 23
- Test with compositions with different characteristics.
WEEK 5: MARCH 1
- BRING “completed” prototype to class; be prepared to simulate basic aspects of the final piece
I almost agree with every weekly milestone Abigail suggested. A more realistic 5–week goal for me is to have the headhpones ready, working, and as bug–free as feasible.
I did not present last week, as time did not suffice for all presenters and I was at the tail end of the queue. I will, however, be one of the first to present on Monday, 8 February.
On Monday I should have the Sparkfun order in hand. I'll immediately begin working on the headhpones prototype.
I'll have the second presentation ready on Sunday, 7 February for Monday, 8 February.
For next week's class, we have to answer the following question: where do I wanna be in five weeks? I want to have a prototype of the headphones working with little or no glitches.
I ordered two Bluetooth modules and a digital compass from Sparkfun today — at a cost of $100. I have XBee radios, Arduinos, parts to build a power amp, and old headphones. Getting the digital compass to work and the Bluetooth radios to stream audio will pose the greatest challenges, so I'll tackle those problems first.
Here is how I plan to divide and conquer the headphones prototyping, from most difficult to least difficult:
- Get the compass to work as close to noise–free as possible
- Get the Bluetooth radios to stream audio as latency–free as possible
- Get the digital compass to direct data straight through the XBees or though an Arduino
- Get the multiple step–up and step–down DC–to–DC converters to work
- Get the power amp working
In preparation for the first round of presentations
in class next week, I researched various performance
spaces that are friendly to experimental music and
media. I also prepared the presentations section of
this Web site to host my findings. Here's the
Started to break down which parts I'll need for the headphones, and how much it might cost. As I suspected, each set will cost about $250. I won't know for sure until I build the first two prototypes.
The parts list:
- Headphones: $50
- Bluetooth modules (× 2): $80
- XBee wireless module: $25
- ATmega chips plus necessary parts: $10
- Digital compass: $40
- DC–to–DC converter: $20
- Shipping plus miscellaneous: $25
Since the cost is exorbitant and beyond my financial reach, I may only build, at most, four sets of headphones.
The most difficult component of this project will be the headphones, because so much processing is taking place locally for each user. Each set of phones has to stream directional data to Max while it streams audio data to a computer interface, such as the MOTU Traveler. Also, each needs an amplifier for the audio signal and a power supply to feed the electronics. Lastly, each set has to be modified (assuming I alter existing headphones) to strike a careful balance between sound in the room and sound streaming into the headphones.
I'm thinking Bluetooth modules will stream audio into each set of headphones, while XBee radios will stream each user's directional data to Max for audio and to Jitter for video.
I'm going to spend the next few days drawing crude sketches of different electrical configurations and seating arrangements. I'll also be looking at the myriad Bluetooth devices on the market for something small and inexpensive.
Today was the first of twelve seminar–type thesis meetings. We total eleven students plus the instructor, Abigail Simon — an artist specializing in photography. We met from 2:35 PM to 5:25 PM in 446.
In the trajectory of our session, each of us introduced ourselves. (Since i didn't know a single person in class, this was important.) We presented our possible thesis ideas and received feedback from Abigail and our classmates. The first homework is due next week.
During the comments section of my thesis idea discussion, someone in class suggested the use of lighting in place of any jitter patches. This is a great idea in the event that I decide to opt out of the Jitter option.
Contacted Dan O, Robert Rowe, and Joel Chadabe about a space for this performance. Robert Rowe denied any space at Steinhardt and Dan O couldn't find anything bigger than room 447.
After wavering for a while now, I finally decided on a thesis idea.