LSXPrime / LSXPrime/SoundFlow

[QSTN] Streaming recorded audio with modifiers through Udp

Open
#111 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C#
Stars
512
Forks
56
PR merge metrics
No merged PRs in 30d

Description

### Requirements

- [x] I have searched the documentation and existing issues for an answer.
- [x] My question is specific and clearly formulated.
- [x] This is not a bug report or a feature request.

### 1. What are you trying to achieve?

I'm using the WebRtcApmModifier class to prevent acoustic echo from the microphone and I can receive the sound on my local computer. However, I want to send the clean sound from the microphone to a remote computer using the UDP protocol and play the sound on the remote computer. How can I do this?

### 2. What have you tried so far?

WebRtcApmModifier sınıfı ile mikrofondan gelen sesin akustik yankısını engelliyorum ve local bilgisayarımda sesi alabiliyorum.

### 3. What are you unsure about / What is your specific question?

mikrofondan gelen temiz sesi uzak bir bilgisayara udp protolkolu ile göndermek ve uzak bilgisayarda sesi çalmak isiyorum bunu nasıl yapabilirim

### 4. Relevant Code Snippet (if applicable)

``` var captureDeviceInfo = SelectDevice(DeviceType.Capture);
if (!captureDeviceInfo.HasValue) return;

var playbackDeviceInfo = SelectDevice(DeviceType.Playback);
if (!playbackDeviceInfo.HasValue) return;

using var captureDevice = Engine.InitializeCaptureDevice(captureDeviceInfo.Value, Format);
using var playbackDevice = Engine.InitializePlaybackDevice(playbackDeviceInfo.Value, Format);

captureDevice.Start();
playbackDevice.Start();

using var engine = new MiniAudioEngine();
var audioFormat = new AudioFormat { Format = SampleFormat.F32, SampleRate = 48000, Channels = 2 };

using var microphoneProvider = new MicrophoneDataProvider(captureDevice);

// Add noise suppression modifier and keep a reference to it for interactive controls.
var apmModifier = new WebRtcApmModifier(captureDevice,
nsEnabled: true,
aecEnabled: true,
aecMobileMode: false,
nsLevel: NoiseSuppressionLevel.High);

// Create a SoundPlayer and load an audio file

using var soundPlayer = new SoundPlayer(Engine, Format, microphoneProvider);

var gainComponent = new CustomGainComponent(engine, audioFormat) { Gain = 0.5f };
gainComponent.ConnectInput(soundPlayer);

//soundPlayer.AddModifier(apmModifier);

playbackDevice.MasterMixer.AddComponent(gainComponent);

microphoneProvider.StartCapture();
soundPlayer.Play();

```

### SoundFlow Version

_No response_

### .NET Version

_No response_

### Operating System

_No response_

### 6. Additional Context

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the shown capture pipeline and the WebRtcApmModifier, MicrophoneDataProvider, and SoundPlayer entry points; determine how processed audio is exposed before evaluating UDP transport and remote playback. Confirm the SoundFlow, .NET, and operating-system versions and define the expected remote playback path. Done means a documented, reproducible answer or a clearly stated limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
audio-video-rtc
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.