russell mcclellan

russell.mcclellan@gmail.com

audiounitjs

Background

audiounitjs was borne out of frustration with two issues: audio plug-in UIs are annoying to write, and iOS audio programming is difficult even to those with much audio programming experience, due to poorly documented APIs.

In audiounitjs, you write a CoreAudio Audio Unit, and an HTML UI, and you get a Mac App, an iOS App, and a Audio Unit plug-in all using that UI, for free.

In Use

audiounitjs is simply a scaffolding script. You create a simple configuration .json file, and then the script will produce an Xcode project filled with boilerplate. Then, you can edit the audio.cpp file to create audio processing source, and also the ui folder to create the HTML UI. Full documentation is available on GitHub

Getting it

Install via npm with npm install -g audiounitjs. I made a quick screencast of the install process.

Future Features

Currently, this is an extremely niche project, because it requires the user to be able to create Audio Unit C++ code. In the future I'd like to relax this requirement by adding some sort of JavaScript audio API. Perhaps the easiest way to do this would be to implement the WebAudio API for CoreAudio. If I did that, the JavaScript code would control all of the audio processing, and I could add the browser as a fourth target.

Another feature that might be fun would be to automatically support OSC messages mapped to Audio Unit parameters. This would be not difficult to implement and would allow the stand alone and iphone versions to be automated by something like duration.cc.

All images and text are licensed under a Creative Commons Attribution 3.0 United States License, except as noted. Linked code, and embedded code examples are licensed separately.