MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / testResetClearsEnvelope

Function testResetClearsEnvelope

tests/client_comp_test.cpp:451–480  ·  view source on GitHub ↗

reset() must clear envelope so a new burst starts from silence.

Source from the content-addressed store, hash-verified

449
450// reset() must clear envelope so a new burst starts from silence.
451void testResetClearsEnvelope()
452{
453 ClientComp comp;
454 comp.prepare(kSampleRate);
455 comp.setEnabled(true);
456 comp.setThresholdDb(-20.0f);
457 comp.setRatio(4.0f);
458 comp.setKneeDb(0.0f);
459 comp.setMakeupDb(0.0f);
460 comp.setAttackMs(50.0f);
461 comp.setReleaseMs(500.0f);
462 comp.setLimiterEnabled(false);
463
464 // Drive envelope up
465 auto loud = makeTone(1000.0, static_cast<int>(kSampleRate), 0.5f);
466 processBlocks(comp, loud.data(), static_cast<int>(kSampleRate));
467 const float grBefore = comp.gainReductionDb();
468
469 comp.reset();
470
471 // After reset, the first block of silence should leave GR at ~0.
472 std::vector<float> silence(kBlockSize * 2, 0.0f);
473 comp.process(silence.data(), kBlockSize, 2);
474 const float grAfter = comp.gainReductionDb();
475
476 report("reset() pulls envelope down",
477 grBefore < -2.0f && grAfter > -1.0f,
478 "before=" + std::to_string(grBefore) + ", after="
479 + std::to_string(grAfter));
480}
481
482} // namespace
483

Callers 1

mainFunction · 0.85

Calls 15

setKneeDbMethod · 0.80
setMakeupDbMethod · 0.80
setLimiterEnabledMethod · 0.80
makeToneFunction · 0.70
processBlocksFunction · 0.70
reportFunction · 0.70
prepareMethod · 0.45
setEnabledMethod · 0.45
setThresholdDbMethod · 0.45
setRatioMethod · 0.45
setAttackMsMethod · 0.45
setReleaseMsMethod · 0.45

Tested by

no test coverage detected