The Friday Lunchtime Talk on 17th Feb was led by Martin Robinson of the Department of Computer Science and Creative Technologies at the University of the West of England came in to the Studio to give us an introduction to Plonk: the new C++ framework for audio software development that he has been working on.

Plonk was originally conceived as a tool to support teaching and research at the university, but has since been made available for general use under an open source licence. Martin's aims in developing Plonk were to create a system that is easy to use, allows for straightforward prototyping of projects and is scalable for full audio application development.

Martin has a background as a musician, working with programs such as Max/MSP and SuperCollider which utilize a unit generator paradigm involving directed graphs that form the building blocks of compositions. However, feeling that SuperCollider had become too cumbersome to use, Martin decided to develop his own framework that was based around the general-use programming language of C++, rather than its own specialized code.

UGen++ was Martin's first attempt at writing an audio development framework, which he based heavily upon the interface of SuperCollider: employing oscillators, filters, etc., but this led to problems around the issue of licensing as SuperCollider was released under a GPL licence, restricting the way UGen++ could be published.

Plonk is a version of UGen++ rewritten from scratch and released under the permissive free BSD license. It supports any audio stream sample type, can run units at any sample rate or block size and is compatible with Mac OS X, iOS, Windows and most other platforms.

Martin showed us examples of how the program allows multiple sound units to be generated with a minimal amount of code, in contrast with other similar programs that would require sample by sample coding to be undertaken. He then showed us how Plonk plays sound files and can apply filters that alter their qualities, such as the speed at which they are played, building an interface by adding on-screen slide bars to control these effects. Martin explained that the framework allows programmers to build in whatever functionality they choose, allowing for any kind of input to be used.

If you are interested in using Plonk, the code is available on Google Code at: http://code.google.com/p/pl-nk/
The API docs can be found here http://pl-nk.googlecode.com/git/doc/html/index.html
There is a forum here http://groups.google.com/group/pl-nk
and you can follow the project on twitter @plnkaudio