in pedalboard/juce_overrides/juce_PatchedMP3AudioFormat.cpp [3215:3291]
void synthesise(const float *bandPtr, int channel, float *out,
int &samplesDone) {
out += samplesDone;
const int bo = channel == 0 ? ((synthBo - 1) & 15) : synthBo;
float(*buf)[0x110] = synthBuffers[channel];
float *b0;
auto bo1 = bo;
if (bo & 1) {
b0 = buf[0];
DCT::dct64(buf[1] + ((bo + 1) & 15), buf[0] + bo, bandPtr);
} else {
++bo1;
b0 = buf[1];
DCT::dct64(buf[0] + bo, buf[1] + bo1, bandPtr);
}
synthBo = bo;
const float *window = constants.decodeWin + 16 - bo1;
for (int j = 16; j != 0; --j, b0 += 16, window += 32) {
auto sum = window[0] * b0[0];
sum -= window[1] * b0[1];
sum += window[2] * b0[2];
sum -= window[3] * b0[3];
sum += window[4] * b0[4];
sum -= window[5] * b0[5];
sum += window[6] * b0[6];
sum -= window[7] * b0[7];
sum += window[8] * b0[8];
sum -= window[9] * b0[9];
sum += window[10] * b0[10];
sum -= window[11] * b0[11];
sum += window[12] * b0[12];
sum -= window[13] * b0[13];
sum += window[14] * b0[14];
sum -= window[15] * b0[15];
*out++ = sum;
}
{
auto sum = window[0] * b0[0];
sum += window[2] * b0[2];
sum += window[4] * b0[4];
sum += window[6] * b0[6];
sum += window[8] * b0[8];
sum += window[10] * b0[10];
sum += window[12] * b0[12];
sum += window[14] * b0[14];
*out++ = sum;
b0 -= 16;
window -= 32;
window += (ptrdiff_t)bo1 << 1;
}
for (int j = 15; j != 0; --j, b0 -= 16, window -= 32) {
auto sum = -window[-1] * b0[0];
sum -= window[-2] * b0[1];
sum -= window[-3] * b0[2];
sum -= window[-4] * b0[3];
sum -= window[-5] * b0[4];
sum -= window[-6] * b0[5];
sum -= window[-7] * b0[6];
sum -= window[-8] * b0[7];
sum -= window[-9] * b0[8];
sum -= window[-10] * b0[9];
sum -= window[-11] * b0[10];
sum -= window[-12] * b0[11];
sum -= window[-13] * b0[12];
sum -= window[-14] * b0[13];
sum -= window[-15] * b0[14];
sum -= window[0] * b0[15];
*out++ = sum;
}
samplesDone += 32;
}