CSOUND(1Csound) CSOUND(1Csound)
7 Feb 1991
NAME
Csound - digital audio processing and sound synthesis
SYNOPSIS
csound [flags] orchfile scorefile
OVERVIEW
Csound is an environment in which a "scorefile" or external event
sequence can invoke arbitrarily complex signal-processing
"instruments" to produce sound. Audio may be displayed during its
creation, and the resulting sound sent to an on-line audio device or
to an intermediate soundfile for later playback. Csound is invoked by
a single command, which induces three phases of action:
Score sorting
Orchestra translation and loading
Sound generation (audio processing and synthesis).
Csound audio processing is supported by various score manipulation
languages (SCOT, CSCORE, SCSORT, EXTRACT) and by soundfile analysis-
synthesis methods including additive synthesis (ADSYN), linear
predictive coding (LPC), and phase vocoding (PVOC).
There is no complete on-line manual, but man entries exist for the
stand-alone analysis and scoring programs. More complete information
can be found in the troff-able Csound Reference Manual, which provides
an overview, tutorial, details of behavior, and step-by-step examples.
DESCRIPTION
csound is a command for passing an orchestra file and score file to
the Csound environment to generate a soundfile. In the above
SYNOPSIS, all flag arguments are optional with set defaults. Flags
may appear either separately or bundled; those that take an argument
will expect to find it either immediately following or as the next
argument. Recognized flags are:
-I Init-time processing only. Allocate and initialize all
instrument events as per the score, but skip all
Performance-time processing (no k-signals or a-signals, thus
no amplitudes and no sound). Provides a fast validity check
of all score pfields and instrument i-variables. Implies -n.
-n No sound output, i.e. do all sound generation, but bypass
audio output. This flag will override a -o flag.
-i sfnam Input soundfile name or audio-device name. If this flag is
present, sound will be continuously read from the named file
or device, and will be available to all instruments
containing an "in" unit. If no explicit path is given, the
file will be sought in the user's sound directory
(environment variable SFDIR); if sfnam is of the form
path/name, the file will be sought in the 'path' directory.
- 1 - Formatted: December 18, 2025
CSOUND(1Csound) CSOUND(1Csound)
7 Feb 1991
If sfnam is of the form /dev/name or stdin, sound will be
read from there. The encoding format of an audio input file
is self-defining, described by its soundfile header; if no
header is present, the format is presumed the same as the
generated output. The channel count and sampling rate of an
audio input file must match that of the receiving Orchestra.
-o sfnam Output soundfile name or audio-device name; the default name
is "test". Csound writes continuously to a soundfile or
device, unless prevented by a -n flag. If sfnam is omitted
or contains no explicit path, sound will be written to the
user's soundfile directory (environment variable SFDIR); if
sfnam is of the form path/name, sound will be placed in the
'path' directory. If sfnam is of the form /dev/name or
stdout, sound will be sent there.
-b N Blocksize, in samples (not bytes), for the above sound I/O.
Typically 512 samples per buffer. A larger number is more
efficient, but small numbers reduce the delay in realtime
performances.
-h Do not write a soundfile header in the sound output stream.
-c Write 8-bit signed-character sound samples.
-a Write 8-bit alaw-encoded sound samples.
-u Write 8-bit ulaw-encoded sound samples.
-s Write 16-bit short_integer sound samples.
-l Write 32-bit long_integer sound samples.
-f Write single-precision floating-point sound samples. A float
file cannot generally be played, but can be rescaled, or read
by soundin and GEN01.
-v Verbose translate and run. Prints details of orch
translation and performance, enabling errors to be more
clearly located.
-m N Message level for standard (terminal) output. Takes the sum
of 3 print control flags, turned on by the following values:
1 = note amplitude messages, 2 = samples out of range
message, 4 = warning messages. The default value is m7 (all
messages on).
-d Suppress all display functions.
- 2 - Formatted: December 18, 2025
CSOUND(1Csound) CSOUND(1Csound)
7 Feb 1991
-g Suppress graphics, and use ascii displays instead. If the
user terminal supports graphic windows, display functions
ordinarily appear in that form. This flag will invoke an
alternate system, printing graphs in ascii characters--as
would occur if the terminal did not support graphics.
-S sname Interpret sname as a Scot scorefile, create a standard score
file from it, then perform the result.
-x xname Extract a portion of the sorted scorefile (or 'score.srt')
according to the contents of xname (see Extract below).
-B Beat mode. Use the uninterpreted Beats of score.srt for this
performance. In this mode, the beat rate of score
performance is controllable from within the orchestra by a
tempo unit.
-R indev Allow Realtime Line-oriented ascii-defined events via device
indev to activate instruments of the Orchestra. E.g., the
name stdin would enable an associated realtime process to
initiate fully-specified score events through a pipe. The
format of events is identical to that in an unsorted
scorefile, except that pfield 3 (duration) is given in
seconds and pfield 2 (start-time) is automatically set at
event-time. A parallel score is optional.
-M indev Allow MIDI invocation of the orchestra instruments via device
indev, of the form /dev/midi or stdin. A parallel score is
optional.
The orchfile is a collection of Instruments which are sequences of
Csound statements invoking control-signal and audio-signal processing
modules. A simple instrument might appear as follows:
instr 3
k1 linseg p4, p3, p4/10
a1 oscil k1, p5, 1
out a1
endin
The scorefile is a collection of statements that create stored
waveforms or activate orchestra instruments at some specified time. A
score statement contains parameter values that are passed to the
instrument. The following would create a single stored waveform, then
invoke the above instrument to generate two two-beat audio events,
with p4 amplitude 1000 and p5 pitches 440 and 522 Hertz:
f 1 0 256 10 1
i 3 0 2 1000 440
i 3 2 2 1000 522
- 3 - Formatted: December 18, 2025
CSOUND(1Csound) CSOUND(1Csound)
7 Feb 1991
e
The Extract feature:
This feature will extract a segment of a sorted numeric score file
according to instructions taken from a control file. The control file
contains an instrument list and two time points, from and to, in the
form:
instruments 1 2 from 1:27.5 to 2:2
The component labels may be abbreviated as i, f and t. The time points
denote the begininng and end of the extract in terms of:
[section no.] : [beat no.].
Each of the three parts is also optional. The default values for
missing i, f or t are:
all instruments, begining of score, end of score.
extract reads an orchestra-readable score file and produces an
orchestra-readable result. Comments, tabs and extra spaces are
flushed, w and a statements are added and an f0 reflecting the extract
length is appended to the output. Following an extract process, the
abbreviated score will contain all function table statements, together
with just those note statements that occur in the from-to interval
specified. Notes lying completely in the interval will be unmodified;
notes that lie only partly within will their p3 durations truncated as
necessary.
Independent Preprocessing:
Although the result of all score preprocessing is retained in the file
score.srt after orchestra performance (it exists as soon as score
preprocessing has completed), the user may sometimes want to run these
phases independently. The command
scot filename
will process the Scot formatted filename, and leave a standard numeric
score result in a file named score for perusal or later processing.
The command
scscort < infile > outfile
will put a numeric score infile through Carry, Tempo, and Sort
preprocessing, leaving the result in outfile.
Likewise extract, also normally invoked as part of the perf command,
can be invoked as a standalone program:
extract xfile < score.sort > score.extract
This command expects an already sorted score. An unsorted score
should first be sent through scsort then piped to the extract program:
scsort < scorefile | extract xfile > score.extract
- 4 - Formatted: December 18, 2025
CSOUND(1Csound) CSOUND(1Csound)
7 Feb 1991
SEE ALSO
hetro(1Csound), lpcanal(1Csound), pvanal(1Csound), The Csound
Reference Manual
AUTHOR
Written by Barry Vercoe, Music and Cognition group of the Media
Laboratory at MIT.
- 5 - Formatted: December 18, 2025