protected void SetParameters(int i, WaveTableSignal instance, bool created) { instance.Frequency = FFreqIn[i]; if (FTableIn.IsChanged || FWindowFuncIn.IsChanged || created) { var table = FTableIn[i]; if (table.SliceCount != instance.LUTBuffer.Length) { instance.LUTBuffer = new float[table.SliceCount]; FWindow = AudioUtils.CreateWindowFloat(instance.LUTBuffer.Length, FWindowFuncIn[i]); } //setup new window if (FWindowFuncIn.IsChanged || created) { FWindow = AudioUtils.CreateWindowFloat(instance.LUTBuffer.Length, FWindowFuncIn[i]); } //FLogger.Log(LogType.Debug, "LUT"); for (int j = 0; j < instance.LUTBuffer.Length; j++) { instance.LUTBuffer[j] = FTableIn[i][j] * FWindow[j]; } instance.SwapBuffers(); } }