|
MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
|
Short-time Fourier domain primitives for MayaFlux::Kinesis. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| namespace | MayaFlux |
| Main namespace for the Maya Flux audio engine. | |
| namespace | MayaFlux::Kinesis |
| namespace | MayaFlux::Kinesis::Discrete |
Typedefs | |
| using | MayaFlux::Kinesis::Discrete::SpectrumProcessor = std::function< void(std::vector< std::complex< double > > &, size_t)> |
| Callable type for per-frame spectrum modification Receives the one-sided complex spectrum (bins 0..N/2 inclusive) and the frame index. | |
Functions | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::apply_spectral (std::span< const double > src, uint32_t window_size, uint32_t hop_size, const SpectrumProcessor &processor) |
| Apply a per-frame spectrum processor via WOLA analysis-synthesis. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::spectral_filter (std::span< const double > src, double lo_hz, double hi_hz, double sample_rate, uint32_t window_size=1024, uint32_t hop_size=256) |
| Hard bandpass filter: zero all bins outside [lo_hz, hi_hz]. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::spectral_invert (std::span< const double > src, uint32_t window_size=1024, uint32_t hop_size=256) |
| Spectral phase inversion (conjugate all bins) | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::harmonic_enhance (std::span< const double > src, double enhancement_factor, uint32_t window_size=1024, uint32_t hop_size=256) |
Linear spectral tilt: scale each bin by a factor that rises linearly from 1 at bin 0 to enhancement_factor at the Nyquist bin. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::spectral_gate (std::span< const double > src, double threshold_db, uint32_t window_size=1024, uint32_t hop_size=256) |
| Hard spectral gate: zero bins whose magnitude is below the threshold. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::phase_vocoder_stretch (std::span< const double > src, double stretch_factor, uint32_t window_size=2048, uint32_t analysis_hop=512) |
| Time-stretch via phase vocoder analysis-synthesis. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::pitch_shift (std::span< const double > src, double semitones, uint32_t window_size=2048, uint32_t analysis_hop=512) |
| Pitch-shift by resampling around a phase vocoder stretch. | |
Short-time Fourier domain primitives for MayaFlux::Kinesis.
Pure functions operating on contiguous double-precision spans. No MayaFlux type dependencies. Domain-agnostic: the same primitives serve audio, control, and any other sampled sequence.
All functions that modify frequency content use weighted overlap-add (WOLA) synthesis with a Hann analysis window. The synthesis window is the same Hann window; at 75% overlap (hop = N/4) the OLA normalisation factor is constant and the reconstruction is exact up to numerical noise.
Eigen FFT dependency is confined to the .cpp translation unit.
Definition in file Spectral.hpp.