I am working on a project, one different than the one you are working on now…

This is one of those times when I actually try and follow through on random project ideas I post to Twitter. (I have a mixed record in that regard). I’ve been taking a course in Swift for iOS programming, and playing around with AudioKit to build some simple audio apps. I’d like to flex my programming chops a little more so I’ve decided to work on these projects. I’ll probably do the Lucier-inspired app first and follow it up with the Steve Reich ones since they’ll probably be a little more involved (though it’s quite likely I’m underestimating the workload here).

In order to keep myself accountable, and actually build something I’m not ashamed to show people, I’ll be writing up kind of ‘status reports’ on here. Sharing progress when I work on it, explaining how I handled some things and generally explaining how it works as I go. I’ll probably only start seriously working on it in the new year.

So here we go with a basic functional outline for the ‘I Am Sitting in a Room’ inspired project, aka ‘Project: iOS am convolving in a Room’

We are going to try and match the basic process used by Alvin Lucier to record the original piece (replacing the re-recording via analogue tape with convolution).

  • The user starts by either recording a short sample of audio or selecting one from their library. It’d be nice to use the original Lucier audio as a default also but I’d need to check if it’s public domain or otherwise get permission to use
  • The user records a simple impulse response either by clapping or turning the volume up and playing the impulse from the app through the speakers
  • The user selects either a total length or number of loops – Default will match the Lucier original
  • The user can play back the processed audio, trim it, and export the saved track
  • I’ll probably make use of Audiokit to capture the user inputs and use their AKConvolve node to do the processing, so most of the heavy lifting for me will be getting audio in and out of the app itself, although depending on the length of the input sample I may have to do some memory optimization or more likely limit the max input sample length.

    If you’re interested in following along, you’ll want an iOS device of some sort, and a Mac running Xcode 8. You’ll also want to download and install Audiokit into your Xcode project to access their functions.

    This should be fun and sure to keep the @sittinginaroom bot happy