Integra Live is an application for composing and performing music with live audio processing. It enables musicians without technical experience to quickly explore the possibilities of live interaction through a structured workflow derived from testing in artistic practice.
Integra Live includes a library of over 50 audio processing and synthesis modules including granular synthesis, time stretching, pitch shifting, delays, filters, physical modelling, reverbs and spectral processors. Modules can be connected, and grouped into blocks, which can be arranged into scenes to be triggered by external controllers or sequenced in time.
Integra Live was developed as part of the 3 year Integra 2 project. I managed its development, oversaw the design and testing process, and contributed code to all aspects of the system.
The software can be downloaded from the project website.
Sonar 2D is a feature-driven audio processing application, which started life as part of my PhD portfolio. Sonar 2D attempts to answer the question “how can I control sound with sound?”. It’s a work in progress, which I’m keen to resume. Follow me on twitter if you’re interested in release announcements.
Liveshout is an iPhone application for streaming audio over the internet using the ShoutCast protocol. It allows for single or simultaneous multiple user broadcast. It was commissioned by CO-ME-DIA, a Culture 2007 European Union project and developed by Ecliptic Labs, for whom I devised the audio streaming architecture and wrote the underlying audio streaming code.
Liveshout has been used at music festivals worldwide including Birmingham’s Network Music Festival 2012.
Liveshout is available for download from the Apple app store.
LibXtract is lightweight audio feature extraction library. It includes over 50 feature extraction functions including spectral features, F0 estimation, loudness, MFCC’s and Bark Coefficients. Facilities are also provided for preprocessing including windowing. The library is written in portable C99 and compiles successfully on Windows, Mac OS, GNU/Linux and iOS architectures. The library itself includes bindings for the Python and Java languages, as well as a Pure Data external that wraps the library’s functionality.
A paper on LibXtract can be found here.
The library itself can be downloaded from the sourceforge page.
I use Pure Data as a rapid prototyping environment for trying out ideas. It is also the DSP host for Integra Live. I write externals when I need them, here are a few of the coolest ones:
- pluginhost~ is a LADSPA and DSSI host capable of hosting multiple plugin instances within one Pd object
- flib is a library of audio feature extraction functions. It is now deprecated in favour of LibXtract’s Pd bindings, but marks an important milestone for feature extraction in Pd
I also maintain the following externals not originally written by me:
- knn — a k’s nearest neighbour implementation for Pd
- psql — a postgres client for Pd
The Integra database is a web application for entering and managing meta-data relating to Integra modules. I designed the relational database structure and coded the web app using the Turbogears 2.0 framework.