Skip to main content

Numcodecs implementation of WavPack audio codec.

Project description

PyPI version tests

WavPack - numcodecs implementation

Numcodecs wrapper to the WavPack audio codec.

This implementation enables one to use WavPack as a compressor in Zarr.

Requirements

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.

Installation

Install via pip:

pip install wavpack-numcodecs

Or from sources:

git clone https://github.com/AllenNeuralDynamics/wavpack-numcodecs.git
cd wavpack_numcodecs
pip install .

Usage

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.

Developmers guide

How to upgrade WavPack installation and make a new release

To upgrade the WavPack installation, you need to:

  1. Download the latest version of WavPack from the official website.
  2. Extract the content of the downloaded file.
  3. Create a new folder in the src/wavpack_numcodecs/libraries folder with the name of the version of the WavPack you are installing.
  4. Add the Windows .dll and .lib files to the windows-x86_32 and windows-x86_64 folders, respectievely.
  5. Update the version of the CI workflows in the .github/wavpack_latest_version.txt file and set the LATEST_WAVPACK_VERSION variable in the setup.py to match the version of the WavPack you are installing.
  6. Make a PR with the changes and merge it.
  7. Manually trigger the Build wavpack binaries workflow in the Actions tab of the repository. This will automatically build the binaries for different Linux versions and make PRs with the changes to the main branch.
  8. Merge the automated PRs to update the Linux binaries.
  9. Update the version of the package in the pyproject.toml file and tag the repo to automatically make a new release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wavpack-numcodecs-0.2.1.tar.gz (2.6 MB view details)

Uploaded Source

File details

Details for the file wavpack-numcodecs-0.2.1.tar.gz.

File metadata

  • Download URL: wavpack-numcodecs-0.2.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for wavpack-numcodecs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e839ee770be746e4e1eef2e59442ec8b28d6b0c992568bad22ae3c2fd165e815
MD5 b70edef380716ff2daf53fac70a6d8f0
BLAKE2b-256 2844c383233bd53e539e0eb9916210c1a7ae025585a2f5c0cabc3f6774b59cb1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page