Sound data structures
From HaskellWiki
(Difference between revisions)
(→Sound processing libraries: alsa-pcm) |
(→MIDI-based: alsa-seq only MIDI data) |
||
| Line 91: | Line 91: | ||
|- | |- | ||
| [[ALSA|alsa-seq]] | | [[ALSA|alsa-seq]] | ||
| - | | Custom midi | + | | Custom midi structures |
|- | |- | ||
| YampaSynth | | YampaSynth | ||
Current revision
At the request of Don Stuart, here is some information about the formats supported by different sound libraries.
Contents |
1 In-memory data formats
In-memory sound formats are fairly diverse.
1.1 Reading and writing sound files
| Library | Sound file format |
|---|---|
| HCodecs | (Audible a) => DiffUArray Int a |
| hsndfile | MArray Float Double |
| HSoundFile | [[Double]] |
| ALUT | OpenAL.AL.Buffer |
| WAVE | [[Int32]] |
| Sox | Lists, Storable Vector, whatever you have a hPut hGetContents |
| libsox | Storable Vector |
1.2 Playing sounds
| Library | Sound file format |
|---|---|
| OpenAL | Ptr UInt8 Ptr Int16 |
| SDL-mixer | ForeignPtr ChunkStruct ForeignPtr MusicStruct |
1.3 Sound processing libraries
| Library | Sound file format |
|---|---|
| dsp | Array a, [a] |
| synthesizer | [a] (StateT s Maybe a, s) |
| jack | Operates via mapping functions mainMono :: (CFloat -> IO CFloat) -> IO () mainStereo :: ((CFloat, CFloat) -> IO (CFloat, CFloat)) -> IO () StorableArray |
| alsa-pcm | (SampleFrame a) => Ptr a |
| Hommage | [a] |
1.4 MIDI-based
| 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 structures |
| YampaSynth | Stand-alone program |
1.5 Special-purpose APIs only (FFIs, etc.)
| Library | Sound file format |
|---|---|
| hCsound | CsoundPtr |
| HasSound / Haskore | OrcExp |
| hsc3 | UGen |
1.6 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 |
