Changelog! Version 2.0.2 Fixed Bugs: + filenames were being parsed incorrectly by createRecorder. + fixed audio processing routines for AudioPlayer and AudioSnippet so that they don't spend cycles doing nothing while not in the "play" state. + fixed the zombie thread bug, which kept audio processing Threads from exiting when close() was called. + fixed out-of-memory problems that could occur when large files were played. this does come at the cost of slower seek times. + fixed the isEnabled(AudioEffect) function, which, uh, wasn't working. + fixed the pan() function, which was returning the BALANCE control. New Features: + added functions to FFT for doing forward transforms with an offset: forward(float[] samples, offset) and forward(AudioBuffer samples, offset) + added a freqToIndex(float freq) method to FFT for finding out the index of the spectrum band that contains the passed in frequency. + added a stop() method to AudioSample, so that playing samples can be immediately silenced. + added setPanNoGlide(float pan) to Controller, which will snap the panning setting of a sound to the provided value. + added setInputMixer(Mixer) and setOutputMixer(Mixer), which allow you to specify which Java Mixer object should be used when obtaining inputs (AudioInput) and outputs (AudioOuput, AudioPlayer, AudioSnippet, AudioSample).