– This slot is reserved for the most recent working releases –
I have been working on a 3D game sound engine for Java which provides a common interface to various 3rd-party sound and codec libraries. I know JME has its own methods to link with OpenAL, so I hope my posting this here doesn’t offend the developers. At the very least, the sourcecode, which is included in the following links, might be useful for reference. This project and source code is free to use for any project comercial or otherwise.
Downloads:
Sound System Version date: October 23, 2010
The core SoundSystem library, independent from 3rd-party libraries. It is stripped down to the bare essentials, and designed to be easily customizable with various sound library and codec plug-ins. If memory is a concern (such as in an applet) this may be a good option, because it allows you to choose as many or as few plug-ins as you require for your project. NOTE: The core SoundSystem library without any plug-ins is only capable of playing MIDI files. Additional plug-ins should be added for more capabilities. The source code and license are included in the .zip file.
SoundSystem Utils Version date: August 9, 2009
Includes a SoundSystem loader, and an example XML file.
Plug-ins:
JavaSound library plug-in Version date: October 23, 2010
Interface to the Java Sound API. More compatable than OpenAL, but not as high quality and fewer features. This plug-in utilizes JavaSound’s panning and volume control methods to simulate an reasonable-quality 3D sound system. Known bug: quickPlaying sounds will begin playing them at full volume for a split second, before switching to the correct volume. This is a bug with the Java Sound API itself, and therefore beyond my control to correct. An easy workaround is to add 0.02 seconds of silence to the beginning of each sound effect (the free Audacity sound editor works well for this).
LWJGL OpenAL library plug-in Version date: August 24, 2010
Interface to the LWJGL binding of OpenAL. The LWJGL library (http://www.lwjgl.org) is required for this plug-in to work. This library sounds much better than Java Sound, but is not as compatable. I recommend using the JavaSound library plug-in as a backup option. NOTE: Please read the included LWJGL license.
JOAL library plug-in Version date: August 24, 2010
Interface to the JOAL binding of OpenAL. The JOAL library (https://joal.dev.java.net/) is required for this plug-in to work. As mentioned previously, this library sounds much better than Java Sound, but is not as compatable. I recommend using the JavaSound library plug-in as a backup option. NOTE: Please read the included JOAL license.
WAV codec plug-in Version date: October 23, 2010
Adds support for .wav files.
JOgg codec plug-in Version date: August 24, 2010
Adds support for .ogg files using the J-Ogg library. This codec is less compatible than the JOrbis codec, but the license is less restrictive. Sometimes running incompatable .ogg files through a converter will make them compatable. NOTE: Please read the included JOgg license.
JOrbis codec plug-in Version date: November 23, 2010
Adds support for .ogg files using the JOrbis library. More compatible than the JOgg codec, but reads data more slowly (it may not be possible to stream more than one file simultaneously when using this codec). This plug-in is licensed by the LGPL. NOTE: Please read the included LGPL document.
IBXM codec plug-in Version date: August 24, 2010
Adds support for Protracker, Fast Tracker 2, and Scream Tracker 3 (.s2m, .mod, and .xm) files using the IBXM library. File sizes for these formats tend to be quite small, so this may be a good option for background music. This plug-in is based on or using the IBXM library, which is bound by the BSD License. NOTE: Please read the included license document.
JSpeex codec plug-in Version date: August 24, 2010
Adds support for .ogg or .wav files encoded with Speex (a compression optimized for human voice). See http://www.speex.org/ for more information.
Documentation:
JavaDoc Version date: October 23, 2010
Also includes the JavaDocs for SoundSystemJPCT and all library and codec plug-ins, and the utils library.
3D Sound with SoundSystem PDF (download the example programs)
A tutorial-style guide to using the core SoundSystem library (last updated: April 14, 2009).
Demos:
Sound Effects Player (download the Source Code)
Demonstrates library switching on the fly, streaming background music, playing MIDI, and playing multiple sources simultaneously. Last updated August 21, 2010
Bullet / Target Collision (download the Source Code)
Demonstrates the LibraryJavaSound plug-in. Last updated 30 March, 2009
Holy Bouncing Helicopter Balls! (download the Source Code)
(Currently written in jPCT. In the process of porting to jME). Demonstrates moving through a world with multiple sources. Last updated August 21, 2010
What’s new?
- Fixed incompatibility introduced by LWJGL 2.3 not supporting indirect buffers
- Fixed reverse-byte-order bug in CodecIBXM
- Fixed bug where switching libraries caused pre-loaded sounds not to re-load
- Fixed various bugs in 64-bit Java plug-in for Firefox on Linux
- Added error message when attempting to load missing file from the JAR
- Added Doppler algorithm to LibraryJavaSound using sample-rate control
- Implemented standard interface methods for Doppler effect
- Added Doppler interface methods to SoundSystemJPCT with SimpleVector parameters
- Implemented new listner interface for End Of Stream events
- Added workaround for InterruptedException bug when accessing MIDI sequencer
- Added auto-search for common MIDI synthesizers when the default is missing
- Added variable to SoundSystemConfig for specifying MIDI synthesizer to try
- Added method for creating normal sources from raw PCM audio data
- Added method for checking millisecond position of playing sources
- Added Mixer ranking system and auto-selection of the most compatible Mixer
- Fixed message-flooding bug when Mixer controls are unavailable
- Added work-around for Java Sound “webcam chosen as default Mixer” bug
- Added work-around for non-Sun Java (eg. OpenJDK) missing “Java Sound” Mixer
- Fixed multiple potential thread-synchronization bugs
- Fixed a bug where certain types of .ogg files created in versions of Audacity were cut off just before the end of the sample