public SineWaveGenerator(MAudioFormat format, int freq, double magnitude) { NumberOfChannels = format.NumberOfChannels; SampleRate = format.SampleRate; Frequency = freq; Magnitude = magnitude; Phase = 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()); }
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; }); }
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); }); }
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(); }
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(); }); }
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(); }); }
public SineWaveStream(MAudioFormat format, int freq, double magnitude) { sineGen = new SineWaveGenerator(format, freq, magnitude); }