Skip to content
WavPack
EntityQ544812· pop 15· linked from 333 articles

Also known as WV, .wv

WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. It also supports compressing a wide variety of lossless formats, including various variants of PCM and also DSD as used in SACDs, together with its support for surround audio.

Key facts

File format.extension
.wv (for both lossless and hybrid files), .wvc (correction file for hybrid files only)
File format.mime
audio/x-wavpack (.wv), audio/x-wavpack-correction (.wvc)
File format.magic
wvpk
File format.contained by
Matroska (not required)
File format.open
Yes
File format.free
Yes
File format.type
Lossless audio
Software.name
WavPack software
Software.screenshot
WVUNPACK screenshot.webp
Software.caption
Screenshot of wvunpack showing information of a .wv file
Software.developer
David Bryant
Software.operating_system
Cross-platform
Software.genre
Audio codec Container
Software.license
BSD license
Software.website
wavpack.com
File format.name
WavPack file format
File format.icon
frameless|class=skin-invert

via Wikipedia infobox

Official website

WavPack Audio Compression

wavpack.com

Link to the official site · 10,393 chars · not written by Vinony

Source code

This repository contains all of the source code required to build the WavPack library ( libwavpack ), the associated command-line programs, and a few example plugins. There are solution and project files for Visual Studio 2019, and additional source code to build the CoolEdit/Audition plugin and the Winamp plugin. The CoolEdit/Audition plugin provides a good example for using the library to both read and write WavPack files, and the Winamp plugin makes extensive use of APEv2 tag reading and writing. If you are using the code directly from Git (rather than a distribution) then you will need to do a ./autogen.sh instead of the configure step. If assembly optimizations are available for your processor they will be automatically enabled, but if there is a problem with them then use the --disable-asm option to revert to pure C. For Clang-based build systems (Darwin, FreeBSD, etc.), Clang version 3.5 or higher is required. If you get a WARNING about unexpected libwavpack version when you run the command-line programs, you might try using --enable-rpath to hardcode the library location in the executables, or simply force static linking with --disable-shared . Assembly language optimizations are provided for x86 and x86-64 (AMD64) processors (encoding and decoding) and ARMv7 (decoding only). The x86 assembly code includes a runtime check for MMX capability, so it will work on legacy i386 processors. doc/wavpack doc.html Contains user-targeted documentation for the command-line programs. doc/WavPack5PortingGuide.pdf This document is targeted at developers who are migrating to WavPack 5, and it provides a short description of the major improvements and how to utilize them. doc/WavPack5LibraryDoc.pdf Contains a detailed description of the API provided by WavPack library appropriate for reading and writing WavPack files and manipulating APEv2 tags. doc/WavPack5FileFormat.pdf Contains a description of the WavPack file format, including details needed for parsing WavPack, blocks, and interpreting the block header and flags. There is also a description of the WavPack algorithms in the forth edition of David Salomon's book "Data Compression: The Complete Reference". This section can be found here: www.wavpack.com/WavPack.pdf It is endian-agnostic and usually uses callbacks for I/O, although there's a convenience function for reading files that accepts filename strings and automatically handles correction files. The code's modules are organized in such a way that if major chunks of the functionality are not referenced (for example, creating WavPack files) then link-time dependency resolution should provide optimum binary sizes. However, some functionality could not be easily excluded in this way and so there are additional macros that may be used to further reduce the size of the binary. Note that these must be defined for all modules: NO SEEKING To not allow seeking to a specific sample index (for applications that always read entire files). NO TAGS To not read specified fields from ID3v1 and APEv2 tags, and not create or edit APEv2 tags. ENABLE LEGACY Include support for Wavpack files from before version 4.0. This was eliminated by default with WavPack 5. ENABLE DSD Include support for DSD audio. New for WavPack 5 and the default, but obviously not universally required. There are alternate versions of this library available specifically designed for resource limited CPUs (i.e., portable devices). There is the Tiny Decoder library which works with less than 32k of code and less than 4k of data, and has assembly language optimizations for the ARM and Freescale ColdFire CPUs. It is also the basis for a WebAssembly WavPack player on GitHub. The Tiny Decoder can be downloaded here. The Tiny Encoder is also designed for embedded use and handles the pure lossless, lossy, and hybrid lossless modes. It can be downloaded here. Neither of these versions use any memory allocation functions, nor do they require floating-point arithmetic

Excerpt from the source-code README · 8,466 chars · not written by Vinony

Wikidata facts

Official website
wavpack.com
Image
WVUNPACK screenshot.webp
Show 5 more facts
publication date
1998-00-00
software version identifier
5.9.0
source code repository URL
github.com/dbry/WavPack
Commons category
WavPack
Sources (4)

via Wikidata · CC0

~12 min read

Article

11 sections
Contents
  • Features
  • Hybrid mode
  • Summary
  • History
  • Support
  • Software
  • Hardware
  • Technology
  • See also
  • References
  • External links

WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. It also supports compressing a wide variety of lossless formats, including various variants of PCM and also DSD as used in SACDs, together with its support for surround audio.

==Features== WavPack compression can compress (and losslessly restore) 8, 16, 24, and 32-bit fixed-point, and 32-bit floating-point PCM audio files in the .WAV file format. It can also handle DSD input in DSDIFF or DSF format. It also supports surround sound streams and high sampling rates. Like other lossless compression schemes, the data reduction rate varies with the source, but it is generally between 30% and 70% for typical popular music and somewhat better than that for classical music and other sources with greater dynamic range.

Gallery (2)

Connections

Categories