specux third-party notices
===========================

specux itself is licensed under the MIT License (see LICENSE). All GPU kernels
are generated by its own C++ codegen (src/codegen.h) and compiled at runtime;
no third-party FFT library is linked into them.


=======================================================================
Vendored source
=======================================================================

DLPack (Apache-2.0)
    https://github.com/dmlc/dlpack
    src/third_party/dlpack.h, the tensor-exchange header used by the Metal
    resident paths. Full license text in src/third_party/dlpack-LICENSE.

metal-cpp (Apache-2.0, Apple)
    src/third_party/metal-cpp, C++ bindings for the Metal API, used by the
    specux._metal extension on macOS. License in metal-cpp/LICENSE.txt.


=======================================================================
Build / runtime dependencies (not vendored)
=======================================================================

pybind11 (BSD-3)
    Extension bindings, build-time.

NVIDIA CUDA / NVRTC (NVIDIA SLA)
    Loaded at runtime by specux._cuda from a toolkit install or the nvidia-*
    pip wheels.

PyTorch (BSD-3)
    Optional; enables the resident-tensor and autograd paths.


=======================================================================
Audio module: vendored (compiled into specux._audio)
=======================================================================

soxr (dofuuz fork)
    src/third_party/soxr/
    Sample-rate conversion (all quality= resampling). Fork of the SoX
    Resampler Library with PFFFT and NEON/SIMD paths.
    License: LGPL-2.1-or-later (see src/third_party/soxr/LICENCE).
    Upstream: https://github.com/dofuuz/soxr
    (fork of https://sourceforge.net/projects/soxr/).

    LGPL compliance: soxr is built as its own shared library
    (libspecux_soxr.dylib/.so, shipped next to the extension and resolved via
    @loader_path / $ORIGIN), so users can replace or relink it as LGPL-2.1
    section 6 requires. SPECUX_SOXR_STATIC=1 compiles it into the extension
    instead, a dev-only convenience; wheels must not be built that way. This
    does not affect the MIT licensing of specux's own code.

    The soxr tree includes PFFFT (Julien Pommier; BSD-like FFTPACK license),
    compiled as part of the fork. It also includes the Ooura FFT and Bessel
    routines (soxr/fft4g64.c, fft4g32.c, dbesi0.c; Copyright Takuya Ooura
    1996-2001), which carry a permissive "use freely" notice in their file
    headers.

dr_wav
    src/third_party/dr_wav.h
    WAV/PCM decode and encode by David Reid. Public domain (Unlicense) or
    MIT-0, at your choice. Upstream: https://github.com/mackron/dr_libs

dr_mp3
    src/third_party/dr_mp3.h
    MP3 decoder by David Reid, built on the minimp3 engine by lieff. Public
    domain (Unlicense) or MIT-0, at your choice.
    Upstream: https://github.com/mackron/dr_libs

dr_flac
    src/third_party/dr_flac.h
    FLAC decoder by David Reid. Public domain (Unlicense) or MIT-0, at your
    choice. Upstream: https://github.com/mackron/dr_libs

minimp3 / minimp3_ex
    src/third_party/minimp3.h, minimp3_ex.h
    MP3 decoder with sample-accurate seeking (used for windowed MP3 reads),
    by lieff. CC0-1.0 (public domain; see src/third_party/minimp3-LICENSE).
    Upstream: https://github.com/lieff/minimp3


=======================================================================
Audio module: dynamically linked (bundled as shared libraries in wheels)
=======================================================================

TagLib (libtag)
    Metadata read and write (tags, write_tags, cover, write_cover): ID3v1/v2,
    Vorbis comments, MP4 atoms, and APE, parsed uniformly across formats.
    Dual-licensed LGPL-2.1 / MPL-1.1. Where specux links TagLib statically
    (the Windows dev build from scripts/get_taglib.ps1, unmodified sources,
    zlib disabled), the MPL-1.1 license is elected: MPL is file-scoped and
    permits static combination, requiring only that the covered files remain
    available under MPL, which upstream provides. A dynamically linked build
    satisfies either license. Optional at build time: without TagLib the tag
    functions raise and everything else works. Upstream: https://taglib.org

FFmpeg (libavformat, libavcodec, libavutil, libswresample)
    Used for FLAC/OGG/MP4-AAC and other container decode, all compressed
    encoding (save to flac/mp3/ogg/m4a), and sample-format conversion inside
    those paths (libswresample converts codec sample formats to float; it does
    not do rate conversion, that is soxr, above).
    LGPL-2.1-or-later when built without GPL/nonfree components
    (--disable-gpl --disable-nonfree, which is how release wheels must be
    built). FFmpeg is linked dynamically; the shared libraries are bundled in
    the wheel (delocate/auditwheel) and remain replaceable, satisfying the
    LGPL. License and source: https://ffmpeg.org and
    https://github.com/FFmpeg/FFmpeg.
