Csound Phase Vocoder and Ambisonic/Stereo Spatialisation Utilities

Here are a couple of very old toys to compile up and use with Csound. I know they work on Linux and they worked the last time I tested them on IRIX - other UNIX platforms should not be a problem (please let me know). The source code is mostly of a fairly low standard, but the programs work. You can download source from here in .tgz format (tar + gzip). See licences included.

I'm working on a new sound processing library (MNLib) that runs independent of Csound. There are now tools available, particularly for spatialisation.


The `PVTool' Phase Vocoder Tool Compiler

This utility allows use of a C-hybrid script language for manipulating Csound phase vocoder files. PVTool scripts can be run as stand-alone scripts or compiled into binaries for reuse. Some scripts of varying usefulness are provided. Some are very bad, some are useful and some are fun. The point is not so much the scripts that are provided, but more that they let you write your own - it's a staightforward way to get your `hands dirty' with Csound PV files.

The internals are fairly horrid, working by pasting C code onto the top and bottom of the script and shelling out to the C compiler. But it works and I find it quite useful. Note that a C compiler is required while running the script compiler as well as while compiling pvtool itself. Some of the scripts shell out to other programs such as Csound (pvresyn) and XV (spectrogram).

To download version 1.2 click here.


The `Space' Spatialisation System

This utility spatialises sound using a script, placing and moving mono sound files using three-dimensional co-ordinates. The system will `render' the same script in stereo, Ambisonics or a crude mono (for speed). See also the VSpace system. VSpace provides significantly better spatialisation than this Space.

Space implements the following:

The implementation works by shelling out to Csound so Csound needs to be available at run-time. Compilation requires C, make, YACC and LEX.

The system is straightforward to use once set up: mixing lines can be as simple as 2.5 bell1.wav at (0, 1, 0) indicating that bell1.wav is to be played to the left of the listener 2.5 beats into the mix. Documentation of the syntax is included with the release.

Much of the processing is rather qualitative and not accurate representations of physics. The system is slow when asked for much detail. Like PVTool it's fairly horrid code internally. But it works for me.

To download version 1.06 click here. I've fixed a number of bugs since 1.01. I've also converted the documentation to HTML.

See the 3D Audio Links and Information page for further information. For Ambisonics information I recommend the Ambisonics Page maintained by Dave Malham of the University of York Music Technology group.


The author Richard Furse can be emailed as richard@muse.demon.co.uk.

"Ambisonics" is a registered trademark of Nimbus Communications International.

Return to index Counter