public JTAudioMixer()
        {
            _channels = new List<ConcurrentQueue<float>>();
            for (int i = 0; i < MAX_CHANELS; i++)
                _channels.Add(new ConcurrentQueue<float>());

            _audioHandle = new Audio(
                InputChannels,
                OutputChannels,
                OutputRate,
                FramesPerBuffer,
                new PortAudio.PaStreamCallbackDelegate(myPaStreamCallback));

            _audioHandle.Start();
        }
        public void Run()
        {
            Audio audio = null;

            try {

                Audio.LoggingEnabled = true;
                audio = new Audio(1, 2, 44100, 2048,
                    new PortAudio.PaStreamCallbackDelegate(myPaStreamCallback));

                audio.Start();

                System.Threading.Thread.Sleep(3000);

                audio.Stop();

            } catch(Exception e) {
                Console.WriteLine(e.ToString());
            } finally {
                if (audio != null) audio.Dispose();
            }
        }