image

Warning: Alpha-Release

A simple player for ambisonics files.
  • Plays 1.,2. and 3. order soundfiles in B-format.
  • Files in wav,aiff,flac and ogg format supported (ogg-files caneven be streamed).
    Floating point support (for WAV-files only).
  • Decode ambisonics to speaker-feeds or binaural stereo files
    by using HRTF and decode to virtual speaker-array.
  • Play directly to soundcard outputs or save to file.

The player is programmed in Java, which means that (in theory) should be able to run on all platforms
that java runs on. Java-sound must also be implemented on the platform.
It has been developed on Windows XP running Java 1.5, and also tested on linux 64-bit system (Gentoo AMD64) using sun-jdk-1.5.0.03. So these combinations should be fine. I don't think it works with earlier java-versions than 1.5, atleast not very good.

Prerequisites: Java must be installed, see http://java.sun.com. Although the java-runtime (JRE) is enough, but if you have time and space for the bigger download, the JDK (development kit) is recommended, as it includes a server-vm, which gives greatly enhanced performance. The penalty is a little larger memory footprint and startup-time (they say), but by my experience it gives this program almost 50% reduction in cpu usage.

Just to summarize as the download page may be a little confusing: What you need to download is Java 2 Platform Standard Edition (J2SE), and for the smallest runtime only version download the JRE, or else download full development version JDK. Version 1.5 is also sometimes called 5.0 so someplaces it says J2SE 5.0 or J2SE 1.5 and later maybe JRE 5.0 or JRE 1.5.

Install:
Download AmbisonicsPlayer.zip and unpack it to any folder you like.
Run like this from the folder you unpacked it to:
java -jar ambisonicsplayer.jar
But for better performance use the server-vm like this:
java -server -jar ambisonicsplayer.jar
You may have to use the full path to the JDK, as this is not the default:
"C:\Program Files\Java\jdk1.5.0\bin\java.exe" -server -jar ambisonicsplayer.jar
Choose a file or write path or url in "Input file" - field.
Choose apropiate input-format, if more than one format matches the number of channels in file.
Choose apropiate output-format and layout.
Choose output device, default is the first device which should be working for stereo output, but maybe not for multichannel. On my machine, on linux with ALSA-drivers the default device works with multichannel, but on Windows XP, I'll have to use "Multiple Devices" instead and select the stereo-devices I would like to use. Note that to change the devices that is combined, you have to select another device in the dropdown list and then select "Multiple Devices" again.
"Save to file" will alvays save to a floating-point wave file.
Click "Play" to start playing, one more time to pause,"Stop" to stop, and there is possible to skip 10secs/1.min. forward/backward (ogg only forward, flac no skipping).
Much more functionality isn't developed yet ... ;-)

MIT Kemar HRTF set is included. Support for LISTEN HRTF database from Ircam is also added. To use it follow instructions here.

Source can be downloaded here
It is licensed under the GPL, Version 2, except for the convolving engine which uses an fft-implementation from the Mines Java Toolkit, and is like this toolkit licensed under the terms of the CPL - v1.0, and modifications to tritonus WAV-reading routines to support floating point and WAVE_EXTENSIBLE files, under the GNU Library General Public License..

Credits:

Todo:

  • The HRTF impulses are recorded at 44.1kHz and the program doesn't resample them, so for any other samplerates they will be wrong.
  • Seems like the inverse filter, or my method is not quite correct, the more speakers I use, the more dull sound I'll get.
  • Allow to edit and save speaker layouts and parameters.
  • Playlist and play controls.
  • The program should have a name ...
  • ++ much more ...
Screenshot showing how to select multiple output devices.
image

LISTEN HRTF dataset:

To use the LISTEN HRTFs from Ircam download listen1.zip,listen2.zip and listen3.zip, around 9MB each. All should be extracted in the data-directory, so you get a data\listen\IRC_1002_C folder and data\listen\IRC_1003_C etc.

Footnotes:

Mostly for testing the encode/decode chain, I added the possiblility to play a 6-channel file with 5.1 content. It will be encoded to B-format according to ITU layout (L,R,C,LFE,SL,SR at -30,30,0,0,-110,110), with a choice of a couple of different ordering of speakers that I ran across while testing.

Quad files also added, same procedure as 5.1, speaker order LF,RF,LR,RR

20.Nov.-2005 Roger Klaveness