Research for Thesis (excerpt from my private thesis blog)

TITLE: OnLine Open Source DAW.


SYNOPSIS: OLOS-DAW is a browser-based music production environment where everything—both the music and the underlying code—can be remixed. It is an open source, educational resource for communities to form around the intersection of music, code and the web.

DESCRIPTION: OLOS is a digital audio workstation, similar to Garage Band, but with a more modular architecture inspired by Max/MSP.

Web browsers now ship with many of the building blocks and optimizations of these advanced music production environments.

A community is forming around web audio and could benefit from a centralized place to share code. OLOS would provide that resource, and a spec for Web Audio modules. Modules could include synthesizers, effects, samplers, and algorithms, each with one or many UI modules.

Anybody who wants to make music can play with OLOS’ many different instruments and interfaces, or chain them together in a DAW. Creations can be saved, shared, and remixed.

Modules and songs be public/private, rated, curated.


RESEARCH: I think that a lot of the components have been done before, but I don’t think it’s been put together in quite this way.

Examples of online DAW’s:


Examples of online music/coding environments:

Attempts to unify Web Audio community with a spec:

  • Web Audio Components (why did this fizzle out in 2013? Will the project be revived? Follow up with everyone involved and figure out how I could help revive)
  • Open Music

Research into Web Audio community:

  • What would be most useful for Web Audio Community?
  • Who do I want to contribute the first modules?

Research into potential music creators:

  • How could this be used in the classroom?

Examples of other online code/music communities – what makes them work (or not)?

  • Csound, Faust, Max/MSP, Pure Data
  • Scratch

Open Source UI Components

Researching Potential Tools and Technical Challenges

  • Learn Angular.js because that’s what all the other DAW’s seem to be using
  • Google Blockly (similar to Scratch, a way to code using blocks)
  • What is the best approach for editable code in the browser?
  • How to handle the database?
  • Many more questions…


PERSONAL STATEMENT: Before coming to ITP, I directed an online music library inspired by the open software movement. It was inspiring to see communities form around shared music.

Now the web can be a platform for music creation, as well as distribution. I think this will excite a lot of people for a lot of different reasons, but most don’t realize it at this moment. I want to bring music creators and coders together to see what happens when these lines are blurred in a community forum where everything is open source / remixable.

I’m inspired by teaching after school workshops to young people with Scratch. Scratch uses code blocks and sprites to teach computational thinking, but for the millions of kids who use it, it’s just about fun making stories and games. Scratch was once just a desktop application, but now it’s online, and every project can be shared. There are millions of them. Every project has a “see inside” button and clicking that is similar to a github fork. I believe that remixing is a key part of the educational experience, and I want to bring the Scratch approach to music.

i started working with web audio in my first semester at ITP. I wanted to make a Web Audio Editor, and realized it couldn’t be done in Processing because any audio stuff I did would not be translatable by ‘javascript mode.’ This was a bummer because the whole point is that it would live in the browser, where people spend a lot of their time these days anyway, and where it could easily be shared. I studied Computer Music as an undergrad, and at that time it was hard to share interactive experiences—nobody outside of the department cared to check out my Max patches. But the Web Audio API is accessible to all—just open up your Javascript console and create a new AudioContext. This past summer I created p5.sound, an addon for p5.js that brings the Processing approach to Web Audio. In the process, I’ve developed a new appreciation for API specs.

I’ve been thinking about this idea for a few months, I’ve done some research and I’m excited to start prototyping so that I can trim down my goals to something that is actually feasible in 3 months.

Leave a Reply

Your email address will not be published. Required fields are marked *