Esempio n. 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));
        }
Esempio n. 2
0
        /// <summary>
        /// Обработка новых входных данных.
        /// </summary>
        /// <param name="input">Входящий сигнал</param>
        /// <returns>Выходящий сигнал</returns>
        public float Process(float input)
        {
            ampFilter.Process();
            mixFilter.Process();
            asymmetryFilter.Process();

            input *= amp;
            input  = lowPass.Process(input);
            if (mode == DistortionMode.None)
            {
                return(dcBlocker.Process(input));
            }
            else
            {
                var output = currentDistortion.Process(input + dcOffset);
                output = dcBlocker.Process(output);
                return(dryCoeff * input + wetCoeff * output);
            }
        }