vgmrips / vgmplay-legacy

VGM file command-line player and Winamp plugin.
http://vgmrips.net
221 stars 52 forks source link

Error opening Sound Device! #27

Closed Boured closed 7 years ago

Boured commented 7 years ago

Hi I just learned about this software today after wondering how to play vgz files I managed to build the files on linux and put them in the proper place to work. However when loading them an error appeared which was easy to get rid of by setting libao to pulse instead of alsa. But after that it still displays this error.

https://puu.sh/xAaLi/2e39f9b3d5.png

My OS is arch linux, if i'm missing something then that is probably it and if its a bug then hurray I found one I guess. Also since I built it from source it isn't an old bug.

Hope you guys can help, have a good day and I hope this is a bug as I have looked but to no avail.

FraGag commented 7 years ago

Try using the vgm-player wrapper script (you may have to make it executable first) instead of calling vgmplay directly. Works for me on Arch Linux.

Boured commented 7 years ago

Nope, still does it for me whether I use vgm-player or vgmplay. What things about sound do you have? I only have alsa and pulseaudio.

Apparently the vgm-player script when reading it is OSS only.

FraGag commented 7 years ago

I also have ALSA and PulseAudio. When PulseAudio is installed, vgm-player should be running vgmplay through padsp, which is a program that comes with PulseAudio (on Arch, it's in the libpulse package) that emulates the OSS devices and redirects them to PulseAudio.

I'm now realizing that I have a similar problem with the latest master. I also have vgmplay and vgm-player installed in /usr/bin (from the vgmplay package), and when I ran vgm-player from my Git checkout, it ran /usr/bin/vgmplay rather than the vgmplay in my checkout. Running padsp /usr/bin/vgmplay file works, but padsp /path/to/checkout/VGMPlay/vgmplay file doesn't.

BTW, here's another option: vgm2pcm "$filename" /dev/stdout | paplay --raw --format=s16be (vgm2pcm is in this repo; paplay is in libpulse). This doesn't display any metadata or progress though.

cyberic99 commented 7 years ago

you should simply use 'pasuspender', this is much simpler than padsp or paplay

ValleyBell commented 7 years ago

It is correct that the vgm-player script isn't required if you have libao support enabled in the Makefile. (except if you want to play from .zip/.7z files directly)

Still, this is a weird issue. Especially because I haven't touched anything audio related for more than a year.

But I have one idea: When I initially used VGMPlay with libao on my openSUSE system, it defaulted to use the ALSA "front" device (instead of "default"). This prevented any other sound from happening. (or it failed to open) I solved the problem by creating a ~/.libao file with this content:

default_driver=alsa
dev=default

If this doesn't help, try editing the Makefile, use USE_LIBAO=0, then do a clean recompile and use the vgm-player script.

Boured commented 7 years ago

The thing is I did have that config file, and it caused an error when using it with alsa.

However I recompiled the source without libao and it worked! Thank you so much for this, now that is over this issue can now close. Thanks again!