Monthly Archives: October 2010

Road Trip!

In two hours I’ll be picking up a rental van and driving, with 6 of my closest craziest friends to Washington, DC for the Rally to Restore Sanity. I’m crashing with some friends who live in the DC area. I even sort of made a sign to hold.

I’ve never been to a rally before, as far as I can remember, nor any other sort of mass political demonstration, so I figured it was about time. Besides, how often do you get a chance to attend a huge public event in favor of respectful, deliberative analysis?


When I got back the Chorallaries’ Spring Concert recording of 2004, my sophomore year, I was elated and disappointed. Our performances sounded amazingly good to me, far better than we had any right to sound in a live performance in some random lecture hall. Unfortunately our signature song, It’s Raining Men, was terribly clipped, meaning it was so loud that the sound’s waveform went “off scale” when the soloists were singing at their loudest.

I scoured the web for a program that could fix clipped audio. I eventually found a very sophisticated program that could do it called Postfish… but it was only half-finished and hard to install. I asked the author how it works, and he replied with a matrix algebra equation that I found incomprehensible.

After school ended I had a few free days, and I decided to attack the problem myself. I spent one whole day writing a very crude clipping-reconstruction plug-in for Audacity and posted it to the mailing list. I fixed a bug, and posted an update the next week. It sort of worked on my clipped track, but the clipping was really too severe for it to work well. I gave up and mostly forgot about it. I checked back once a few years later and it had been deleted from the plug-ins download page. I figured it had been supplanted by something better.

That was six years ago. Today someone mentioned a “Clip Fix” plug-in included with Audacity 1.3 that used the same crude algorithm I’d implemented in 2004, so I took a look in /usr/share/audacity/plug-ins … and sure enough, there was my code, in clipfix.ny.

Until today I thought that the most widely installed piece of code that I’d written was Distance, a program performing time-of-flight distance measurement for sound pulses that is installed on 2 million OLPC XO laptops. As it turns out, that’s probably not true. Clipfix.ny is included with every copy of Audacity 1.3.6+ since 2008, likely amounting to tens of millions of copies. Some people may even have actually tried to use it.

With six years more education under my belt, maybe it’s time to replace clipfix.ny’s crude cubic spline interpolation with something more sophisticated and effective. It’s too bad that Postfish is still half-finished and hard to install, and I still don’t understand why it works.

VoiceLab retreat

I spent the weekend at VoiceLab retreat, which was fun and productive as per usual. Highlights included teaching my new arrangement for the first time and singing out on the rocky shore by moonlight. That last bit of music was interrupted in rather dramatic fashion. As a few of us were having a leisurely acoustic jam session in the intertidal zone, a few shadowy figures came down the concrete boat ramp behind us and lit something on fire. We sang a little quieter and wondered what they


They were lighting off a pretty impressive amateur fireworks display, which was unfortunately tilted downhill so that their missiles were aimed somewhere between “up” and “at us”.

We came down to the beach again this morning to sing in daylight. It was beautiful, as in years past, although the group still doesn’t have the music memorized well enough to perform reliably without music.

Dear Hipsters

I’ve figured it out. I figured out where the skinny jeans thing comes from. It all makes sense now. Did I know this once before? Maybe. I often learn and forget and learn again.

It has to be because of the bicycling. Skinny jeans have cuffs so narrow one wonders how they fit around the foot, which always seemed like a questionable fashion statement (no swish!), but of course on a bicycle this makes perfect sense. Tight cuffs don’t get caught in the gears. Loose cuffs like mine always do unless you get some sort of pants cuff control device which is just a hassle.

So I’m sorry I made fun of your skinny jeans, bicycling hipsters. Now it seems like a decent idea.

Weekend in Boston

This weekend is the first in four weeks, and the last for three, that I will actually spend in Boston. That’s 5 trips out of 6 consecutive weekends… at least. I knew I was planning a packed fall, but I may not have actually done the arithmetic on it.

I almost feel like this means there’s pressure to relax this weekend while I have a chance.

Micro-concert at El Gato Rojo

VoiceLab has a 10-minute micro-concert at the CafĂ© Gato Rojo in Lehman Hall in Harvard Yard at 9 PM on Thursday. It’s the tail end of an Open Mic Night that might attract a few other interesting characters if you arrive a bit earlier.

We’ll only be doing like 3 songs, and we’re still working on getting new members up to speed, so it’ll be very much a miniature performance.


I just returned from 5 days of consecutive retreat. Thursday-Friday was the Biophysics department retreat in Maine, and Friday-Monday was the Chorallaries Alumretreat in Vermont. The Biophysics retreat consisted principally of lectures and poster presentations by faculty and students in Biophysics. The Chorallaries retreat consisted mostly of sitting around and reminiscing about the days when we actually were in a singing group, and so had to learn music on retreat instead of just sitting around reminiscing.

Both places had beautiful clear skies and moonless nights, providing for some really great stargazing. On Thursday night we even caught some sort of unexpected meteor shower, not named in any reference I could find.

Now back to work.

Stream Switching at FOMS

I spent Sunday and Monday at The Free and Open Media Summit Foundations of Open Media Software in NYC. The first day was held in a smallish meeting room at the Interactive Telecommunications Program in the Tisch school of NYU. The space had a fun hackerly atmosphere reminiscent of the Media Lab. On Monday we moved to a boring and surprisingly unfashionable basement room at the Fashion Institute of Technology.

Having never attended FOMS before, I had little idea what to expect. I vaguely imagined a lot of sitting around at tables writing code together. Instead, we spent most of the two days in discussion groups. The talking covered a wide variety of subjects, but a majority of the time was spent on a single topic, one of which I was only barely aware before Sunday morning: adaptive bitrate streaming.

Adaptive bitrate streaming techniques go by many names, like “Microsoft Smooth Streaming”, “Apple HTTP Adaptive Streaming”, “Adobe Dynamic Streaming”, and “Free Software … uhh … hmm”. They work in a variety of ways, but all ultimately achieve the same goal: allowing clients to switch between different streams as their available download throughput changes. The trick, of course, is to do this without a pause during the transition. Because internet connections almost never actually guarantee the available throughput, this sort of glitch-free adaptation is crucial if you want to build a satisfactory replacement Television.

The existing systems for adaptive streaming are all tied to proprietary patented codecs, and so we spent half of Saturday and most of Sunday building up a sketch of what an unencumbered adaptive streaming system would look like. We didn’t manage to reach a complete consensus solution in 36 hours, but I think the discussions were productive nonetheless. We did, in my opinion, reach consensus on a few important points:

  • HTTP is a terrible way to stream video.
    • Especially for live streams
    • Even more so when dealing with dumb servers that don’t know about video, and may even have incomplete, outdated implementations if HTTP
  • We should do our adaptive streaming over HTTP.
    • With support for live streams
    • Even on dumb servers
  • Ogg Theora|Vorbis and WebM are the only stream types we care about.
  • We should build a solution that is basically universal across containers and codecs.

The unresolved issues are important, but in the broad perspective they are technical minutiae, and the atmosphere was clearly such that no one was going to get upset if their branch of the decision tree was not taken.

The one thing I wish I had heard at any point during the discussion was a mention of any other related work on this problem. With the imminent launch of Google TV, and I can easily imagine our design being nipped in the bud by an announcement from Mountain View.


I’m on a bus. Bolt Bus provides an internet connection to all passengers, and this one seems to be working well enough, although it occasionally drops out as we pass through a rural dead zone. It’s definitely convenient. It also enables the extension of a bad habit shared almost universally by my generation of not actually making plans. Having come of age in the era of cell phones, we simply presume that we will be able to arrange whatever needs arranging in a couple of hours at most. For example, I haven’t actually confirmed where I’m sleeping tonight, but since I can send e-mail from the bus, I am working on it right now.

Last night I attended the wedding of some friends of mine. It was almost exactly everything I would want from a wedding. The venue was the Fuller Craft Museum, a meandering complex full of strange modern art, hidden in deep woods along the shore of a small lake. The ceremony was held amid sculptures along the shore, presided over by the groom’s aunt, with poetic readings from Victor Hugo, Dr. Seuss, and the Massachusetts Supreme Court.

The bride’s classically flowing wedding dress (made by one of the guests) was laced up in back with bright orange ribbon like a giant white Converse High-Top. The couple, not known for their dancing ability, took their ceremonial first dance as an opportunity to surprise everyone with a swing dance routine, complete with a variety of lifts, twirls, and other flamboyant choreography. Each place card for dinner was a different picture of the couple. Dessert was miniature gourmet cupcakes.

In short, every aspect of the wedding, from the invitation (with lighthearted portraits drawn by the groom’s brother) to the vows (interrupted by laughter from the guests) demonstrated good humor and creative effort from everyone involved.