Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::StnConfig Struct Reference

#include <stn_decomposer.hpp>

Public Attributes

int num_bins = 1025
 fft_size/2 + 1
int time_median = 9
 odd; frames for the horizontal (tonal) median
int freq_median = 9
 odd; bins for the vertical (transient) median
float beta = 2.0f
 Soft-mask separation factor (Fitzgerald β): the bin is assigned to a class when that class's filtered magnitude exceeds the other by this factor.
bool causal = false
 Align the masks to the NEWEST pushed frame instead of the ring's center frame.

Member Data Documentation

◆ beta

float pulp::signal::StnConfig::beta = 2.0f

Soft-mask separation factor (Fitzgerald β): the bin is assigned to a class when that class's filtered magnitude exceeds the other by this factor.

1.0 = binary Wiener-style split at the crossover.

◆ causal

bool pulp::signal::StnConfig::causal = false

Align the masks to the NEWEST pushed frame instead of the ring's center frame.

The centered evaluation is less biased (it sees future frames) but lags the input by (time_median-1)/2 frames, so a caller that applies the mask to the frame it just pushed (e.g. the noise- morph split in RealtimePitchTimeProcessor) gets a STALE mask: at a transient onset the newest frame holds the transient while the mask still describes a pre-onset (mostly-noise) frame, so the onset's broadband energy is misrouted into the noise path and decohered. Causal mode evaluates the time-median as a trailing window ending at the newest frame and the freq-median on that same frame, so the mask and the frame it is applied to are aligned (latency 0). This is the standard real-time HPSS approximation (trailing vs centered median).

◆ freq_median

int pulp::signal::StnConfig::freq_median = 9

odd; bins for the vertical (transient) median

◆ num_bins

int pulp::signal::StnConfig::num_bins = 1025

fft_size/2 + 1

◆ time_median

int pulp::signal::StnConfig::time_median = 9

odd; frames for the horizontal (tonal) median


The documentation for this struct was generated from the following file: