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 recently completed 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.)

Updates:

  • Recent additions marked as new!
News and Help:
  • Some examples require the use of a sound file or analysis file in addition to the Csound .csd file. Download the required files and place them in your defined SSDIR, SADIR or present working directory.
  • Some examples include the option of using a MIDI input and include the -M flag within the CsOptions part of the .csd. If your computer has no MIDI device the file will not run. Either delete the -M flag and lose the MIDI functionality or use the virtual MIDI device by including the flags -M0 -+rtmidi=virtual.
  • If using QuteCsound, select the 'Run In Term'(inal) option if you experience difficulties.
If you are still not able to run examples you can email me.

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


Individual examples are as follows:
  • 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 Effects
      • AutopanTremolo.csd - Autopan / Tremolo effect.
      • BandFilter.csd - Bandpass and bandreject filters.
      • 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.
      • ConvolutionReverb.csd - A convolution reverb effect that uses the ftconv opcode. Uses the sound file Stairwell.wav.
      • DelayGrain.csd - A realtime delay granulator.
      • Doppler.csd - Doppler effect moving left to right.
      • DopplerSpin.csd - Circular spinning doppler effect.
      • EnvelopeFollower.csd - A dynamic envelope following lowpass filter.
      • FilterLFO.csd - A multimode filter with a multimode LFO on the cutoff frequency.
      • 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.
      • 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.
      • 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.
      • MultiReverb.csd - Simple encapsulation of the reverbsc and freeverb opcodes.
      • ModulatingDelays.csd - Layers of randomly modulating delays. Good for creating dense swirling textures.
      • pdclip.csd - Distortion effect using the pdclip opcode.
      • Phaser.csd - modulating phaser effect.
      • Phaser1.csd - encapsulation of the phaser1 opcode.
      • Phaser2.csd - encapsulation of the phaser2 opcode.
      • PingPongDelay.csd - Stereo ping-pong delay in which the echoes bounce between the left and right speakers.
      • Powershape.csd - encapsulation of the powershape opcode used for waveshaping distortion.
      • pvsAdsyn.csd - encapsulation of the pvsadsyn opcode.
      • pvsBandp.csd - encapsulation of the pvsbandp opcode for bandpass filtering using streaming FFT technology.
      • pvsBandr.csd - encapsulation of the pvsbandr opcode for bandreject filtering using streaming FFT technology.
      • 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.
      • StereoChorus.csd - Stereo modulating chorus effect.
      • new! 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).
      • 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.
    • Cabbage Instructional - tutorials in various Cabbage-specific techniques
      • new! ModifyingWidgetAppearance.csd - Demonstration of how Cabbage widgets can be manipulated in realtime. in this case we can modify an 'image's size, position, colour, boundary and shape using Cabbage's own widgets.
      • new! MouseSense.csd - Demonstration of how Cabbage can track mouse position and three mouse buttons. Also uses the text file MouseSenseInfo.txt
    • 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.
    • Cabbage GEN Routines and Table Displays
      • GEN02.csd - Demonstration of the GEN02 function table generator as a pattern generator.
      • GEN02_MidiMonitor.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).
      • new! 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.
      • 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.
      • 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.
      • new! GEN30.csd - Demonstration of the GEN30 function table generator which creates band limited versions of input waveforms.
      • new! 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.
      • Oscilloscope.csd - An oscilloscope waveform viewer which takes as input sine, VCO, FM and gbuzz generated audio.
    • 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
      • BassGuitar.csd - Physical model of a bass guitar.
      • bassline.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.
      • new! Bubbles.csd - A simple game in which the player has to click on rising bubbles in order to burst them and create music.
      • Choir.csd - synthesis of the human voice.
      • 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.
      • new! FM_Clang.csd - An FM synthesis instrument specialising in creating metallic clang type sounds.
      • GaussianDust.csd - Creates a Gaussian dust texture using the gausstrig opcode.
      • new! Harmonics.csd - Emualtion of a pair of hammered strings with nodal damping some way along their length.
      • new! Honk.csd - A synth based around a bowed bar model that produces quirky honking sounds.
      • hsboscil_synth.csd - synthesizer based around the hsboscil opcode.
      • new! ImageSliders.csd - A demonstration of how to create sliders using Cabbage's 'image' widget.
      • new! 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.
      • Metronome.csd - A simple Cabbage metronome.
      • 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.
      • new! 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.
      • PinkNoise.csd - Generates pink noise.
      • Rhythmicon.csd - Recreation of Henry Cowell and Leon Theremin's 'Rhythmicon' instrument.
      • RubbedResonators.csd - Synthesizer that imitates a variety of resonant objects being rubbed or bowed.
      • SonicLavaLamp.zip - Synthesizer toy that makes use of four automated xy pads. zip file contains csd and html instructions.
      • 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.zip - 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 File Players
  • 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.
    • new! 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.
    • new! GEN31.csd - Demonstration of GEN31 which generates additive spectra in the manner of GEN09 but with the variation that the partials need not be sinusoids. The partial waveform is passed to the GEN routine via another function table.
    • 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.
    • 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.
    • ShuffleTableContents.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
    • StereoToMono(Offline).csd - Extract one channel from a stereo sound file and render as a new file. This is performed offline so is recommended for long sound files. Use your own sound file!
    • StereoToMono.csd - Extract left and right channels from a stereo sound file and render as a new files. This is performed in real time so is slower for long sound files but the advantage is that both channels are rendered simultaneously. Use your own sound file!
    • 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.
    • 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.
    • new! RecordGesture.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 'Cagian' 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.
  • 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.
  • 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.
  • 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