srecord GainSoundSource(double gain, VF1<double[]> source) extends VF1<double[]> { *(double *gain) {} public void get(double[] lr) { if (source == null) ret with lr[0] = lr[1] = 0; source.get(lr); if (isNaN(lr[0])) ret; for i over lr: lr[i] *= gain; } void replaceSource(VF1<double[]> source) { this.source = source; } }