예제 #1
0
        /// <summary>
        /// Обработка новых входных данных.
        /// </summary>
        /// <param name="input">Входной сигнал.</param>
        /// <param name="cutoffModulation">Модуляция частоты среза фильтра.</param>
        /// <returns>Выходной сигнал.</returns>
        public float Process(float input, float cutoffModulation = 0)
        {
            var modulatedCutoff = cutoff;

            modulatedCutoff *= 1 + FilterModulationLookup[(int)(999 * cutoffModulation)];
            if (modulatedCutoff > 20000)
            {
                modulatedCutoff = 20000;
            }
            filter.SetCutoff(modulatedCutoff);

            return(filter.Process(input));
        }
예제 #2
0
        /// <summary>
        /// Обработчик изменения частоты среза фильтра низких частот.
        /// </summary>
        /// <param name="value">Нормированное новое значение параметра.</param>
        private void SetLowPassCutoff(float value)
        {
            var cutoff = (float)Converters.ToDistortionLowpassCutoff(value);

            lowPass.SetCutoff(cutoff);
        }