Skip to content

Support for WavPack codec #334

Open
Open
@alejoe91

Description

@alejoe91

Hi numcodecs team!

First of all, thank you for the amazing resource that you put together!

I would like to inquire whether you would be interested in including the WavPack codec as an available numcodecs compressor.
Wavpack is an audio codec developed by @dbry and it has both a lossless mode (default) and also an interesting lossy mode (hybrid mode). In addition to working well for audio signals, it performs really well for any kind of timeseries and it can compress up-to 1024 channels simultaneusly. We use if for data from high-density electrophysiology and it gives very good compression performance.

I'm also the core developer of SpikeInterface, an open-source framework for electrophysiology analysis. We have a built-in save to zarr function, so having a codec that is specifically designed for audio-like timeseries data would be very convenient for the elctrophysiology community (I'm sure also the NWB folks would like to use it once the ZARR-backend is available - hopefully soon).

We have a working version of a numcodecs implementation of WavPack here: https://github.com/AllenNeuralDynamics/wavpack_numcodecs
Internally, it uses the WavPack CLI to encode and decode using pipes to pass binary data between processes. The wavpack binaries for Windows, macOS, and Linux are also shipped with the package and the tests are run on all three platforms. We currently use the CLI rather than binding the wavpack C library directly because there is not a clear way to do encode and decode in memory. But we are open to suggestions!

We look forward to hearing your thoughts!

Cheers
Alessio

Metadata

Metadata

Assignees

No one assigned

    Labels

    New codecSuggestion for a new codec

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions