From 5d6424babdec0cba19f5a6b05647446e78e66765 Mon Sep 17 00:00:00 2001 From: m-m-adams Date: Sun, 12 Jan 2025 11:33:01 -0500 Subject: [PATCH] move record point to before volume --- .../global_effectable/global_effectable_for_clip.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/deluge/model/global_effectable/global_effectable_for_clip.cpp b/src/deluge/model/global_effectable/global_effectable_for_clip.cpp index e5dd4c4575..82f6ce2d0f 100644 --- a/src/deluge/model/global_effectable/global_effectable_for_clip.cpp +++ b/src/deluge/model/global_effectable/global_effectable_for_clip.cpp @@ -140,6 +140,11 @@ GlobalEffectableForClip::GlobalEffectableForClip() { processFXForGlobalEffectable(globalEffectableBuffer, numSamples, &volumePostFX, paramManagerForClip, delayWorkingState, renderedLastTime, reverbSendAmount); processStutter(globalEffectableBuffer, numSamples, paramManagerForClip); + // record before pan/compression/volume to keep volumes consistent + if (recorder && recorder->status < RecorderStatus::FINISHED_CAPTURING_BUT_STILL_WRITING) { + // we need to double it because for reasons I don't understand audio clips max volume is half the sample volume + recorder->feedAudio((int32_t*)globalEffectableBuffer, numSamples, true, 2); + } processReverbSendAndVolume(globalEffectableBuffer, numSamples, reverbBuffer, volumePostFX, postReverbVolume, reverbSendAmount, pan, true); @@ -149,10 +154,7 @@ GlobalEffectableForClip::GlobalEffectableForClip() { else { compressor.reset(); } - if (recorder && recorder->status < RecorderStatus::FINISHED_CAPTURING_BUT_STILL_WRITING) { - // we need to double it because for reasons I don't understand audio clips max volume is half the sample volume - recorder->feedAudio((int32_t*)globalEffectableBuffer, numSamples, true, 2); - } + addAudio(globalEffectableBuffer, outputBuffer, numSamples); postReverbVolumeLastTime = postReverbVolume;