Beispiel #1
0
        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);
        }
Beispiel #2
0
        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";
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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;
        }