Multi channel functionality to record mp3 file in c# - c#

I want to have a functionality of recording a conversation between two person. I want to do it in a such a way that the outgoing sound be on 1 channel and incoming sound on another channel. So finally i get a stereo file(mp3) file having 2 channels.
For now I am looking to achieve this is windows form and then eventually target xamarin.forms(android, iOS, windows).
Any way to achieve this in c#? Or any plugin available for this?

FFMPEG is a good tool for video or audio manipulation. I've only used it with video, but looks like it can encode two audio channels. Have a look at
this, hope it is helpful

Related

Stream audio from one device to another

I am looking to create a project where user A will stream audio and user B will receive it, I am not looking to upload the audio into a WebServer and then Download it. I have done quite a lot of research but I didn't come to a final design. I am asking for guides and not for you to design my application, where am I supposed to start with such a project?
I have a design in mind but not sure how feasible is it with IOS xamarin.
I would like to know your thoughts on this design.
User A will choose audio file from their playlist
Then I want to decode that audio into bits (Packets) and then send packets over to User B
User B will receive these packets and then encode them back to be an audio file
I am looking to achieve this using HTTP protocol. This is what I was able to get to. I am welcoming any ideas or guides as to where I should start with such a project.
P.S. I don't mind switching to swift/objective-C if it's not possible with Xamarin.
You can copy the voice transferring concept from the Internet calling concept. You will get the idea regarding how the voice is being transferred along with encryption and decryption of the packets.
You can get a little brief from here and here.
Once you can get the hang of it, you can easily switch with the audio files which you wants to play.

c#/.NET - Recording the current audio being played

Is there any way in c#/.net of recording the current audio being played? I've searched a lot on the internet but the only result I could find is recording using a microphone.
I dont want to record using microphone input, I want to record what is being played on the computer when I click a record button.
Thanks
You have two options here:
Hardware loopback device - virtual "Stereo Mix" audio device, which acts as a regular audio capture device and in the same time produces a copy of mixed audio feed played through default audio output device of the system. Since such device shows up as real audio input device, you can use standard APIs, libraries and even exitsing applications to record from such device.
Programmatic access to a virtual loopback device as if it was microphone-like device. API on the background will duplicate played audio content and make it available for reading back as it plays. The good news is that you can access the mixed audio feed for device of your interest.
Both options are described in detail in Loopback Recording article on MSDN and available via standard audio APIs, specifically WASAPI.
For C# development you are likely to use a wrapper like NAudio.
For option 1 you will find quite a few questions on StackOverflow, and for the other option the keyword is AUDCLNT_STREAMFLAGS_LOOPBACK.
The only way to be able to receive data from another application is if the developer provides an access point, normally through some SDK, API, or other means. Without this, there is no way for your application code to receive the bytes from the other application.
The reason a microphone works is because it is receiving the sound output bytes from the application and sending those soundwave bytes back into your PC to render and output the sound. Since you have access to these bytes from the microphone you are able to capture the sound.
See if there is an API or an SDK from the developer of the application you are trying to get sound from.

Azure Media Services Modify stream (add images / text like twitch)

I'm in the process of developing a Twitch-like application that supports Live Streaming. I would like to use Azure Media Services for this.
Looking at the REST Api of Azure Media Services it really looks like it can handle almost all the stuff that I require, for example playing advertisements. There is just one thing I can't seem to find and I really hope someone is able to guide me into the right direction.
How am I able to 'modify' the stream in such a way that it will show images / texts on the live video stream? For example as a donation comes in at Twitch the users are presented with a question on the video for the streamer.
Thanks!
When your Channel has Live Encoding enabled, you have a component in your pipeline that is processing video, and can manipulate it. You can signal for the Channel to insert slates and/or advertisements into the outgoing adaptive bitrate stream. Slates are still images that you can use to cover up the input live feed in certain cases (for example during a commercial break). Advertising signals, are time-synchronized signals you embed into the outgoing stream to tell the video player to take special action – such as to switch to an advertisement at the appropriate time.

Using Core Audio API to change volume of rear channels

I'm trying to create a background application that allows me to easily change volumes of the rear channels
I've looked into the Core Audio API, and although I managed to change the balance/volume of the front speakers, the API seemingly had no access to the rear channels or any other surround channel. It only counted 2 channels for my audio device.
Is it in any way possible, using any API, to control the rear channel's volume?
Thanks in advance!
EDIT
Thanks, FMOD looks like what I need, although it's a bit overwhelming. :P What would I need to do, to change the volume of a specified channel. I believe I need this function:
FMOD.RESULT result = channel.setVolume(1.0f);
But then I need to find a way to specify the channel...
Also, to be clear: I need to change the volume of any running application, say Winamp.
Best chose for working with audio file is "Fmod.dll".this have a lot of Privilege to work with audio file.
This is an audio content creation tool for games, with a focus on a
‘Pro Audio’ approach. It has an entirely new interface that will be
more familiar to those using professional Digital Audio Workstations
than existing game audio tools and is loaded with new features.
I already use this,this is very powerful component and easy to use.

Audio capturing in C#

I have a MAYA 44 USB sound card and would like to interface it with C#. I want to record from the provided microphones and produce a data array.
I have found examples when using the internal sound card from my laptop but when it comes to external it does not quite work.
Has anyone every connected the above sound card with C# please?
Have you had a look at the DirectSound API (Windows only though, I think). Might provide what you're after.
On how to record audio with C# in general there are already multiple threads on SO, so I won't talk about that.
I see two possible causes for your program which have different solutions:
You need to change which audio sources are muted in the windows volume control ("sndvol32.exe /R")
When opening the audio device there are multiple devices. And you're simply opening device 0 instead of enumerating them and perhaps choosing another one. The external sound-card might appear as a second device.

Categories

Resources