libao driver configuration

Found a bug? Please report it, but remember to follow the bug reporting guidelines.
Missing a sane feature? Let us know!
But please do NOT request ports to other systems.

Moderator: ZSNES Mods

Post Reply
LiquidAcid
Rookie
Posts: 20
Joined: Thu Mar 01, 2007 6:47 pm

libao driver configuration

Post by LiquidAcid »

Hi there,

currently it seems to me that's impossible to specify any options for the sound drivers when using the new libao method. I was trying to fix the 'ALSA underrun' error avoiding the ALSA dmixer and directly accessing the hardware device (plughw and hw). Now that didn't work out but I request this nonetheless.

Currently I have to edit .asoundrc to get libao to use any other ALSA device then the default one. It'd like to specify the options on commandline (and maybe inside the config files).
http://xiph.org/ao/doc/drivers.html
The ALSA driver for example has three options you can fiddle around with. An application that makes it possible to pass options to libao is e.g. ogg123 (syntax is explained in the man pages). ZSNES should have a similar method of passing options to libao.

I really miss this kind of feature, because it makes it very inconvenient to use something like a pulseaudio device (I have a better soundsystem hooked up on a gentoo-terminal-server that I can use through pulseaudio, avoiding the crappy speakers in my notebook).

And hey, great job on ZSNES - especially the new sound core. Looking forward to get it into a stable version!

Thanks,
liquid
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Type in zsnes -? at the command line to see your options. If it doesn't provide any new options, you either did not compile with libao support (because you didn't install the lib+dev package) or you really don't have other options.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
LiquidAcid
Rookie
Posts: 20
Joined: Thu Mar 01, 2007 6:47 pm

Post by LiquidAcid »

zsnes is compiled with libao support. The only thing I can select is the audiodriver, not the options for that particular driver - and libao doesn't have any configfile to supply default options for a driver. It's the app that has to do this.

Using ogg123 with libao I can use the 'default' ALSA device, which is the dmixer, but i can also use 'plughw', 'hw', 'DDDAC_dmix' (dmixing device for external USB-DAC) or 'pulse' (for pulseaudio).
LiquidAcid
Rookie
Posts: 20
Joined: Thu Mar 01, 2007 6:47 pm

Post by LiquidAcid »

I check commandline again (using ZSNES 1.51 with libao support compiled) and there is no way to specifiy options for ao. In case it is not clear what options are:
http://xiph.org/ao/doc/ao_option.html

And I somehow managed to weaken the sound problem, by setting ZSNES audio driver to SDL with 48kHz, setting SDL audiodriver to alsa with ALSA device hw:0,0 - almost no clicks, pops, etc. can be heard.
I'm still using ZSNES 1.51 - that's nothing about SVN (which I tested, but I couldn't get libao to run at all - zsnes always used SDL).

cya
liquid
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

As to expanding the libao driver options, someone else will answer the question. For whatever is in SVN, the new sound code written for libao needs to be redone (it is not finished yet, so please don't complain further).
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
LiquidAcid
Rookie
Posts: 20
Joined: Thu Mar 01, 2007 6:47 pm

Post by LiquidAcid »

Hey, I'm not complaining!

I know how hard software development is, having deep respect for the work you guys are doing.
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

I know all about the libao driver options, however I find no simple way to implement all of them. The only idea at the moment that seems feasable to me is to allow the user to specify in a config file what options to pass, but they'll have to read the docs themselves to know what they are.

There's also the global libao config file, /etc/libao.conf on my system, but I'm not sure if you can put anything in there asside from default driver.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
LiquidAcid
Rookie
Posts: 20
Joined: Thu Mar 01, 2007 6:47 pm

Post by LiquidAcid »

Nach wrote:I know all about the libao driver options, however I find no simple way to implement all of them.
What about specifying an option string on the commandline with a syntax like:
"option1:option1_parameter option2:option2_parameter ..."
Nach wrote:The only idea at the moment that seems feasable to me is to allow the user to specify in a config file what options to pass, but they'll have to read the docs themselves to know what they are.
That would be OK for me.
Nach wrote:There's also the global libao config file, /etc/libao.conf on my system, but I'm not sure if you can put anything in there asside from default driver.
No, I check this earlier - you can't pass driver options there. Maybe because the ao developers assume that every application wants to specifiy their own driver options.
Post Reply