 |
All examples are tested on Csound 5.07 on Mac OSX and Windows XP.
A minimum screen size of 1024 x 768 is recommended.
If you have problems running any of the examples please check the following:
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 of use the virtual MIDI device by including the flags -M0 -rtmidi=virtual.
If you are still not able to run examples please email me.
Csound version 5.08 seems to have some issues with the integration of FLTK.
Program exiting is a little messy under 5.08 and Steven Yi's virtual keyboard doesn't seems to work.
I would recommend sticking with 5.07 for the time being.
15th May, 2008. 35 new examples. Numerous bug fixes and updates.
24th May, 2008. Added RingModulationAmplitudeModulation.csd
31st May, 2008. Added FormantFilter.csd
The entire catalogue of 177 example .csd files can be downloaded
here. Sound files, analysis files etc. can be downloaded as a single zip file at the bottom of this page.
Individual examples are as follows:
- 3D Audio
- Additive Synthesis
- Delays - effects involving digital delays
- Distortion Effects
- FFT
-
pvoc.csd
- Demonstration of the pvoc opcode. Uses the analysis files
AndItsAll.pvx
and
808loopMono.pvx.
-
pvadd.csd
- Demonstration of the pvadd opcode. Uses the analysis files
AndItsAll.pvx
and
808loopMono.pvx.
-
01pvsanal_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.
-
02pvsfread.csd
- Performs resynthesis of a PVOC-EX analysis file giving the user time pointer control. Uses the analysis file
AndItsAll.pvx.
-
03pvscale.csd
- Demonstrates the opcode pvscale by performing frequency scaling on a streaming pv signal. Uses the analysis file
AndItsAll.pvx.
-
04pvshift.csd
- Demonstrates the opcode pvshift by performing frequency shifting on a streaming pv signal. Uses the analysis file
AndItsAll.pvx.
-
05pvshift_pvscale.csd
- Combines the opcodes pvscale and pvshift in series. Uses the analysis file
AndItsAll.pvx.
-
06pvsfreeze.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 analysis file
AndItsAll.pvx.
-
07pvsblur.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 analysis file
AndItsAll.pvx.
-
08pvsmooth.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 analysis file
AndItsAll.pvx.
-
09pvsarp.csd
- Demonstration of the pvsarp opcode which performs spectral arpeggiation on a pv stream. Uses the analysis file
AndItsAll.pvx.
-
10pvsvoc.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 analysis files
AndItsAll.pvx.
and
808loopmono.pvx.
-
11pvscross.csd
- Demonstration of the pvscross opcode which performs cross-synthesis between two pv streams. One of the streaming pv signals, a simple synthesizer, can be played from a MIDI keyboard. Uses the analysis files
AndItsAll.pvx.
and
808loopmono.pvx.
-
new! 12pvsbufread.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.
- Filters
- FLTK
- Frequency Modulation (FM) Synthesis, Phase Modulation (PM) Synthesis, Ring Modulation and Amplitude Modulation
- Granular Synthesis
- Live Audio Input and Processing
-
01ins.csd
- Introduction of the ins opcode used to read the computer's live audio input.
-
02meters.csd
- Adds amplitude meters, amplitude value readouts, independent channel gain controls and independent channel panning controls to the previous example.
-
03follow2gate.csd
- Uses the follow2 opcode to implement a simple amplitude gating effect.
-
follow2.csd
- Uses the follow2 opcode to implement envelope following filter effect using also the moogladder resonant low pass filter. Uses either the live input or the sound file
loop.wav.
-
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.
-
MIDIKeyboardControlledPitchShifter.csd
- A live input pitch shifter effect which dynamically adds transposing voices depending upon notes played on a connected MIDI keyboard.
- MIDI Input and MIDI Synthesizer Designs
-
01MIDIInstrActivate.csd
- Basic demonstration of Csound instrument activation via MIDI.
-
02MIDIReadPitchAndVelocity.csd
- Demonstration of reading pitch and key velocity into a Csound instrument from a MIDI keyboard using the cpsmidi and ampmidi opcodes.
-
03MIDILinsegrEnvelope.csd
- Demonstration of how to design an envelope with a MIDI controlled release stage using the linsegr opcode.
-
04MIDIController.csd
- Demonstration of how to read data from a MIDI continuous controller using the ctrl7 opcode.
-
05MIDIControllerInitialisation.csd
- Demonstration of how to give a MIDI controller derived variable in Csound an initial value.
-
06MIDIOneControllerTwoOutputs.csd
- Multiple instances of ctrl7 creates two independent variables in Csound.
-
07MIDIRescaledController.csd
- A MIDI controller's output is rescaled within a Csound to produce a non-linear response to fader movement.
-
08MIDIPitchBend.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.
-
09PitchBendDiskin1.csd
- Pitch bend is implemented in the playback of a sound file using diskin. Uses the sound files
808loopMono.wav.
and
AndItsAll.wav.
-
10PitchBendDiskin2.csd
- Another method of using pitch bend in the playback of a sound file using diskin. Uses the sound files
808loopMono.wav.
and
AndItsAll.wav.
-
11cpstmid.csd
- Demonstration of the cpstmid opcode which allows the user to define alternative tuning systems triggerable via MIDI.
-
BasicMonophonicSynth.csd
- Demonstration of how to design a basic monophonic MIDI controlled synthesizer with portamento and legato and non-legato envelopes.
-
MonophonicSynth.csd
- A more elaborate monophonic MIDI controlled synthesizer with a multi-mode oscillator, filter, pitch and amplitude envelopes, an LFO and a ping-pong delay.
-
PolyphonicSynth.csd
- A polyphonic version of the above synthesizer.
-
new! LiveQuantize.csd
- A demonstration of how to quantize an incoming MIDI stream in realtime along with a sounding metronome.
-
new! MIDITapTempo.csd
- Note taps on a MIDI keyboard are interpretted as a tempo and applied to a delay effect.
-
new! MonoOverlaps.csd
- Demonstration how to design a monophonic MIDI instrument that allows note releases to overlap with the next note.
This could be used to prevent clicks. This technique could be equally applicable to non-MIDI instruments when using realtime score generation.
- Sound Generators
-
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.
-
WhiteNoisePinkNoise.csd
- Demonstration of the noise and pinkish opcodes, using to generate white and pink noise respectively.
- Physical Models
-
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.
-
new! PrePiano.csd
- A physical model of a 'Cagian' prepared piano. Original model written by Stefan Bilbao.
- Reverbs
- Sound File Playback
-
flooper2.csd
- Demonstration of the flooper2 looping sound file playback opcode. Uses the sound files
AndItsAll.wav
and
808loop.wav.
-
loscil_loscil3.csd
- Demonstration of the loscil and loscil3 opcodes - Csound's sampling building blocks. Both opcodes include sustain and release loops. Uses the sound files
808loopMono.wav.
and
AndItsAll.wav.
-
table_tablei_table3.csd
- Demonstration of the table, tablei and table3 opcodes, used to read stored samples. These opcodes are slightly more awkward to use than loscil but utimately offer greater flexibility. Loop start and end points are modifiable in realtime. Uses the sound files
808loopMono.wav.
and
AndItsAll.wav.
-
bbcut.csd
- Demonstration of the bbcut opcode which performs break beat style cut-ups on an audio stream or drum loop. Uses the sound file
loop.wav.
- 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
- Specialized Filters
- Miscellaneous
-
fout.csd
- Demonstration of how to use the fout opcode 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.
-
DistanceEmulator.csd
- An FLTK slider controls multiple parameters to create a more complexing morphing of the sound. This example emulates a sound receding into the distance. Uses the sound files
Songpan.wav.
-
new! date_dates.csd
- Opcodes that output the date since 1st January, 1970.
-
new! timeinsts.csd
- An opcode that reports the time elapsed since an instrument was called.
-
new! rtclock.csd
- An opcode that reports the time elapsed since the beginning of the current Csound performance.
-
new! 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.
-
new! pan2.csd
- Demonstration of the 'pan2' opcode.
-
new! 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.
-
new! Theremin.csd
- An FLTK 'theremin'.
- Live Sampling
-
new! 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.
-
new! MultiTableRec.csd
- Six independent function tables can be recorded to and played back from with speed control.
-
new! 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.
-
new! DiskRecAndPlayback.csd
- Recording and playback from disk. This method is suited to situations where recording of long pieces of audio is required.
- Realtime Score Generation
-
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.
-
new! DrunkWalk.csd
- Demonstration of the 'Drunk Walk'. A popular method of data generation in algorithmic composition.
-
new! timedseq.zip
- Demonstration of how to play back stored sequences of notes using the 'timedseq' opcode.
-
new! SimpleDrumSequencer.csd
- A simple loop drum sequencer.
-
new! DrumSequencerVariableLength.csd
- A looping drum sequencer with loops of different, metrically related, length.
-
new! 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.
All additional required materials (sound files, analysis files etc.): SourceMaterials.zip
Last update 04/06/08
Please report errors and comments to i_mccurdy@hotmail.com