#include <complex>#include <cstdint>#include <memory>#include <string>#include <vector>#include <pulp/render/gpu_compute.hpp>#include <pulp/signal/fft.hpp>#include <pulp/signal/windowing.hpp>Go to the source code of this file.
Classes | |
| class | pulp::gpu_audio::SpectralStack |
| A stack of N captured spectral "moments" (layers) that can be sustained and morphed. More... | |
| class | pulp::gpu_audio::CpuSpectralStack |
| CPU reference + always-available fallback. More... | |
| class | pulp::gpu_audio::GpuSpectralStack |
| GPU-resident engine: the captured layer spectra live on the GPU and every hop runs advance + smear + weighted-sum + one inverse FFT on the device, reading back only the single synthesized frame. More... | |
| struct | pulp::gpu_audio::SpectralFreezeControls |
| Per-hop control values handed to the framer (read on whatever thread drives the framer — the audio thread for the CPU engine, the GPU worker for the GPU engine). More... | |
| class | pulp::gpu_audio::SpectralFreezeFramer |
| STFT freeze framer: turns an arbitrary-length input stream into hop-spaced analysis frames, drives a SpectralStack (capture on a Freeze rising edge, render every hop), and overlap-adds the synthesized frames back into an arbitrary-length output stream. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::gpu_audio |
| namespace | pulp::gpu_audio::detail |
Functions | |
| void | pulp::gpu_audio::detail::circular_box_blur (const std::vector< float > &m, std::vector< float > &out, std::uint32_t radius, float inv_kernel, std::uint32_t n) |
| Circular box blur of width (2*radius+1) over m[0..n) into out[0..n), in O(n) via a sliding running sum (not O(n*radius) direct summation, and not a prefix sum — a windowed add-one/drop-one sum, which only ever holds the current window and so does not accumulate the precision loss of subtracting two large cumulative totals). | |