MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Taper.hpp File Reference

Discrete taper (window) coefficient generation and in-place application 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
 

Functions

void MayaFlux::Kinesis::Discrete::apply_blackman (std::span< double > data) noexcept
 Apply a Blackman taper in-place without materialising coefficients.
 
void MayaFlux::Kinesis::Discrete::apply_hamming (std::span< double > data) noexcept
 Apply a Hamming taper in-place without materialising coefficients.
 
void MayaFlux::Kinesis::Discrete::apply_hann (std::span< double > data) noexcept
 Apply a Hann taper in-place without materialising coefficients.
 
void MayaFlux::Kinesis::Discrete::apply_taper (std::span< double > data, std::span< const double > taper) noexcept
 Multiply data element-wise by a precomputed taper.
 
void MayaFlux::Kinesis::Discrete::apply_trapezoid (std::span< double > data, size_t fade_len) noexcept
 Apply a trapezoid taper in-place without materialising coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::blackman (size_t n)
 Blackman taper coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::hamming (size_t n)
 Hamming taper coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::hann (size_t n)
 Hann (raised cosine) taper coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::rectangular (size_t n)
 Rectangular (unity) taper coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::trapezoid (size_t n, size_t fade_len)
 Trapezoid taper coefficients with configurable flat region.
 

Detailed Description

Discrete taper (window) coefficient generation and in-place application for MayaFlux::Kinesis.

Pure numerical functions producing taper coefficient vectors and applying them in-place to contiguous double-precision spans. No MayaFlux type dependencies. Domain-agnostic.

Two usage patterns are supported:

  1. Generate then apply separately: auto t = Kinesis::Discrete::hann(n); Kinesis::Discrete::apply_taper(signal, t);
  2. Apply directly without materialising coefficients: Kinesis::Discrete::apply_hann(signal);

All generation functions return a vector of length n. The single-sample edge case always returns { 1.0 }.

SIMD notes: apply_taper and apply_rectangular are auto-vectorisable under -O2 -march=native. Generation functions invoke std::cos and are scalar.

Definition in file Taper.hpp.