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

All files are open-source and freely downloadable.

As an acousmatic composer, I primarily use Csound for non-realtime processing of wildlife recordings, designing new instruments on a piece-by-piece basis. The structure of the repository reflects this compositional workflow.

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.

I would like to thank the global Csound community for their many contributions to the Canonical Manual, tutorials and main website, which have become invaluable creative resources for me over the years and genuinely changed how I think about sound.

Constructive feedback and suggestions are welcome via my contact page.


General Notes:

New instruments are normally uploaded every few months, following completion of my latest acousmatic work.

For basic guidance, each file contains a multi-line descriptive comment directly beneath the <CsInstruments> element. This comment also contains references to code examples (e.g. in the Csound Reference Manual) which have informed instrument design.

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.

Technical Notes:

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

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

I execute all code 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.


Revision History:

20.03.2019 (V. 1.2)
Added appropriate Csound Manual references within relevant descriptive comments.

13.03.2019 (V. 1.1)
Fixed issue with French 8 octophonic channel routing. Fixed issue with tab spacing. Modified file names for simplicity.

06.01.2019 (V. 1.0)
Initial upload.

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

Simple reversal of mono or stereo samples.

Sample-based, stereo gesture generator.

8-channel sample pitch adjustment, with glissando capability.

Simple, mono sample glissando.

Simple, mono bbcutm sample glitch generator with optional pitch adjustment.

LFO-based, 8-channel sample amplitude modulation.

Random, 8-channel sample panner.

Random, 8-channel sample panner with bbcutm glitching.

8-channel sample signal router for 'French 8' loudspeaker configuration.

8-channel sample signal router for 'French 8' loudspeaker configuration.