Introduction
WavPack is an open audio compressor by David
Bryant, first released in 1998. Its normal mode is lossless. Its hybrid mode writes a
smaller lossy .wv file plus a correction file (.wvc); played
together they give back the exact original, and the .wv file alone still
plays.
WavPack handles integer and floating-point samples and multichannel audio, and is supported by many players and audio editors.
Structure
A WavPack file is a series of blocks. Each block starts with a 32-byte header: the
ID wvpk, the block size, the format version, the total number of samples
in the file, the index of the block’s first sample, the number of samples in the
block, flags (bit depth, mono or stereo, hybrid mode, float data and others) and a
CRC. Sub-blocks of metadata and audio data follow inside each block. Numbers are
little-endian. Tags, usually APEv2, are stored at the end of the file.
0Block wvpk header, then sub-blocksrepeated+0Header wvpk, size, version, sample counts, flags, CRC32 bytes+32Sub-blocks decoding terms, weights, audio bitstreamvaries
endAPEv2 tag optionalvaries
Links
Software
- WavPack command-line tools – the reference
wavpackencoder andwvunpackdecoder (Windows, macOS, Linux) - foobar2000 – free music player and converter (Windows, macOS, mobile)
- Audacity – free audio editor that opens and exports WavPack (Windows, macOS, Linux)
- VLC media player – free player for almost any audio or video file (Windows, macOS, Linux, mobile)
- FFmpeg – command-line tool that encodes and decodes WavPack (Windows, macOS, Linux)
Developers
- libwavpack – the reference library for encoding and decoding WavPack (C)