public override void RequestProcessing(int samples) { var inputData = new float[samples]; SoundInput.Read(inputData, 0, inputData.Length); double[] levelData = null; if (CvInput.IsConnected) { levelData = new double[samples]; CvInput.Read(levelData, 0, levelData.Length); } for (var i = 0; i < samples; i++) { inputData[i] = (float)(inputData[i] * Math.Max(0.0, Math.Min(1.0, levelData?[i] ?? Level))); } SoundOutput.Write(inputData, 0, inputData.Length); }
public override void RequestProcessing(int samples) { var buffer = new float[samples]; double[] cvBuffer = null; if (CvInput.IsConnected) { cvBuffer = new double[samples]; CvInput.Read(cvBuffer, 0, cvBuffer.Length); } for (var i = 0; i < samples; i++) { buffer[i] = (float)Math.Sin((Math.PI * 2 * (cvBuffer == null ? Frequency : GetFrequency(cvBuffer[i])) / Processor.Config.SampleRate) * sampleIndex); sampleIndex++; } SoundOutput.Write(buffer, 0, buffer.Length); }