org.tritonus.share.sampled
Class AudioUtils

java.lang.Object
  extended by org.tritonus.share.sampled.AudioUtils

public class AudioUtils
extends java.lang.Object


Field Summary
static double SILENCE_DECIBEL
          The value used for negative infinity in decibels.
 
Constructor Summary
AudioUtils()
           
 
Method Summary
static int bytes2Millis(int bytes, AudioFormat format)
          Conversion bytes to milliseconds
static long bytes2Millis(long bytes, AudioFormat format)
          Conversion bytes to milliseconds
static double bytes2MillisD(long bytes, AudioFormat format)
          Conversion bytes to milliseconds
static double bytes2MillisD(long bytes, double frameRate, int frameSize)
          Conversion bytes to milliseconds
static boolean containsFormat(AudioFormat sourceFormat, java.util.Iterator possibleFormats)
           
static double decibel2linear(double decibels)
          Calculate the linear factor corresponding to the specified decibel level.
static java.lang.String format2ShortStr(AudioFormat format)
          For debugging purposes.
static int frames2Millis(int frames, AudioFormat format)
          Conversion frames to milliseconds
static long frames2Millis(long frames, AudioFormat format)
          Conversion frames to milliseconds
static double frames2MillisD(long frames, AudioFormat format)
          Conversion frames to milliseconds
static double frames2MillisD(long frames, double frameRate)
          Conversion frames to milliseconds
static int getFrameSize(int channels, int sampleSizeInBits)
           
static long getLengthInBytes(AudioFormat audioFormat, long lLengthInFrames)
          if the passed value for lLength is AudioSystem.NOT_SPECIFIED (unknown length), the length in bytes becomes AudioSystem.NOT_SPECIFIED, too.
static long getLengthInBytes(AudioInputStream audioInputStream)
           
static boolean isJavaSoundAudioEngine(DataLine line)
          Return if the passed line is writing to or reading from the Java Sound Audio Engine.
static boolean isJavaSoundAudioEngine(Mixer.Info mixerInfo)
          Return if the passed mixer info is the Java Sound Audio Engine.
static boolean isPCM(AudioFormat format)
           
static boolean isSystemBigEndian()
          tries to guess if this program is running on a big endian platform
static double linear2decibel(double linearFactor)
          Get decibel from a linear factor.
static long millis2Bytes(double ms, AudioFormat format)
          convert milliseconds to bytes.
static long millis2Bytes(double ms, double frameRate, int frameSize)
          convert milliseconds to bytes.
static int millis2Bytes(int ms, AudioFormat format)
          convert milliseconds to bytes.
static int millis2Bytes(int ms, double frameRate, int frameSize)
          convert milliseconds to bytes.
static long millis2Bytes(long ms, AudioFormat format)
          Conversion milliseconds to bytes
static long millis2Bytes(long ms, double frameRate, int frameSize)
          Conversion milliseconds to bytes
static long millis2BytesFrameAligned(double ms, AudioFormat format)
          Conversion milliseconds to bytes, return value is frame-aligned
static long millis2BytesFrameAligned(double ms, double frameRate, int frameSize)
          Conversion milliseconds to bytes, return value is frame-aligned
static int millis2BytesFrameAligned(int ms, AudioFormat format)
          Conversion milliseconds to bytes, return value is frame-aligned
static int millis2BytesFrameAligned(int ms, double frameRate, int frameSize)
          Conversion milliseconds to bytes, return value is frame-aligned
static long millis2BytesFrameAligned(long ms, AudioFormat format)
          Conversion milliseconds to bytes, return value is frame-aligned
static long millis2BytesFrameAligned(long ms, double frameRate, int frameSize)
          Conversion milliseconds to bytes, return value is frame-aligned
static long millis2Frames(double ms, AudioFormat format)
          Conversion milliseconds to frames (samples)
static long millis2Frames(double ms, double frameRate)
          Conversion milliseconds to frames (samples)
static int millis2Frames(int ms, AudioFormat format)
          Conversion milliseconds to frames (samples)
static int millis2Frames(int ms, double frameRate)
          Conversion milliseconds to frames (samples)
static long millis2Frames(long ms, AudioFormat format)
          Conversion milliseconds to frames (samples)
static long millis2Frames(long ms, double frameRate)
          Conversion milliseconds to frames (samples)
static double millis2FramesD(double ms, AudioFormat format)
          Conversion milliseconds to frames (samples)
static double millis2FramesD(double ms, double frameRate)
          Conversion milliseconds to frames (samples)
static java.lang.String NS_or_number(float number)
           
static java.lang.String NS_or_number(int number)
           
static boolean sampleRateEquals(float sr1, float sr2)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SILENCE_DECIBEL

public static double SILENCE_DECIBEL
The value used for negative infinity in decibels. The default value is -100.0, which is approximately the s/n ratio achieved with 16-bit samples. If you use higher resolution, set this to a lower value, like -150.0.

Constructor Detail

AudioUtils

public AudioUtils()
Method Detail

getLengthInBytes

public static long getLengthInBytes(AudioInputStream audioInputStream)

getLengthInBytes

public static long getLengthInBytes(AudioFormat audioFormat,
                                    long lLengthInFrames)
if the passed value for lLength is AudioSystem.NOT_SPECIFIED (unknown length), the length in bytes becomes AudioSystem.NOT_SPECIFIED, too.


containsFormat

public static boolean containsFormat(AudioFormat sourceFormat,
                                     java.util.Iterator possibleFormats)

getFrameSize

public static int getFrameSize(int channels,
                               int sampleSizeInBits)
Returns:
the frame size, given the sample size in bits and number of channels

millis2Bytes

public static long millis2Bytes(long ms,
                                AudioFormat format)
Conversion milliseconds to bytes


millis2Bytes

public static long millis2Bytes(long ms,
                                double frameRate,
                                int frameSize)
Conversion milliseconds to bytes


millis2Bytes

public static int millis2Bytes(int ms,
                               AudioFormat format)
convert milliseconds to bytes. Be careful to not exceed the integer maximum value


millis2Bytes

public static int millis2Bytes(int ms,
                               double frameRate,
                               int frameSize)
convert milliseconds to bytes. Be careful to not exceed the integer maximum value


millis2Bytes

public static long millis2Bytes(double ms,
                                AudioFormat format)
convert milliseconds to bytes.


millis2Bytes

public static long millis2Bytes(double ms,
                                double frameRate,
                                int frameSize)
convert milliseconds to bytes.


millis2BytesFrameAligned

public static long millis2BytesFrameAligned(long ms,
                                            AudioFormat format)
Conversion milliseconds to bytes, return value is frame-aligned


millis2BytesFrameAligned

public static long millis2BytesFrameAligned(long ms,
                                            double frameRate,
                                            int frameSize)
Conversion milliseconds to bytes, return value is frame-aligned


millis2BytesFrameAligned

public static int millis2BytesFrameAligned(int ms,
                                           AudioFormat format)
Conversion milliseconds to bytes, return value is frame-aligned


millis2BytesFrameAligned

public static int millis2BytesFrameAligned(int ms,
                                           double frameRate,
                                           int frameSize)
Conversion milliseconds to bytes, return value is frame-aligned


millis2BytesFrameAligned

public static long millis2BytesFrameAligned(double ms,
                                            AudioFormat format)
Conversion milliseconds to bytes, return value is frame-aligned


millis2BytesFrameAligned

public static long millis2BytesFrameAligned(double ms,
                                            double frameRate,
                                            int frameSize)
Conversion milliseconds to bytes, return value is frame-aligned


millis2Frames

public static long millis2Frames(long ms,
                                 AudioFormat format)
Conversion milliseconds to frames (samples)


millis2Frames

public static long millis2Frames(long ms,
                                 double frameRate)
Conversion milliseconds to frames (samples)


millis2Frames

public static int millis2Frames(int ms,
                                AudioFormat format)
Conversion milliseconds to frames (samples)


millis2Frames

public static int millis2Frames(int ms,
                                double frameRate)
Conversion milliseconds to frames (samples)


millis2Frames

public static long millis2Frames(double ms,
                                 AudioFormat format)
Conversion milliseconds to frames (samples)


millis2Frames

public static long millis2Frames(double ms,
                                 double frameRate)
Conversion milliseconds to frames (samples)


millis2FramesD

public static double millis2FramesD(double ms,
                                    AudioFormat format)
Conversion milliseconds to frames (samples)


millis2FramesD

public static double millis2FramesD(double ms,
                                    double frameRate)
Conversion milliseconds to frames (samples)


bytes2Millis

public static long bytes2Millis(long bytes,
                                AudioFormat format)
Conversion bytes to milliseconds


bytes2Millis

public static int bytes2Millis(int bytes,
                               AudioFormat format)
Conversion bytes to milliseconds


bytes2MillisD

public static double bytes2MillisD(long bytes,
                                   AudioFormat format)
Conversion bytes to milliseconds


bytes2MillisD

public static double bytes2MillisD(long bytes,
                                   double frameRate,
                                   int frameSize)
Conversion bytes to milliseconds


frames2Millis

public static long frames2Millis(long frames,
                                 AudioFormat format)
Conversion frames to milliseconds


frames2Millis

public static int frames2Millis(int frames,
                                AudioFormat format)
Conversion frames to milliseconds


frames2MillisD

public static double frames2MillisD(long frames,
                                    AudioFormat format)
Conversion frames to milliseconds


frames2MillisD

public static double frames2MillisD(long frames,
                                    double frameRate)
Conversion frames to milliseconds


sampleRateEquals

public static boolean sampleRateEquals(float sr1,
                                       float sr2)
Parameters:
sr1 - the first sample rate to compare
sr2 - the second sample rate to compare
Returns:
true if the sample rates are (almost) identical

isPCM

public static boolean isPCM(AudioFormat format)
Parameters:
format - the audio format to test
Returns:
true if the format is either PCM_SIGNED or PCM_UNSIGNED

isJavaSoundAudioEngine

public static boolean isJavaSoundAudioEngine(Mixer.Info mixerInfo)
Return if the passed mixer info is the Java Sound Audio Engine.

Parameters:
mixerInfo - the mixer info to query
Returns:
true if the mixer info describes the Java Sound Audio Engine

isJavaSoundAudioEngine

public static boolean isJavaSoundAudioEngine(DataLine line)
Return if the passed line is writing to or reading from the Java Sound Audio Engine.

Parameters:
line - the data line to query
Returns:
true if the line is using the Java Sound Audio Engine

isSystemBigEndian

public static boolean isSystemBigEndian()
tries to guess if this program is running on a big endian platform

Returns:
true if the system's native endianness is big endian

NS_or_number

public static java.lang.String NS_or_number(int number)

NS_or_number

public static java.lang.String NS_or_number(float number)

format2ShortStr

public static java.lang.String format2ShortStr(AudioFormat format)
For debugging purposes.


linear2decibel

public static final double linear2decibel(double linearFactor)
Get decibel from a linear factor.

Parameters:
linearFactor - 0..1..inf
Returns:
the converted decibel (SILENCE_DECIBEL...0...inf)

decibel2linear

public static final double decibel2linear(double decibels)
Calculate the linear factor corresponding to the specified decibel level.

Parameters:
decibels - [SILENCE_DECIBEL...0...inf]
Returns:
linear factor [0...1...inf]