A Software Package for Sound Synthesis with Physical Models

Welcome to the Tao home page. Tao is a software package for sound synthesis using physical models. It provides a virtual acoustic material constructed from masses and springs which can be used as the basis for building quite complex virtual musical instruments. Tao comes with a synthesis language for creating and playing instruments and a fully documented (eventually) C++ API for those who would like to use it as an object library. The main features are:
  • Ability to create complex virtual instruments from primitive acoustic building blocks.
  • OpenGL animated visualisations showing the acoustic waves propagating through the instruments.
  • WAV format output files.
  • Comprehensive documentation including a user manual, tutorials (eventually) and various examples. All documentation is available in either LaTeX (dvi, ps) or HTML formats.
  • Available under GNU public license.

News (10 May 2006) 
I finally got round to uploading my current version of Tao. This one has a small optimisation to the position calculations for the individual cells in an instrument, and should speed up the simulation/sample generation a bit. I've also added some documentation for cygwin and OSX users, and tidied up the configure script a bit.

- Niall.

News (31 Aug 2005) 
Okay, so I should have tested the last release more thoroughly (on OS X at least), but I've uploaded a new version now which should definitely work on OS X, whether you've got X11 (or Fink) installed or not.

- Niall.

News (29 Aug 2005) 
I've just uploaded a new version - none of the actual code's changed, but I updated the configure script so that Tao will now compile on OS X, and I've automated the changes previously necessary to run it under cygwin - so you don't need to hand-edit the tao script anymore. Hmm... Maybe I should start removing older news postings here to tidy things up?

I just had a thought about OS X actually, which I'll have to check - you might find the configure script wants you to have X11 installed. Strictly speaking you shouldn't need it on OS X, since glut (I believe) uses the native windowing functions, but I've got a feeling the configure script expects the X libs to be there... I may post another update to fix this in the next couple of days...

- Niall.

News (23 Feb 2005) 
Right, everything seems to have been uploaded now, so I guess I should introduce myself. I'm doing a PhD at Glasgow University's Centre for Music Technology, in which I'm hoping to use Tao in a real-time capacity. You can read more about me at my homepage, although I'm afraid it's down at the moment, due to excessive interest in a VST plugin I released at the weekend (it'll be back up on the 1st). This site came about after I wrote a patch to allow Tao to compile on more recent systems than it previously allowed. Not much has really changed since the previous (22/4/2000) release, but I'm hoping to modify Tao to allow better real-time operation in the future, and I believe Mark also has some plans of his own for Tao's future. Actually, one noteable difference, is the fact that you can now download Mark's thesis to accompany Tao - just click one of the download links on the left to be taken to the Sourceforge files page (it's currently at the top).

- Niall.

News (22 Feb 2005) 
Okay, I've uploaded the basic pages from the original site now, but I haven't yet put the manual and dependencies pages up. Bear with me and I should get it done in the next couple of days.

- Niall Moody.

News (26 Apr 2000) 
Another image has been added to the Screenshots and Sounds page. Also the script used to produce one of the sounds has been added too.

A new source package has been uploaded, along with a user manual improved in many respects. I have begun to address one of the main deficiencies of Tao's user interface - the lack of useful error messages when a script contains mistakes. Until now only syntactic errors were picked up, but in the new version errors produced when the C++ version of the script is compiled are reported, highlighting the lines in the original script file which were in error. At the moment some common errors are caught, e.g. undeclared parameters, mispelt functions etc. but if Tao fails to compile a script and doesn't give you any useful error messages, please feel free to contact me so that I can fix the specific problem. This error reporting feature will become more sophisticated with time as I update it to cover other potential errors.

Filenames for all downloadable files have been changed to include the date of the build. Tao has been stuck at v1.0-beta for a while so I figured it would be useful for those of you who check this page occassionally to see at a glance whether a more recent package is available. The file tao-1.0.0-beta.tgz becomes tao-1.0-beta-26Apr2000.tgz for the version created on 26th April 2000. The manual also states which version is refers to now. See the new Future Directions page for an outline of my intentions for Tao after v1.0 becomes stable.

Several bugs and problems have been fixed, both in the software and the documentation including: configure script failing to detect libGLU.so even when it was installed properly; user manual giving incorrect names for some object methods - e.g. bow.disengage() - and others being described correctly but not implemented correctly - e.g. hammer.numberOfImpacts().

A new shell script diagnose-lib has been added to the source package. This script aids the diagnosis of configuration problems occuring because library files cannot be found. It is documented in the user manual. I can't guarantee it will solve any problems but it should help at least.

The chapter entitled Object Method Reference in the user manual has been improved, and the index has been made much more comprehensive and useful, but as always I should point out that this manual is still a work in progress.

Two new pages have been added to this site and the front page you are looking at now has been rearranged slightly. One of the new pages will eventually contain downloadable PDF versions of my thesis and published papers. This page is currently under construction however. The second is intended as a place for me to describe my long term plans for Tao