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.

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.

get used to it man ...

CML is currently focused on the development of get used to it man thats the way we live now a composition for solo piano and electronics by Matthias Kriesberg.

This piece is the culmination of several years of experimentation and refinement as we have developed the technology, tools and practice to realize the composition.

get used to it man... performance system architecture

This article examines the technology underlying the electronic part of get used to it man.... For the composer's perspective on the electronic part take a look at Matthias Kriesberg's blog entry.

The article is split into two parts. The first part is an overview of the components of the performance system and the information that is communicated between them. The second part focuses on the performance measurement, evaluation and sound modification components which are specialized for this piece. Along the way there are notes on the current state of the system and how our development plan is supported by the pending data collection experiment.

Read More


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

  • Score Preparation and Processing

    cmtools is a command line program used to manipulate score information. It has a variety of modes for parsing, augmenting, and merging score data from MusicXML,MIDI and other data files. Below is a partial list of the functions it performs. More details and the source code can be found on our git site.

    • score_gen performs several score processing tasks which allow MusicXML files exported from Sibelius to be augmented and converted into a format recognized by our other score processing and performance programs.
    • timeline_gen converts score files created from score_gen into a format which can be used to visualize the score and to synchronize it with recorded audio snippets.
    • perf_analysis uses the score information generated by score_gen and recorded MIDI files to measure and analyze a variety of performance metrics.
  • DSP and Performance

    • kc is a real-time programmable signal processing and performance framework
  • Libraries and Utilities

    • libcm is our own C application development framework which is used to implement several of the applications listed above. This framework is large!. At last count it contained more than 150,000 lines of C code. This includes a real-time audio processing engine, a dataflow system, many DSP algorithms, file readers and writers and much more. To get a sense of the library you can browse an index of functions and code here or get the git repository here.