Skip to content

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_wav also 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 / libswresample decode 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.ps1 fetches for Windows development.