My responsibilities at the Center for New Music and Audio Technologies have been to build software and systems for novel instruments, new media applications, and to work with composers towards new tools they can use in their compositions. Recently I’ve also been maintaining our internal codebase, including legacy objects, build systems, scripts, and documentation. These projects include abstractions, externals, and supporting code that people use for projects both in research and pedagogy. In order to fulfill CNMAT’s development requirements, I frequently use programming languages such as Max/MSP/Jitter alongside the IRCAM suite of tools, and languages like JavaScript and Python for file operations and UI.

CNMAT door

That same year I started work at CNMAT via a research project with the late David Wessel, involving the development of hearing aids. Subjects were able to use our test suite to custom calibrate a 16-band compressor in order to come up with weighted interpolations that made more sense to them than a standard preset. The goal was to put the hearing impaired in control rather than administering fittings for customers without feedback. We then compared these choices with the outcome of a neural network in order to do further research and analyses on the data. This work was done in Max/MSP, and the UI had to be used by people with no knowledge of Max.

I was later recruited into CNMAT and started working with both Adrian Freed and David Wessel for the development of internal tools and projects. This led to my work with the odot (“o.”) toolset and supporting expression language that has been developed at CNMAT. I found that given CNMAT’s limited personnel, team members tend to take on significant responsibility for a given task. In this way I continued into many modes of working, and ended up directing a lot of my energy at UC Berkeley to both interfacing with research goals and aiding pedagogy.

Working with rapid prototyping to realize new techniques and ideas is critical for a successful research model. I find this process to be particularly collaborative and community-driven. It allows me to continually learn new concepts, techniques, and to see how my own techniques can be grafted into the process.


  • Develop software for composers and performers to utilize in composition, performances, and their own tool building
  • Develop software for PhD candidates in Music Composition
  • Create tools for the odot (OSC) library
  • Lecturing at Max/MSP/Jitter Summer course, alongside various CNMAT representatives and staff
  • Document work and reference files for various features and components of CNMAT’s software
  • Maintain code in various CNMAT repositories, hosted on Github
  • Maintain inventory for the research resource library
  • Annotate and maintain CNMAT’s pedagogy archive

CNMAT door