At the Sounding Edge: OpenMusic and SuperCollider3

A look at two recent entries in the Linux sound space, both of them Mac ports.

Even a casual glance at the contents of the linux-sound.org pages shows
that Linux enjoys a broad range of interesting sound and
music applications. Players, recorders and editors abound, and I plan to
profile some of that software in this column. This month I present two
applications that are rather close to the edge of Linux audio software
development: IRCAM's OpenMusic and James McCartney's SuperCollider3.

OpenMusic

OpenMusic (OM) for Linux is a porting project working to bring
an outstanding music composition environment from Macintosh to
Linux. As you might expect from a Mac music application, OM is an intensely graphic
environment, and the developers at IRCAM (aka the Institut de Recherche
et Coordination Acoustique/Musique in Paris) have done impressive work
with the Linux version (Figure 1).

Figure 1. OpenMusic

Its Web site tells us that OM is a visual programming language based
on CommonLisp/CLOS, that it is icon-oriented with a drag-and-drop GUI
and that it has visual control structures for interfacing with the
environment's Lisp structures. OM has been designed as a general-purpose
programming language, but its unique classes and function libraries
clearly are oriented towards the domain of music composition.

Non-musicians might wonder exactly what OM does for a composer. OM
is not a software synthesizer, nor is it a soundfile editor or MIDI
sequencer. OM's classes and functions supply the means for exploring the
musical possibilities as the manipulation and permutation of sets for
pitch, rhythm and dynamics, series and tone-row variation, random and
aleatoric generative processes and many other techniques best carried out
by a machine. In some respects OM is similar to Rick Taube's outstanding
Common Music, another Lisp-based environment for music composition,
but OM's rich GUI provides a very different experience.

Basic OM

This article is not intended to be an OM tutorial. I'm merely going
to describe its basic operation and show off some of its interface
amenities. I must stress that although OM itself is not a new program
(the Linux port is for version 4.7.1), it is new to Linux and should be
considered as beta-stage software. Not every aspect of the original has
been imported faithfully, but I'm happy to say that most of the features
found in the Mac versions have made it to the Linux port.

You can acquire OM from the IRCAM URL, but I seriously advise using the
Planet CCRMA packages instead. OM requires some extra pieces you may
not have on your system, including:

CMUCL, Carnegie-Mellon's version of Common
Lisp

libgtk-canvas, a canvas object for GTK
1.2

CLG, the Common Lisp/GTK bindings

MIDIShare, a MIDI toolkit from the GRAME
team

fluidsynth, a soundfont-based
synthesizer

Specific versions of these dependencies may be required, so check with
the OM Web site for a list of the most current requirements. The Web site
also includes detailed installation and configuration instructions from
IRCAM developer Francois Dechelle. I repeat, however, that you're
probably better off with the Planet CCRMA packages. DEB packages for
the AGNULA Linux audio distribution should be available soon.

Once everything has been installed and correctly configured, you can launch
an OM session with the following series of commands:

I suggest opening each program from its own xterm. Doing so makes it easier to keep
track of any reports or error messages coming from the specific app.

On my 800MHz machine, OM takes a little time to open. Lisp is an
interpreted language, so it takes a while for everything to prepare.
When the system is ready for use the GTK canvas object appears, and you're ready to start using OM.

OM is similar to its IRCAM synthesis sibling jMax in its use of icons
to represent its various classes and libraries. These icons are placed
on the canvas and wired together to create a patch. An OM patch may
be a note generator, a MIDI event processor or even a simple playback
device. OM's icons include classes and functions for arithmetic, list
manipulation, random number generation, various MIDI actions, program
control and many others. Abstraction (that is, a patch within a patch)
is supported, and patches may be saved for reuse within other projects.

Figure 1 shows off a relatively complex OM patch from Karim Haddad's
series of helpful tutorials. In this patch (Tutorial 14) we can see many
of OM's main features at work. Various icons have been connected to form
a MIDI note generator that directs its output to a pair of General MIDI
programs played on two MIDI channels by way of the fluidsynth synthesizer. The
big blue-green object at the bottom of the patch is an instance of a
music/score class called a CHORD-SEQ. In true Lisp fashion, once the patch
has been built, it must be evaluated before playing by selecting it and
then typing v on the QWERTY keyboard. Type p to hear the results and s
to stop the playback. Reevaluating the object produces a new
note series.

The example also demonstrates OM's abstraction at work. Both the omloop
and note generator icons are subpatches, and I have opened them up
for inspection in Figure 1. Again I'll skip the details of subpatch
construction, but I should note that subpatches are built in the same
way as the way I have described for patches.

A reader wrote to mention that perhaps I should have gone into the matter of JACK a bit. I want to remind readers that these articles are in no way intended to replace going to the applications' Web sites and following the instructions found there. Also, I have a word limit to these columns and must often leave out other relevant information for the sake of making things fit into that limit.

Thanks a lot for this article. I always wanted to start doing a bit SuperCollider3 writing, and your text gives me another reason.

Let me add, that although SC3 on Linux currently lacks a GUI, there is an interesting project going on to use Pd as a GUI for SC3, which then is the synth engine instead of the one in Pd. See the Pd CVS for some file downloads.

I must thank Karim Haddad, Patrice Tisserand, and Francois Dechelles at IRCAM for their help with OpenMusic. I must also thank Stefan Kersten and other members of the SuperCollider mail list for their great assistance with SC3.

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.