cyclicLen = 4
usefulLen = 12

A =  0*12 +  1*13 +  2*14 +  3*15
B =  1*13 +  2*14 +  3*15 +  4*16   = A -  0*12 +  4*16
C =  2*14 +  3*15 +  4*16 +  5*17   = B -  1*13 +  5*17
D =  3*15 +  4*16 +  5*17 +  6*18   = C -  2*14 +  6*18
E =  4*16 +  5*17 +  6*18 +  7*19   = D -  3*15 +  7*19
F =  5*17 +  6*18 +  7*19 +  8*20   = E -  4*16 +  8*20
G =  6*18 +  7*19 +  8*20 +  9*21   = F -  5*17 +  9*21
H =  7*19 +  8*20 +  9*21 + 10*22   = G -  6*18 + 10*22
I =  8*20 +  9*21 + 10*22 + 11*23   = H -  7*19 + 11*23
J =  9*21 + 10*22 + 11*23 + 12*24   = I -  8*20 + 12*24
K = 10*22 + 11*23 + 12*24 + 13*25   = J -  9*21 + 13*25
L = 11*23 + 12*24 + 13*25 + 14*26   = K - 10*22 + 14*26
M = 12*24 + 13*25 + 14*26 + 15*27   = L - 11*23 + 15*27
N = 13*25 + 14*26 + 15*27 + 16*28   = M - 12*24 + 16*28
O = 14*26 + 15*27 + 16*28 + 17*29   = N - 13*25 + 17*29
P = 15*27 + 16*28 + 17*29 + 18*30   = O - 14*26 + 18*30
Q = 16*28 + 17*29 + 18*30 + 19*31   = P - 15*27 + 19*31
R = 17*29 + 18*30 + 19*31 + 20*32   = Q - 16*28 + 20*32
S = 18*30 + 19*31 + 20*32 + 21*33   = R - 17*29 + 21*33
T = 19*31 + 20*32 + 21*33 + 22*34   = S - 18*30 + 22*34
U = 20*32 + 21*33 + 22*34 + 23*35   = T - 19*31 + 23*35

Conclusion:
sampCacheLen = usefulLen
prodCacheLen = cyclicLen

Peak correlation occurs when the current interpolated value is the last FFT sample

