The program WONDER (Wave field synthesis of new dimensions of electronic music in realtime) is designed to provide an interface between a wave field synthesis system and the software or hardware composers and performers of electronic music are used to. The program is still in development and trying to reach its eventual goal step by step.
The current version (v2.1.0) allows the user to either create a composition for the movement of the sound sources in his composition or to control the movements in realtime, either via the gui or via open sound control. The manual can be found in the folder "manual" in html-format.
Despite the fact that the program is not yet full realtime (this is planned for version 3) in the sense that a grid has to be calculated, the program incorporates several options and concepts, which are not possible with other (commercial) software to work with Wave Field Synthesis.
We are interested in how this program will be used and which compositional experiments will be tried using it; so please inform us!
Feedback, wish lists and bug reports (and fixes?) are very welcome: send them to wonder@nescivi.de
(read also the KNOWNBUGS file!!)
Support in any kind to further development of this program is also very welcome!
The program is created by Marije Baalman and Daniel Plewe (OSC implementation). The program is developed in the Electronic Studio of the Technical University of Berlin. The program is released under the GNU General Public License (see COPYING).
Basic installation info can be found in the INSTALL document.
For the "oscserver", I did not figure out yet how to make a proper configure file (or configure.ac); so any help there is welcome! For now, make sure you have installed libOSC++ (see below) properly (so that it can be found in a regular location), and run /.compileOSC; that should do the trick. then copy the resulting "oscserver" to /usr/local/bin or wherever you want to have it installed, as root.
so, to cut things short, do:
./configure
./qmake
./make
cd OSCServer
./.compileOSC
cd ..
and maybe as root
./make install
cp oscserver /usr/local/bin/oscserver
Here are some specific things to let the program run:
- Requirements
-
- Qt-Libraries v3.0.2.b or higher, from http://www.trolltech.com/
- libOSC++ libraries, from http://libosc.rumori.de
NB: there seem to be some problems with gcc-4.0.3 to compile this library
- liblo osc libraries, from http://liblo.sourceforge.net
- BruteFIR v1.0c or higher. This program can be downloaded from http://www.ludd.luth.se/~torger/brutefir.html and is also released under the GNU/GPL license. See BruteFIR's requirements list for further requirements.
---------------- remarks concerning BruteFIR -------------------- WONDER now uses BruteFIR version 1.0c (or higher) This version has several options regarding JACK and the CLI-port that are needed for WONDER
BruteFIR should have realtime priority. This can be achieved by using the realtime-lsm module (common on most audio distributions). Otherwise, this can be done with suid or using sudo (see also manual). In the latter case you need to add BruteFIR to the sudoers-list (with visudo) for the users that should be able to run WONDER and make sure that brutefir can be started with arguments! (easier is the suid option, done by "chmod a+s brutefir")
One other modification you might want to make, in case you have a "really fast machine" and are able to run a lot of convolutions at the same time (for example when you want to do 16 sources at the same time over 24 speakers, so 384 filters).
in the file bfmod.h the line
#define BF_MAXFILTERS ####
where #### is some number, must be set to a larger number than the standard 256.
Hardware (some practical advice):
For a good audible result you need a bunch of speakers. How many depends on the size of the room, where you want to use the WFS system, and on how "surround" you want the system has to be. For a simple frontal array, tests with just 16 speakers have worked. In the choice of speakers, DA-convertors, sound card, etc, the following things are important:
- use speakers that are all the same (same amplification factor, same phase and frequency response)
- do not speakers that are very big, as the distance between the speakers, determines the spatial aliasing frequency (see manual or
WFS literature)
- if you connect the speakers in an array to each other, make sure that there is no metal contact between the boxes, this may cause
a hum... we used plastic screws to avoid this.
- The soundcard and DA-convertors should be synchronous between their channels. If they are not, the effect will disappear, as the
WFS-technique depends on small delay differences between speakers (these can be just a few samples).
Good results have been achieved in the Studio with the RME-Hammerfall soundcard (3 ADAT out), 3 Marian Adcon convertors and Fostex speakers.
(please give feedback for other setups that work, or don't work, to add to this list).
Future plans:
- improve OSC: implementation of timetags.
- incorporate different High Frequency Damping algorithm, with more options to set.
- incorporate BruteFIR and/or SuperCollider further into the program, in order to allow for more versatile realtime control over sources.
- timeline view fully functional.
- enable use of EASE room modelling calculations.
- allow more complex source definition.
- see also the huge list in KNOWNBUGS...
and the usual:
* fix bugs, clean up code....
