MIT Media Lab
Edited by
John ffitch
Jean Piché
Peter Nix
Richard Boulanger
Rasmus Ekman
David Boothe
Kevin Conder
4.21-4 Edition
- Table of Contents
- Preface
- Preface to the Csound Manual
- Copyright Notice
- Contributors
- Why is this called the Alternative Csound Reference Manual?
- I. Overview
- Introduction
- Where to Get Public Csound and the Csound Manual
- How to Install Csound
- Linux
- Macintosh
- MS-DOS and Windows 95/NT
- Windows 95/98/2000
- Other Platforms
- The Csound Mailing List
- Bug Reports
- The Csound Command
- Order of Precedence
- Description
- Command-line Flags
- Unified File Format for Orchestras and Scores
- Description
- Structured Data File Format
- Mandatory Elements
- Options
- Instruments (Orchestra)
- Score
- Optional Elements
- Included Base64 Files
- Version Blocking
- Example
- Command Line Parameter File
- Score File Preprocessing
- The Extract Feature
- Independent Pre-Processing with Scsort
- Syntax of the Orchestra
- Directories and Files
- Nomenclature
- Orchestra Statement Types
- Constants and Variables
- Expressions
- Orchestra Header Statements
- Instrument Block Statements
- Variable Initialization
- Instrument Control
- Clock Control
- Conditional Values
- Duration Control Statements
- Instrument Invocation
- Macros
- Program Flow Control
- Real-time Performance Control
- Reinitialization
- Sensing and Control
- Sub-instrument Control
- Time Reading
- Function Table Control
- Table Queries
- Read/Write Operations
- Table Selection
- Mathematical Operations
- Amplitude Converters
- Arithmetic and Logic Operations
- Mathematical Functions
- Opcode Equivalents of Functions
- Random Functions
- Trigonometric Functions
- MIDI Support
- Controller Input
- Converters
- Event Extenders
- Generic Input and Output
- Note-on/Note-off
- MIDI Message Output
- Real-time Messages
- Slider Banks
- Pitch Converters
- Functions
- Tuning Opcodes
- Signal Generators
- Additive Synthesis/Resynthesis
- Basic Oscillators
- Dynamic Spectrum Oscillators
- FM Synthesis
- Granular Synthesis
- Linear and Exponential Generators
- Linear Predictive Coding (LPC) Resynthesis
- Models and Emulations
- Phasors
- Random (Noise) Generators
- Sample Playback
- Scanned Synthesis
- Short-time Fourier Transform (STFT) Resynthesis
- Table Access
- Wave Terrain Synthesis
- Waveguide Physical Modeling
- Signal Input and Output
- File Input and Output
- Input
- Output
- Printing and Display
- Sound File Queries
- Signal Modifiers
- Amplitude Modifiers
- Convolution and Morphing
- Delay
- Envelope Modifiers
- Panning and Spatialization
- Reverberation
- Sample Level Operators
- Signal Limiters
- Special Effects
- Specialized Filters
- Standard Filters
- Waveguides
- Spectral Processing
- Non-standard Spectral Processing
- Tools for Real-time Spectral Processing
- Zak Patch System
- The Standard Numeric Score
- Preprocessing of Standard Scores
- Carry
- Tempo
- Sort
- N.B.
- Next-P and Previous-P Symbols
- Ramping
- Score Macros
- Description
- Syntax
- Initialization
- Performance
- Examples
- Credits
- Multiple File Score
- Description
- Syntax
- Performance
- Credits
- Evaluation of Expressions
- Example
- Credits
- Score Statements
- Sine/Cosine Generators
- Line/Exponential Segment Generators
- File Access GEN Routines
- Numeric Value Access GEN Routines
- Window Function GEN Routines
- Random Function GEN Routines
- Waveshaping GEN Routines
- Amplitude Scaling GEN Routines
- Mixing GEN Routines
- II. Reference
- Orchestra Opcodes and Operators
- != — Determines if one value is not equal to another.
- #define — Defines a macro.
- #include — Includes an external file for processing.
- #undef — Un-defines a macro.
- $NAME — Calls a defined macro.
- % — Modulus operator.
- && — Logical AND operator.
- > — Determines if one value is greater than another.
- >= — Determines if one value is greater than or equal to another.
- < — Determines if one value is less than another.
- <= — Determines if one value is less than or equal to another.
- * — Multiplication operator.
- + — Addition operator
- - — Subtraction operator.
- / — Division operator.
- = — Performs a simple assignment.
- == — Compares two values for equality.
- ^ — "Power of" operator.
- || — Logical OR operator.
- 0dbfs — Sets the value of 0 decibels using full scale amplitude.
- a — Converts a k-rate parameter to an a-rate value with interpolation.
- abetarand — Deprecated.
- abexprnd — Deprecated.
- abs — Returns an absolute value.
- acauchy — Deprecated.
- active — Returns the number of active instances of an instrument.
- adsr — Calculates the classical ADSR envelope using linear segments.
- adsyn — Output is an additive set of individually controlled sinusoids, using an oscillator bank.
- adsynt — Performs additive synthesis with an arbitrary number of partials, not necessarily harmonic.
- aexprand — Deprecated.
- aftouch — Get the current after-touch value for this channel.
- agauss — Deprecated.
- agogobel — Deprecated.
- alinrand — Deprecated.
- alpass — Reverberates an input signal with a flat frequency response.
- ampdb — Returns the amplitude equivalent of the decibel value x.
- ampdbfs — Returns the amplitude equivalent of the decibel value x, which is relative to full scale amplitude.
- ampmidi — Get the velocity of the current MIDI event.
- apcauchy — Deprecated.
- apoisson — Deprecated.
- apow — Deprecated.
- areson — A notch filter whose transfer functions are the complements of the reson opcode.
- aresonk — A notch filter whose transfer functions are the complements of the reson opcode.
- atone — A notch filter whose transfer functions are the complements of the tone opcode.
- atonek — A notch filter whose transfer functions are the complements of the tone opcode.
- atonex — Emulates a stack of filters using the atone opcode.
- atrirand — Deprecated.
- aunirand — Deprecated.
- aweibull — Deprecated.
- babo — A physical model reverberator.
- balance — Adjust one audio signal according to the values of another.
- bamboo — Semi-physical model of a bamboo sound.
- bbcutm — Generates breakbeat-style cut-ups of a mono audio stream.
- bbcuts — Generates breakbeat-style cut-ups of a stereo audio stream.
- betarand — Beta distribution random number generator (positive values only).
- bexprnd — Exponential distribution random number generator.
- biquad — A sweepable general purpose biquadratic digital filter.
- biquada — A sweepable general purpose biquadratic digital filter with a-rate parameters.
- birnd — Returns a random number in a bi-polar range.
- butbp — Same as the butterbp opcode.
- butbr — Same as the butterbr opcode.
- buthp — Same as the butterhp opcode.
- butlp — Same as the butterlp opcode.
- butterbp — A band-pass Butterworth filter.
- butterbr — A band-reject Butterworth filter.
- butterhp — A high-pass Butterworth filter.
- butterlp — A low-pass Butterworth filter.
- button — Sense on-screen controls.
- buzz — Output is a set of harmonically related sine partials.
- cabasa — Semi-physical model of a cabasa sound.
- cauchy — Cauchy distribution random number generator.
- cent — Calculates a factor to raise/lower a frequency by a given amount of cents.
- cggoto — Conditionally transfer control on every pass.
- chanctrl — Get the current value of a MIDI channel controller.
- checkbox — Sense on-screen controls.
- cigoto — Conditionally transfer control during the i-time pass.
- ckgoto — Conditionally transfer control during the p-time passes.
- clear — Zeroes a list of audio signals.
- clfilt — Implements low-pass and high-pass filters of different styles.
- clip — Clips a signal to a predefined limit.
- clock — Deprecated.
- clockoff — Stops one of a number of internal clocks.
- clockon — Starts one of a number of internal clocks.
- cngoto — Transfers control on every pass when a condition is not true.
- comb — Reverberates an input signal with a "colored" frequency response.
- control — Configurable slider controls for realtime user input.
- convle — Same as the convolve opcode.
- convolve — Convolves a signal and an impulse response.
- cos — Performs a cosine function.
- cosh — Performs a hyperbolic cosine function.
- cosinv — Performs a arccosine function.
- cps2pch — Converts a pitch-class value into cycles-per-second for equal divisions of the octave.
- cpsmidi — Get the note number of the current MIDI event, expressed in cycles-per-second.
- cpsmidib — Get the note number of the current MIDI event and modify it by the current pitch-bend value, express it in cycles-per-second.
- cpsoct — Converts an octave-point-decimal value to cycles-per-second.
- cpspch — Converts a pitch-class value to cycles-per-second.
- cpstmid — Get a MIDI note number (allows customized micro-tuning scales).
- cpstun — Returns micro-tuning values at k-rate.
- cpstuni — Returns micro-tuning values at init-rate.
- cpsxpch — Converts a pitch-class value into cycles-per-second (Hz) for equal divisions of any interval.
- cpuprc — Control allocation of cpu resources on a per-instrument basis, to optimize realtime output.
- cross2 — Cross synthesis using FFT's.
- crunch — Semi-physical model of a crunch sound.
- ctrl14 — Allows a floating-point 14-bit MIDI signal scaled with a minimum and a maximum range.
- ctrl21 — Allows a floating-point 21-bit MIDI signal scaled with a minimum and a maximum range.
- ctrl7 — Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.
- ctrlinit — Sets the initial values for a set of MIDI controllers.
- cuserrnd — Continuous USER-defined-distribution RaNDom generator.
- dam — A dynamic compressor/expander.
- db — Returns the amplitude equivalent for a given decibel amount.
- dbamp — Returns the decibel equivalent of the raw amplitude x.
- dbfsamp — Returns the decibel equivalent of the raw amplitude x, relative to full scale amplitude.
- dcblock — A DC blocking filter.
- dconv — A direct convolution opcode.
- delay — Delays an input signal by some time interval.
- delay1 — Delays an input signal by one sample.
- delayr — Reads from an automatically established digital delay line.
- delayw — Writes the audio signal to a digital delay line.
- deltap — Taps a delay line at variable offset times.
- deltap3 — Taps a delay line at variable offset times, uses cubic interpolation.
- deltapi — Taps a delay line at variable offset times, uses interpolation.
- deltapn — Taps a delay line at variable offset times.
- deltapx — Read to or write from a delay line with interpolation.
- deltapxw — Mixes the input signal to a delay line.
- diff — Modify a signal by differentiation.
- diskin — Reads audio data from an external device or stream and can alter its pitch.
- dispfft — Displays the Fourier Transform of an audio or control signal.
- display — Displays the audio or control signals as an amplitude vs. time graph.
- distort1 — Modified hyperbolic tangent distortion.
- divz — Safely divides two numbers.
- downsamp — Modify a signal by down-sampling.
- dripwater — Semi-physical model of a water drop.
- dumpk — Periodically writes an orchestra control-signal value to an external file.
- dumpk2 — Periodically writes two orchestra control-signal values to an external file.
- dumpk3 — Periodically writes three orchestra control-signal values to an external file.
- dumpk4 — Periodically writes four orchestra control-signal values to an external file.
- duserrnd — Discrete USER-defined-distribution RaNDom generator.
- else — Executes a block of code when an "if...then" condition is false.
- elseif — Defines another "if...then" condition when a "if...then" condition is false.
- endif — Closes a block of code that begins with an "if...then" statement.
- endin — Ends the current instrument block.
- envlpx — Applies an envelope consisting of 3 segments.
- envlpxr — The envlpx opcode with a final release segment.
- event — Generates a score event from an instrument.
- exp — Returns e raised to the x-th power.
- expon — Trace an exponential curve between specified points.
- exprand — Exponential distribution random number generator (positive values only).
- expseg — Trace a series of exponential segments between specified points.
- expsega — An exponential segment generator operating at a-rate.
- expsegr — Trace a series of exponential segments between specified points including a release segment.
- filelen — Returns the length of a sound file.
- filenchnls — Returns the number of channels in a sound file.
- filepeak — Returns the peak absolute value of a sound file.
- filesr — Returns the sample rate of a sound file.
- filter2 — Performs filtering using a transposed form-II digital filter lattice with no time-varying control.
- fin — Read signals from a file at a-rate.
- fini — Read signals from a file at i-rate.
- fink — Read signals from a file at k-rate.
- fiopen — Opens a file in a specific mode.
- flanger — A user controlled flanger.
- flashtxt — Allows text to be displayed from instruments like sliders
- fmb3 — Uses FM synthesis to create a Hammond B3 organ sound.
- fmbell — Uses FM synthesis to create a tublar bell sound.
- fmmetal — Uses FM synthesis to create a "Heavy Metal" sound.
- fmpercfl — Uses FM synthesis to create a percussive flute sound.
- fmrhode — Uses FM synthesis to create a Fender Rhodes electric piano sound.
- fmvoice — FM Singing Voice Synthesis
- fmwurlie — Uses FM synthesis to create a Wurlitzer electric piano sound.
- fof — Produces sinusoid bursts useful for formant and granular synthesis.
- fof2 — Produces sinusoid bursts including k-rate incremental indexing with each successive burst.
- fog — Audio output is a succession of grains derived from data in a stored function table
- fold — Adds artificial foldover to an audio signal.
- follow — Envelope follower unit generator.
- follow2 — Another controllable envelope extractor.
- foscil — A basic frequency modulated oscillator.
- foscili — Basic frequency modulated oscillator with linear interpolation.
- fout — Outputs a-rate signals to an arbitrary number of channels.
- fouti — Outputs i-rate signals of an arbitrary number of channels to a specified file.
- foutir — Outputs i-rate signals from an arbitrary number of channels to a specified file.
- foutk — Outputs k-rate signals of an arbitrary number of channels to a specified file.
- frac — Returns the fractional part of a decimal number.
- ftchnls — Returns the number of channels in a stored function table.
- ftgen — Generate a score function table from within the orchestra.
- ftlen — Returns the size of a stored function table.
- ftload — Load a set of previously-allocated tables from a file.
- ftloadk — Load a set of previously-allocated tables from a file.
- ftlptim — Returns the loop segment start-time of a stored function table number.
- ftmorf — Morphs between two ftables.
- ftsave — Save a set of previously-allocated tables to a file.
- ftsavek — Save a set of previously-allocated tables to a file.
- ftsr — Returns the sampling-rate of a stored function table.
- gain — Adjusts the amplitude audio signal according to a root-mean-square value.
- gauss — Gaussian distribution random number generator.
- gbuzz — Output is a set of harmonically related cosine partials.
- gogobel — Audio output is a tone related to the striking of a cow bell or similar.
- goto — Transfer control on every pass.
- grain — Generates granular synthesis textures.
- grain2 — Easy-to-use granular synthesis texture generator.
- grain3 — Generate granular synthesis textures with more user control.
- granule — A more complex granular synthesis texture generator.
- guiro — Semi-physical model of a guiro sound.
- harmon — Analyze an audio input and generate harmonizing voices in synchrony.
- hilbert — A Hilbert transformer.
- hrtfer — Creates 3D audio for two speakers.
- hsboscil — An oscillator which takes tonality and brightness as arguments.
- i — Returns an init-type equivalent of a k-rate argument.
- ibetarand — Deprecated.
- ibexprnd — Deprecated.
- icauchy — Deprecated.
- ictrl14 — Deprecated.
- ictrl21 — Deprecated.
- ictrl7 — Deprecated.
- iexprand — Deprecated.
- if — Branches conditionally at initialization or during performance time.
- igauss — Deprecated.
- igoto — Transfer control during the i-time pass.
- ihold — Creates a held note.
- ilinrand — Deprecated.
- imidic14 — Deprecated.
- imidic21 — Deprecated.
- imidic7 — Deprecated.
- in — Reads mono audio data from an external device or stream.
- in32 — Reads a 32-channel audio signal from an external device or stream.
- inch — Reads from a numbered channel in an external audio signal or stream.
- inh — Reads six-channel audio data from an external device or stream.
- init — Puts the value of the i-time expression into a k- or a-rate variable.
- initc14 — Initializes the controllers used to create a 14-bit MIDI value.
- initc21 — Initializes the controllers used to create a 21-bit MIDI value.
- initc7 — Initializes the controller used to create a 7-bit MIDI value.
- ink — Passes k-rate values into a sub-instrument.
- ino — Reads eight-channel audio data from an external device or stream.
- inq — Reads quad audio data from an external device or stream.
- ins — Reads stereo audio data from an external device or stream.
- instimek — Deprecated.
- instimes — Deprecated.
- instr — Starts an instrument block.
- int — Extracts an integer from a decimal number.
- integ — Modify a signal by integration.
- interp — Converts a control signal to an audio signal using linear interpolation.
- invalue — Reads a k-rate signal from a user-defined channel.
- inx — Reads a 16-channel audio signal from an external device or stream.
- inz — Reads multi-channel audio samples into a ZAK array from an external device or stream.
- ioff — Deprecated.
- ion — Deprecated.
- iondur — Deprecated.
- iondur2 — Deprecated.
- ioutat — Deprecated.
- ioutc — Deprecated.
- ioutc14 — Deprecated.
- ioutpat — Deprecated.
- ioutpb — Deprecated.
- ioutpc — Deprecated.
- ipcauchy — Deprecated.
- ipoisson — Deprecated.
- ipow — Deprecated.
- is16b14 — Deprecated.
- is32b14 — Deprecated.
- islider16 — Deprecated.
- islider32 — Deprecated.
- islider64 — Deprecated.
- islider8 — Deprecated.
- itablecopy — Deprecated.
- itablegpw — Deprecated.
- itablemix — Deprecated.
- itablew — Deprecated.
- itrirand — Deprecated.
- iunirand — Deprecated.
- iweibull — Deprecated.
- jitter — Generates a segmented line whose segments are randomly generated.
- jitter2 — Generates a segmented line with user-controllable random segments.
- jspline — A jitter-spline generator.
- kbetarand — Deprecated.
- kbexprnd — Deprecated.
- kcauchy — Deprecated.
- kdump — Deprecated.
- kdump2 — Deprecated.
- kdump3 — Deprecated.
- kdump4 — Deprecated.
- kexprand — Deprecated.
- kfilter2 — Deprecated.
- kgauss — Deprecated.
- kgoto — Transfer control during the p-time passes.
- klinrand — Deprecated.
- kon — Deprecated.
- koutat — Deprecated.
- koutc — Deprecated.
- koutc14 — Deprecated.
- koutpat — Deprecated.
- koutpb — Deprecated.
- koutpc — Deprecated.
- kpcauchy — Deprecated.
- kpoisson — Deprecated.
- kpow — Deprecated.
- kr — Sets the control rate.
- kread — Deprecated.
- kread2 — Deprecated.
- kread3 — Deprecated.
- kread4 — Deprecated.
- ksmps — Sets the number of samples in a control period.
- ktableseg — Same as the tableseg opcode.
- ktrirand — Deprecated.
- kunirand — Deprecated.
- kweibull — Deprecated.
- lfo — A low frequency oscillator of various shapes.
- limit — Sets the lower and upper limits of the value it processes.
- line — Trace a straight line between specified points.
- linen — Applies a straight line rise and decay pattern to an input amp signal.
- linenr — The linen opcode extended with a final release segment.
- lineto — Generate glissandos starting from a control signal.
- linrand — Linear distribution random number generator (positive values only).
- linseg — Trace a series of line segments between specified points.
- linsegr — Trace a series of line segments between specified points including a release segment.
- locsend — Distributes the audio signals of a previous locsig opcode.
- locsig — Takes and input signal and distributes between 2 or 4 channels.
- log — Returns a natural log.
- log10 — Returns a base 10 log.
- logbtwo — Performs a logarithmic base two calculation.
- loopseg — Generate control signal consisting of linear segments delimited by two or more specified points.
- lorenz — Implements the Lorenz system of equations.
- loscil — Read sampled sound from a table.
- loscil3 — Read sampled sound from a table using cubic interpolation.
- lowpass2 — A resonant lowpass filter.
- lowres — Another resonant lowpass filter.
- lowresx — Simulates layers of serially connected resonant lowpass filters.
- lpf18 — A 3-pole sweepable resonant lowpass filter.
- lpfreson — Modifies the spectrum of an audio signal with time-varying filter coefficients from a control file and frequncy ratio.
- lphasor — Generates a table index for sample playback
- lpinterp — Computes a new set of poles from the interpolation between two analysis.
- lposcil — Read sampled sound from a table with optional looping and high precision.
- lposcil3 — Read sampled sound from a table with high precision and cubic interpolation.
- lpread — Reads a control file of time-ordered information frames.
- lpreson — Modifies the spectrum of an audio signal with time-varying filter coefficients from a control file.
- lpshold — Generate control signal consisting of held segments.
- lpslot — Selects the slot to be use by further lp opcodes.
- mac — Multiplies and accumulates a- and k-rate signals.
- maca — Multiply and accumulate a-rate signals only.
- madsr — Calculates the classical ADSR envelope using the linsegr mechanism.
- mandol — An emulation of a mandolin.
- marimba — Physical model related to the striking of a wooden block.
- massign — Assigns a MIDI channel number to a Csound instrument.
- maxalloc — Limits the number of allocations of an instrument.
- mclock — Sends a MIDI CLOCK message.
- mdelay — A MIDI delay opcode.
- midic14 — Allows a floating-point 14-bit MIDI signal scaled with a minimum and a maximum range.
- midic21 — Allows a floating-point 21-bit MIDI signal scaled with a minimum and a maximum range.
- midic7 — Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.
- midichannelaftertouch — Gets a MIDI channel's aftertouch value.
- midichn — Returns the MIDI channel number from which the note was activated.
- midicontrolchange — Gets a MIDI control change value.
- midictrl — Get the current value (0-127) of a specified MIDI controller.
- mididefault — Changes values, depending on MIDI activation.
- midiin — Returns a generic MIDI message received by the MIDI IN port.
- midinoteoff — Gets a MIDI noteoff value.
- midinoteoncps — Gets a MIDI note number as a cycles-per-second frequency.
- midinoteonkey — Gets a MIDI note number value.
- midinoteonoct — Gets a MIDI note number value as octave-point-decimal value.
- midinoteonpch — Gets a MIDI note number as a pitch-class value.
- midion — Plays MIDI notes.
- midion2 — Sends noteon and noteoff messages to the MIDI OUT port.
- midiout — Sends a generic MIDI message to the MIDI OUT port.
- midipitchbend — Gets a MIDI pitchbend value.
- midipolyaftertouch — Gets a MIDI polyphonic aftertouch value.
- midiprogramchange — Gets a MIDI program change value.
- mirror — Reflects the signal that exceeds the low and high thresholds.
- moog — An emulation of a mini-Moog synthesizer.
- moogvcf — A digital emulation of the Moog diode ladder filter configuration.
- moscil — Sends a stream of the MIDI notes.
- mpulse — Generates a set of impulses.
- mrtmsg — Send system real-time messages to the MIDI OUT port.
- multitap — Multitap delay line implementation.
- mxadsr — Calculates the classical ADSR envelope using the expsegr mechanism.
- nchnls — Sets the number of channels of audio output.
- nestedap — Three different nested all-pass filters.
- nlfilt — A filter with a non-linear effect.
- noise — A white noise generator with an IIR lowpass filter.
- noteoff — Send a noteoff message to the MIDI OUT port.
- noteon — Send a noteon message to the MIDI OUT port.
- noteondur — Sends a noteon and a noteoff MIDI message both with the same channel, number and velocity.
- noteondur2 — Sends a noteon and a noteoff MIDI message both with the same channel, number and velocity.
- notnum — Get a note number from a MIDI event.
- nreverb — A reverberator consisting of 6 parallel comb-lowpass filters.
- nrpn — Sends a Non-Registered Parameter Number to the MIDI OUT port.
- nsamp — Returns the number of samples loaded into a stored function table number.
- ntrpol — Calculates the weighted mean value of two input signals.
- octave — Calculates a factor to raise/lower a frequency by a given amount of octaves.
- octcps — Converts a cycles-per-second value to octave-point-decimal.
- octmidi — Get the note number, in octave-point-decimal units, of the current MIDI event.
- octmidib — Get the note number of the current MIDI event and modify it by the current pitch-bend value, express it in octave-point-decimal.
- octpch — Converts a pitch-class value to octave-point-decimal.
- oscbnk — Mixes the output of any number of oscillators.
- oscil — A simple oscillator.
- oscil1 — Accesses table values by incremental sampling.
- oscil1i — Accesses table values by incremental sampling with linear interpolation.
- oscil3 — A simple oscillator with cubic interpolation.
- oscili — A simple oscillator with linear interpolation.
- osciln — Accesses table values at a user-defined frequency.
- oscils — A simple, fast sine oscillator
- oscilx — Same as the osciln opcode.
- out — Writes mono audio data to an external device or stream.
- out32 — Writes 32-channel audio data to an external device or stream.
- outc — Writes audio data with an arbitrary number of channels to an external device or stream.
- outch — Writes multi-channel audio data, with user-controllable channels, to an external device or stream.
- outh — Writes 6-channel audio data to an external device or stream.
- outiat — Sends MIDI aftertouch messages at i-rate.
- outic — Sends MIDI controller output at i-rate.
- outic14 — Sends 14-bit MIDI controller output at i-rate.
- outipat — Sends polyphonic MIDI aftertouch messages at i-rate.
- outipb — Sends MIDI pitch-bend messages at i-rate.
- outipc — Sends MIDI program change messages at i-rate
- outk — Passes k-rate values out of a sub-instrument.
- outkat — Sends MIDI aftertouch messages at k-rate.
- outkc — Sends MIDI controller messages at k-rate.
- outkc14 — Sends 14-bit MIDI controller output at k-rate.
- outkpat — Sends polyphonic MIDI aftertouch messages at k-rate.
- outkpb — Sends MIDI pitch-bend messages at k-rate.
- outkpc — Sends MIDI program change messages at k-rate.
- outo — Writes 8-channel audio data to an external device or stream.
- outq — Writes 4-channel audio data to an external device or stream.
- outq1 — Writes samples to quad channel 1 of an external device or stream.
- outq2 — Writes samples to quad channel 2 of an external device or stream.
- outq3 — Writes samples to quad channel 3 of an external device or stream.
- outq4 — Writes samples to quad channel 4 of an external device or stream.
- outs — Writes stereo audio data to an external device or stream.
- outs1 — Writes samples to stereo channel 1 of an external device or stream.
- outs2 — Writes samples to stereo channel 2 of an external device or stream.
- outvalue — Sends a k-rate signal to a user-defined channel.
- outx — Writes 16-channel audio data to an external device or stream.
- outz — Writes multi-channel audio data from a ZAK array to an external device or stream.
- p — Show the value in a given p-field.
- pan — Distribute an audio signal amongst four channels.
- pareq — Implementation of Zoelzer's parametric equalizer filters.
- pcauchy — Cauchy distribution random number generator (positive values only).
- pchbend — Get the current pitch-bend value for this channel.
- pchmidi — Get the note number of the current MIDI event, expressed in pitch-class units.
- pchmidib — Get the note number of the current MIDI event and modify it by the current pitch-bend value, express it in pitch-class units.
- pchoct — Converts an octave-point-decimal value to pitch-class.
- peak — Maintains the output equal to the highest absolute value received.
- peakk — Deprecated.
- pgmassign — Assigns an instrument number to a specified MIDI program.
- phaser1 — First-order allpass filters arranged in a series.
- phaser2 — Second-order allpass filters arranged in a series.
- phasor — Produce a normalized moving phase value.
- phasorbnk — Produce an arbitrary number of normalized moving phase values.
- pinkish — Generates approximate pink noise.
- pitch — Tracks the pitch of a signal.
- pitchamdf — Follows the pitch of a signal based on the AMDF method.
- planet — Simulates a planet orbiting in a binary star system.
- pluck — Produces a naturally decaying plucked string or drum sound.
- poisson — Poisson distribution random number generator (positive values only).
- polyaft —
Returns the polyphonic after-touch pressure of the selected note number.
- port — Applies portamento to a step-valued control signal.
- portk — Applies portamento to a step-valued control signal.
- poscil — High precision oscillator.
- poscil3 — High precision oscillator with cubic interpolation.
- pow — Computes one argument to the power of another argument.
- powoftwo — Performs a power-of-two calculation.
- prealloc — Creates space for instruments but does not run them.
- print — Displays the values init, control, or audio signals.
- printk — Prints one k-rate value at specified intervals.
- printk2 — Prints a new value every time a control variable changes.
- printks — Prints using a printf() style syntax.
- product — Multiplies any number of a-rate signals.
- pset — Defines and initializes numeric arrays at orchestra load time.
- pvadd — Reads from a pvoc file and uses the data to perform additive synthesis.
- pvbufread — Reads from a phase vocoder analysis file and makes the retrieved data available.
- pvcross — Applies the amplitudes from one phase vocoder analysis file to the data from a second file.
- pvinterp — Interpolates between the amplitudes and frequencies of two phase vocoder analysis files.
- pvoc — Implements signal reconstruction using an fft-based phase vocoder.
- pvread — Reads from a phase vocoder analysis file and returns the frequency and amplitude from a single analysis channel or bin.
- pvsadsyn — Resynthesize using a fast oscillator-bank.
- pvsanal — Generate an fsig from a mono audio source ain, using phase vocoder overlap-add analysis.
- pvscross — Performs cross-synthesis between two source fsigs.
- pvsfread — Read a selected channel from a PVOC-EX analysis file.
- pvsftr — Reads amplitude and/or frequency data from function tables.
- pvsftw — Writes amplitude and/or frequency data to function tables.
- pvsinfo — Get information from a PVOC-EX formatted source.
- pvsmaska — Modify amplitudes using a function table, with dynamic scaling.
- pvsynth — Resynthesise using a FFT overlap-add.
- rand — Generates a controlled random number series.
- randh — Generates random numbers and holds them for a period of time.
- randi — Generates a controlled random number series with interpolation between each new number.
- random — Generates is a controlled pseudo-random number series between min and max values.
- randomh — Generates random numbers with a user-defined limit and holds them for a period of time.
- randomi — Generates a user-controlled random number series with interpolation between each new number.
- readclock — Reads the value of an internal clock.
- readk — Periodically reads an orchestra control-signal value from an external file.
- readk2 — Periodically reads two orchestra control-signal values from an external file.
- readk3 — Periodically reads three orchestra control-signal values from an external file.
- readk4 — Periodically reads four orchestra control-signal values from an external file.
- reinit — Suspends a performance while a special initialization pass is executed.
- release — Indicates whether a note is in its "release" stage.
- repluck — Physical model of the plucked string.
- reson — A second-order resonant filter.
- resonk — A second-order resonant filter.
- resonr — A bandpass filter with variable frequency response.
- resonx — Emulates a stack of filters using the reson opcode.
- resony — A bank of second-order bandpass filters, connected in parallel.
- resonz — A bandpass filter with variable frequency response.
- reverb — Reverberates an input signal with a "natural room" frequency response.
- reverb2 — Same as the nreverb opcode.
- rezzy — A resonant low-pass filter.
- rigoto — Transfers control during a reinit pass.
- rireturn — Terminates a reinit pass.
- rms — Determines the root-mean-square amplitude of an audio signal.
- rnd — Returns a random number in a unipolar range.
- rnd31 — 31-bit bipolar random opcodes with controllable distribution.
- rspline — Generate random spline curves.
- rtclock — Read the real time clock from the operating system.
- s16b14 — Creates a bank of 16 different 14-bit MIDI control message numbers.
- s32b14 — Creates a bank of 32 different 14-bit MIDI control message numbers.
- samphold — Performs a sample-and-hold operation on its input.
- sandpaper — Semi-physical model of a sandpaper sound.
- scanhammer — Copies from one table to another with a gain control.
- scans — Generate audio output using scanned synthesis.
- scantable — A simpler scanned synthesis implementation.
- scanu — Compute the waveform and the wavetable for use in scanned synthesis.
- schedkwhen — Adds a new score event generated by a k-rate trigger.
- schedule — Adds a new score event.
- schedwhen — Adds a new score event.
- seed — Sets the global seed value.
- sekere — Semi-physical model of a sekere sound.
- semitone — Calculates a factor to raise/lower a frequency by a given amount of semitones.
- sense — Same as the sensekey opcode.
- sensekey — Returns the ASCII code of a key that has been pressed.
- seqtime — Generates a trigger signal according to the values stored in a table.
- setctrl — Configurable slider controls for realtime user input.
- sfilist — Prints a list of all instruments of a previously loaded SoundFont2 (SF2) file.
- sfinstr — Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound.
- sfinstr3 — Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound with cubic interpolation.
- sfinstr3m — Plays a SoundFont2 (SF2) sample instrument, generating a mono sound with cubic interpolation.
- sfinstrm — Plays a SoundFont2 (SF2) sample instrument, generating a mono sound.
- sfload — Loads an entire SoundFont2 (SF2) sample file into memory.
- sfpassign — Assigns all presets of a SoundFont2 (SF2) sample file to a sequence of progressive index numbers.
- sfplay — Plays a SoundFont2 (SF2) sample preset, generating a stereo sound.
- sfplay3 — Plays a SoundFont2 (SF2) sample preset, generating a stereo sound with cubic interpolation.
- sfplay3m — Plays a SoundFont2 (SF2) sample preset, generating a mono sound with cubic interpolation.
- sfplaym — Plays a SoundFont2 (SF2) sample preset, generating a mono sound.
- sfplist — Prints a list of all presets of a SoundFont2 (SF2) sample file.
- sfpreset — Assigns an existing preset of a SoundFont2 (SF2) sample file to an index number.
- shaker — Sounds like the shaking of a maraca or similar gourd instrument.
- sin — Performs a sine function.
- sinh — Performs a hyperbolic sine function.
- sininv — Performs an arcsine function.
- sleighbells — Semi-physical model of a sleighbell sound.
- slider16 — Creates a bank of 16 different MIDI control message numbers.
- slider16f — Creates a bank of 16 different MIDI control message numbers, filtered before output.
- slider32 — Creates a bank of 32 different MIDI control message numbers.
- slider32f — Creates a bank of 32 different MIDI control message numbers, filtered before output.
- slider64 — Creates a bank of 64 different MIDI control message numbers.
- slider64f — Creates a bank of 64 different MIDI control message numbers, filtered before output.
- slider8 — Creates a bank of 8 different MIDI control message numbers.
- slider8f — Creates a bank of 8 different MIDI control message numbers, filtered before output.
- sndwarp — Reads a mono sound sample from a table and applies time-stretching and/or pitch modification.
- sndwarpst — Reads a stereo sound sample from a table and applies time-stretching and/or pitch modification.
- soundin — Reads audio data from an external device or stream.
- soundout — Writes audio output to a disk file.
- space — Distributes an input signal among 4 channels using cartesian coordinates.
- spat3d — Positions the input sound in a 3D space and allows moving the sound at k-rate.
- spat3di — Positions the input sound in a 3D space with the sound source position set at i-time.
- spat3dt — Can be used to render an impulse response for a 3D space at i-time.
- spdist — Calculates distance values from xy coordinates.
- specaddm — Perform a weighted add of two input spectra.
- specdiff — Finds the positive difference values between consecutive spectral frames.
- specdisp — Displays the magnitude values of the spectrum.
- specfilt — Filters each channel of an input spectrum.
- spechist — Accumulates the values of successive spectral frames.
- specptrk — Estimates the pitch of the most prominent complex tone in the spectrum.
- specscal — Scales an input spectral datablock with spectral envelopes.
- specsum — Sums the magnitudes across all channels of the spectrum.
- spectrum — Generate a constant-Q, exponentially-spaced DFT.
- spsend — Generates output signals based on a previously defined space opcode.
- sqrt — Returns a square root value.
- sr — Sets the audio sampling rate.
- stix — Semi-physical model of a stick sound.
- streson — A string resonator with variable fundamental frequency.
- strset — Allows a string to be linked with a numeric value.
- subinstr — Creates and runs a numbered instrument instance.
- sum — Sums any number of a-rate signals.
- svfilter — A resonant second order filter, with simultaneous lowpass, highpass and bandpass outputs.
- table — Accesses table values by direct indexing.
- table3 — Accesses table values by direct indexing with cubic interpolation.
- tablecopy — Simple, fast table copy opcode.
- tablegpw — Writes a table's guard point.
- tablei — Accesses table values by direct indexing with linear interpolation.
- tableicopy — Simple, fast table copy opcode.
- tableigpw — Writes a table's guard point.
- tableikt — Provides k-rate control over table numbers.
- tableimix — Mixes two tables.
- tableiw — Change the contents of existing function tables.
- tablekt — Provides k-rate control over table numbers.
- tablemix — Mixes two tables.
- tableng — Interrogates a function table for length.
- tablera — Reads tables in sequential locations.
- tableseg — Creates a new function table by making linear segments between values in stored function tables.
- tablew — Change the contents of existing function tables.
- tablewa — Writes tables in sequential locations.
- tablewkt — Change the contents of existing function tables.
- tablexkt — Reads function tables with linear, cubic, or sinc interpolation.
- tablexseg — Creates a new function table by making exponential segments between values in stored function tables.
- tambourine — Semi-physical model of a tambourine sound.
- tan — Performs a tangent function.
- tanh — Performs a hyperbolic tangent function.
- taninv — Performs an arctangent function.
- taninv2 — Returns an arctangent.
- tbvcf — Models some of the filter characteristics of a Roland TB303 voltage-controlled filter.
- tempest — Estimate the tempo of beat patterns in a control signal.
- tempo — Apply tempo control to an uninterpreted score.
- tempoval — Reads the current value of the tempo.
- tigoto — Transfer control at i-time when a new note is being tied onto a previously held note
- timeinstk — Read absolute time in k-rate cycles.
- timeinsts — Read absolute time in seconds.
- timek — Read absolute time in k-rate cycles.
- times — Read absolute time in seconds.
- timout — Conditional branch during p-time depending on elapsed note time.
- tival — Puts the value of the instrument's internal "tie-in" flag into the named i-rate variable.
- tlineto — Generate glissandos starting from a control signal.
- tone — A first-order recursive low-pass with variable frequency response.
- tonek — A first-order recursive low-pass filter with variable frequency response.
- tonex — Emulates a stack of filters using the tone opcode.
- transeg — Constructs a user-definable envelope.
- trigger — Informs when a krate signal crosses a threshold.
- trigseq — Accepts a trigger signal as input and outputs a group of values.
- trirand — Linear distribution random number generator.
- turnoff — Enables an instrument to turn itself off.
- turnon — Activate an instrument for an indefinite time.
- unirand — Uniform distribution random number generator (positive values only).
- upsamp — Modify a signal by up-sampling.
- urd — A discrete user-defined-distribution random generator that can be used as a function.
- valpass — Variably reverberates an input signal with a flat frequency response.
- vbap16 — Distributes an audio signal among 16 channels.
- vbap16move — Distribute an audio signal among 16 channels with moving virtual sources.
- vbap4 — Distributes an audio signal among 4 channels.
- vbap4move — Distributes an audio signal among 4 channels with moving virtual sources.
- vbap8 — Distributes an audio signal among 8 channels.
- vbap8move — Distributes an audio signal among 8 channels with moving virtual sources.
- vbaplsinit — Configures VBAP output according to loudspeaker parameters.
- vbapz — Writes a multi-channel audio signal to a ZAK array.
- vbapzmove — Writes a multi-channel audio signal to a ZAK array with moving virtual sources.
- vco — Implementation of a band limited, analog modeled oscillator.
- vcomb — Variably reverberates an input signal with a "colored" frequency response.
- vdelay — An interpolating variable time delay.
- vdelay3 — An variable time delay with cubic interpolation.
- vdelayx — A variable delay opcode with high quality interpolation.
- vdelayxq — A 4-channel variable delay opcode with high quality interpolation.
- vdelayxs — A stereo variable delay opcode with high quality interpolation.
- vdelayxw — Variable delay opcodes with high quality interpolation.
- vdelayxwq — Variable delay opcodes with high quality interpolation.
- vdelayxws — Variable delay opcodes with high quality interpolation.
- veloc — Get the velocity from a MIDI event.
- vibes — Physical model related to the striking of a metal block.
- vibr — Easier-to-use user-controllable vibrato.
- vibrato — Generates a natural-sounding user-controllable vibrato.
- vincr — Accumulates audio signals.
- vlowres — A bank of filters in which the cutoff frequency can be separated under user control.
- voice — An emulation of a human voice.
- vpvoc — Implements signal reconstruction using an fft-based phase vocoder and an extra envelope.
- waveset — A simple time stretch by repeating cycles.
- weibull — Weibull distribution random number generator (positive values only).
- wgbow — Creates a tone similar to a bowed string.
- wgbowedbar — A physical model of a bowed bar.
- wgbrass — Creates a tone related to a brass instrument.
- wgclar — Creates a tone similar to a clarinet.
- wgflute — Creates a tone similar to a flute.
- wgpluck — A high fidelity simulation of a plucked string.
- wgpluck2 — Physical model of the plucked string.
- wguide1 — A simple waveguide model consisting of one delay-line and one first-order lowpass filter.
- wguide2 — A model of beaten plate consisting of two parallel delay-lines and two first-order lowpass filters.
- wrap — Wraps-around the signal that exceeds the low and high thresholds.
- wterrain — A simple wave-terrain synthesis opcode.
- xadsr — Calculates the classical ADSR envelope.
- xscanmap — Allows the position and velocity of a node in a scanned process to be read.
- xscans — Fast scanned synthesis waveform and the wavetable generator.
- xscanu — Compute the waveform and the wavetable for use in scanned synthesis.
- xtratim — Extend the duration of real-time generated events.
- xyin — Sense the cursor position in an output window
- zacl — Clears one or more variables in the za space.
- zakinit — Establishes zak space.
- zamod — Modulates one a-rate signal by a second one.
- zar — Reads from a location in za space at a-rate.
- zarg — Reads from a location in za space at a-rate, adds some gain.
- zaw — Writes to a za variable at a-rate without mixing.
- zawm — Writes to a za variable at a-rate with mixing.
- zfilter2 — Performs filtering using a transposed form-II digital filter lattice with radial pole-shearing and angular pole-warping.
- zir — Reads from a location in zk space at i-rate.
- ziw — Writes to a zk variable at i-rate without mixing.
- ziwm — Writes to a zk variable to an i-rate variable with mixing.
- zkcl — Clears one or more variables in the zk space.
- zkmod — Facilitates the modulation of one signal by another.
- zkr — Reads from a location in zk space at k-rate.
- zkw — Writes to a zk variable at k-rate without mixing.
- zkwm — Writes to a zk variable at k-rate with mixing.
- Score Statements and GEN Routines
- Score Statements
- a Statement (or Advance Statement) — Advance score time by a specified amount.
- b Statement — This statement resets the clock.
- e Statement — This statement may be used to mark the end of the last section of the score.
- f Statement (or Function Table Statement) — Causes a GEN subroutine to place values in a stored function table.
- i Statement (Instrument or Note Statement) — Makes an instrument active at a specific time and for a certain duration.
- m Statement (Mark Statement) — Sets a named mark in the score.
- n Statement — Repeats a section.
- r Statement (Repeat Statement) — Starts a repeated section.
- s Statement — Marks the end of a section.
- t Statement (Tempo Statement) — Sets the tempo.
- v Statement — Provides for locally variable time warping of score events.
- x Statement — Skip the rest of the current section.
- GEN Routines
- GEN01 — Transfers data from a soundfile into a function table.
- GEN02 — Transfers data from immediate pfields into a function table.
- GEN03 — Generates a stored function table by evaluating a polynomial.
- GEN04 — Generates a normalizing function.
- GEN05 — Constructs functions from segments of exponential curves.
- GEN06 — Generates a function comprised of segments of cubic polynomials.
- GEN07 — Constructs functions from segments of straight lines.
- GEN08 — Generate a piecewise cubic spline curve.
- GEN09 — Generate composite waveforms made up of weighted sums of simple sinusoids.
- GEN10 — Generate composite waveforms made up of weighted sums of simple sinusoids.
- GEN11 — Generates an additive set of cosine partials.
- GEN12 — Generates the log of a modified Bessel function of the second kind.
- GEN13 — Stores a polynomial whose coefficients derive from the Chebyshev polynomials of the first kind.
- GEN14 — Stores a polynomial whose coefficients derive from Chebyshevs of the second kind.
- GEN15 — Creates two tables of stored polynomial functions.
- GEN16 — Creates a table from a starting value to an ending value.
- GEN17 — Creates a step function from given x-y pairs.
- GEN18 — Writes composite waveforms made up of pre-existing waveforms.
- GEN19 — Generate composite waveforms made up of weighted sums of simple sinusoids.
- GEN20 — Generates functions of different windows.
- GEN21 — Generates tables of different random distributions.
- GEN23 — Reads numeric values from a text file.
- GEN24 — Reads numeric values from another allocated function-table and rescales them.
- GEN25 — Construct functions from segments of exponential curves in breakpoint fashion.
- GEN27 — Construct functions from segments of straight lines in breakpoint fashion.
- GEN28 — Reads a text file which contains a time-tagged trajectory.
- GEN30 — Generates harmonic partials by analyzing an existing table.
- GEN31 — Mixes any waveform specified in an existing table.
- GEN32 — Mixes any waveform, resampled with either FFT or linear interpolation.
- GEN33 — Generate composite waveforms by mixing simple sinusoids.
- GEN34 — Generate composite waveforms by mixing simple sinusoids.
- GEN40 — Generates a random distribution using a distribution histogram.
- GEN41 — Generates a random list of numerical pairs.
- GEN42 — Generates a random distribution of discrete ranges of values.
- The Utility Programs
- Directories.
- Soundfile Formats.
- Credits
- Analysis File Generation
- hetro — Decomposes an input soundfile into component sinusoids.
- lpanal — Performs both linear predictive analysis on a soundfile.
- pvanal — Converts a soundfile into a series of short-time Fourier transform frames.
- cvanal — Converts a soundfile into a single Fourier transform frame.
- File Queries
- sndinfo — Displays information about a soundfile.
- File Conversion
- dnoise — Reduces noise in a file.
- pvlook — View formatted text output of STFT analysis files.
- sdif2ad — Converts SDIF files to files usable by adsynt.
- srconv — Converts the sample rate of an audio file.
- Cscore
- Events, Lists, and Operations
- Writing a Main Program
- More Advanced Examples
- Compiling a Cscore Program
- Adding your own Cmodules to Csound
- Function tables
- Additional Space
- File Sharing
- String arguments
- Pitch Conversion
- Sound Intensity Values
- Formant Values
- Window Functions
- SoundFont2 File Format
- Quick Reference
- Index