home | compositions | techniques | csound | diy | links | contact

Here you will find a catalogue of example Csound files.
They range from very simple examples which exemplify single opcodes to more complex examples that demonstrate a synthesis or DSP technique.

Rene Jopi's port of most of the catalogue for QuteCsound can be downloaded here. (Note that these examples are also available from within QuteCsound itself via its built-in examples menu.)

If you intend to use some of these examples in your own teaching or publications please ask permission first and include a note of original authorship.

The entire catalogue can be downloaded here: CsoundRealtimeExamples.zip
Sound files, analysis files etc. can be downloaded as a zipped archive here: SourceMaterials.zip



Contents:


  • 3D Audio - binaural encoding based on HRTF analyses. Use headphones with these examples.
  • Additive Synthesis - sound synthesis based on the addition of sine waves.
    • HarmonicAdditiveSynthesis1.csd - Simple 10 harmonic additive synthesis.
    • HarmonicAdditiveSynthesis2.csd - 30 harmonic additive synthesis with additional features .
    • InharmonicAdditiveSynthesis.csd - 10 partial inharmonic additive synthesis with individual envelopes on each partial.
    • AdditiveSynthesisSpectralSketching.csd - An experimental method of sketching sound spectra on an XY panel.
    • SpectrumAnalyser.csd - Analyses a harmonic input signal and generates a corresponding GEN 10 function table with 25 partials. Function table can be auditioned and exported to a text file.
    • SpectrumAnalyser100.csd - Version of the above example, 'SpectrumAnalyser.csd', which generates 100 partials with protection against beyond Nyquist partials.
    • ftmorph.csd - Imitations of various woodwind instruments using wavetable synthesis through the use of the 'ftmorph' opcode.
    • ModalAddSyn.csd - Additive synthesis of inharmonic percussive sounds based on data of modal frequencies.
    • GEN09InharmonicTable.csd - Demonstration of a techique of using GEN09 function tables to store pseudo-inharmonic spectra. This example imitates the same sounds as the example above but with much greater real-time efficiency.
    • StretchedHarmonicPartials.csd - Demonstration of the phenomenon whereby supposedly harmonic sounds, such as a vibrating piano string, actually exhibit a stretched harmonic spectrum.
    • PartialStrengthsEnvelope.csd - Demonstration of a technique to envelope large numbers of parameters with a minimal required number of input parameters. In this case the technique is applied to the strengths of partials in an additive synthesis tone but could have many other applications.
  • Arduino - Processing - OSC - interfacing Csound with Processing and Arduino using OSC.
  • Cabbage - Various examples that make use of Rory Walsh's front-end for Csound, 'Cabbage'.
    • Download all Cabbage examples or individually:
    • Cabbage Instruments
      • Arpeggiator.zip - An instrument that arpeggiates notes played on a MIDI keyboard in various ways. The arpeggiator plays back notes on an internal Csound synth. zip file contains the csd and an html help file
      • BarModel.csd - Physical model of a struck bar.
      • BassGuitar.csd - Physical model of a bass guitar.
      • Bassline_TB-303.csd - emulation of the Roland TB-303 synth.
      • Bounce.csd - an algorithmic composition toy. Collisions against the barriers of xypads are used to generate note events.
      • BouncingObject.csd - Uses a short sound file impulse and creates the effect of it bouncing through repetition and parameter curves.
      • CellularAutomata.csd - Cellular automata (vcella opcode). Synth that employs the living/dead state of interacting cells to generate sonic patterns.
      • Choir.csd - synthesis of the human voice.
      • CZSynth.csd - A synthesiser that employs the phase distortion technique featured in Casio's CZ series of synthesisers.
      • DrumPads.csd - A set of eight on-screen drum pads. Each pad is position sensitive so x-axis position when struck (clicked) determines pan location and y-axis position determines strike velocity.
      • Dust.csd - Creates a dust texture using the dust2 opcode.
      • FM_Clang.csd - An FM synthesis instrument specialising in creating metallic clang type sounds.
      • FractalNoise.csd - A noise generator with variable colour (white, pink brown etc.).
      • GaussianDust.csd - Creates a Gaussian dust texture using the gausstrig opcode.
      • gbuzz_synth.csd - Synth based on the gbuzz opcode.
      • new! HardSyncSynth.csd - synthesizer that uses hard sync between two oscillators to create sound.
      • Harmonics.csd - Emualtion of a pair of hammered strings with nodal damping some way along their length.
      • Honk.csd - A synth based around a bowed bar model that produces quirky honking sounds.
      • hsboscil_synth.csd - synthesizer based around the hsboscil opcode.
      • ImageSliders.csd - A demonstration of how to create sliders using Cabbage's 'image' widget.
      • ImageSwitches.csd - Image widgets used as switches. In this example used to create a different layout for 9 octaves.
      • InharmonicAdditiveSynth.csd - Additive synthesizer that specialises in the imitation of inharmonic timbres.
      • LorenzSynth.csd - Three simple synthesisers that use the outputs of the lorenz generator as control inputs. These outputs are also visualised.
      • Metronome.csd - A simple Cabbage metronome.
      • new! Micropolyphony.csd - emulates some of the ideas of tone clusters and micropolyphony.
      • MiniPops.csd - Emulation of the Korg Mini Pops 7 drum machine.
      • MouseChord.csd - Mouse position sensing controlling the seven chords of a diatonic key.
      • oscbnk_synth.csd - synthesizer based around the oscbnk opcode which create rich ensemble-like sounds.
      • PadSynth.csd - A synthesiser for creating pad-like sounds based on the 'padsynth' GEN routine.
      • PadSynthChoir.csd - A synthesiser for creating multisampled pad-like sounds based on choir voices based on the 'padsynth' GEN routine.
      • Parp.csd - A synthesiser based upon Perry Cook's waveguide model of someone struggling to play a trombone.
      • PinkNoise.csd - Generates pink noise.
      • PreparedPiano.csd - An emulation of a prepared piano, modelling the addition of rubbers and rattles to the strings.
      • RingModSynth.csd - An efficient 3 oscillator synthesiser. (2 additive oscillators and 1 ring modulating oscillator.)
      • RubbedResonators.csd - Synthesizer that imitates a variety of resonant objects being rubbed or bowed.
      • Spiccato.csd - An emulation of a bowed instrument played 'spiccato'. A range of other sounds are also possible.
      • Strum.csd - an algorithmic composition toy. A moving pointer on an xypad plucks imaginary strings stretched across its surface.
      • TR-808.csd - Emulation of the Roland TR-808 drum machine.
      • WavetableSynth.csd - Simple synth that uses morphing wavetables across the range of the keyboard to imitate various sustaining instruments.
      • WhiteNoise.csd - Generates white noise.
      • Clavinet.csd - Imitation of the Hohner Clavinet D6 (Cabbage version).
      • StringFeedback.csd - Imitation of a vibrating string with amplifier feedback.
      • GuitarChords.csd - Play chords on a virtual fretboard.
    • Cabbage Effects
      • AutopanTremolo.csd - Autopan / Tremolo effect.
      • Ball_in_a_Box.csd - a physically modelled reverb effect.
      • BandFilter.csd - Bandpass and bandreject filters.
      • BandFilterII.csd - Bandpass and bandreject reject made using Butterworth lowpass and highpass filters.
      • BounceDelay.csd - A multi-delay effect that creates the impression of sounds bouncing and coming to rest (and other sound effects).
      • BreakBeatCutter.csd - Break Beat cut ups using the bbcut opcode.
      • clfilt.csd - clfilt: a multi-mode filter
      • clip.csd - Distortion effect using the clip opcode.
      • Compressor.csd - A general purpose compressor.
      • new! CrossedDelays.csd - Dual, tempo-locked delays with crossed feedback and ring modulators in the feedback loop.
      • CompressorExpander.csd - A dynamic compressor/expander effect.
      • ConvolutionReverb.csd - A convolution reverb effect that uses the ftconv opcode. Uses the sound file Stairwell.wav.
      • DelayGrain.csd - A realtime delay granulator.
      • DistanceEmulator.csd - Morphs a sound from near to far.
      • Doppler.csd - Doppler effect moving left to right.
      • DopplerSpin.csd - Circular spinning doppler effect.
      • EnvelopeFollower.csd - A dynamic envelope following lowpass filter.
      • Exciter.csd - An 'exciter': a dynamics processor that adds high frequency shimmer to an audio signal.
      • FilterLFO.csd - A multimode filter with a multimode LFO on the cutoff frequency.
      • FilterShaper.csd - Modulating gesture creating filters.
      • Flanger.csd - Flanger effect.
      • FormantFilter.csd - A formant filtering effect that imitates the filtering effect of the human mouth enunciating various vowels.
      • FrequencyShifter.csd - Frequency shifter effect implemented using the hilbert filter.
      • Gate.csd - A gating effect with some novel features.
      • GateReverb.csd - A gated reverb effect using a multitap delay with many taps.
      • HarpFilter.csd - A resonator filter modelling a back of tuned strings. The number of strings is user-defined and tunings are defined according to either an arithmetic or geometrical progression of frequencies.
      • HighpassFilter.csd - Highpass filtering using a variety of Csound's opcodes for the task.
      • HRTF3D.csd - 3D binaural processing using the hrtfmove and hrtfmove2 opcodes.
      • LeslieSpeaker.zip - An emulation of a Leslie rotating speaker. This is intended to be used as an effect but can be tested using its built-in, MIDI triggerable, organ.
      • Limiter.csd - A brick wall dynamic limiter.
      • BufferFreeze.csd - Displays a scrolling audio buffer which can be frozen using the 'mincer' opcode.
      • LiveSndwarp.csd - Realtime granulation of a live audio input stream. Uses the 'sndwarp' opcode.
      • LoFi.csd - Low fidelity effects of bit depth decimation and simulated sample rate reduction.
      • LowpassFilter.csd - Lowpass filtering using a variety of Csound's opcodes for this task.
      • ModulatingDelays.csd - Layers of randomly modulating delays. Good for creating dense swirling textures.
      • MultiModeDelay.csd - Stereo ping-pong delay in which the echoes bounce between the left and right speakers. Can also function as a simple stereo delay.
      • MultiReverb.csd - Simple encapsulation of the reverbsc and freeverb opcodes.
      • MultitapDelay.csd - Four-tap delay with a choice of three feedback algorithms.
      • pdclip.csd - Distortion effect using the pdclip opcode.
      • Peeaaoooh.csd - A reverb effect that immitates the distinctive sound of a spring reverb.
      • PhaserLFO.csd - modulating phaser effect.
      • Phaser1.csd - encapsulation of the phaser1 opcode.
      • Phaser2.csd - encapsulation of the phaser2 opcode.
      • PitchShifter.csd - A traditional style pitch shifter based on delay buffers.
      • Powershape.csd - encapsulation of the powershape opcode used for waveshaping distortion.
      • pvsAdsyn.csd - encapsulation of the pvsadsyn opcode.
      • pvsBlur.csd - encapsulation of the pvsblur opcode.
      • pvsBuffer.csd - encapsulation of the pvsbuffer opcode.
      • pvScale.csd - encapsulation of the pvscale opcode.
      • pvsCross.csd - FFT cross-synthesis. Left input is the source signal, right input is the destination signal.
      • pvsFreeze.csd - encapsulation of the pvsFreeze opcode for freeze-framing amplitude or frequency (or both) characteristics of an fsig.
      • pvShift.csd - encapsulation of the pvshift opcode for frequency shifting (adding a frequency constant) to frequency components of an fsig.
      • pvSmooth.csd - encapsulation of the pvSmooth opcode.
      • pvsWarp.csd - encapsulation of the pvswarp opcode.
      • resony.csd - encapsulation of the resony opcode which creates a stacked bank of bandpass filters.
      • Reverse.csd - Reverses chunks of streamed audio.
      • RingModulator.csd - Ring modulator with envelope following option.
      • new! Shredulator.csd - An FFT-based granulating delay.
      • new! SpectralDelay.csd - A delay effect in which individual frequency bands can be delayed by varying amounts.
      • StereoChorus.csd - Stereo modulating chorus effect.
      • StuckBuffer.csd - Imitation of the effect of a stuck audio buffer.
      • TempoDelay.csd - A ping-pong or standard delay effect that sets its delay time according to a given tempo and note value. Tempo can be derived internally from a GUI control or from the host tempo (when used as a plugin).
      • Tuner.csd - A general purpose tuner.
      • TimeSlip.csd - Implements realtime time stretching on a live audio stream.
      • TriggerDelay.csd - A delay (ping-pong or straight) in which a new random delay time is generated each time the input amplitude crosses a threshold.
      • Vocoder.zip - An emulation of a vintage analogue vocoder. Zip file contains the .csd and a .html help file.
      • waveset.csd - encapsulation of the waveset opcode.
      • wguide1.csd - Single waveguide effect/instrument.
      • wguide2.csd - Double waveguide filter.
    • Cabbage MIDI - for operations upon MIDI data. These are intended to be used as plugins either within the Cabbage Host or within another VST plugin host.
      • FunctionGenerator.csd - Generates and filters MIDI LFO functions using a variety of means.
      • MIDI_Arpeggiator.csd - A MIDI arpeggiator. Based on the Arpeggiator Cabbage synth.
      • MIDI_Delay.csd - A MIDI delay with additional options for delay time warping and pitch warping upon each subsequent echo.
      • MIDI_Monitor.csd - useful for monitoring (and troubleshooting) MIDI data flow. Based on an earlier similar instrument in the GEN section.
      • new! MIDI__Note_Recorder.csd - records sequences of MIDI notes which can then be played back and with a range of transformations.
    • Cabbage Fun and Games
      • PebblesInAPond.csd - An imitation of the act of dropping pebbles into a pond. This is used to demonstrate Cabbage's ability to update its widgets in realtime from within the Csound orchestra.
      • sonic_lava_lamp.zip - Synthesizer toy that makes use of four automated xy pads. zip file contains csd and html instructions.
      • Rhythmicon.csd - Recreation of Henry Cowell and Leon Theremin's 'Rhythmicon' instrument.
      • Bubbles.csd - A simple game in which the player has to click on rising bubbles in order to burst them and create music.
      • Electricity.csd - Click and drag to generate hum and sparks.
      • PingClang.csd - A musical toy in which a bouncing ball strikes various objects.
      • Splat!.csd - Derive pleasure from squashing flies.
      • Windmills.csd - Spin windmills by blowing into your computer's microphone. This example doesn't produce any sound yet!
    • Cabbage Instructional - tutorials in various Cabbage-specific techniques
    • Cabbage Live Sampling
      • DiskRecPlay.csd - this example samples live audio to the hard disk and allows it to be played back in a variety of ways.
      • PvsRecPlay.csd - this example samples live audio into RAM as an fsig and allows it to be played back in a variety of ways.
      • TabRecPlay.csd - this example samples live audio into RAM as a function table and allows it to be played back in a variety of ways.
      • LiveLooper.csd - a simple live looper: records sound into a buffer then replays it in a loop with crossfading at the loop point.
    • Cabbage GEN Routines and Table Displays
      • GEN02.csd - Demonstration of the GEN02 function table generator as a pattern generator.
      • MIDI_Monitor.csd - Graphical display of MIDI note data (numbers and velocities) and all MIDI continuous controllers. Controllers are displayed both according to channel (controller numbers 0-127 on the graph) and to controller number (channels 1-16 on the graph).
      • GEN05.csd - A simple demonstration of the GEN05 function table generator which generates breakpoint functions using exponential segments.
      • GEN08.csd - Demonstration of the GEN08 function table generator which generates as smooth a line as possible between a sequence of user-defined break points.
      • GEN08_Envelopes.csd - Demonstration of the GEN08 function table generator used to generate envelopes.
      • GEN09.csd - Demonstration of the GEN09 function table generator to create inharmonic tones.
      • GEN10.csd - Demonstration of the GEN10 function table generator to create harmonic tones.
      • GEN16.csd - Demonstration of the GEN16 function table generator to create break point envelopes with user defined curves.
      • GEN17.csd - Demonstration of the GEN17 function table generator used to create step function histograms.
      • GEN19.csd - A bead slides alongs a morphing harmonic function according to gravity. GEN19 builds waveforms composed of sinusoids and offers control over each partial number, strength, initial phase and DC offset.
      • GEN20.csd - Demonstration of the GEN20 function table generator used to create a variety of window functions.
      • GEN21.csd - Demonstration of the GEN21 function table generator used to create a variety of random distributions.
      • GEN30.csd - Demonstration of the GEN30 function table generator which creates band limited versions of input waveforms.
      • GEN33.csd - Demonstration of the GEN33 function table generator which generates harmonic function tables based input data about partials. The number of partials to employ can be set using GEN33.
      • GEN41.csd - Demonstration of the GEN41 function table generator used to create step function histograms.
      • GEN42.csd - Demonstration of the GEN42 function table generator used to create step function histograms with slanted tops.
      • FFTSpectrum.csd - Display of the FFT spectrum as written to a table by pvsftw.
      • updated! Oscilloscope.csd - An oscilloscope waveform viewer which takes as input sine, VCO, FM and gbuzz generated audio.
      • Calculated_F_Tables.csd - Function tables created by evaluating a number of simple formulae relating y to x.
      • RandomNumberGenerators.csd - Using Cabbage's gentable widget to display the outputs of the randomi, randomh, rspline, jspline, jitter, jitter2, vibr and vibrato opcodes.
      • Log_Curves.csd - Display of curves for natural log, log to the base 2 and log to the base 10.
    • Cabbage File Players
      • DiskinFilePlayer.csd - File player based upon the diskin (direct from disk streaming) opcode.
      • FileRecorder.csd - File recorder).
      • FileStretcher.csd - The user selects the portion of the sound file to stretch by clicking and dragging upon its waveform. This technique is useful for stretching files whilst maintaining the characteristics of the attack and release portions. Results can also be rendered as output files.
      • Flooper2FilePlayer.csd - File player based upon the flooper2 (sampling looping with loop point crossfade) opcode.
      • FogFilePlayer.csd - File player based upon the fog opcode.
      • LoscilFilePlayer.csd - File player based upon the loscil (sampling) opcode.
      • Grain3FilePlayer.csd - File player based upon the grain3 opcode.
      • MincerFilePlayer.csd - File player based upon the mincer (streaming FFT) opcode with an incorporated waveform viewer.
      • SoundwarpFilePlayer.csd - File player based upon the soundwarp (granular synthesis) opcode.
      • SyncgrainFilePlayer.csd - File player based upon the syncgrain (granular synthesis) opcode.
      • Table3FilePlayer.csd - File player (looping) based upon the table3 opcode with an incorporated waveform viewer.
      • TemposcalFilePlayer.csd - File player based upon the temposcal (streaming FFT) opcode.
  • Convolution - reverb and filtering effects using convolution.
  • Delays - effects that utilise digital delays and audio buffers.
  • Distortion Effects - clipping, waveshaping and lo-fi digital effects.
  • Dynamics Processing - amplitude (level) processing: compression, noise gates, expanders, ducking.
  • FFT - opcodes that use the Fast Fourier Transform.
    • pvoc.csd - Demonstration of the pvoc opcode. Uses the analysis files AndItsAll.pvx and loop.pvx.
    • pvadd.csd - Demonstration of the pvadd opcode. Uses the analysis files AndItsAll.pvx and 808loopMono.pvx.
    • pvsanal_pvsynth.csd - Performs simple analysis and resynthesis of an audio signal as an introduction to Csound's streaming pv opcodes. Uses the sound file AndItsAll.wav.
    • pvsfread.csd - Performs resynthesis of a PVOC-EX analysis file giving the user time pointer control. Uses the analysis files AndItsAll.pvx and loop.pvx.
    • pvscale.csd - Demonstrates the opcode pvscale by performing frequency scaling on a streaming pv signal. Uses the sound files AndItsAll.wav and loop.wav.
    • pvshift.csd - Demonstrates the opcode pvshift by performing frequency shifting on a streaming pv signal. Uses the sound files AndItsAll.wav and loop.wav.
    • pvsfreeze.csd - Demonstration of the pvsfreeze opcode which allows the user to freeze the frequency stream or the amplitude sream (or both) of a streaming pv signal. Uses the sound files AndItsAll.wav and loop.wav.
    • pvsblur.csd - Demonstration of the pvsblur opcode which performs averaging on frequency and amplitude streams to create a blurring effect on a pv stream. Uses the sound files AndItsAll.wav and loop.wav.
    • pvsmooth.csd - Demonstration of the pvsmooth opcode which performs smoothing on a pv stream. Smoothing can be applied independently on frequency and amplitude streams. Uses the sound files AndItsAll.wav and loop.wav.
    • pvsarp.csd - Demonstration of the pvsarp opcode which performs spectral arpeggiation on a pv stream. Uses the sound file AndItsAll.wav.
    • pvsvoc.csd - Demonstration of the pvsvoc opcode which combines the spectral envelope of one fsig with the excitation (frequencies) of another. The exitation signal, a simple synthesizer, can be played from a MIDI keyboard. Uses the sound files loop.wav, AndItsAll.wav, SynthPad.wav and ClassicalGuitar.wav.
    • pvsbufread.csd - Demonstration of Victor Lazzarini's 'pvsbuffer' and 'pvsbufread' opcodes. Live audio is stored as fsig data in a continuous buffer. The buffer can be read from and subsequently transformed as any other fsig can. This example allows realtime timestretch/compression and pitch shifting, all with feedback.
    • pvsbandp.csd - Demonstration of the 'pvsbandp' opcode - an band-pass filter for fsigs. Uses the sound files Songpan.wav and loop.wav.
    • pvsbandr.csd - Demonstration of the 'pvsbandr' opcode - an band-reject filter for fsigs. Uses the sound files Songpan.wav and loop.wav.
    • pvscross.csd - Demonstration of the pvscross opcode which performs cross-synthesis between two fsigs. Uses the sound files synthpad.wav and loop.wav.
    • pvsfilter.csd - Demonstration of the 'pvsfilter' opcode - one fsig is filtered according to the changing spectral envelope of another. Uses the sound files Songpan.wav and loop.wav.
    • pvsmorph.csd - Demonstration of the 'pvsmorph' opcode - allows morphing between two simultaneously streamed fsigs. Uses the sound files synthpad.wav, Songpan.wav and loop.wav.
    • pvsadsyn.csd - Demonstration of the 'pvsadsyn' opcode which resynthesizes an f-signal but with more user definable options than 'pvsynth'. This opcode is similar to the opcode 'pvadd' and can be thought of as a version of that opcode for streaming f-signals. Uses the sound files Songpan.wav and loop.wav.
    • pvswrite.csd - Demonstration of the 'pvswrite' opcode which can be used to write streaming pvoc signals as pvx files to disk during a Csound performance.
    • pvstencil.csd - Demonstration of the 'pvstencil' opcode which masks a streaming pvoc signal according to data held in a pvx file. This technique can, as this example demonstrates, be used for noise reduction. Uses the files sample.wav and noise.pvx.
    • pvsifd_partials_resyn.csd - Demonstration of the opcodes 'pvsifd', 'partials' and 'resyn' which together perform partial tracking analysis and resynthesis upon an audio signal. Uses the sound file AndItsAll.wav.
    • pvstanal.csd - Demonstration of the opcode 'pvstanal', used for time-stretching and pitch shifting of sound files stored in GEN01 function tables using streaming phase vocoding. Uses the sound files AndItsAll.wav. SynthPad.wav. 808loop.wav. and, Seashore.wav.
    • pvswarp.csd - Demonstration of the opcode 'pvswarp', used for modulating the spectral envelope of an fsig in two different ways. Uses the sound files AndItsAll.wav, 808loop.wav and SynthPad.wav.
    • mincer.csd - Demonstration of the 'mincer' opcode which performs phase locked vocoding on sound files stored in GEN 1 function tables. Uses the sound files AndItsAll.wav, SynthPad.wav, 808loop.wav and Seashore.wav.
    • temposcal.csd - Demonstration of the 'temposcal' opcode which performs phase locked vocoding on sound files stored in GEN 1 function tables. Uses the sound files AndItsAll.wav, SynthPad.wav, 808loop.wav and Seashore.wav,
    • ATSadd.csd - Demonstration of the 'ATSadd' opcode used to perform additive synthesis based upon analysis data held in a ATS (Analysis-Transformation-Synthesis) file. Uses the analysis file AndItsAll.ats,
  • Filters - spectral manipulation using filtering.
    • compare_standard_filters.csd - An example than allows the user to compare 25 of Csound's standard filter opcodes (38 filters including different modes of single opcodes) using a variety of input signals. Uses the sound files Seashore.wav and . Loop.wav.
    • areson.csd - Demonstration of the areson band reject filter opcode. Uses the sound file Seashore.wav.
    • atone.csd - Demonstration of the atone high pass filter opcode. Uses the sound file Seashore.wav.
    • atonex.csd - Demonstration of the atonex high pass filter filter opcode. Uses the sound file Seashore.wav.
    • bqrez.csd - Demonstration of the bqrez multi-mode filter opcode. Uses the sound file Seashore.wav.
    • butterbp.csd - Demonstration of the butterbp band pass filter opcode. Uses the sound file Seashore.wav.
    • butterbr.csd - Demonstration of the butterbr band reject filter opcode. Uses the sound file Seashore.wav.
    • butterhp.csd - Demonstration of the butterhp high pass filter opcode. Uses the sound file Seashore.wav.
    • butterlp.csd - Demonstration of the butterlp low pass filter opcode. Uses the sound file Seashore.wav.
    • clfilt.csd - Demonstration of the clfilt multi-mode filter opcode. Uses the sound file Seashore.wav.
    • lowpass2.csd - Demonstration of the lowpass2 low pass filter opcode. Uses the sound file Seashore.wav.
    • lowres.csd - Demonstration of the lowres low pass filter opcode. Uses the sound file Seashore.wav.
    • lowresx.csd - Demonstration of the lowresx low pass filter opcode. Uses the sound file Seashore.wav.
    • lpf18.csd - Demonstration of the lpf18 low pass filter opcode.
    • moogladder.csd - Demonstration of the moogladder low pass filter opcode.
    • moogvcf.csd - Demonstration of the moogvcf low pass filter opcode.
    • reson.csd - Demonstration of the reson band pass filter opcode. Uses the sound file Seashore.wav.
    • tbvcf.csd - Demonstration of the tbvcf low pass filter opcode.
    • tone.csd - Demonstration of the tone low pass filter opcode. Uses the sound file Seashore.wav.
    • tonex.csd - Demonstration of the tonex low pass filter opcode. Uses the sound file Seashore.wav.
    • vlowres.csd - Demonstration of the vlowres lowpass filter opcode. Uses the sound file Seashore.wav.
    • pareq.csd - Demonstration of the pareq parametric equalization opcode. Uses the sound file Seashore.wav.
    • statevar.csd - Demonstration of the statevar filter opcode which provides a digital emulation of an analogue state-variable filter. Uses the sound file Seashore.wav.
    • FormantFilter.csd - 5 reson filters are used to create a filtering effect that imitates the filtering effect of the human mouth expressing a range of vowel sounds. Uses the sound file Seashore.wav.
    • hilbert.csd - Demonstration of the hilbert filter opcode, used to implement frequency shifting. Uses the sound files anditsall.wav, loop.wav and songpan.wav.
    • rbjeq.csd - Demonstration of the rbjeq multi-mode filter opcode. Uses the sound file Seashore.wav.
    • reson_resonr_resonz.csd - Demonstration and comparison of the opcodes reson, resonr and resonz. Uses the sound file Seashore.wav.
    • resony.csd - Demonstration of the resony filter opcode, which implements a stack of second order band-pass filters. Uses the sound file Seashore.wav.
    • rezzy.csd - Demonstration of the rezzy filter opcode, an implementation of a resonant low or high-pass filter. Uses the sound file Seashore.wav.
    • svfilter.csd - Demonstration of the svfilter filter opcode, a 2nd order resonant filter that simultaneously creates low-pass high-pass and band-pass outputs. Uses the sound file Seashore.wav.
    • bandpass.csd - An implementation of Csound's butterworth bandpass filter 'butbp' with several performance orientated options. Uses the sound files SynthPad.wav and Seashore.wav.
    • eqfil.csd - Demonstration of the eqfil opcode, an implementation of a second order equalization filter. Uses the sound file Seashore.wav.
  • FLTK - overview of Csound built-in GUI opcodes.
    • FLpanel.csd - Demonstration of how to create an FLTK panel.
    • FLslider.csd - Demonstration of how to create and use FLTK sliders and a display of all types available.
    • FLknob.csd - Demonstration of how to create and use FLTK knobs and a display of all types available.
    • FLroller.csd - Demonstration of how to create an FLTK roller.
    • FLtext.csd - Demonstration of how to create a modifiable FLTK number field.
    • FLjoy.csd - Demonstration of how to create an FLTK X-Y 'joystick' panel.
    • FLcount.csd - Demonstration of how to create an FLTK counter and of various applications using them.
    • FLtabsFLgroup.csd - Demonstration of how to create FLTK tabs.
    • FLsetVal_i FLsetVal.csd - Demonstration of how to instruct an FLTK valuator to adopt a particular value both at initialisation time and continuously during performance.
    • FLbutton.csd - Demonstration of how to create and use FLTK buttons.
    • FLbox.csd - Demonstration of how to create an FLTK text box and the many formatting options available.
    • FLscroll.csd - Demonstration of how to create and use FLTK scroll bars.
    • FLvalue.csd - Demonstration of how to create an FLTK value readout box that displays the current value of an FLTK valuator widget.
    • FLsetColor.csd - Demonstration of how to colorize FLTK widgets.
    • FLbutBank.csd - Demonstration of how to create a bank of FLTK buttons using the FLbutBank opcode.
    • FLvslidBnk.csd - Demonstration of how to create a bank of vertical FLTK sliders using the FLslidBank opcode.
    • FLkybd.csd - Demonstration of how to create a virtual MIDI keyboard within an FLTK panel using the FLkybd opcode.
    • MIDI&FLTK_Combined.csd - Demonstration of how to synchronize interaction using FLTK and MIDI control of the same parameter.
    • RandomMovingFLjoy.csd - An automated FLTK X-Y' joystick' panel is driven by random functions to control a FOF synthesizer.
    • SliderMultiVariable.csd - A single slider controls three different parameters in three different ways.
    • xyin.csd - Demonstration of the xyin opcode, used to sense mouse position. (May require the use of the '--displays' command line flag to enable displays.)
    • FLxyin.csd - Demonstration of the FLxyin opcode, used to sense mouse position within an 'FLpanel'.
    • PositionSensitveFLbutton.csd - Demonstration of how to use FLxyin to create a position sensistive FLTK button.
    • FLmouse1.csd - Demonstration of the FLmouse opcode, used to sense mouse position over an FLTK panel and the status of the three mouse buttons.
    • FLmouse2.csd - A practical implementation of the FLmouse opcode.
    • FLmouse3.csd - A different practical implementation of the FLmouse opcode that also makes use of the sndwarp opcode. Uses the sound file loop.wav.
    • FLkeyIn.csd - A demonstration of the FLkeyIn opcode which senses key presses on the computer's alphanumeric keyboard when an FLTK panel is in focus.
    • DynamicGUIBuilder.csd - A demonstration of how a GUI can be built or destroyed during performance.
    • FLsetPosition_FLsetSize.csd - Five different coloured squares move randomly around a panel whilst constantly changing shape. These movements and changes are reflected in sounds that are produced when they are clicked.
    • FLWidgetAppearanceExplorer.csd - Interactively explore all the attributes that can be changed to modify an FLTK widget's appearance.
    • FLTKPitchBendWheel.csd - Demonstration of how to implement a spring loaded slider that emulates the functioning of a pitch bend wheel on a hardware MIDI keyboard.
  • Frequency Modulation (FM) Synthesis, Phase Modulation (PM) Synthesis, Ring Modulation and Amplitude Modulation
  • GEN Routines - demonstrations of Csound's function table generation routines.
    • GEN01.csd - Demonstration of GEN01, used to store sound files in RAM. Uses the sound files loop.wav, ClassicalGuitar.wav and AndItsAll.wav.
    • GEN02.csd - Demonstration of GEN02 used to tranfer values from p-fields into table points.
    • GEN03.csd - Demonstration of GEN03, used to store an evaluated polynomial.
    • GEN05_07.csd - Demonstration of GEN05 and GEN07 used to create function tables made up of segments - in the case of GEN05 exponential segments, in the case of GEN07 linear segments.
    • GEN06.csd - Demonstration of GEN06 used to create a function table made up of segments of cubic polynomials.
    • GEN08.csd - Demonstration of GEN08 used to create a smooth piecewise cubic spline curve.
    • GEN09.csd - Demonstration of GEN09 used to create a waveform made up of weighted sinusoids. P-field controls for partial number, strength and phase.
    • GEN10.csd - Demonstration of GEN10 used to create a waveform made up of weighted sinusoids. P-field controls for each partial strength
    • GEN11.csd - Demonstration of GEN11 used to create a waveform made up of cosine partials in the manner of the 'buzz' and 'gbuzz' opcodes.
    • GEN12.csd - Demonstration of GEN12 used to store a generated the log of a modified Bessel function of the second kind.
    • GEN16.csd - Demonstration of GEN16 used to create a function table made up of segments, the length shape and curvature of each being defined by the user.
    • GEN17.csd - Demonstration of GEN17 create a step function of x-y pairs in the manner of a histogram.
    • GEN18.csd - Demonstration of GEN18 used to create a composite waveform made up of two or more pre-existing waveforms (function tables).
    • GEN19.csd - Demonstration of GEN19 used to create a waveform made up of weighted sinusoids. P-field controls for partial number, strength, phase and DC offset.
    • GEN20.csd - Demonstration of GEN20 used to create a variety of window functions.
    • GEN21.csd - Demonstration of GEN21 used to create tables of a variety of random functions.
    • GEN23.zip - Demonstration of GEN23 used to transfer data from text files to function tables. Download is a zip file containing the csd and three text files.
    • GEN25_27.csd - Demonstration of GEN25 and GEN27 used to create function tables made up of segments - in the case of GEN25 exponential segments, in the case of GEN27 linear segments.
    • GEN30.csd - Demonstration of GEN30 which analyses an existing function table and generates a new table with user set limits for lowest and highest harmonics.
    • GEN41.csd - Demonstration of GEN41 used to generate a random list of numerical pairs in the manner of a histogram.
    • GEN42.csd - Demonstration of GEN42 used to generate a histogram, each zone covering a range of values rather than a fixed value (as in the case of GEN41).
  • Granular Synthesis
  • Head Mouse - examples that were originally written for users of a head movement tracking mouse or iris tracking computer. Example still work with a conventional mouse and may be of general interest. May also be relevant to users of touch screens and drawing tablets. Windows users can use the free software Camera Mouse (http://www.cameramouse.org/). Instructions and additional user controls are provided within the .csd file itself.
  • Live Audio Input - you will need to have a microphone connected to your computer for these examples.
    • ins.csd - Introduction of the ins opcode used to read the computer's live stereo audio input.
    • meters.csd - Adds decibel meters, decibel value readouts, independent channel gain controls and independent channel panning controls to the previous example.
    • follow2EnvelopeFilter.csd - Uses the follow2 opcode to implement envelope following filter effect using also the moogvcf2 resonant low pass filter. Uses either the live input or the sound file loop.wav.
  • Live Sampling storing and subsequently playing back audio 'on the fly'. You will need to connect a microphone to your computer for these examples.
    • TableRecBasic.csd - This example records live audio to a function table which can then be played back either once or as a loop. Playback speed can be modulated as can the start and end points.
    • MultiTableRec.csd - Six independent function tables can be recorded to and played back from with speed control.
    • DynamicTriggeredRecord.csd - Recording is automatically triggered whenever the dynamics of the input signal crosses a defined threshold. Recording stops when the dynamics drops below another threshold. Playback can be automatic once recording has completed as can the record ready function.
    • DiskRecAndPlayback.csd - Recording and playback from disk. This method is suited to situations where recording of long pieces of audio is required.
    • sndloop.csd - Demonstration of the sndloop opcode, that allows quick recording and looped playback of live sampled audio. This example implements MIDI modulation of playback speed.
    • MultiTableAutoRecord.csd - This example buffers and edits audio 'on the fly'. Edited sound chunks are written into sequential function tables and can be played by using the notes of a MIDI keyboard.
  • MIDI Input and MIDI Synthesizer Designs - you need a velocity sensitive MIDI keyboard, with a modulation wheel and pitchbend, connected to your computer to fully use these examples.
    • MIDIInstrActivate.csd - Basic demonstration of Csound instrument activation via MIDI.
    • MIDIReadPitchAndVelocity.csd - Demonstration of reading pitch and key velocity into a Csound instrument from a MIDI keyboard using the cpsmidi and ampmidi opcodes.
    • LinsegrExpsegr.csd - Demonstration of how to design an envelope with a MIDI controlled release stage using the linsegr and expsegr opcodes.
    • MIDIController.csd - Demonstration of how to read data from a MIDI continuous controller using the ctrl7 opcode.
    • MIDIControllerInitialisation.csd - Demonstration of how to give a MIDI controller derived variable in Csound an initial value.
    • MIDIOneControllerTwoOutputs.csd - Multiple instances of ctrl7 create two independently moving variables in Csound.
    • MIDIRemappedController.csd - A MIDI controller's output is remapped within Csound to produce a non-linear response to fader movement.
    • pchbend1.csd - Demonstration of how to read MIDI pitch-bend information into Csound using the pchbend opcode and implement it as pitch-bend in a Csound synthesizer.
    • pchbend2.csd - Demonstration of five more ways in which pitch-bend data could be interpretted in a Csound instrument. Uses the sound files 808loopMono.wav. and AndItsAll.wav.
    • pchbend3.csd - How read in pitch bend data using 'midiin' in instruments that haven't been triggered via MIDI.
    • midiin_MIDI_monitor.csd - A MIDI monitor that uses the 'midiin' opcode to display MIDI messages to the terminal and to FLTK value boxes.
    • midiin_trigger_notes.csd - How to start and stop instruments using the 'midiin' opcode whenever Csound's default mechanism for instrument triggering via MIDI has been disabled.
    • cpstmid.csd - Demonstration of the cpstmid opcode which allows the user to define alternative tuning systems playable from a MIDI keyboard.
    • BasicMonophonicSynth.csd - Demonstration of how to design a basic monophonic MIDI controlled synthesizer with portamento and legato and non-legato envelopes.
    • MonoPolySynth.csd - A more elaborate MIDI controlled monophonic/polyphonic synthesizer with a multi-mode oscillator, filter, pitch and amplitude envelopes, an LFO, a ping-pong delay, reverb and chorus.
    • LiveQuantize.csd - A demonstration of how to quantize an incoming MIDI stream in realtime along with a sounding metronome.
    • MIDITapTempo.csd - Note taps on a MIDI keyboard are interpretted as a tempo and used to control the tempo of a metronome and the delay time of a delay effect.
    • PolyphonyControl.csd - Demonstration how to design a MIDI instrument within which polyphony is controlled. If the polyphony limit is exceeded, the oldest note is always removed. Notes with an envelope release stage are are allowed to complete. The mechanism demonstrated here can be used to control score driven polyphony also.
    • VelocityCurve.csd - Demonstration how to adjust MIDI velocity response within Csound.
    • Arpeggiator.csd - An example that arpeggiates notes played on a MIDI keyboard in various ways. The arpeggiator plays notes on an internal Csound synth.
    • moscil_outipc.csd - An example that implements algorithmic MIDI note generation and demonstrates the moscil and outipc opcodes.
    • DisplayMIDICCsAsFLSliders.csd - This example displays incoming MIDI continuous controllers as moving FLTK sliders. This can prove useful in troubleshooting sensors.
    • portamento.csd - A demonstration of three different methods for implementing pitch portamento.
  • Miscellaneous - various uncatagorised examples.
    • Arrays.csd - Demonstration of some of Csound's operations upon arrays.
    • monitor_fout.csd - Demonstration of how to use the monitor and fout opcodes to simultaneously monitor and record the output of a realtime Csound session.
    • waveset.csd - Demonstration of the waveset opcode which performs timestretching on streaming audio signals by repeating wavelets. Uses the sound files 808loopmono.wav. and AndItsAll.wav.
    • ftsave_ftload.csd - FLTK slider data is stored to function tables and also as a file on disk using the 'ftsave' and 'ftload' opcodes. This presents an alternative and possibly more powerful method of storing FLTK presets.
    • pan2.csd - Demonstration of the 'pan2' opcode.
    • DbToAmp.csd - Conversion between 'amplitude' and 'decibel' formats for sound intensity. The user can observe and investigate both the numerical and the acoustical relationship between the two formats.
    • risset_rhythms.csd - A demonstration of the effect called 'Risset Rhythms'. Uses the sound files 808loopMono.wav, loop.wav and MFEM.wav.
    • limit_mirror_wrap.csd - Demonstration of the opcodes 'limit', 'mirror' and 'wrap', useful in dealing with variables going beyond user defined maxima and minima in a variety of ways.
    • PianoPhaseDemo.csd - A interactive demonstration of the technique behind Steve Reich's piece 'Piano Phase'. This implementation includes several features Steve didn't think of. Uses the analysis files PPhase1.pvx and PPhase2.pvx.
    • Rhythmicon.csd - An implementation of Leon Theremin's 'Rhythmicon', an instrument that was commissioned by composer Henry Cowell.
    • TransformTableContents.csd - Transform a function table's contents in various ways. In this example the table is used as a note row. Transformations include shuffling, retrograde and sort ascending/descending.
    • beating.csd - An exploration of the phenomenon of 'beating'.
    • TuningSystems.csd - An exploration of the equal temperament, just intonation and pythagorean tuning systems.
    • Trigger.csd - A demonstration of the trigger opcode, used to sense when a signal crosses a threshold.
    • samphold.csd - A demonstration of the samphold opcode.
    • TB303.csd - An emulation of Roland's famous Bassline TB303 phrase sequencer / synthesizer that introduces Csound's looping envelope opcodes lpshold, loopseg and looptseg.
    • PitchFormats.csd - An introduction to the different pitch formats used by Csound.
    • MultiFX.csd - Modular effects in the style of a guitar effects pedal board. Uses the sound file ClassicalGuitar.wav
    • doppler.csd - Demonstration of the 'doppler' opcode which imitates the doppler effect in one dimension.
    • humanizing.csd - Demonstrates a variety of ways of 'humanizing' static parameters. Introduces the opcodes 'vibr', 'vibrato', 'jitter', 'jitter2', 'jspline', 'gauss' and 'gaussi'.
    • sensekey.csd - Demonstration of the 'sensekey' opcode, used to sense key presses on the computer's alphanumeric keyboard via the terminal window.
    • CsoundIsListening.csd - Exemplifies the technique of iteration using UDOs. In this example 100 oscillators are created with just a few lines of code.
    • AnalogueVocoder.csd - Implementation of a vintage analogue-style vocoder. Have an external MIDI controller keyboard and microphone connected for best results. Uses the sound file AndItsAll.wav and loop.wav.
    • TapTempo.csd - Register a tempo with Csound during performance by tapping on the computer's space bar. This example has no GUI and is designed to easily transplant into your own project.
    • TapTempoAudio.csd - Register a tempo with Csound during performance by tapping on a microphone connected to the computer's audio input.
    • isorhythm.csd - An example than demonstrates the compositional technique of isorhythm and how it can be implemented within Csound.
    • SyncLoopPlayers.csd - A framework for starting, stopping and syncing loops to a metrical clock in the manner of Ableton Live. Uses the soundfiles loop.wav, 808LoopMono.wav, SynthPad.wav and Bounce.wav.
    • planet.csd - A demonstration of the 'planet' opcode with visualisation and sonification to aid understanding.
    • ssplinek.csd - Generates 's' shaped splines between two set values for parameter modulation. The duration of the spline morph can be modulated in realtime.
    • OctaveDivider.csd - Implementation of the classic 'octave divider' effect. Uses the sound file AndItsAll.wav,
    • lpshold_loopseg.csd - Loop sequencer example to demonstrate the lpshold and loopseg opcodes.
    • TR-808.csd - Emulation of the Roland TR-808 drum machine. Ported from the Cabbage version by Tom Gideon.
    • Clavinet.csd - Imitation of the Hohner Clavinet D6 (FLTK version).
    • GuitarStrum.csd - A virtual strumming guitar with a fret board.
    • ViolinPluck.csd - An interface for the exploration of violin fingering positions for non-string playing composers. Also outputs MIDI.
    • CelloPluck.csd - An interface for the exploration of cello fingering positions for non-string playing composers. Also outputs MIDI.
    • expcurve_logcurve_scale.csd - A demonstration of expcurve, logcurve, gainslider and scale opcodes, used to warp and rescale functions.
    • max_min_maxabs_minabs.csd - A demonstration of the max, min, maxabs and minabs opcodes.
    • int_round_abs_ceil_frac.csd - A demonstration of the int, round, abs, ceil and frac functions.
    • peak.csd - A demonstration of the peak opcode, used to record the highest value received so far of an a or k-rate input variable.
    • mediank.csd - A demonstration of the mediank opcode, used to filter out irrational values in a data stream.
    • modulus.csd - A demonstration of the modulus (%) operator.
    • bitshift.csd - A demonstration of the bitshift operators (<< / >>).
    • bitwise.csd - A demonstration of the bitwise operators AND (&) NOT (�) OR (|) NON EQUIVALENCE (#).
    • table_sizes_and_opcodes.csd - A interactive exploration of the audible results of different table sizes and different oscillator opcodes.
    • RecordControllerGesture.csd - A demonstration of how to record and replay data from gestures carried out on a slider widget.
  • Physical Models - synthesis based upon mathematical imitations of the physics of real world instruments.
    • bamboo.csd - Demonstration of the bamboo opcode. A physical model of a bamboo shaker.
    • dripwater.csd - Demonstration of the dripwater opcode. A physical model of a drip of water.
    • guiro.csd - Demonstration of the guiro opcode. A physical model of a guiro.
    • sekere.csd - Demonstration of the sekere opcode. A physical model of a sekere shaker.
    • sleighbells.csd - Demonstration of the sleighbells opcode. A physical model of a sleighbells instrument.
    • tambourine.csd - Demonstration of the tambourine opcode. A physical model of a tambourine.
    • wgbow.csd - Demonstration of the wgbow opcode. A physical model of a bowed string.
    • wgbowedbar.csd - Demonstration of the wgbowedbar opcode. A physical model of a bowed bar.
    • wgclar.csd - Demonstration of the wgclar opcode. A physical model of a clarinet.
    • wgflute.csd - Demonstration of the wgflute opcode. A physical model of a flute.
    • wgpluck2.csd - Demonstration of the wgpluck2 opcode. A physical model of a plucked string using the Karpluss-Strong algorithm.
    • pluck.csd - Demonstration of the pluck opcode. A physical model of a plucked string using the Karpluss-Strong algorithm.
    • PrePiano.csd - A physical model of a 'Cageian' prepared piano. Original model written by Stefan Bilbao.
    • barmodel.csd - A physical model of a struck metal bar. Original model written by Stefan Bilbao.
    • cabasa.csd - A physical model of a cabasa.
    • crunch.csd - A physical model of a crunch sound.
    • gogobel.csd - A physical model of an agogobel sound. Uses the sound files marmstk1.wav and bounce.wav.
    • mandol.csd - A physical model of a mandolin sound. Uses the sound file mandpluk.aiff.
    • marimba.csd - A physical model of a marimba sound. Uses the sound files marmstk1.wav and Songpan.wav.
    • moog.csd - A physical model of a Moog synthesizer tone. Uses the sound files impuls20.aiff and mandpluk.aiff.
    • repluck.csd - A physical model of a plucked string using the Karpluss-Strong algorithm. Uses the sound file Songpan.wav.
    • sandpaper.csd - A physical model of the sound of rubbed sandpaper.
    • shaker.csd - A physical model of a shaker sound.
    • stix.csd - A physical model of the sound of sticks being struck.
    • vibes.csd - A physical model of a vibraphone sound. Uses the sound files marmstk1.wav and Songpan.wav.
    • wgbrass.csd - A physical model of the sound of a brass instrument.
    • wgpluck.csd - A physical model of a plucked string using the Karpluss-Strong algorithm. Uses the sound file Songpan.wav.
    • STKOpcodes.csd - Demonstration of Csound's STK opcodes: TKBandedWG, TKBeeThree, TKBlowBotl, TKBlowHole, TKBowed, TKBrass, TKClarinet, TKDrummer, TKFlute, TKFMVoices, TKHevyMetl, TKMandolin, TKModalBar, TKMoog, TKPercFlut, TKPlucked, TKResonate, TKRhodey, TKSaxofony, TKShakers, TKSimple, TKSitar, TKStifKarp, TKTubeBell, TKVoicForm, TKWhistle, TKWurley.
  • Pitch and Amplitude Tracking - Csound opcodes for tracking the pitch and amplitude of a live streaming audio signal.
    • pitch.csd - Demonstration of the pitch opcode which is used for pitch and amplitude following.
    • pitchamdf.csd - Demonstration of the pitchamdf opcode which is used for pitch and amplitude following.
    • pvspitch.csd - Demonstration of the 'pvspitch' opcode used to perform pitch and amplitude analysis on an input signal.
    • ptrack.csd - Demonstration of the ptrack opcode used to track pitch and amplitude using short-time Fourier transform.
    • plltrack.csd - Demonstration of the plltrack opcode which uses a phase locked loop algorithm to track pitch.
    • pvscent.csd - Demonstration of the pvscent opcode which tracks the spectral centroid of an audio signal using the short-time Fourier transform.
    • centroid.csd - Demonstration of the centroid opcode which tracks the spectral centroid of an audio signal.
  • Random Number Generators opcodes for the generation of random numbers according to various distributions.
    • DisplayRandomDistributions.csd - The shape of the distributions created by the gauss, poisson, exprand, bexprand, cauchy, pcauchy, betarand. trirand, unirand, linrand and weibull opcodes are displayed using FL widgets.
    • PrintRandomDistributions.csd - The outputs of the gauss, poisson, exprand, bexprand, cauchy, pcauchy, betarand. trirand, unirand, linrand and weibull opcodes are printed to the terminal and to FLtext boxes. The running average and number of values generated so far are also printed.
  • Realtime Score Generation generating score events from within the Csound orchestra.
    • SimpleSchedkwhenNoteGenerator.csd - Demonstration of the schedkwhen opcode which, in this example, is used to generate streams of algorithmically defined note events which are fed to another instrument within Csound.
    • DrunkWalk.csd - Demonstration of the 'Drunk Walk'. A popular method of data generation in algorithmic composition.
    • timedseq.zip - Demonstration of how to play back stored sequences of notes using the 'timedseq' opcode. Zip file contains the csd and a text file.
    • SimpleDrumSequencer.csd - A simple loop drum sequencer.
    • DrumSequencerVariableLength.csd - A looping drum sequencer with loops of different, metrically related, length.
    • NoteClusters.csd - Generates aleatoric clusters of notes. The number of notes in each cluster can be defined by the user in realtime. This example also serves to demonstrate looping constructions in Csound code.
    • SimpleLoopSequencer.csd - Simple loop sequencer, this time not using 'timedseq' opcode and without any GUI.
    • SelfTriggeringInstrument.csd - Demonstration of a technique whereby an instrument (parent) can spawn many copies (children) of itself.
    • seqtime_seqtime2.csd - A demonstration of the seqtime and seqtime2 opcodes which can be used to generate generate a rhythmic trigger signal based on a stored list of time gap values. These opcodes also offer a variety of looping options.
  • Reverbs - reverberation effects to imitate acoustic spaces.
  • Sound Generators - a variety of uncategorized means of synthesizing audio signals.
    • buzz.csd - Demonstration of the buzz opcode.
    • gbuzz.csd - Demonstration of the gbuzz opcode.
    • vco.csd - Demonstration of the vco opcode.
    • vco_with_PWM_LFO_and_LPF.csd - Demonstration of the vco opcode with the addition of a pulse width modulation LFO and a moogvcf resonant low pass filter.
    • WhitePinkFractalNoise.csd - Demonstration of the noise, pinkish and fractal noise opcodes, using to generate various noise signals.
    • hsboscil.csd - Demonstration of the hsboscil opcode, an oscillator which takes tonality and brightness as arguments. Includes an implementation of the Risset Glissando (Shepard Tones).
    • pdhalf.csd - Demonstration of the opcodes pdhalf and pdhalfy, used to implement phase distortion synthesis, a method of synthesis used by Casio in their CZ range of synthesizers in the late 1980s.
    • mode.csd - Demonstration of the mode opcode and modal synthesis.
    • BowedMode.csd - Banks of mode filters are excited by sympathetic banks of sine waves to imitate the sound of a resonant object being bowed or rubbed.
    • wterrain.csd - An introduction of Csound's 'wterrain' opcode for wave-terrain synthesis.
    • vco2.csd - Demonstration of the vco2 opcode.
    • oscbnk.csd - Demonstration of the 'oscbnk' opcode. Useful for creating dense ensemble-like timbres.
    • mpulse_dust2_gausstrig.csd - Demonstration of the mpulse, dust2 and gausstrig opcodes, used to generate streams of impulses. Requires Csound 5.17 or above.
    • gendy_gendyc_gendyx.csd - Demonstration of the gendy, gendyc and gendyx opcodes - implementations of a dynamic stochastic method of waveform synthesis conceived by Iannis Xenakis. Requires Csound 5.16 or above.
    • PadSynth.csd - Demonstration of the 'padsynth' GEN routine.
    • ChoirPad.csd - A synth that produces choir-like pads using the 'padsynth' GEN routine. NB. takes a moment to load.
  • Sound File Playback - playing back audio stored on the hard drive in Csound.
  • Specialized Filters - less generic filtering opcodes.
  • Time Reading - opcodes used to read time in various ways.
    • date_dates.csd - Opcodes that output the date since 1st January, 1970.
    • timeinsts_timeinstk.csd - Opcodes that measure time since a note began in either seconds or in terms of the number of elapsed control rate cycles.
    • times_timek.csd - Opcodes that measure time since Csound performance began in either seconds or in terms of the number of elapsed control rate cycles.
    • rtclock.csd - An opcode that reports the time elapsed since the beginning of the current Csound performance.
    • clockon_clockoff_readclock.csd - Demonstration of the 'clockon', 'clockoff' and 'readclock' opcodes, used to start, stop and read from a series of clocks internal to Csound.
    • dates_parsed.csd - The date string generated by the 'dates' opcode is parsed and values are derived from date attributes. Inspired and based on the example from the Csound Reference Manual. All data is printed to the terminal - no FLTK GUI.
    • bars_beats_ticks.csd - a mechanism that implements a metrical clock that measures time in bars, beats and ticks for a given tempo and number of beats per bar.
  • UDOs - various techniques and gadgets designed as UDOs (user defined opcodes) in order to facilitate easy transplantation into other Csound projects.
  • Waveguides
    • streson.csd - Demonstration of the streson opcode which filters an audio stream through a string resonator model. Uses the sound file Seashore.wav
    • wguide1.csd - Demonstration of the wguide1 opcode which filters an audio stream through a simple delay and lowpass filter algorithm. Similar to streson and the effect of comb filtering. Uses the sound file Seashore.wav
    • wguide1stack.csd - Creates a stack of up to 100 wguide1s, the frequencies of which follow either a geometric or arithmetic series. Uses the sound file Seashore.wav
    • wguide2.csd - Demonstration of the wguide2 opcode which can be used to imitate the resonating characteristics of a struck metal plate. Uses the sound file Seashore.wav