neco-stft 0.1.0

Backend-agnostic real FFT facade, windows, and STFT
Documentation
  • Coverage
  • 0%
    0 out of 46 items documented0 out of 0 items with examples
  • Size
  • Source code size: 37.29 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 5.5 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 49s Average build duration of successful builds.
  • all releases: 49s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • barineco/neco-crates
    3 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • barineco

neco-stft

日本語

Backend-agnostic real FFT facade, window functions, and STFT / ISTFT utilities, for audio and signal-processing pipelines.

This crate keeps FFT backend details behind a small public contract so signal-processing code can move between implementations without changing user-facing APIs. Complex spectrum values are exposed through neco-complex::Complex rather than a backend crate type.

API

Item Description
FftError Buffer-size mismatch error for FFT operations
RealToComplex<T> Forward real FFT contract
ComplexToReal<T> Inverse real FFT contract
FftPlanner<T> Planner trait for cached forward / inverse transforms
RustFftPlannerF32, RustFftPlannerF64 current default planner implementations: crate-local radix-2 for power-of-two lengths, crate-local general-length FFT otherwise
DspFloat Numeric trait for f32 / f64 DSP code with thread-local planners
hann(n) Hann window
kaiser_bessel_derived(n, alpha) KBD window
StftProcessor WOLA-normalized STFT / ISTFT processor
SpectrumFrame<T> Positive-frequency complex spectrum frame

Preconditions

  • The public FFT facade covers real-to-complex and complex-to-real transforms only.
  • Inverse transforms are unnormalized; callers divide by N when needed.
  • StftProcessor performs weighted overlap-add normalization internally for fixed hop sizes.
  • No public API exposes backend-specific concrete transform types.
  • The planner traits are the stable contract. RustFftPlannerF32 and RustFftPlannerF64 are the current default implementations, not the long-term boundary.
  • Power-of-two lengths use a crate-local radix-2 backend. Non power-of-two lengths use a crate-local general-length backend built on the same public facade.
  • The public spectrum boundary uses neco-complex::Complex, while backend-specific complex buffers stay behind the facade.

License

MIT