Csound Plugins

Welcome to the csound-plugins documentation

This is a collection of plugins for csound


See Installation


Multiple (parallel or sequential) instances of an opcode

  • poly: poly creates and controls multiple parallel version of an opcode
  • polyseq: polyseq creates and controls multiple sequential version of an opcode
  • poly0: poly0 creates and controls multiple parallel version of an opcode with no outputs
  • defer: Run an opcode at the end of current event


A hashtable for csound

  • dict_new: Create a hashtable
  • dict_dump: Dumps the contents of this dict as a string
  • dict_free: Free a hashtable
  • dict_get: Get a value from a hashtable
  • dict_geti: Get a string value from a hashtable at init time
  • dict_loadstr: Creates and fills a new dict from a string definition
  • dict_set: Set a value from a hashtable
  • dict_size: Returns the number of key:value pairs in a dict
  • dict_query: Query different properties of a dict
  • dict_exists: Returns 1 if the dict exists, 0 otherwise
  • dict_print: Prints the contents of a dict
  • dict_iter: Iterate over the key-value pairs of a dict
  • dict_del: Remove a key:value pair from a hashtable
  • sref: Insert a string into a global registry and return a reference to it
  • sderef: Retrieves a read-only string from the cache
  • pool_new: Create an empty pool
  • pool_gen: Create a pool and fill it with values
  • pool_pop: Pop (get) an item from a pool
  • pool_push: Push an item into a pool
  • pool_size: Returns the size of a pool
  • pool_capacity: Returns the capacity of a pool
  • pool_at: Returns the item of a pool at a given index
  • pool_isfull: Returns 1 if the pool is full


jsfx support for csound


Cross-platform path handling and string opcodes

  • findFileInPath: Find a file inside the search paths of the csound environment
  • getEnvVar: Get the value of an environment variable
  • pathAbsolute: Returns the absolute path of a file
  • pathIsAbsolute: Returns 1 if the path of a file is absolute
  • pathJoin: Join two parts of a path according to the current platform
  • pathNative: Convert a path to its native version
  • pathSplit: Split a path into directory and basename
  • pathSplitk: Split a path into directory and basename at perf-time
  • pathSplitExt: Split a path into prefix and extension
  • pathSplitExtk: Split a path into prefix and extension at performance time
  • scriptDir: Get the directory of the loaded orc/csd file
  • sysPlatform: Get a string description of the current system platform
  • strsplit: Split a string at a given separator
  • strjoin: Concatenate any number of strings


Band-enhanced oscillators implementing the sine+noise synthesis model

  • beosc: Band-Enhanced Oscillator
  • beadsynt: Band-Enhanced Oscillator-Bank
  • getrowlin: opy a row from a 2D array or table, with interpolation between rows
  • tabrowlin: Copy a row from an f-table to another, interpolating between rows


opcodes using libsndfile


Miscellaneous plugins

  • accum: Simple accumulator of scalar values
  • atstop: Schedule an instrument at the end of the current instrument
  • bisect: Returns the fractional index of a value within a sorted array / tab
  • crackle: generates noise based on a chaotic equation
  • deref: Dereference a previously created reference to a variable
  • detectsilence: Detect when input falls below an amplitude threshold
  • diode_ringmod: A ring modulator with optional non-linearities
  • extendarray: Extend one array with the contents of a second array, in place
  • fileexists: Returns 1 if a file exists and can be read
  • findarray: Find an element in an array
  • frac2int: Convert the fractional part of a number into an integer
  • ftfill: create a table and fill it with values (like fillarray but for f-tables)
  • ftfind: Find an element in a table
  • ftnew: creates a new table of a given size
  • ftsetparams: Set metadata parameters of a table, as if it was loaded via GEN1
  • initerror: Throws an error message at init
  • interp1d: Interpolate between elements of an array/table
  • lfnoise: low frequency, band-limited noise
  • linenv: A triggerable linear envelope with sustain segment
  • loadnpy: Load an array (of any number of dimensions) saved as a .npy file
  • memview: Create a view into a table or another array
  • mtro: an accurate version of metro
  • nametoinstrnum: Returns the number of a named instrument
  • panstereo: Stereo signal balancer
  • perlin3: gradient noise sound generator
  • pread: Read pfield values from any active instrument instance
  • pwrite: Modify pfield values of an active instrument instance
  • pwriten: Modify pfield values of an active instrument instance created via nstance
  • presetinterp: Interpolates between presets placed in a 2D plane
  • ramptrig: A triggerable ramp between 0 and 1
  • ref: Get a reference to a variable
  • refvalid: Queries if a reference is valid
  • schmitt: A schmitt trigger (a comparator with hysteresis).
  • setslice: Set a slice of an array to a given value
  • sigmdrive: Analog "soft clipping" distortion by applying non-linear transfer functions.
  • standardchaos: Standard map chaotic generator
  • throwerror: Throws an error message at performance or init
  • uniqinstance: Return an fractional instrument number which is not in use
  • vowelsdb: A database of vowel sounds
  • weightedsum: Weighted sum of multiple 1D arrays, or the rows of a 2D array
  • zeroarray: Zero all elements in an array
  • zerocrossing: Outputs a frequency based on the number of zero-crossings per second.


Opcodes to access risset package metadata

  • risset: Get information from risset's package manager