scream icon indicating copy to clipboard operation
scream copied to clipboard

Can't get Scream to connect to receiver

Open miquentere opened this issue 4 years ago • 3 comments

Hello,

I'm trying to send audio from Windows to a Linux (Lubuntu) VM. I've installed Scream on both. Windows is outputting to Scream, and I can run the receiver in the VM and see it showing up in the sound settings as an audio source. However, nothing seems to be being received.

I tried using unicast mode (edited the registry in Windows/restarted/ran the receiver with -u argument), but that didn't help. Are there any more troubleshooting steps I should try? I'm using pulseaudio if that helps.

Thank you for reading my request.

miquentere avatar Oct 18 '21 10:10 miquentere

Hey @miquentere buddy!

Sorry you have had this problem for so long. I took some of the skills I've learned in my career, and while I am not currently great at code, I'm great at systems and I got this working. Here's my setup, what I discovered along the way, and the final steps.

I run a Linux desktop with Arch Linux - this is where my FiiO headphone amp is connected. It's where I spend the most of my time during the day.

I also run a Windows 10 desktop - I call my my Wintendo - where I listen to music, check on forums, chat with family, and read up on problems like this.

I wanted to have all my Windows sounds to just come through Pulseaudio.

Just like your case, I had it all installed and running, and I could even see the "Scream: Audio" playback device inside pavucontrol (the pulse audio volume control dialog box). But I couldn't get sound.

So I got to digging through the code. I came across:

https://github.com/duncanthrax/scream/blob/master/Scream/savedata.cpp#L9-L10

and

https://raw.githubusercontent.com/duncanthrax/scream/master/doc/registry_unicast.png

Which told me these are the pertinent ports. I noticed they are separated by only 1. This reminded me of an application called SoulSeek (SLSK) in which you need both ports in order for it to work well.

So I figured, hmm, maybe it's just not working on either side.

I decided that Unicast was a good start since Multicast along with the VPN clients I use was probably going to be weird. So I followed the instructions in the image above. Specifically, I set the UnicastIPv4 to the IP of my Linux machine that has the actual PulseAudio server. I now believe this to be Windows' TARGET IP address of where it sends its audio. And I set the UnicastPort to 4011 (this can be whatever you want, as long as it matches.

I thought I was being clever in an admin powershell by running net stop audiosrv and net start audiosrv but that didn't work, so I rebooted Windows.

Back in Linux, I was looking at the output for netstat -plnu (or ss -plnu) and I could see that no matter what I did with the interface, I couldn't get it to stop trying to listen for 0.0.0.0. This has to be the multicast oddness, and I didn't have any time to poke around with it and fix it, so...

I set the scream client on the Linux machine to use unicast, manually set the IP address of the Linux box, and I manually set that port that I had put inside the Windows registry.

And here's what I get:

image

image

With these two running, I set my Windows sound output device to that new Speakers (Scream (WDM)) device, set the volume to 100, turned down the Scream : Audio playback device in Linux, and I can hear everything from both Linux and Windows simultaneously, and mixed!

If you need more help with this, let me know and I'm happy to screen share.

I think there is some more that can be done here in terms of documentation perfection, and possible something code-wise that could foolproof this, but I'm not good enough for that (yet!)

Hope this helps!

sysfsss avatar Dec 30 '21 17:12 sysfsss

Just to add a bit of extra info to hicklemons comment which helped me out and since other people might see this, after making the registry edits in windows, if its easier, instead of restarting to make the registry edits take effect, you can just go to device manager, then disable and enable the scream drivers. It can make testing the issue a bit quicker :).

In my experience if you cant hear audio in scream but you're not seeing any errors, its likely the issue is just with the IP and port setup, either on the windows side or linux side. Make sure that you're using the correct ip address by checking that it is listed in linux using the "ip addr" command in the terminal where you should see the ip address listed beside "inet" under one of the interfaces listed. (The ip tool isnt the clearest or easiest to read). Then make sure you have this same ip address in the scream command and in windows registry (will take a restart or method mentioned in my first paragraph to take effect in windows)

Also this should go without being said but just incase make sure your audio in linux is actually working.

Joseph-kane avatar Jan 03 '22 22:01 Joseph-kane

I struggled with connecting a windows 11 client too. I managed to fix it by checking whether multicast was working at by checking if I could connect to a local multicast source - which it diddn't . To fix the issue I needed to disable automatic metric in my windows network adapter in the adapter settings under tcp -> advanced -> uncheck automatic metric and set the value to "1". I followed this guide: https://windowsreport.com/firewall-blocking-multicast/

Perhaps this should be added to the readme. Hope I could help.

coxtor avatar Nov 14 '22 07:11 coxtor