The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
At the request of Don Stuart, here is some information about the formats supported by different sound libraries.
In-memory data formats
In-memory sound formats are fairly diverse.
Reading and writing sound files
Library
|
Sound file format
|
HCodecs
|
(Audible a) => DiffUArray Int a
|
hsndfile
|
MArray with Float and Double
|
HSoundFile
|
[[Double]]
|
ALUT
|
OpenAL.AL.Buffer
|
WAVE
|
[[Int32]]
|
Sox
|
Lists, Storable Vector, whatever you have a hPut and hGetContents function for.
|
libsox
|
Storable Vector
|
Playing sounds
Library
|
Sound file format
|
OpenAL
|
Ptr UInt8 , Ptr Int16 , 1-N channels
|
SDL-mixer
|
ForeignPtr ChunkStruct , ForeignPtr MusicStruct
|
Sound processing libraries
Library
|
Sound file format
|
HCodecs
|
Reads and writes MIDI files
|
midi
|
Reads and writes MIDI files
|
alsa-midi
|
Uses midi library
|
Haskore
|
Uses midi library
|
alsa-seq
|
Custom midi and audio signal structures
|
YampaSynth
|
Stand-alone program
|
Special-purpose APIs only (FFIs, etc.)
No public sound-buffer API
Library
|
Sound file format
|
hbeat
|
The relevant source files are missing!
|
hogg
|
Very low-level API for Ogg internals only
|
libmpd
|
No sound buffer API
|
sonic-visualizer
|
No sound buffer API
|
truelevel
|
Stand-alone program (uses WAVE)
|
wavconvert
|
Stand-alone program
|