Numcodecs wrapper to the WavPack audio codec.
This implementation enables one to use WavPack as a compressor in Zarr.
To install wavpack-numcodecs
on MacOS, you need to install wavpack
with brew
:
brew install wavpack
For Linux and Windows, the package comes with pre-built binaries of the most recent version Wavpack version.
On Linux, if an existing wavpack
installation is found, the package will use it. Otherwise, it will use the pre-built binaries available in the wavpack_numcodecs/libraries
folder.
Install via pip
:
pip install wavpack-numcodecs
Or from sources:
git clone https://github.com/AllenNeuralDynamics/wavpack-numcodecs.git
cd wavpack_numcodecs
pip install .
This is a simple example on how to use the WavPackCodec
with zarr
:
from wavpack_numcodecs import WavPack
data = ... # any numpy array
# instantiate WavPack compressor
wv_compressor = WavPack(level=2, bps=None)
z = zarr.array(data, compressor=wv_compressor)
data_read = z[:]
Available **kwargs
can be browsed with: WavPack?
NOTE:
In order to reload in zarr an array saved with the WavPack
, you just need to have the wavpack_numcodecs
package
installed.
To upgrade the WavPack installation, you need to:
- Download the latest version of WavPack from the official website.
- Extract the content of the downloaded file.
- Create a new folder in the
src/wavpack_numcodecs/libraries
folder with the name of the version of the WavPack you are installing. - Add the Windows .dll and .lib files to the
windows-x86_32
andwindows-x86_64
folders, respectievely. - Build the Linux shared library and copy the
.so
file to thelinux-x86_64
folder. - Set the
LATET_WAVPACK_VERSION
variable in thesetup.py
to match the version of the WavPack you are installing. - Update the version of the CI workflows in the
.github/workflows/
folder.