gain_cache
double *gain_cache; // weighted gains
if (gain_cache != NULL) {
delete gain_cache;
gain_cache = NULL;
if (gain_cache == NULL) {
gain_cache = new double[frames];
gain_cache[i] = 0.;
weighted_sum -= gain_cache[i];
gain_cache[i] = val; // save value to subtract later
if (gain_cache != NULL) {
delete gain_cache;