I'm playing with the new aucat. Or rather, running it, since unlike every other soundserver it doesn't require endless tweaking to just work. There is one issue I'm having, and I'm not sure if it's on purpose or not. Whenever (say) pidgin (or anything else) plays sound my music dims in volume. It makes sense the clients have to be turned down so two playing at 100% don't blow the speakers, but the trouble is the dip in sound is -really obvious-.
I found -v volume Software volume attenuation of the playback stream. The value must be between 1 and 127, corresponding to -42dB and -0dB atten- uation. In server mode, clients inherit this parameter. Reduc- ing the volume in advance reduces a client's dynamic range, but allows client volume to stay independent from the number of clients as long as their number is small enough. A good compro- mise is to use -4dB attenuation (12 volume units) for each addi- tional client expected (115 if 2 clients are expected, 103 for 3 clients, and so on). which I interpret as saying that if I run aucat as "aucat -l -v 50" it should predim the volume of any client that connects so that the dip doesn't happen. If I'm right about that (which I'm not at all sure that I am) then aucat is behaving badly because I even tried giving "-v 1" and heard no change at all. OpenBSD 4.5-current (GENERIC.MP) #80: Mon Apr 20 12:59:56 MDT 2009 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC.MP cpu0: Intel(R) Core(TM)2 CPU U7600 @ 1.20GHz ("GenuineIntel" 686-class) 1.20 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR real mem = 1064202240 (1014MB) avail mem = 1020690432 (973MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 10/30/07, BIOS32 rev. 0 @ 0xfcb25, SMBIOS rev. 2.4 @ 0xec000 (40 entries) bios0: vendor TOSHIBA version "Version 1.50" date 10/30/2007 bios0: TOSHIBA PORTEGE R500 acpi0 at bios0: rev 0 acpi0: tables DSDT FACP SSDT APIC MCFG HPET TCPA SLIC SSDT SSDT acpi0: wakeup devices USB1(S3) USB3(S3) USB4(S3) EHCI(S3) GLAN(S4) WLAN(S4) LID_(S4) PWRB(S4) HS87(S4) HS86(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: apic clock running at 133MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM)2 CPU U7600 @ 1.20GHz ("GenuineIntel" 686-class) 1.20 GHz cpu1: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins ioapic0: misconfigured as apic 0, remapped to apid 1 acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 3 (PCIB) acpiprt2 at acpi0: bus 1 (PEX1) acpiprt3 at acpi0: bus 2 (MPEX) acpitz0 at acpi0: critical temperature 102 degC acpicpu0 at acpi0 acpicpu1 at acpi0 acpibtn0 at acpi0: LID_ acpibat0 at acpi0: BAT1 model "G71C00086210" serial 0000000796 type Li-ION oem "0" acpibtn1 at acpi0: PWRB acpiac0 at acpi0: AC unit offline acpidock at acpi0 not configured acpivideo at acpi0 not configured bios0: ROM list: 0xc0000/0x10000 0xe0000/0x10000! cpu0: unknown Enhanced SpeedStep CPU, msr 0x060b090e0600090e cpu0: using only highest and lowest power states cpu0: Enhanced SpeedStep 1200 MHz (924 mV): speeds: 1200, 800 MHz pci0 at mainbus0 bus 0: configuration mode 1 (bios) extent `pciio' (0x0 - 0xffff), flags=0 0xaf10 - 0xaf1f 0xaf24 - 0xaf2f 0xaf34 - 0xaf9f 0xafe0 - 0xbfff 0xcff8 - 0xcfff extent `pcimem' (0x0 - 0xffffffff), flags=0 0x0 - 0x9ffff 0xe0000 - 0x3fffffff 0xe0000000 - 0xefffffff 0xfec00000 - 0xfec17fff 0xfec20000 - 0xfec27fff 0xfed00000 - 0xfed003ff 0xfed14000 - 0xfed19fff 0xfed1c000 - 0xfed8ffff 0xfeda0000 - 0xfedbffff 0xfee00000 - 0xfee00fff 0xff600000 - 0xff8fffff 0xff980000 - 0xffbfffff 0xffc3b800 - 0xffffffff pchb0 at pci0 dev 0 function 0 "Intel 82945GM Host" rev 0x03 vga1 at pci0 dev 2 function 0 "Intel 82945GM Video" rev 0x03 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) intagp0 at vga1 agp0 at intagp0: aperture at 0xe0000000, size 0x10000000 inteldrm0 at vga1: apic 1 int 16 (irq 10) drm0 at inteldrm0 "Intel 82945GM Video" rev 0x03 at pci0 dev 2 function 1 not configured azalia0 at pci0 dev 27 function 0 "Intel 82801GB HD Audio" rev 0x02: apic 1 int 22 (irq 11) azalia0: codecs: Realtek ALC262 audio0 at azalia0 ppb0 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x02 pci1 at ppb0 bus 1 extent `ppb0 pciio' (0x0 - 0xffff), flags=0 0x0 - 0xafff 0xbfe0 - 0xffff extent `ppb0 pcimem' (0x0 - 0xffffffff), flags=0 0x0 - 0xff7fffff 0xff8e0000 - 0xffffffff em0 at pci1 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 1 int 16 (irq 10), address 00:15:b7:43:a0:f2 ppb1 at pci0 dev 28 function 2 "Intel 82801GB PCIE" rev 0x02 pci2 at ppb1 bus 2 extent `ppb1 pcimem' (0x0 - 0xffffffff), flags=0 0x0 - 0xff6fffff 0xff7ff000 - 0xffffffff wpi0 at pci2 dev 0 function 0 "Intel PRO/Wireless 3945ABG" rev 0x02: apic 1 int 18 (irq 11), MoW1, address 00:1c:bf:78:7f:04 uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x02: apic 1 int 23 (irq 11) uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x02: apic 1 int 19 (irq 11) uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x02: apic 1 int 18 (irq 11) uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x02: apic 1 int 16 (irq 10) ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x02: apic 1 int 23 (irq 11) usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xe2 pci3 at ppb2 bus 3 extent `ppb2 pcimem' (0x0 - 0xffffffff), flags=0 0x0 - 0xff5fffff 0xff6f8000 - 0xff6fbfff 0xff6ff700 - 0xffffffff cbb0 at pci3 dev 11 function 0 "TI PCIXX12 CardBus" rev 0x00: apic 1 int 21 (irq 255) "TI PCIXX12 FireWire" rev 0x00 at pci3 dev 11 function 1 not configured sdhc0 at pci3 dev 11 function 3 "TI PCIXX12 Secure Data" rev 0x00: apic 1 int 23 (irq 11) sdmmc0 at sdhc0 cardslot0 at cbb0 slot 0 flags 0 cardbus0 at cardslot0: bus 4 device 0 cacheline 0x8, lattimer 0x20 pcmcia0 at cardslot0 ichpcib0 at pci0 dev 31 function 0 "Intel 82801GBM LPC" rev 0x02: PM disabled ahci0 at pci0 dev 31 function 2 "Intel 82801GBM AHCI" rev 0x02: apic 1 int 19 (irq 11), AHCI 1.1 scsibus0 at ahci0: 32 targets sd0 at scsibus0 targ 0 lun 0: <ATA, TOSHIBA MK1637GS, DL03> SCSI3 0/direct fixed sd0: 152627MB, 512 bytes/sec, 312581808 sec total usb1 at uhci0: USB revision 1.0 uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb2 at uhci1: USB revision 1.0 uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb3 at uhci2: USB revision 1.0 uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb4 at uhci3: USB revision 1.0 uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1 isa0 at ichpcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pms0 mux 0 pcppi0 at isa0 port 0x61 midi0 at pcppi0: <PC speaker> spkr0 at pcppi0 npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 mtrr: Pentium Pro MTRR support umass0 at uhub0 port 4 configuration 1 interface 0 "TOSHIBA Optical Drive Controller" rev 2.00/0.00 addr 2 umass0: using ATAPI over Bulk-Only scsibus1 at umass0: 2 targets, initiator 0 cd0 at scsibus1 targ 1 lun 0: <MATSHITA, DVD-RAM UJ-844S, 1.03> ATAPI 5/cdrom removable ugen0 at uhub2 port 1 "AuthenTec Fingerprint Sensor" rev 1.10/c.10 addr 2 softraid0 at root root on sd0a swap on sd0b dump on sd0b -Nick p.s. I know the manpage suggests sharing the sound device is a bad plan but I just have a simple home system and I'd like to know if aucat gives me the freedom to run multiple users against it (I could come up with lots of justifications, like letting the daemons we summon speak, but really it's just curiousity). It seems like all it would take is redirecting libsndio to point at the right socket, but because the socket is in /tmp/aucat-$USER_ID/ I don't see how this is possible. Can libsndio be told what socket to use?