Srnd: expose the momentary loudness value in addtion to integrated loudness

This commit is contained in:
Ben Loftis 2024-01-21 10:55:52 -06:00
parent b37414e01c
commit 22b7a07526
4 changed files with 25 additions and 0 deletions

View File

@ -39,6 +39,7 @@ public:
void reset ();
float integrated_loudness () const;
float momentary () const;
float max_momentary () const;
float dbtp () const;
@ -74,6 +75,8 @@ private:
uint32_t _pow_idx;
float _thresh_rel;
float _momentary_l;
float _maxloudn_M;
float _integrated;
float _dbtp;

View File

@ -76,6 +76,8 @@ public:
/* a value <= -200 indicates that no data is available */
float integrated_loudness () const;
float max_momentary () const;
float momentary () const;
float max_dbtp () const;
samplecnt_t signal_latency () const;

View File

@ -173,6 +173,8 @@ LUFSMeter::run (float const** data, uint32_t n_samples)
const float sum_m = sumfrag (4); // 400ms
const float loudness_m = -0.691f + 10.f * log10f (sum_m);
_momentary_l = loudness_m;
_maxloudn_M = std::max<float> (_maxloudn_M, loudness_m);
/* observe 400ms window every 100ms */
@ -256,6 +258,12 @@ LUFSMeter::integrated_loudness () const
return _integrated;
}
float
LUFSMeter::momentary () const
{
return _momentary_l;
}
float
LUFSMeter::max_momentary () const
{

View File

@ -395,6 +395,18 @@ SurroundReturn::finalize_export ()
_export_start = _export_end = 0;
}
float
SurroundReturn::momentary () const
{
return _lufs_meter.momentary ();
}
float
SurroundReturn::max_momentary () const
{
return _lufs_meter.max_momentary ();
}
float
SurroundReturn::integrated_loudness () const
{