public StereoSignalNode(WaveFormat format, ISignalProcess process) { if (process == null) { throw new ArgumentNullException("process", "Process cannot be null"); } if (format == null) { throw new ArgumentNullException("format", "Must specify audio format"); } this.format = WaveFormat.CreateIeeeFloatWaveFormat(format.SampleRate, 2); SignalProcess = process; SignalProcess.Format = this.format; Name = string.Format("{0} (Stereo)", SignalProcess.Name); LeftIn = new SignalSink(this); RightIn = new SignalSink(this); LeftIn.ReceivedData += LeftIn_ReceivedData; RightIn.ReceivedData += RightIn_ReceivedData; LeftOut = new SignalSource(this); RightOut = new SignalSource(this); }
public MonoSignalNode(WaveFormat format, ISignalProcess process) { if (process == null) { throw new ArgumentNullException("process", "Process cannot be null"); } if (format == null) { throw new ArgumentNullException("format", "Must specify audio format"); } this.format = WaveFormat.CreateIeeeFloatWaveFormat(format.SampleRate, 1); SignalProcess = process; SignalProcess.Format = this.format; Name = string.Format("{0} (Mono)", SignalProcess.Name); CentreIn = new SignalSink(this); CentreIn.Name = "In"; CentreIn.ReceivedData += input_ReceivedData; CentreOut = new SignalSource(this); CentreOut.Name = "Out"; }
private void mapOutputs() { var outputs = new List<ISignalSink>(); for (int i = 0; i < device.Channels; i++) { var output = new SignalSink(this, i); output.ReceivedData += output_ReceivedData; output.Name = string.Format("{0} Output {1}", device.Name, i); device.Buffers[i] = null; outputs.Add(output); } Sinks = outputs; }
private void mapOutputs(AsioOut driver) { var channelCount = driver.DriverOutputChannelCount; receivedData = new float[channelCount][]; var outputs = new List<ISignalSink>(); for (int i = 0; i < channelCount; i++) { var output = new SignalSink(this, i); output.ReceivedData += output_ReceivedData; output.Name = driver.AsioOutputChannelName(i); receivedData[i] = null; outputs.Add(output); } Sinks = outputs; }