Credits
specux is MIT-licensed. The transform kernels are generated by the library’s C++ codegen and compiled at runtime, and the CPU backend runs its own SIMD FFT engine. The projects below make the rest possible; full license texts and compliance notes live in NOTICE.
Vendored source
- dr_libs (public domain /
MIT-0): single-file WAV, MP3, and FLAC decoders behind the tier-1 audio
paths (
dr_wavalso writes WAV). - minimp3 (CC0): MP3 decoding with
sample-accurate seeking (
minimp3_ex), behind the windowed MP3 fast path. - soxr (LGPL-2.1, dofuuz fork): the
resampler behind
quality="quick"through"very_high", built as a shared library so it stays replaceable; it carries its own internal PFFFT for the resampling filters. - DLPack (Apache-2.0): the tensor-exchange header used by the Metal resident paths.
- metal-cpp (Apache-2.0, Apple): C++ bindings for the Metal API, used by the Metal extension on macOS.
Linked at runtime
- FFmpeg (LGPL-2.1+ build): dynamically linked
libavformat/libavcodec/libavutil/libswresampledecode and encode everything past the tier-1 formats (OGG, MP4/AAC, Opus, multi-track containers). Never statically linked, never bundled as GPL. - TagLib (LGPL/MPL, optional): tags and cover art across ID3v1/v2, Vorbis comments, MP4 atoms and APE. Builds without it keep the rest of the audio module; the metadata functions then raise.
- NVIDIA CUDA / NVRTC (NVIDIA SLA): loaded at runtime from a toolkit
install or the
nvidia-*pip wheels; nothing NVIDIA is bundled in the wheels.
Build and integration
- pybind11 (BSD-3): extension bindings, build-time only.
- PyTorch (BSD-3): optional; enables the resident-tensor and autograd paths. specux links no libtorch, so one build serves every torch version.
- BtbN FFmpeg builds: the
self-contained LGPL shared builds
scripts/get_ffmpeg.ps1fetches for Windows development.