Java Sound Programmer Guide


Preface

  1. For Whom This Guide Is Intended
  2. What this Guide Describes
  3. For More Information

Chapter: 1 Introduction to the Java Sound API

  1. Design Goals
  2. Who is the Java Sound API For?
  3. How Does the Java Sound API Relate to Other Interfaces?
  4. Packages
  5. Sampled Audio
  6. What Is Sampled Audio?
  7. Audio Configurations
  8. MIDI
  9. What Is MIDI?
  10. MIDI Configurations
  11. Service Provider Interfaces

Chapter 2: Overview of the Sampled Package

  1. Design Goals
  2. A Focus on Data Transport
  3. Buffered and Unbuffered Handling of Audio
  4. The Essentials: Format, Mixer, and Line
  5. What Is Formatted Audio Data?
  6. What Is a Mixer?
  7. What Is a Line?
  8. Lines in an Audio-output Configuration
  9. Lines in an Audio-input Configuration
  10. The Line Interface Hierarchy

Chapter 3: Accessing Audio System Resources

  1. The AudioSystem Class
  2. Information Objects
  3. Getting a Mixer
  4. Getting a Line of a Desired Type
  5. Getting a Line Directly from the AudioSystem
  6. Getting a Line from a Mixer
  7. Selecting Input and Output Ports
  8. Permission to Use Audio Resources

Chapter 4: Playing Back Audio

  1. Using a Clip
  2. Setting Up the Clip for Playback
  3. Starting and Stopping Playback
  4. Using a SourceDataLine
  5. Setting Up the SourceDataLine for Playback
  6. Starting and Stopping Playback
  7. Monitoring a Line's Status
  8. Synchronizing Playback on Multiple Lines
  9. Processing the Outgoing Audio

Chapter 5: Capturing Audio

  1. Setting Up a TargetDataLine
  2. Reading the Data from the TargetDataLine
  3. Monitoring the Line's Status
  4. Processing the Incoming Audio

Chapter 6: Processing Audio with Controls

  1. Introduction to Controls
  2. Getting a Line that Has the Desired Controls
  3. Getting the Controls from the Line
  4. Using a Control to Change the Audio Signal
  5. Controlling a Line's Mute State
  6. Changing a Line's Volume
  7. Selecting among Various Reverberation Presets
  8. Manipulating the Audio Data Directly

Chapter 7: Using Files and Format Converters

  1. Reading Sound Files
  2. Writing Sound Files
  3. Converting File and Data Formats
  4. Converting from One File Format to Another
  5. Converting Audio between Different Data Formats
  6. Learning What Conversions Are Available

Chapter 8: Overview of the MIDI Package

  1. A MIDI Refresher: Wires and Files
  2. Streaming Data in the MIDI Wire Protocol
  3. Sequenced Data in Standard MIDI Files
  4. The Java Sound API's Representation of MIDI Data
  5. MIDI Messages
  6. MIDI Events
  7. Sequences and Tracks
  8. The Java Sound API's Representation of MIDI Devices
  9. The MidiDevice Interface
  10. Transmitters and Receivers
  11. Sequencers
  12. Synthesizers

Chapter 9: Accessing MIDI System Resources

  1. The MidiSystem Class
  2. Obtaining Default Devices
  3. Learning What Devices Are Installed
  4. Obtaining a Desired Device
  5. Opening Devices

Chapter 10: Transmitting and Receiving MIDI Messages

  1. Understanding Devices, Transmitters, and Receivers
  2. Sending a Message to a Receiver without Using a Transmitter
  3. Understanding Time Stamps
  4. Time Stamps on Messages Sent to Devices
  5. Connecting Transmitters to Receivers
  6. Connecting to a Single Device
  7. Connecting to More than One Device
  8. Closing Connections

Chapter 11: Playing, Recording, and Editing MIDI Sequences

  1. Introduction to Sequencers
  2. When to Use a Sequencer
  3. Understanding Sequence Data
  4. Sequences and Tracks
  5. MidiEvents and Ticks
  6. Overview of Sequencer Methods
  7. Obtaining a Sequencer
  8. Loading a Sequence
  9. Playing a Sequence
  10. Recording and Saving Sequences
  11. Editing a Sequence
  12. Using Advanced Sequencer Features
  13. Moving to an Arbitrary Position in the Sequence
  14. Changing the Playback Speed
  15. Muting or Soloing Individual Tracks in the Sequence
  16. Synchronizing with Other MIDI Devices
  17. Specifying Special Event Listeners

Chapter 12: Synthesizing Sound

  1. Understanding MIDI Synthesis
  2. Instruments
  3. Channels
  4. Soundbanks and Patches
  5. Voices
  6. Managing Instruments and Soundbanks
  7. Learning What Instruments Are Loaded
  8. Loading Different Instruments
  9. Unloading Instruments
  10. Accessing Soundbank Resources
  11. Querying the Synthesizer's Capabilities and Current State
  12. Using Channels
  13. Controlling the Synthesizer without Using a Sequencer
  14. Getting a Channel's Current State
  15. Muting and Soloing a Channel
  16. Permission to Play Synthesized Sound

Chapter 13: Introduction to the Service Provider Interfaces

  1. What Are Services?
  2. How Services Work
  3. How Providers Prepare New Services
  4. How Users Install New Services

Chapter 14: Providing Sampled-Audio Services

  1. Introduction
  2. Providing Audio File-Writing Services
  3. Providing Audio File-Reading Services
  4. Providing Format-Conversion Services
  5. Providing New Types of Mixers

Chapter 15: Providing MIDI Services

  1. Introduction
  2. Providing MIDI File-Writing Services
  3. Providing MIDI File-Reading Services
  4. Providing Particular MIDI Devices
  5. Providing Soundbank File-Reading Services

Appendix 1: Code Overview: AudioSystem.java

Last updated January 11, 2002