private void mapInputs(AsioOut driver) { var inputCount = driver.DriverInputChannelCount; var inputs = new List<ISignalSource>(); floatBuffer = new float[inputCount][]; for (int i = 0; i < inputCount; i++) { var source = new SignalSource(this); source.Name = driver.AsioInputChannelName(i); inputs.Add(source); } this.Sources = inputs; }
private void button2_Click(object sender, EventArgs e) { var deviceIndex = cmbDevice.SelectedIndex; asioDriver = new AsioOut(deviceIndex); asioDriver.ChannelOffset = 0; var monoFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100, 1); var stereoFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100, 2); //waveIn = new WaveIn(); //waveOut = new WaveOut(); //waveIn.BufferMilliseconds = 10; //waveOut.DesiredLatency = 10; new Thread(() => { asioInput = new AsioInputMapper(); asioOutput = new AsioOutputMapper(); asioCard = new AsioCard(monoFormat, asioDriver, asioInput, asioOutput); asioCard.Start(); //waveCard = new WaveCard(stereoFormat, waveIn, waveOut, new WaveInputMapper(), new WaveOutputMapper()); //waveCard.Start(); BuildAudioInChain(monoFormat); signalNetworkForm.SignalNetworkControl.Nodes = new ObservableCollection<ISignalNode>(); signalNetworkForm.SignalNetworkControl.Nodes.Add(asioInput); signalNetworkForm.SignalNetworkControl.Nodes.Add(flangerNode); signalNetworkForm.SignalNetworkControl.Nodes.Add(filterNode); signalNetworkForm.SignalNetworkControl.Nodes.Add(fourierNode); signalNetworkForm.SignalNetworkControl.Nodes.Add(asioOutput); //BuildSineWaveChain(stereoFormat); }).Start(); for (int i = 0; i < asioDriver.DriverInputChannelCount; i++) { cboChannelIn.Items.Add(asioDriver.AsioInputChannelName(i)); } for (int i = 0; i < asioDriver.DriverOutputChannelCount; i++) { cboChannelOut.Items.Add(asioDriver.AsioOutputChannelName(i)); } }