 |
Like JavaDeployment, JavaAudio is a tough topic. Things like file I/O and low level hardware access required for audio are notoriously difficult in Java. But rest assured, there are a bunch of audio APIs out there. Each has to deal with the platform and hardware specific issues in its own way.
Audio APIs basically fall into 3 categories:
- Low Level Audio: This deals with the actual bit representation of audio. It involves a direct translation from real sound to digital using AnalogToDigitalConversion and DigitalToAnalogConversion. You can do low low level stuff with this group like DigitalSignalProcessing, waveform editing, as well as standard functionality like simple playback.
- Music: This involves a representation of music rather than audio. So rather than representing the sound as audio does (amplitude at time), music APIs will use things like MIDI (MusicalInstrumentDigitalInterface) to represent music events (like 'start A#' or 'play chord').
- Synthesis: Synthesis APIs are basically digital representations of modular analog synthesizers. You basically have a bunch of unit generators to make basic waveshapes, and a bunch of other modules to mess with those waves.
Here are a bunch of libraries...
Low Level Audio:
Music:
Synthesis:
|