Updated Thesis Summary

Title: OLoS: Online Open Source Music

Synopsis: A modular web audio environment where everything—both the music and the underlying code—can be remixed. I will design interfaces that show the underlying processes and invite play. My goal is to foster an open source community for shared learning.

Description: OLoS is an environment to play with code and music. The web makes both more accessible and shareable. I want to provide a forum for the community that is forming around the Web Audio API to share resources through modules that can be combined and remixed. Through user research into the community’s best practices, I’ll develop an API spec for modules that will enable integration into outside projects as well as the OLoS node-based visual interface. My research might lead me to extend a pre-existing project. Nodes will include instruments, effects and algorithms, and UI/control nodes. They can be chained together to design custom environments for music production and interaction. Users can also share/remix environments & compositions.

Continue reading

Always On, Always Connected

When I leave the house in the morning, if I’m planning to take the subway, I often bring a magazine in case I get bored. But I rarely wind up reading that magazine, because I rarely get bored, because I always have my phone.

When I get home, I’m excited to open the mailbox to see if there are any messages. Usually the messages are bills or spam. But, at least once a week, there is a new magazine. This is exciting, but also troubling, because I rarely feel finished with last week’s New Yorker, and now a week has gone by, and I put the old news aside in favor of the new. I’ll to keep the old issues around for at least a few weeks, but I can’t archive them in my apartment like I archive old emails.

One of my favorite apps is Pocket, formerly Read It Later. Whenever I find an interesting article or PDF that I don’t have time to read right now, I save it to my pocket. It literally shows up in my pocket, so I can read it when I’m on the subway. But instead, I usually check my email or update the news on my nytimes app.

When I take the subway, I have a choice between the G train and the J/M. Whenever possible, even if it takes a bit longer, I take the J/M, because it’s an above ground train, so I can check the internet on my phone.

I like listening to music on my phone. But I don’t like to listen to the same thing multiple times. Every once in a while, I’ll load up a big playlist of music that is completely new to me so that I can listen to it later on my phone. Often, I’ll listen to the radio instead so that I don’t have to choose what to play. Or I’ll listen to podcasts, because there are always new podcasts to check out each with new episodes to follow.

Sometimes, I use my phone to make music. There are so many cool apps.

Often, I’ll download an app because it sounds cool, play it a few times, and never come back to it.

I use my phone to take notes. I used to send myself emails, then I set up an IFTTT hashtag to send those emails to the appropriate place in Google Drive, and now I mostly use Evernote. I use it for text, as well as for audio notes. I like to hum musical ideas into my phone, and the best ideas tend to arrive when I’m outside walking around, doing something. The best ideas rarely come to me when I’m sitting down, on a computer, or using my phone. But I’m always glad that I have my phone on me when the ideas show up!

My phone buzzes when it receives incoming messages. I have a Pavlovian response. I get the phantom buzz sometimes, too. My phone gives me the sense that wherever I am, whatever I’m doing, whatever I’m reading or listening to, there is always something better, and it’s the portal to that better world of infinite potential. Same thing with people, since our phones can connect us to anybody in the world instantly. So when hanging out with other people, whether it’s dinner or just a casual conversation, I try not to use my phone because this really signals that they are less interesting than the people who exist in the phone world.

I just got a new phone. My old one was 4.5 years old, and it was very slow. It took over a minute to connect to facebook, which is almost forever in phone time. The new one is fascinating. It has a better camera, and the camera loads really fast. It’s been one month and I’ve already taken over 500 photos. I can talk to it. It does this predictive text thing where it guesses three words that you might want to say after every word you type. I wrote about that when I first got the phone. I use it all the time.

Fun with wget

For Storage Wars and Data Dumps, I spent some time playing with


to download websites.

I found some good instructions programminghistorian.org.

The command

wget -r --no-parent -w 2 --limit-rate=20k <website>

set my terminal plowing through every link it could find.


stands for recursive retrieval, meaning it’ll follow all links on the page, but


prevents wget from downloading stuff from other websites. It waits 2 seconds before downloading more stuff, and limits bandwidth so as not to cause problems for the server as it makes these recursive requests.

First, I tried wget without any arguments. This downloaded individual html files. Loading the files in a browser, none of the links work, including any referenced CSS or JS. The menus or elements that didn’t seem obvious when styled properly are now as much at the forefront as the main content.

Then, I went after as much of the site as I could nab.

I’m interested in creating an archive / repository of local events. So I looked at a few sites that list upcoming events. I tried timeoutny, which was a bit of a mess. I tried the New Yorker, which is great because it just picks a handful of events and the format would be easy to parse. But the best was nononsensenyc, which hosts archives of its plain text emails. Finally, I also tried wget’ing wfmu.org, which has so many recursive links, it’s still going…so far it’s downloaded 1842+ items that make up 100+ megabytes consisting of JS libraries, images, php files, favicons, audio files, and more. One interesting components is the playlist pages, which document music played in almost every program dating back to 1999.

Next I downloaded the Terminal Boredom forum, for which I had to ignore the robots using the -erobots=off command.

Computer Graphics

The first assignment for Ken Perlin’s Computer Graphics course is to explain why I’m interested in computer graphics and what I want to get out of the course. My assignments will be posted to my github.

I’m interested in Computer Graphics as a creative window into more advanced topics in computer science and math. I took computer science as an undergrad, but, without any graphics, the topic seemed very dry. It took weeks before we could see any results from our code. Even though I had always been interested in using computers to create things, starting with HyperCard when i was very young, I wound up gravitating towards Computer Music, where I could hear the results of my work instantly. Similarly, I became less interested in math until I had concrete applications, such as Digital Signal Theory, where I could see or hear the results.

JavaScript has rekindled my love of programming as a means of creative expression. In particular, libraries like Processing’s p5.js make it easy to get started sketching out your creative ideas. Libraries like three.js make it relatively easy to get up and running with 3D using WebGL, and I’ve enjoyed playing with this in some recent projects. Now that I have some basic understanding and use cases, I’m eager to learn more about what is happening under the hood.

I’m especially interested in learning about computer graphics from Ken Perlin, who is a very inspiring person. I started contributing to his Chalktalk project last semester, and already I’ve learned a lot from him. I want to learn more so that I can make more meaningful contributions to Chalktalk. A better understanding of computer graphics will serve me well in life, even if my focus leans toward the audio side of things. In the long run, I’m interested in sound design for video games and virtual/augmented reality. In the short run, I want to keep contributing to Chalktalk, and also somebody needs to bring WebGL rendering to p5.js for a “3D Mode”—maybe I could help make that happen this summer! Now that I’ve scratched the surface of computer graphics, I’m excited to learn more.

Piano Tops

Buckminster Fuller begins his Operating Manual for Spaceship Earth:

I am enthusiastic over humanity’s extraordinary and sometimes very timely ingenuity. If you are in a shipwreck and all the boats are gone, a piano top buoyant enough to keep you afloat that comes along makes a fortuitous life preserver. But this is not to say that the best way to design a life preserver is in the form of a piano top. I think that we are clinging to a great many piano tops in accepting yesterday’s fortuitous contrivings as constituting the only means for solving a given problem.

One modern day piano top is the keyboard I’m using to type this blog post. The QWERTY layout was designed to avoid printer jams on typewriters. It may not be the most efficient layout, but we cling to it. When I see tools like Apple QuickType, handwriting-to-text and speech-to-text, I wonder how these new tools for transcribing text might impact the expression of our ideas.

A recent study found that handwriting promotes deeper understanding than typing (link). The scientists’ theory is that the ease of typing leads to a more notes but shallower processing.

When i want to save a thought or idea, what is the best way? Sometimes I’ll reach for whatever’s around, like somebody in a shipwreck grasping for a piano top. I used to send emails to myself with hashtags that IFTTT would automatically load into the appropriate Google Sheet. Lately I’ve been taking notes on my phone, using Evernote where I can record audio or type with a skeuomorphic keyboard, and if I had an ipad I could even try to convert my handwriting to searchable, digital text.

At what point do I benefit from a tool, and at one point should I just be using my internal memory / brain? When i save ideas in un-centralized locations, it feels like I’m scattering little pieces of my mind. But these things I am doing—creating that IFTTT script and my own weird hashtag system—is, much like the piano top, an imperfectly designed solution to a problem (my imperfect memory) that I am solving with yesterday’s fortuitous contrivances.

One way or another, there are always going to be piano tops. People are always going to use things that were designed for one purpose in ways that the designer did not intend. And I can’t think of a tool without any predecessor—if I thought a little harder I might be able to divide tools into some basic categories. Hacked solutions like the piano top are an important precursor for tools because they demonstrate that there is a need. In a world without piano tops, we would not have any of the tools we have today.