March 31st, 2009, 02:08 PM
Sound System, major updates
Sound System Core Version date: April 9, 2009
The core SoundSystem library, independent from any 3rd-party 3D engines, sound libraries, or codec libraries. It is stripped down to the bare essentials, and designed to be easily customizable with various sound library and codec pluggins. 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 pluggins as you require for your project. NOTE: The core SoundSystem library without any pluggins is only capable of playing MIDI files. Additional pluggins should be added for more capabilities. The source code and license are included in the .zip file.
Sound System jPCT Version date: April 9, 2009
The jPCT-friendly 3D sound library. The SoundSystemJPCT class overrides the core SoundSystem libray, and provides a number of methods to make adding 3D sound to any project using the jPCT 3D engine easy. It includeds methods for binding Listener to Camera and Sources to Object3Ds, as well as using SimpleVector parameters. SoundSystemJPCT utilizes the LWJGL binding of OpenAL (with JavaSound as a backup option), the J-Ogg codec for .ogg support, and the Wav codec for .wav support. NOTE: The core SoundSystem library, source code, and all relevant licenses are included in the .zip file.
JavaSound library pluggin Version date: April 9, 2009
Interface to the Java Sound API. More compatable than OpenAL, but not as good quality. Known bug: quickPlaying sounds will begin playing at full volume for a split second, before switching to the correct volume. This is a bug with the Java Sound API itself. An easy workaround is to add 0.02 seconds of silence to the beginning of each sound effect (the Audacity sound editor works well for this).
LWJGL OpenAL library pluggin Version date: April 9, 2009
Interface to the LWJGL binding of OpenAL. This library sounds much better than Java Sound, but is not as compatable. I recommend using the JavaSound library pluggin as a backup option. NOTE: Please read the included LWJGL license.
WAV codec pluggin Version date: April 9, 2009
Adds support for .wav files.
JOgg codec pluggin Version date: April 9, 2009
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 pluggin Version date: April 9, 2009
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 pluggin is licensed by the LGPL. NOTE: Please read the included LGPL document.
JavaDoc Version date: April 9, 2009
Also includes the JavaDocs for SoundSystemJPCT and all library and codec pluggins.
3D Sound with SoundSystem PDF (download the example programs)
A tutorial-style guide to using the core SoundSystem library (last updated: March 29, 2009).
Sound Effects Player (download the Source Code)
Demonstrates library switching on the fly, streaming background music, playing MIDI, and playing multiple sources simultaneously.
Added new transition methods for MIDI and streaming sources with the ability to queue next sounds and create fade in/out effects.
Created a new stripped-down customizable core SoundSystem library
Added a codec and library pluggin infrastructure, allowing the user to choose which sound libraries and codecs to use.
Comments on this post
Last edited by paulscode; April 9th, 2009 at 08:40 PM.
April 9th, 2009, 08:36 PM
I made a few minor fixes to the Sound Library. The above links are still the same.
- Fixed problem with second constructor for SoundSystem class where derived classes would not automatically load their default libraries and codecs.
- Removed all refrences to "println" and "printStackTrace" from the codec classes. Using the logger to handle all messages instead.
- Corrected four potential "null pointer exception" lines in the LibraryJavaSound and LibraryLWJGLOpenAL classes.