Csound for Macintosh Development Snapshot
Feb. 23, 2005
from Anthony Kozar
This package is a snapshot of the current development work that I am
performing on Csound for Macintosh computers running System 7 through OS
9. The snapshot will likely include new features which are in the
experimental stage of development. Therefore, they may not be complete,
may not work correctly (or at all), and likely will not be (well)
documented. The main applications (Csound and Perf) are probably stable
enough for everyday use, but other included software may be
You are invited though to test this version and send feedback to me
about whether you think the work am I doing is headed in a useful
direction. All comments and suggestions are very welcome and
Below are the specific details on how this release differs from
“canonical” Macintosh Csound available from the Csound Sourceforge
project. Some of the changes may be added to Sourceforge CVS soon, but
others will likely have to wait until Csound 5 is released and the code
freeze is over.
This is largely a cosmetic update in which I have made many small
changes to the interface and Perf’s output messages so that the front
end and Perf are more consistent and interact better with each other. I
have not synchronized everything with CVS since the 4.23f12 release so
there are some bug fixes from canonical which are not in this snapshot
Csound front end:
* New items for “Keep sorted score” (-t0) and “No PEAK chunks” (-K) in
the Options menu.
* New “Csound” menu which brings together all of the commands that
launch Perf. Includes items for getting Perf’s version, listing
command-line help, and listing available opcodes, all without rendering
a orchestra/score. The “Run”, “Analyse”, “Batch”, and “Stop” items are
just placeholders for now.
* Now opens files with the “.csd” extension properly when
double-clicked or dropped on the Csound icon in Finder.
* Profiling/Progress options are now permanently removed (never worked
* Now creates sound files owned by SoundHack again with proper file
types as well. Text files created by Perf are now owned by BBEdit
instead of CodeWarrior.
* Added Victor Lazzarini’s GEN 43 for use with the pvsbasic opcodes
(available as part of Opcode Plugin Pack A).
* New “Graph” menu for changing the graph size and appearance. These
options always existed but were previously only accessible via “hidden”
* No longer displays command-line help when an argument error occurs
since it used to obscure the error message. (And it isn’t usually
helpful on the Mac).
* New “List Command Options” item in the Help menu that displays the
* The list opcodes options (-z and -z1) now exit Perf and work without
needing orchestra and score names.
* Argument decoding is now more robust. Bugs with reading arguments
in CSDs and .csoundrc have been fixed.
* Several other minor cosmetic changes/fixes.
New experimental opcode plugins:
* ATSlib – a library for resynthesis of ATS analysis files.
(See http://www-ccrma.stanford.edu/~juan/ATS.html for more information
* AVnewlib – contains some of the CsoundAV opcodes missing from
canonical Csound. The name and contents of this library will change in
the future. Currently includes tb0_init through tb15_init and tb0
through tb15. See the CsoundAV documentation for more information.
* pconvolvelib – Matt Ingalls’ pconvolve and monitor opcodes. I don’t
think this library works right now.
Features added in 20040910 snapshot
* Incorporated changes and bug fixes from the Mills Csound 4.23f12
* The front end has a new menu item (“Choose Default Perf…”) to
select a default Perf application. This setting complements the
previously added “Choose Perf…” menu item and is remembered when you
quit Csound. This is useful when you have several different versions of
Perf lying around on your hard drive.
* The command-line flag for loading a Cscore plugin has been changed
from “–cscorelib=” to “–cscore-lib=” in order to match the flag for
loading opcode plugins (“–opcode-lib=”).
* New Perf64 application that uses 64-bit double-precision
floating-point numbers for internal calculations. This is (to the best
of my knowledge) the first time that the Csound 64 version has been
ported to the Legacy Mac platform. It runs a little bit slower (20-25%
in my tests) but should theoretically provide greater accuracy in
rendering your files. Some people claim to be able to hear the
difference in the output. (My own brief listening tests were
inconclusive). Regular Perf will be used by default. You must use the
“Choose Perf…” menu item and select Perf64 in order to use it.
* Several more standalone utilities have been ported and are partially
working: SndInfo, Envelope Extract, Scale Soundfile, and the
import/export utilities for analysis files. (For details, see the
* Everything has been recompiled with CodeWarrior pro 4 which means
that all of the applications should now run under Systems 7 & 8.
* CodeWarrior pro 4 project files are now included for everything in
the source code package. The CodeWarrior 8 projects are present where
they existed before but may no longer be up-to-date.
* I didn’t include the Cscore standalone programs this time but you can
find some examples (or make your own) with the Mac Cscore SDK available
from my web site or from Sourceforge. The example Cscore plugins are
Features added in previous snapshots
(some changes have now been merged with canonical)
Csound front end:
* New dialog boxes for several groups of options including overriding
sr,kr, and tempo; extracting and playing only part of a score; and
moving the “Options” menu into a window.
* An dialog for typing any additional command-line parameters which
the GUI does not yet have controls for (e.g. “-i” for specifying an
input sound file).
* A menu item for selecting which Perf to use (if you always have more
than one on your hard drive like I do).
* A “Set All” button in the “Default Directories” dialog box.
* Opcode plug-in libraries are now available on the Mac!! (use the
“–opcode-lib=” command-line flag)
* Cscore plug-ins: a new experimental feature only on the Mac which
allows you to load cscore programs from shared libraries in the Perf
folder instead of having to recompile Perf in its entirety. Use the
“–cscore-lib=” command-line flag to load some of the example plug-ins
(e.g. “–cscorelib=DoubleDurations”). An SDK (software development kit)
with details on how to create your own Cscore plug-ins is now available.
* Now deletes temporary files (including “score.srt”) like other
New Standalone utilities:
* Score Sort (scsort)
* Score Extract (scxtract)
* Scot (Score translation language)
* standalone versions of Cscore programs
* (more to come as I have time!)
Plug-in libraries for the opcodes pans, metro, splitrig, and timedseq.
Cscore example plug-ins: Double Durations, Quad Stretch, and Parallel
Copyright Notice and License Information
Perf – A Csound Engine for Macintosh
(and Score Sort, Score Extract, Scot, SndInfo, Envelope Extract,
Scale Soundfile, Hetro Export/Import, LPC Export/Import, and
PV Export/Import which are all part of the Csound package).
Copyright (C) 1991-2002 Barry Vercoe, John ffitch, et al.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307