> [...] I ran into an issue wher an application I was using was unable > to write to the audio device because the swbell was writing to the > same device at the same time. I fixed this by [setting > hw.audio0.multiuser=1.]
See below for that. > I seem to remember this variable came about in 9.x and I wonder if > changing it might change the behavior of your application? Not that I can see. But, also, I instrumented things a bit more. When I wrote > In the case where the audio descriptor is set non-blocking, the > observations are consistent with the theory that audio isn't playing, > that the bits have just stopped leaving the buffer (if they ever > started). However, that seems to me to be inconsistent with the > blocking case, where the writes do eventually complete, just in tens > of milliseconds instead of tens of microseconds. It turns out the writes were "completing" only in the sense that they're returning. They are returning EINTR in this case (which is not too surprising; the program uses signals relatively heavily). Apparently audio data just isn't moving on this hardware. hw.audio0.multiuser=1 (it was 0 before) makes no apparent difference. I notice that audioctl -a prints "mode=" with no value. I think it should be `play', but audioctl -w mode=play tells me it's read-only. Is there something I need to do, either from the command line or some ioctl or whatever, to get playing to start? audioctl -a reports play.pause=0, so I think it's not paused in the usual sense. Specifically, here's full audioctl -a output, with the program running: name=USB audio version= config=usb:00000006 encodings=mulaw:8*,alaw:8*,slinear:8*,ulinear:8*,slinear_le:16*,ulinear_le:16*,slinear_be:16*,ulinear_be:16*,slinear_le:32*,ulinear_le:32*,slinear_be:32*,ulinear_be:32* properties=full_duplex,mmap,independent full_duplex=1 fullduplex=1 blocksize=2048 hiwat=32 lowat=24 monitor_gain=0 mode= play.rate=8000 play.channels=1 play.precision=16 play.encoding=ulinear_le play.gain=127 play.balance=32 play.port=0x0 play.avail_ports=0x0 play.seek=0 play.samples=0 play.eof=0 play.pause=0 play.error=0 play.waiting=0 play.open=0 play.active=1 play.buffer_size=65536 record.rate=8000 record.channels=1 record.precision=8 record.encoding=mulaw record.gain=127 record.balance=32 record.port=0x0 record.avail_ports=0x0 record.seek=0 record.samples=0 record.eof=0 record.pause=0 record.error=0 record.waiting=0 record.open=0 record.active=1 record.buffer_size=65536 record.errors=0 /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML [email protected] / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
