Currawong Music Labs

Currawong Music Labs is the technical wing of Currawong Project. We develop the hardware and software to support the musical goals of The Project. The lab members are involved in a wide range of topics related to sound and music technology - from the nuts and bolts of concurrent real-time systems and embedded electronics development through digital signal processing, sound analysis and machine learning.

Currawong Music Labs

CML maintains a growing archive of GNU GPL open source software, schematics, and associated documentation through which we invite participation and collaboration.

The primary mission of CML is to develop and refine technologies to aid in realizing the electronic part for the musical works produced by the Currawong Project. Our focus is on three major technologies:

  • Score processing
  • Performance analysis
  • Real-time sound transformation

Our technology uses score processing both during pre-production as well as during the actual performance. Our pre-production tools parse and augment the information contained in the score to include additional data needed to derive the electronic part. During the performance we have developed algorithms to align the performance and the score - even in the presence of mistakes by the player.

We use techniques from performance analysis to assess performance metrics and derive models of the how a player may traverse the piece. These models are developed during pre-production based on measuring the performance of multiple players, playing multiple takes, from specific sections of the score. During the performance the models are then used to evaluate both how the player is deviating from the literal score as well as how they are playing relative to other players performances.

Since the Currawong Project focuses on music derived from acoustic instruments sound transformation is our first approach to forming the material used in the electronic part. Our goal here is to augment and exploit the naturally interesting and familiar sounds of traditional instruments. All of our sound transformations are developed line by line from our own signal processing infrastructure.

Software

Below is a catalog of the open-source programs and software developed and released by CML.

All of the software developed at CML is made available under the GPL license

Software

caw

caw is an audio processing environment and language for real-time and non-real-time audio processing.

caw features include:

  • Support for low-latency, interactive, real-time as well as non real-time programs.
  • Easily described distributed, parallel processing.
  • Clear and easily interpreted network execution semantics.
  • Automatic user interface generation.
  • Large collection of data flow unit processors.
Here is a link to the caw git repository.

libcw

libcw is an application framework for developming real-time interactive applications on Linux.

Some of libcw's features are:

  • Real-time, low-latency, synchronous and asynchronous interfaces to many common IO devices including:
    • Audio
    • MIDI
    • Serial
    • Sockets
    • Websockets
  • Built-in dataflow framework for describing real-time audio and DSP programs.
  • A GUI development API and collection of predefined widgets for creating websocket based user interfaces.
  • Most elements of the framework are configurable based on configuration files which use an extended JSON syntax.
  • Minimal dependencies. The only external dependencies are libasound, libwebsockets and libfftw.
  • A large collection of pre-built audio signal processing algorithms.
Here is a link to the libcw git repository.