User-Defined Opcode Database



This is a repository of User-Defined Opcodes for the Csound music synthesis software. User-Defined Opcodes are opcodes for Csound created using Csound orchestra text. More information about how to create a User-Defined Opcode can be found here.  This database was edited by Steven Yi.

Signal Generators

ADSD – An envelope generator modelling the classic analogue ADSD envelopes
BufFiPl1 – Plays a mono sample from a GEN01 function table, including sample rate conversion
BufFiPl2 – Plays a stereo sample from two GEN01 function tables, including sample rate conversion
BufFiPl4 – Plays a four channel sample from four GEN01 function tables, including sample rate conversion
BufFiPl8 – Plays an eight channel sample from eight GEN01 function tables, including sample rate conversion
BufPlay1 – Plays audio from a mono buffer (function table), with different options
BufPlay2 – Plays audio from a stereo buffer (two function tables), with different options
FilePlay1 – Plays a mono signal from a mono or stereo soundfile
FilePlay2 – Plays a stereo signal from a mono or stereo soundfile
footarray – Interface for a foot array which outputs program change MIDI messages. Can be used with any MIDI program change capable device.
GaussTrig – Outputs a-rate impulses around a certain frequency.
Linek – performs a linear interpolation from one value to another value in a certain time whenever a trigger is received
LpPhsr – creates a time pointer for loops
msrOsc – Simple Generator
p5glove – Unit generator for P5 data glove
PartikkelSimpA – A simplified version of the Partikkel opcode, but with some additional parameters
PartikkelSimpB – The same as PartikkelSimpA, but with a time pointer input
pgmin – Read program change messages from MIDI input
RandomWalkA – Generate random walk at a-rate
RandomWalkK – Generate random walk at k-rate
rbatonPercPad – Senses trigger/whack strength as well as X and Y coordinates of the two batons in a Max Mathew’s Radio Baton system
rbatonPot – Implements a sensor for the 4 pots, 2 footswitches and B15+ button on the Max Mathew’s Radio Baton unit
rbatonXYZ – polls X, Y, and Z coordinates of a Max Mathew’s Radio Baton
stereoGrain – Granular synthesis similar to granule but in stereo with control rate parameters and unlimited transpositions
TransGen – Transient envelope generator, pulse divider, and/or LFO.
vowgen – fof-based vocal generator with morfable vowels

Signal Modifiers

~ Effects ~
Baboon – UDO wrapper for the babo opcode
decimator – Sample rate / Bit depth reduce. Based on the work of Steven Cook ( k-rate parameters)
ensembleChorus – A stereo chorus opcode with multiple voices
freqShift – Detunes an audio signal
PitchShifter – Delay-line pitchshifter
SCReverb – 8 delay line stereo FDN reverb
SigRec – A table-based signal recorder (looping sampler), with pitch control
SigReverse – A table-based reversing opcode
trackerSplice – signal splicer
~ Filters ~
Fofilter – A formant filter version of the FOF opcode
Moogladder – An improved implementation of the Moog ladder filter
Statevar – A digital version of the analogue state variable filter
tap_tubewarmth – tap_tubewarmth – A port of Tom Szilagyi’s TAP TubeWarmth LADSPA plugin to a Csound User-Defined Opcode
Vocoder – channel vocoder with user-specified number of bands
vowel – vowel filter with morfable vowels
~ Panning and Spatialization ~

bformatQuad – Converts quadrophonic to b-format
bformatStereo – Converts stereo to b-format ambisonics
circumspect – redistribute the spectral content of a monaural signal between 6 loudspeakers – pans stereo input to stereo output
pan_delay_and_filtered – Pan using delay and filters
pan_equal_power – Equal Power Panning
pan_gm2 – Equal Power Panning scheme defined by MIDI Association for GM2 in RP-036
pan_simple – Simple Linear Pan
pan_sin – Pan using Sin/Cos to create more even power between channels
pan_sqrt – sqrt method for panning
quadBformat – Converts b-format to quadrophonic
stereoAsymmetry – Side-only panning of a stereo signal
stereoBalance – Stereo ‘panning’ using the balance technique
stereoBformat – Converts b-format ambisonics to uhj stereo
stereoMpan – Middle panorama panning of the ‘M’ component of a stereo signal
stereoMS – Converts Stereo to MS and MS to Stereo
stereoRotate – Stereo ‘panning’ using the middle-side technique
stereoWidth – Changes the image width of a stereo signal


ampdbN – Normalized conversion from db to amplitude
ampSlider – Converts a scaled (0-1) value to a value resembling a hardware mixer slider
BufCt1 – creates a function table of ilen seconds for recording
BufCt2 – creates two function tables of ilen seconds for recording
BufFiCt1 – creates a gen01 function table from a mono soundfile
BufFiCt2 – creates two gen01 function table from a stereo soundfile
BufFiCt4 – creates fout gen01 function table from a four channel soundfile
BufFiCt8 – creates eight gen01 function table from an eight channel soundfile
BufFiCtNd1 – creates a non deferred function table from a mono soundfile and returns its length
BufFiCtNd2 – creates two non deferred function tables from a stereo soundfile and returns the length
BufRec1 – Records in a mono buffer (function table)
BufRec2 – Records in a stereo buffer (= two function tables)
Counter – Step counter
declick – removes clicks from signal start and end
deflutter – deflutter k-rate input (data smoothing)
ExpCurve – Normalised exponential curve with variable steepness
F2M – Comverts a frequency to the next possible MIDI note number
F2MC – converts a frequency to a MIDI.Cent note number
FilDir – Returns the directory in a given path
FilDirUp – Returns the directory above the current directory
FileToPvsBuf – Writes an audio file to a pvs buffer
FilNam – Returns the file name in a given path
FilSuf – Returns the suffix of a filename or path, optional in lower case
findPowerOfTwo – Given a value in seconds, finds a power of two size equal to or greater than it in samples
flip – Flips an incoming floating point value at k-rate
FracLen – Returns the real length of the fractional part of a number
FreqByCentTab – frequency calculation of a step of a scale which is defined by a list of cent values
FreqByEqScale – frequency calculation for one step of an equal tempered scale
FreqByRatioTab – frequency calculation of a step of a scale which is defined by a list of proportions
ftreverse – reverses an ftable’s contents in place at k-rate
gainslider – Logarithmic gain slider
getFrequency – Returns frequency whether being passed in pch or frequency
hysteresis – Implements classic 2-threshold hysteresis. Useful for performance controllers
KeyOnce – Returns ‘1’ once if a certain key has been pressed or released
KeyStay – Returns ‘1’ as long as a certain key is hold
LogCurve – Normalised logarithmic curve with variable steepness
lowpass – A k-rate smoothing UDO that is useful for averaging performance controller data
midiMonitor – Displays midi channel and control number information
MS2S – Converts a floating point number in the format min.sec to seconds
PfieldsToTable – Transfers score parameter fields to a function table
PhsEdge – Reports whether the upper or lower border of a phasor has been reached
Print_a – Prints an audio signal (vector) every kPeriod seconds
Residual – extracts stochastic components (transients etc) from a sound (using csound 5 opcodes)
Scala - Scales an incoming a-signal from a certain range to another range
scale – Scales incoming value to user-definable range. Similar to scale object found in popular dataflow languages
Scali – Scales an incoming i-variable from a certain range to another range
Scalk – Scales an incoming k-signal from a certain range to another range
SinesToSSTI – returns a function table with one of the four standard waveforms, produced by the addition of harmonics
Stayed – Reports if a control signal has stayed at the same value for a certain time
StrayElMem – Tests whether a string is contained as an element in an array-string
StrayGetEl – Gets one element from a string-array
StrayGetNum – Gets one number from a string-array
StrayLen – Returns the length of an array-string
StrayNumLen – Returns the length of numerical elements in an array-string
StrayNumMem – Tests whether a number is a member of an array-string
StrayNumSum – Adds the elements in a numerical array-string
StrayNumToFt – Converts a string-array which just consists of numbers or simple math expressions to a function table
StrayRemDup – Removes duplicates in an array-string
StrayRev – Reverses the elements of an array-string
StraySetEl – Inserts an element in an array-string at a certain position
StraySetNum – Inserts a number in an array-string at a certain position
StraySub – Returns a subset of elements in an array-string
StrExpr1 – Calculates a simple binary expression in a string and returns the result as a number
StrExpr2 – Calculates a binary numerical expression in a string and returns the result as a number. One of the elements can be itself a binary expression, in which case it must be set in parentheses. Requires the UDO StrExpr1
StrNumP – tests whether a string is a numerical string
TbDmp – Prints a function table at i-time
TbDmpk – Prints a function table at k-time
TbDmpS – Prints a table with an introducing string at i-time
TbDmpSk – Prints a table with an introducing string at k-time
TbMem – Looks whether a number is in a function table
TbPrmRnd – Permutes the values of a function table randomly, at i-time
TbPrmRndk – Permutes the values of a function table randomly, at k-time
TbRmDp – Removes duplicates from a function table
TbToLin – Reads a table in the same way as a linseg opcode
TbToSF – writes the content of a table to a soundfile
tieStatus – Returns the status of a note in a group of tied notes
Tuner – Tunes a given fundamental to a user-provided scale
Y_x4p_i – Calculates a Y value from a given X and 2 pairs of X/Y points, at init-time
Y_x4p_k – Calculates a Y value from a given X and 2 pairs of X/Y points, at k-time


boomerangPointer – Pointer to read a function table forwards then backwards or vice versa
filterBank – Defines a bank of bandpass filters in parallel whose outputs can be scaled using a function table
linearPointer – Pointer to read a function table linearly, forwards or backwards
pvshift – Pitch shifting and spectral stretching with pvs streams
RecursiveDiskin – Alters kpitch and iskiptime each time it calls itself to create a little bit of texture
sampleSlicer – Reads a function table in incremental slices
sittinginaroom – A simple,recursive opcode that has pleasant effects. The name pretty much describes what it does.