private void output_SelectedIndexChanged(object sender, EventArgs e)
        {
            Ratchet.Audio.PlaybackDevice oldDevice = _Device;
            _Mixer  = new Ratchet.Audio.Mixer();
            _Device = (Ratchet.Audio.PlaybackDevice)output.SelectedItem;
            if (oldDevice != _Device)
            {
                if (_Client != null)
                {
                    _Client.Stop();
                }
                _Mixer                    = new Ratchet.Audio.Mixer();
                _Client                   = _Device.CreateClient(_Mixer);
                _Mixer.OutputFormat       = _Client.Format;
                _Mixer.OutputSampleRate   = _Client.SampleRate;
                _Mixer.OutputChannelCount = _Client.ChannelCount;
                _Client.Start();

                // Just use one or two listeners for the demo
                if (_Client.ChannelCount == 1)
                {
                    Ratchet.Audio.Mixer.Listener Center = _Mixer.CreateListener(0.0f, 0.0f, 0.0f, 0);
                }
                else if (_Client.ChannelCount >= 2)
                {
                    Ratchet.Audio.Mixer.Listener Left  = _Mixer.CreateListener(-1.0f, 0.0f, 0.0f, 0);
                    Ratchet.Audio.Mixer.Listener Right = _Mixer.CreateListener(1.0f, 0.0f, 0.0f, 1);
                }
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            List <Ratchet.Audio.PlaybackDevice> playbackDevice = Ratchet.Audio.PlaybackDevice.GetDevices();

            for (int n = 0; n < playbackDevice.Count; n++)
            {
                // Play a A 440 on each enabled device
                if (playbackDevice[n].Enabled)
                {
                    NoteStream stream = new NoteStream();
                    Ratchet.Audio.PlaybackClient Client = playbackDevice[n].CreateClient(stream);
                    stream.Configure(Client.Format, Client.SampleRate, Client.ChannelCount, 440);
                    Client.Start();
                    System.Threading.Thread.Sleep(10000);
                    Client.Stop();
                }
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            Ratchet.Audio.PlaybackDevice playbackDevice = FindPlaybackDevice();
            if (playbackDevice == null)
            {
                Console.WriteLine("No playback device found on this computer.");
                System.Environment.Exit(1);
            }

            Ratchet.Audio.RecordingDevice recordingDevice = FindRecordingDevice();
            if (recordingDevice == null)
            {
                Console.WriteLine("No recording device found on this computer.");
                System.Environment.Exit(1);
            }

            Console.WriteLine("Recording Device: " + recordingDevice.Name);
            Console.WriteLine("Playback Device: " + playbackDevice.Name);

            Ratchet.Audio.RecordingClient recordingClient = recordingDevice.CreateClient();
            recordingClient.Start();
            System.Threading.Thread.Sleep(5 * 1000);
            recordingClient.Stop();

            Ratchet.Audio.Mixer Mixer = new Ratchet.Audio.Mixer();
            Mixer.AddSource(new RecordingSource(recordingClient));
            Mixer.CreateListener(-1.0f, 0.0f, 0.0f, 0);
            Mixer.CreateListener(1.0f, 0.0f, 0.0f, 1);
            Mixer.CreateListener(-1.0f, 0.0f, 0.0f, 2);
            Mixer.CreateListener(1.0f, 0.0f, 0.0f, 3);

            Ratchet.Audio.PlaybackClient audioClient = playbackDevice.CreateClient(Mixer);
            Mixer.OutputChannelCount = audioClient.ChannelCount;
            Mixer.OutputFormat       = audioClient.Format;
            Mixer.OutputSampleRate   = audioClient.SampleRate;

            audioClient.Start();
            System.Threading.Thread.Sleep(5 * 1000);
            audioClient.Stop();
        }