Esempio n. 1
0
        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();
            }
        }