University of York: Music Technology Group: Postgraduate study

York University Music Technology Group

The BF package - Ambisonics for Snack

This file covers the design of, and changes to, the BF Ambisonic B format extension package for the Snack audio extension for Tcl. BF is a suite of free software packages which add Ambisonic functionality to the Snack audio extension for Tcl/Tk. There are currently versions for Unix and Windows 9x/ME - sometime soon there will be a Mac version, giving complete cross platform functionality.


The software is currently all in a pre-release stage and must be regarded as such by all users. Options, operating parameters and modes of use are all subject to change so please treat this as a trial version only.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Reading further, compiling or using any portion of this code will be deemed as acceptance of these conditions in full.

THe BF package consists at present of one pretty well fully functional part, bfpan, one part in progress, bfdec and two parts, bfproc and bfmix, designed but not yet started

History of BF

The BF package was started by me in June 2000. After many years of trying to do things I needed done for my own research via the use of code written by students on our MA/MSc Music Technology course and/or using CSound, I finally accepted that I was going to have to produce my own tools. So I started on what was originally going to be just a single extra sub-command for Snack. As I added up all the different things I wanted in the package (both things I had needed in the past and things I thought might just be nice), it became obvious that it would become far too difficult for the user to provide sensible command lines or even tcl scripts for its control with just a single sub-command. It was therefore split into several different sub-commands. The first working version with very simple options (just rotations) was running within weeks. It has had to wait for public release both in order to implement as many of the functions as I could, which was delayed by pressure of work at the University, and because I wanted not to have just the Unix version available, which was partially developed in work time, but also I wanted to have a Windows version right from the start. This had to be developed in my own time and using my own facilities at home. Now (early 2001) bfpan and bfdec are both sufficiently stable for alpha realease. Bfproc and and bfmix are being developed by a team of Music Technology students as their submission for Software Engineering. It is hoped to realease these by the end of April.

bfpan allows the panning of sound sources into a first or second order soundfield (third order soon, arbitrary order a bit further down the line) which can then be stored as a soundfile. This soundfile can be sent out to an external decoder or, when it's ready, decoded by bfdec. The soundfield can be a pre-existing one from a soundfile so some limited degree of mixing can be done. The main mixing and soundfield manipulation tools (tilt, tumble,rotate, etc.) will come in bfmix. Note that, owing to a limitation in the current versions (January 2001) of Snack, the BF package only works on IN-MEMORY sounds, so there is a limited length (memory size dependent) of sound that can be dealt with. I have a fix nearly ready for that, but have suspended work on it as Kare Skolander has indicated that he will shortly be fixing the limitation in Snack itself.

If you have any suggestions for improvements, additional functions or new code to offer for the Unix version, please use reply form which will pop up in a new window so that you can reply without losing sight of the database page .

general stuff on building extensions to Snack

how to build the BF package


Wednesday October 31 st, 2001