Example #1
0
 public SineWaveGenerator(MAudioFormat format, int freq, double magnitude)
 {
     NumberOfChannels = format.NumberOfChannels;
     SampleRate       = format.SampleRate;
     Frequency        = freq;
     Magnitude        = magnitude;
     Phase            = 0;
 }
Example #2
0
        public async Task InitializeAsync(MAudioFormat format)
        {
            client.ActivateAsync(M.MAudioDeviceType.Capture);

            await initialized.Task;

            this.format = client.IsFormatSupported(M.MAudioClientShareMode.Shared, format.MWASAPIFormat);

            await Task.Run(() => ClientInitialize());
        }
Example #3
0
        public MainPage()
        {
            this.InitializeComponent();
            this.NavigationCacheMode = NavigationCacheMode.Required;

            dispatcher = CoreWindow.GetForCurrentThread().Dispatcher;
            socket     = new TaskCompletionSource <StreamSocket>(null);

            capturer = new MAudioCapturer();
            capturer.InitializeAsync().ContinueWith((preTask) =>
            {
                format = capturer.Format;
            });
        }
Example #4
0
        public async Task ActivateAsync()
        {
            renderer = new MAudioRenderer(new MAudioRendererProperties(false, true, false));
            await renderer.InitializeAsync().ContinueWith((preTask) =>
            {
                MAudioFormat format = renderer.Format;
                int ratio           = format.SampleRate / COMMON_FREQ;

                dataOutput = new BranchingConverter(
                    new FirstOrderFiller(
                        new Duplicator(
                            new FloatStreamConverter(renderer.Stream)), ratio));
                mixer = new Mixer(dataOutput, new TimeSpan(100000), COMMON_FREQ / 100);
            });
        }
Example #5
0
        public void ActivationPostTask()
        {
            MAudioFormat format = capturer.Format;
            int          ratio  = format.NumberOfChannels * format.SampleRate / COMMON_FREQ;

            switch (format.EncodingType)
            {
            case MAudioEncodingType.PCM16bits:
                capturer.Stream.OutputStream =
                    new ConverterStream(new ShortSimplifier(client, ratio, 1));
                break;

            case MAudioEncodingType.Float:
                capturer.Stream.OutputStream =
                    new ConverterStream(new FloatSimplifier(new FloatToPCMConverter(client), ratio, 1));
                break;
            }
            capturer.Start();
        }
Example #6
0
        public MainPage()
        {
            this.InitializeComponent();
            dispatcher = CoreWindow.GetForCurrentThread().Dispatcher;
            socket     = new TaskCompletionSource <StreamSocket>(null);

            server = new HWirelessServer();
            server.ConnectionReceived += server_ConnectionReceived;
            server.ListenAsync(PORT).ContinueWith(async(preTask) =>
            {
                if (preTask.Result != null)
                {
                    await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                    {
                        tIP.Text += preTask.Result.CanonicalName;
                    });
                }
            });

            renderer = new MAudioRenderer(new MAudioRendererProperties(false, true, false));
            var soundTask = renderer.InitializeAsync();

            Task.WhenAll(new Task[] { soundTask, socket.Task }).
            ContinueWith((preTask) =>
            {
                format = renderer.Format;

                DuplicateInputStream dupStream = new DuplicateInputStream(
                    socket.Task.Result.InputStream.AsStreamForRead(), format.FrameSize / 2);
                RateStream rateStream = new RateStream(dupStream);

                //RateStream rateStream = new RateStream(socket.Task.Result.InputStream.AsStreamForRead());
                rateStream.ReadRateCalculated += rateStream_ReadRateCalculated;
                renderer.Stream.InputStream    = rateStream;
                renderer.Start();
            });
        }
Example #7
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            capturer = new MAudioCapturer();
            var ignore = capturer.InitializeAsync().
                         ContinueWith((preTask) =>
            {
                MAudioFormat format = capturer.Format;
                int ratio           = format.NumberOfChannels * format.SampleRate / 16000;

                switch (format.EncodingType)
                {
                case MAudioEncodingType.PCM16bits:
                    capturer.Stream.OutputStream =
                        new ConverterStream(new ShortSimplifier(client, ratio, 1));
                    break;

                case MAudioEncodingType.Float:
                    capturer.Stream.OutputStream =
                        new ConverterStream(new FloatSimplifier(new FloatToPCMConverter(client), ratio, 1));
                    break;
                }
                capturer.Start();
            });
        }
Example #8
0
 public SineWaveStream(MAudioFormat format, int freq, double magnitude)
 {
     sineGen = new SineWaveGenerator(format, freq, magnitude);
 }