Skip to content

Commit ff8e5ee

Browse files
committed
0.15.3
1 parent da63669 commit ff8e5ee

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

buildspec.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@
4343
"uuids": {
4444
"windowsApp": "ad885c58-5ca9-44de-8f4f-1c12676626a9"
4545
},
46-
"version": "0.15.2",
46+
"version": "0.15.3",
4747
"website": "https://www.atkaudio.com"
4848
}

lib/atkaudio/src/atkaudio/FifoBuffer2.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,21 @@ class SyncBuffer : public juce::Timer
319319
int maxAvailable = fifoBuffer.getFifo().getNumReady();
320320
maxAvailable = std::floor(maxAvailable / ratio); // reader domain samples
321321

322-
auto factor = 1.0f;
322+
auto factor = 1.0;
323323
if (maxAvailable < minBufferSize)
324324
factor = 1 / ATK_CORRECTION_RATE;
325325
else if (maxAvailable > maxBufferSize)
326326
factor = ATK_CORRECTION_RATE;
327327

328-
int writerSamplesNeeded = std::ceil(numSamples * ratio * factor);
328+
auto initialRate = rateSmoothing.getCurrentValue();
329+
330+
int writerSamplesNeeded = 0;
331+
double writerSamplesNeededTemp = 0;
332+
rateSmoothing.setTargetValue(factor);
333+
for (int i = 0; i < numSamples; ++i)
334+
writerSamplesNeededTemp += 1 * rateSmoothing.getNextValue();
335+
336+
writerSamplesNeeded = (int)std::ceil(writerSamplesNeededTemp);
329337

330338
if (!addToBuffer)
331339
for (int ch = 0; ch < numChannels; ++ch)
@@ -352,8 +360,6 @@ class SyncBuffer : public juce::Timer
352360

353361
auto totalSamplesConsumed = 0;
354362

355-
auto initialRate = rateSmoothing.getCurrentValue();
356-
357363
auto finalRatio = 0.0;
358364
for (int i = 0; i < numChannels; i++)
359365
{

0 commit comments

Comments
 (0)