This was a
very
dull page, but it is getting better.
It is still
mainly
of interest to those involved in computer music and/or surround sound.
If this does not describe you, you may wish to contemplate
The
Great Mystery.



Quick links:
CDP
Multi-Channel Toolkit
Soundcard Attrition Page
Microsoft multi-channel file format : Specification
Some examples of WAVE_FORMAT_EXTENSIBLE
PVOC-EX:
WAVE_EX file format for the phase vocoder
Surround, Ambisonic and
multi-channel links
Sliding Phase Vocoder
High Performance Audio Computing
Misc Downloads
About me:
I am professionally trained as a flute-player and composer, self-taught (with a lot of expert and patient help) as a programmer.
For many years I
worked
as a flute-maker. I still play the first flute I ever made. I also play other kinds of flute, especially the Indian bamboo flute (bansuri). I have been teaching flute at
Bath Spa University for longer than I can remember.
In 1988 I moved from Bath to the wilds of Somerset ("God's Own County"). I was most fortunate in discovering the Composers Desktop Project (CDP) system, in those early years based on the Atari ST, and available for many years now on Windows and (more recently) OS X. I am a Core Developer for the CDP system, with a focus on overall maintenance and compilation. The majority of the software was, and continues to be, written by Trevor Wishart.
Computer Music
I write mainly in C and C++, but have made occasional excursions into DSP programming on ADI Sharc and Motorola 56K (now Freescale). I have contributed code to
Csound, along with many other developers. I have been most fortunate to get to
know Prof. John Fitch,
who
(among many other things) maintains the Csound development site on Sourceforge. We have worked together on a number of research projects. My very first published research was into non-linear and chaotic oscillators and filters (which appear in Csound as the nlfilt opcode). I
contributed
the chapter "Designing legato instruments in Csound" for
'The Csound Book'. With John Fitch and others I am contributing to the Open-Access
NOS-DREAM electro-acoustic media centre at Bath University.
Resources for multi-channel soundfiles and surround-sound.
There are two primary aspects to surround sound - the sounds themselves, and the container file format for exchange and distribution. The original standard audio file formats have for many years been Microsoft's
WAVE format, and the
AIFF format associated principally with Apple computers. These formats are however ill-suited to surround sound as they do not support the definition of channel or speaker layouts. With Windows98 (SE),
Microsoft introduced an update to WAVE in the form of the new WAVEFORMATEXTENSIBLE
(WAVE_EX) file format. It defines 18 named speaker positions supporting all the standard consumer layouts such as 5.1. However, it does not support the many regular speaker layouts that are recommended for B-Format reproduction. As with the WAVE format, it is also a streaming protocol used to configure recording and playback hardware, and is now standard for all Microsoft platforms. It also supports sample formats beyond
16bits. See the NOS-DREAM
WAVE_EX page for some examples.
Ambisonic B-Format.
This is one of the most versatile yet economical surround encoding systems around. Users who only know about 5.1 surround for cinema do not know what they are missing. See the multi-channel links referenced above for more information.
I have defined a simple B-Format specialization of WAVE_EX that supports up to third-order B-Format streams (i.e. up to sixteen channels), and is described in detail here. It is now widely known and used as the AMB format. I have created a set of free command-line tools for assembling, disasembling and playing multi-channel files, in the form of the CDP Multi-Channel Toolkit. It includes support for AMB files.
The Ambisonic community (if it may be called that) has for some years now been planning a more advanced file format that can support as wide as possible a range of Higher-Order B-Format streams, including the possibility of one of more forms of lossless compression. Anyone interested in this aspect is recommended to subscribe to the sursound mailing list, where this and many other aspects of surround sound are debated and explored by some of the world-leading specialists in the subject.
High Performance Audio Computing - the Sliding Phase Vocoder.
The relatively recent emergence of consumer-level workstations with multiple cores hides a long history within computer science of parallel and concurrent processing. The most familiar example of this is probably the computer "cluster" associated with modern supercomputers. Other technologies are also in widespread use, involving not four or eight cores on a CPU but hundreds, and even thousands. I am interested in how these techniques associated with classic High-Performance Computing (HPC) might be extended to support advanced audio processing. The challenges are formidable, especially with respect to latency (an issue that historically has been of little concern to computer scientists, who are grateful if a task previously taking a month to run can now be completed in a few days). Hence, HiPAC - "High-Performance Audio Computing". See the NOS-DREAM HiPAC page for more details.
This is a subject that should be of concern to all computer musicians - to say nothing of system manufacturers and software houses. Despite the manifest speed increases offered by modern multicore desktops, relatively little of this increase is easily available to real-time audio as so much of it is inherently serial in nature (e.g. recursive filters) and cannot be parallelised. On the other hand, many new processes hitherto disregarded, but which can be effectively be parallelised, can now be considered for real time implementation given suitable accelerator hardware. One such new process, the Sliding Phase Vocoder, formed the basis of a recent research project at Bath University. Refer to that page for some downloadable sound examples.