RoPieee / roon-on-wine

Running Roon with Wine on Linux
MIT License
85 stars 20 forks source link

Audio Device Output Either Missing or Not Used #22

Open joltman80 opened 2 years ago

joltman80 commented 2 years ago

I've got a brand new Arch Linux install running Wine Version 7.12 (installed from Arch Repo). On the Arch Laptop, I'm running pipewire and I have pipewire-pulse and lib32-libpulse installed per the Arch Wiki. For fun, I've also installed the alsa components (pipewire-alsa and lib32-alsa-lib + lib32-alsa-plugins). I've got WineCFG set to output to either System Default or PulseAudio (I am not seeing ALSA as an option in Winecfg). When I run the TEST under AUDIO tab in winecfg, I hear a "ding" noise. When I run the script to start Roon, I get the interface, and choose my Roon server correctly. I then go to SETTINGS > AUDIO. I do not see any of the laptop's audio outputs available. Admittedly, I am new to Arch, but not new to Linux in general. If I run Roon directly with Wine, I receive the same issue.

orsib78 commented 2 years ago

Hello. I also posted an issue about a different problem caused by Wine 7.12 on Fedora 36. For me downgrading wine solved the problem, however it is not ideal. I am not sure who can fix this problem, as it seems this project is a bit abandoned.

joltman80 commented 2 years ago

I tried downgrading my version of Wine to 5.11. The same issue persists. I'd really like to get Roon working natively on the in-built speakers. I haven't tried my USB DAC yet.

JohnFlowerful commented 1 year ago

Try

index 9f451a6..0e70df7 100755
--- a/install.sh
+++ b/install.sh
@@ -89,6 +89,7 @@ _winetricks "Installing .NET 4.0"    -q --force dotnet40
 # setting some environment stuff
 _winetricks "Setting Windows version to 7" -q win7
 _winetricks "Setting DDR to OpenGL"        -q ddr=opengl
+_winetricks "Setting sound to ALSA"        -q sound=alsa
 _winetricks "Disabling crash dialog"       -q nocrashdialog

 rm -f ./NDP472-KB4054530-x86-x64-AllOS-ENU.exe

Afterwards you need to ensure you use 'System Output' in Roon. This allows pipewire/pulse to mix properly.

joltman80 commented 1 year ago

I added this line and re-ran the install script. There was no change.

joltman80 commented 1 year ago

I'm not sure what's changed, but running Roon from my Gnome Launcher (and not the start script) and I'm getting audio output. However, Roon 2.0 updated to an even later version and now the scaling doesn't work.

joltman80 commented 1 year ago

When I use a USB DAC, the rate/depth don't change with the song playing. I'm not sure if that's a result of Roon/Wine or a config on my USB DAC. I need to test this with Plexamp to confirm.

JohnFlowerful commented 1 year ago

You'd need to configure your sound server to allow for that. Perhaps start here. I found less hassle setting a static sample rate and let pipewire resample for me.

joltman80 commented 1 year ago

I've already gone through this exercise on Pipewire/Wireplubmer. Wireplumber doesn't seem to have a mechanism to only allow certain sample rates for specific devices. I've already configured a LUA script for my DAC and it's supported rates, but a wireplumber dev told me that it doesn't work that way, even though it should.

roblem commented 7 months ago

I'm also seeing this (output device missing) on Fedora 39. After installing Fedora's winetricks, and slightly modifying the script to not use the downloaded version, everything installs, roon connects, and it looks perfect. Under settings->audio, no output device for my linux/wine local endpoint.

Checking winecfg, and the audio tab is directed to the preferred output which is visible.

orsib78 commented 7 months ago

I'm also seeing this (output device missing) on Fedora 39. After installing Fedora's winetricks, and slightly modifying the script to not use the downloaded version, everything installs, roon connects, and it looks perfect. Under settings->audio, no output device for my linux/wine local endpoint.

Checking winecfg, and the audio tab is directed to the preferred output which is visible.

I am also using Fedora 39 and it looks ok. I am using the "stock" script without any modification...

Screenshot from 2024-01-25 17-20-48

roblem commented 7 months ago

Just uninstalled Fedora's winetricks and used the stock script as is. Same results: image

So I must be missing an alsa/pipewire library....

orsib78 commented 7 months ago

I am not sure if it helps, and I am unsure what causing the difference between your system and mine, but I am also installed the following things besides of the vanilla Fedora installation. These shouldn't make any difference, but this is the only special thing that I tweaked on the stock Fedora installation. Apart from these I only installed certain packages via DNF and flatpak, which has nothing to do with system devices or audio devices...

### Enable RPM fusion
sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm -y

sudo dnf install \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y

sudo dnf upgrade --refresh -y
sudo dnf groupupdate core -y

### Install Multimedia Codecs

sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel -y
sudo dnf install lame\* --exclude=lame-devel -y
sudo dnf group upgrade --with-optional Multimedia --allowerasing -y
roblem commented 7 months ago

Very helpful. You used the Fedora packaged version of wine?

orsib78 commented 7 months ago

Yes. I installed both wine and winetricks via dnf.

roblem commented 7 months ago

So far, haven't found the problem. For now using an old chromecast audio connected to the headphone amp...

This morning, I see the devices, with a system reboot being the only notable difference. Maybe the reboot is required to expose the devices to wine???