Package stdlib
Class StdAudio
java.lang.Object
stdlib.StdAudio
This class provides a basic capability for creating, reading, and saving audio.
The audio format uses a sampling rate of 44,100 Hz, 16-bit, monaural.
For additional documentation, see Section 1.5 of Computer Science: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The sample rate: 44,100 Hz for CD quality audio. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
close()
Closes standard audio.static void
Loops an audio file (in .wav, .mid, or .au format) in a background thread.static void
Test client - play an A major scale to standard audio.static void
play
(double sample) Writes one sample (between -1.0 and +1.0) to standard audio.static void
play
(double[] samples) Writes the array of samples (between -1.0 and +1.0) to standard audio.static void
Plays an audio file (in .wav, .mid, or .au format) in a background thread.static double[]
Reads audio samples from a file (in .wav or .au format) and returns them as a double array with values between -1.0 and +1.0.static void
Saves the double array as an audio file (using .wav or .au format).
-
Field Details
-
SAMPLE_RATE
public static final int SAMPLE_RATEThe sample rate: 44,100 Hz for CD quality audio.- See Also:
-
-
Method Details
-
close
public static void close()Closes standard audio. -
play
public static void play(double sample) Writes one sample (between -1.0 and +1.0) to standard audio. If the sample is outside the range, it will be clipped.- Parameters:
sample
- the sample to play- Throws:
IllegalArgumentException
- if the sample isDouble.NaN
-
play
public static void play(double[] samples) Writes the array of samples (between -1.0 and +1.0) to standard audio. If a sample is outside the range, it will be clipped.- Parameters:
samples
- the array of samples to play- Throws:
IllegalArgumentException
- if any sample isDouble.NaN
IllegalArgumentException
- ifsamples
isnull
-
read
Reads audio samples from a file (in .wav or .au format) and returns them as a double array with values between -1.0 and +1.0. The audio file must be 16-bit with a sampling rate of 44,100. It can be mono or stereo.- Parameters:
filename
- the name of the audio file- Returns:
- the array of samples
-
save
Saves the double array as an audio file (using .wav or .au format).- Parameters:
filename
- the name of the audio filesamples
- the array of samples- Throws:
IllegalArgumentException
- if unable to savefilename
IllegalArgumentException
- ifsamples
isnull
IllegalArgumentException
- iffilename
isnull
IllegalArgumentException
- iffilename
extension is not.wav
or.au
-
play
Plays an audio file (in .wav, .mid, or .au format) in a background thread.- Parameters:
filename
- the name of the audio file- Throws:
IllegalArgumentException
- if unable to playfilename
IllegalArgumentException
- iffilename
isnull
-
loop
Loops an audio file (in .wav, .mid, or .au format) in a background thread.- Parameters:
filename
- the name of the audio file- Throws:
IllegalArgumentException
- iffilename
isnull
-
main
Test client - play an A major scale to standard audio.- Parameters:
args
- the command-line arguments
-