< >


This webpage serves as a repository for Csound code used in my ongoing PhD research at The University of Birmingham.

As an acousmatic composer, I mostly use Csound for non-realtime processing and re-processing of recorded wildlife sounds, in conjunction with a variety of DAW plug-ins and other effects units.

I prefer to program a new batch of instruments from scratch with each new composition; updates to the repository are therefore normally made every few months, following the completion of my most recent work(s). The dated structure of the repository reflects this working process.

All code is open-source and freely downloadable via the links provided.

Please note that for independent use without class-based instruction or guidance, an intermediate-to-advanced level of skill with Csound is assumed from the outset. Safe working practices (such as rendering to file and noting console amplitude value reports before direct playback) are also assumed.

Constructive feedback and suggestions are very welcome via my UoB research e-mail address:

mgf864 [@] student [dot] bham [dot] ac [dot] uk

General Notes:

All code has been saved in Unified File Format (.csd), and should be compatible with Csound version 6.00 onwards.

NB: Downloading and installing the latest version of Csound is highly recommended.

For basic guidance, each file contains a multi-line descriptive comment above the <CsInstruments> element. Introductory tutorials and other resources are available on the main Csound website. Please also see the Canonical Csound Reference Manual for detailed information on configuration, opcodes and orchestra/score/command line syntax.

In my own working practice, all code is executed directly from a Mac Terminal CLI using appropriate flags for file output type, bit-depth, etc. If preferred, the user can add delimiting Options elements <CsOptions> </CsOptions> within the .csd file and add flags directly via a front-end.

I usually program using the Atom editor, with syntax highlighting and other features provided via Nate Whetsell's Csound package.

Comments are occasionally added on the same line as code; since these can be disregarded and deleted after some time, text is not normally wrapped to a defined limit within the editor. In practice, lines of code do not normally exceed 50 characters.

Atom Preferences:

Within Preferences > Editor Settings, the default font family Menlo, Consolas, etc. should be used at font size 15, with a preferred line length of 180 characters. Tab length should be set to 10. All other settings are left at default.

< >

Generate 10-second, mono test signal for studio loudspeaker calibration.

Random, 8-channel sample panner using four theoretical, equal-power loudspeaker pairs.

Random, 8-channel glitched sample panner using bbcutm & four theoretical, equal-power loudspeaker pairs.

8-channel, LFO-based sample amplitude modulation.

8-channel sample pitch adjustment.

8-channel sample signal router.

8-channel sample signal routing with backwards play.

Stereo gesture generator.

Backwards mono or stereo sample play.

Mono sample glitch generator with optional pitch adjustment.

Mono sample glissando.