Package stdlib

Class StdAudio

java.lang.Object
stdlib.StdAudio

public final class StdAudio extends Object
Standard audio. 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 Link icon

    Fields
    Modifier and Type
    Field
    Description
    static final int
    The sample rate: 44,100 Hz for CD quality audio.
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    static void
    Closes standard audio.
    static void
    loop(String filename)
    Deprecated.
    static void
    Loops an audio file (in .wav, .mid, or .au format) in a background thread.
    static void
    main(String[] args)
    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
    play(String filename)
    Deprecated.
    static void
    Plays an audio file (in .wav, .mid, or .au format) in a background thread.
    static double[]
    read(String filename)
    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
    save(String filename, double[] samples)
    Saves the double array as an audio file (using .wav or .au format).

    Methods inherited from class java.lang.Object Link icon

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details Link icon

  • Method Details Link icon

    • close Link icon

      public static void close()
      Closes standard audio.
    • play Link icon

      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 is Double.NaN
    • play Link icon

      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 is Double.NaN
      IllegalArgumentException - if samples is null
    • read Link icon

      public static double[] read(String filename)
      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 Link icon

      public static void save(String filename, double[] samples)
      Saves the double array as an audio file (using .wav or .au format).
      Parameters:
      filename - the name of the audio file
      samples - the array of samples
      Throws:
      IllegalArgumentException - if unable to save filename
      IllegalArgumentException - if samples is null
      IllegalArgumentException - if filename is null
      IllegalArgumentException - if filename extension is not .wav or .au
    • play Link icon

      @Deprecated public static void play(String filename)
      Deprecated.
      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 play filename
      IllegalArgumentException - if filename is null
    • playInBackground Link icon

      public static void playInBackground(String filename)
      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 play filename
      IllegalArgumentException - if filename is null
    • loop Link icon

      @Deprecated public static void loop(String filename)
      Deprecated.
      Loops an audio file (in .wav, .mid, or .au format) in a background thread.
      Parameters:
      filename - the name of the audio file
      Throws:
      IllegalArgumentException - if filename is null
    • loopInBackground Link icon

      public static void loopInBackground(String filename)
      Loops an audio file (in .wav, .mid, or .au format) in a background thread.
      Parameters:
      filename - the name of the audio file
      Throws:
      IllegalArgumentException - if filename is null
    • main Link icon

      public static void main(String[] args)
      Test client - play an A major scale to standard audio.
      Parameters:
      args - the command-line arguments