Csound for Linux

Mr. Phillips discusses some history as well as what's happening now in the Linux Csound world.

The CVS Repository

The next major step taken for Linux Csound was the
establishment of a CVS repository. I had been complaining to Nicola
that I found myself constantly checking everything coming to me in
the canonical UNIX package, when he suggested the need for a
revision control system. He volunteered to set it up at AIMI and
after some trial-and-error hacking, he established the system we
work with today. The CVS repository maintains separate directories
for the canonical sources and the Linux-specific code. In this way,
we can avoid rewriting sources just for Linux and we are always
able to refer back to the “untouched” originals. Anonymous access
to the CVS is permitted, but submissions for changes are carefully
screened by the maintainer.

The Csound UNIX/Linux Development Group

Of course, a CVS development repository isn't of much use
unless it has developers contributing, so a logical next step was
the formation of the Csound UNIX Development group. Programmers
Robin Whittle and Damien Miller joined in immediately, and Damien
kindly provided a web page with all pertinent information for
anyone interested in joining the group. It is worth noting that the
group is for development, not just developers. We welcome anyone
interested in seeing Linux Csound grow into the finest language of
its kind. Programmers are certainly welcome, but so are musicians,
audiophiles, DSP engineers and anyone else with an interest in
Csound and its possibilities.

In October 1998, two new members made significant
contributions to the group's activities. Gabriel Maldonado donated
his entire source tree to the CVS repository, which enables Linux
Csound to keep up with the developments for his Windows versions.
(This generosity is quite typical of the Csound community. Much
code sharing occurs on the Csound mail list, with new instrument
designs freely offered, along with much healthy debate over various
computer music issues.) The other signal addition has been Fred
Floberg, whose contributions require special description.

Csound's internal support for real-time audio has been
dependent on calls to the API for the OSS sound-card drivers. While
certainly sufficient for casual use, many sonic notions such as
full-duplex and multiplexed real-time audio I/O are not realizable
by the OSS/Free driver. However, the ALSA driver does indeed
support those uses; thanks to code from Fred Floberg, Linux Csound
now explicitly supports the ALSA interface. (The ALSA project, led
by Jaroslav Kycela, is forming a new extended sound system API
compatible with OSS/Free, but permitting much more advanced uses
for sound-card features not supported by OSS/Free.) Fred is
currently working on expanding MIDI file support. Csound now
supports only Type 0 MIDI files, but Linux Csound should soon
support the Type 1 and perhaps even the Type 2 Standard MIDI File
formats.

Also, thanks to Robin and Damien, the Linux Csound
distribution now supports the popular RPM packaging and can be
built for glibc (libc6) systems. Debian users will be pleased to
note that developer G<\#252>nter Geiger has prepared a
package in the DEB format. Finally, Nicola Bernardini has written a
Csound orchestra (instrument design) parser, which we hope will
eventually be absorbed into the package. Such a utility is most
helpful to a GUI designer, which brings me to my next topic: the
power of Linux Csound and X.

The X Picture

My Linux soundapps web page shows more than twenty entries in
the “Csound Helpers” section. The brief descriptions which follow
are just that—brief descriptions which in no way indicate the full
power of these applications. The examples shown here are for Linux
systems running X; some excellent command-line utilities exist too
and are included on the Linux soundapps page for those tools. All
of these utilities work with the current versions of Linux Csound
(3.47 or higher).

Note that each of these applications was built using freely
available tools. The GNU C and C++ compilers, Tcl/Tk, Java, LessTif
and WINE are powerful allies in the advancement of Linux sound and
MIDI software. Their developers are to be commended for the
wonderful work they have done for the good of the Linux
community.

Cecilia

Cecilia (by Jean Piche and Alexandre Burton at the University
of Montréal) is a fully-developed Csound composition and
sound-processing environment. Written entirely in Tcl/Tk, Cecilia
utilizes the entire range of possibilities afforded by Linux
Csound, presenting a beautiful graphic interface (customizable, of
course) and a powerful composition language (Cybil). Numerous
real-time controls are supported, nearly all aspects of the program
are user-definable, excellent on-line help is available and the GUI
fully exploits Tk in the X environment. Cecilia won first place in
the awards for computer-aided composition and realization software
at the 1997 Second International Music Software Competition in
Bourges. (See Figure 1.)

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.