Loopback recording on Windows using GStreamer - audio

How can I record system sounds and sounds played by other apps? I tried directsoundsrc and wasapisrc with no luck. DirectSound seems to be unable to capture from Speakers (devices listed by DirectSoundEnumerate).
DirectSoundCaptureEnumerate returns me my Mic only, no output devices listed.

Related

Connect Multiple Bluetooth Speakers with Raspberry Pi

I'm trying to connect several bluetooth devices with Raspberry PI to use them as speakers.
I'm using RetroPie as a distribution, because of the tests I've done it's the only one that matches and allows continuous synchronization with several bluetooth devices at the same time.
However, the system only detects the first device that connects as a sound card, the rest keep the bluetooth synchronization active, but it does not interpret them as audio cards even though it is indicated by blueman-manager.
Is there anything I can do to keep all devices synchronized and supported as audio cards?
Palm,
even so this a old post, it is not yet closed.
As I just got the same issue, here my answer.
What you try to do is to connect mutliple audio sreaming services (Speakers) to 1 audio bluetooth source, that is not possible like this. Therefore your PC only connects to the first box.
You could try multiple bluetooth dongles, but then you run into the timing issue with audio stream syncronization between the boxes.
The only solution is to use Bluetooth 4.1 upwards master-slave services.
Therefore the Speakers need to be connected to each other and seen as 1 device from the PC. In that mode the stream is skewed to ensure syncronous playing.
Many new Bluetooth speakers support this mode.
Hope that helped.

Read loopback audio on linux

I'm trying to make an audio visualizer on Linux but I can't seem to find any library that allows me to read the sound levels of the audio of the system. All the libraries I seem to come across seem to either be for reading the microphone or for recording the system audio.
I've tried using pyaudio but for some reason, I've only been able to open the microphone and while the program is running the audio coming out of the speakers then gets distorted.
edit: I'm using PulseAudio but I would be fine switching to another sound driver like alsa, etc.

Headphones no sound

Today I've connected my bluetooth headphones(Ausdom M08) with PC(via bluetooth dongle).
When I open Skype or Discord I hear no sound on youtube, browser and so on. It only works on Skype and Discord - bad sound, not stereo.
I checked in Sounds Options and I have Ausdom M08 Stereo and Ausdom M08 Hands-Free. First one is default device and second one is default communication device.
When I try to force Skype and Discord to use that default device for sound output I hear no sound then, too!
What I tried:
-Disabling Hands Free Telephony, but I lose microphone function then.
-Tried to uninstall drivers and install again. Still the same.
-Disabling enhancements and exclusive controls of devices.
Literally I tried everything I found on internet or that I thought it can be.
Nothing works.
So the question is: How to make my PC output Stereo Sound from my headphones and still to be able to use microphone from it?
Thanks
There are a lot of missing information here: What PC dongle are you using? Which windows version?
From what I can see about the tech specs of Ausdom M08, it supports few basic profile (HSP/HFP/A2DP/AVRCP). A2DP profile lets you hear stereo audio (Ausdom M08 Stereo). HSP/HFP lets you use the microphone to Skype, but audio is limited to 8K-16K Hz sampling rate (Ausdom M08 Hands-Free). You can't use both Bluetooth profiles at the same time.
So to answer you question: You can't have stereo audio from your headphone while having microphone input.
There are proprietary codec developed by Qualcomm called aptX, which may support microphone over A2DP. But, you'll have to make sure both transmitter and receiver supports this codec.

GetUserMedia get computer audio

I'm trying to share the computer's audio via webRTC and GetUserMedia, but I don't know if it is possible to obtain this stream.
On Linux and Firefox, when I request the GetUserMedia with the following constrains
navigator.mediaDevices.getUserMedia({video: false, audio:true})
In the popup I can choose alsa_output.pci and share the computer's audio. But when I tried on Chrome/Chromium or I changed to Windows neither Firefox nor Chrome show me any option to capture the internal audio, only my headset microphone.
Are there any option for the getUserMedia or any workaround to get this audio? I tried all the examples of WebRTC samples and Muaz's examples but no one displayed me this option, only Firefox under Linux.
There's no way to do this from the JavaScript code.
In Windows, you just have to use as input for WebRTC Stereo mix (or Wave out mix on some laptops/sound cards). If you don't have it on your list of recording devices, try to update your sound card driver. If you do have it in the list, but it is marked as Currently unavailable, then right click on it and select Set as Default Device. This would make it available.
If your sound card doesn't support Stereo mix, then you can use something like Virtual Audio Cable.

Play audio as microphone input

I am to test voice recognition programs. Some which I have access to the code and others where I don't.
Sadly my (beautiful) voice is not perfect, so when I am reading a text it sounds slightly different each time. Which makes the testing difficult and time consuming. Giving that I can tweak a lot of parameters.
So I was wondering if there was a way to record my own voice (already done). And then play it as normal microphone input so the voice recognition program I am testing will see it as microphone input.
This would also help greatly if it could be done programatically in C#. So I can in my own code specify when to play what.
To play it from speakers and have the voice recognition programs listen to the microphone is not an option, because it is not the same sound on different computers/speakers/microphones.
Thanks.
Edit:
What i have found so far is to use a software sound Card simulator. But I haven't been able to find a suitable one.
Just as there are printer drivers that do not connect to a printer at all but rather write to a PDF file, analogously there are virtual audio drivers available that do not connect to a physical microphone at all but can pipe input from other sources such as files or other programs.
I hope I'm not breaking any rules by recommending free/donation software, but VB-Audio Virtual Cable should let you create a pair of virtual input and output audio devices. Then you could play an MP3 into the virtual output device and then set the virtual input device as your "microphone". In theory I think that should work.
If all else fails, you could always roll your own virtual audio driver. Microsoft provides some sample code but unfortunately it is not applicable to the older Windows XP audio model. There is probably sample code available for XP too.

Resources