Easy Audio ยป WavPack

WavPack decoder works in the same manner as FLAC decoder, with exception that there is no metadata blocks in the beggining of file, but metadata section in each WavPack block. This metadata is not as useful as FLAC metadata, though. Information about track title, album or performer is usualy stored in APEv2 tag in the end of file. So the algorithm for WavPack is usually this:

  1. Open a WavPack file/Get a stream with element type (unsigned-byte 8). This step is the same as for FLAC format.
  2. Pass the stream to wv:open-wv function which will create and return bitreader:reader object. Again, this is what you do when working with FLAC, just the function name differs.
  3. Read the first WavPack block with wv:read-wv-block. It contains all information about channels, samplerate, etc. If the stream/file contains more than 2 channels (i.e. 5.1 audio), you can read multiple stereo or mono blocks with wv:read-wv-block-multichannel.
  4. Decode the block with wv:decode-wv-block and repeat previous step.

API

Conditions.
No node with name wavpack-error.
No node with name wavpack-warning.
No node with name block-error.
No node with name lost-sync.
No node with name unknown-metadata.
Metadata.
No node with name metadata-riff-header.
No node with name metadata-riff-trailer.
WavPack blocks. WavPack block class has readers/accessors in the form BLOCK-SLOTNAME.
No node with name wv-block.
No node with name read-wv-block.
No node with name read-wv-block-multichannel.
No node with name decode-wv-block.
No node with name block-samplerate.
No node with name block-bps.
No node with name block-channels.
Other stuff.
No node with name restore-sync.
No node with name restore-sync-multichannel.
No node with name seek-sample.
No node with name open-wv.
No node with name read-new-block.