Date: Wed, 20 Oct 2004 20:28:55 +0100 From: barnacle <[EMAIL PROTECTED]> Subject: Re: [LIB] Win98/70CT audio playback: A lost cause?
On Wednesday 20 October 2004 07:59, you wrote: > Date: Tue, 19 Oct 2004 23:58:58 -0700 (PDT) > From: Matt Hanson <[EMAIL PROTECTED]> > Subject: Re: [LIB] Win98/70CT audio playback: A lost cause? ... > Then, I guess this really isn't the place to be asking > about this. There's never been very much conversation > about audio issues on the list. I keep telling myself > I ought to Google around the net a bit and see what > other support groups I might be able to find. Not quite a lost cause, Matt... <puts audio engineer's hat on> A collection of things that can cause audio glitches... 1) physical breakdown of components in the audio amplifier - capacitors, semiconductors being the most likely. 2) non-monoticity in the d-a converters 3) breaks in the data stream to the d-c converters, caused by: - the cpu does not allocate sufficient time to update buffers - the cpu cannot decode the data in the time available - the disc drive cannot deliver the data in time - the disc takes time out to recalibrate its hardware, and has insufficient space on its buffer ram to cover the glitch 4) Problems with the decoder software, including: - errors decoding the bitstream - errors allocating memory - problems with non-standard bit-streams - problems interfacing with the hardware ram buffers Of these, (1) will show itself randomly, though it may be dependent on time of operation (and therefore heat), and it will occur whether audio is being replayed or not. (2) will show every time the signal ramps past the non-monotonic part of the signal. Expect symptoms ranging from apparently simple noise to aliasing or even frequency doubling. (3) will show as short silences in the audio, randomly, so not appearing at the same point every time you replay the same track. (4) might be randomly timed dropouts, or might occur at the same point in the bitstream. As the problem increases with time - and presumably heat - I'd be inclined to suspect something from (3), if it's showing as noticeable pauses. If it's just ticks, then it's likely caused by sudden jumps in the dac output, perhaps because samples have been missed or because there's a driver problem. For what it's worth, I had problems on the 70 with ticking on a .ogg decoder; it would gradually start to tick on both channels, and appeared to be dropping the occasional sample. If you paused and restarted the decode, the audio image would shift back to the centre, an implication that data was not being replayed at the same speed in both channels (!). The audio hardware in a PC is bizarre, mostly for legacy reasons. The audio chip can only access buffers in the lower 16MB, and there are restrictions about crossing 64kB boundaries <sigh>. This is controllable in DOS, but once you add W95/8 and directSound to the mix it gets really silly: data is decoded to an upper memory buffer (all user program memory is allocated in the top 2GB of the memory space, mapped to wherever the physical memory is), mixed (and possibly rate changed) with any other audio present to a second buffer, and transferred to the final buffer; then, it's DMA'd by the audio output chip. The data rate coming off the disc is miniscule in processor terms... even a 384kb/s rate only equates to 48kB/s, nothing, really. This probably hasn't helped you... but my guess is still software. I found when I was running the 70, which I had overclocked IIRC, that most of the audio programs couldn't hack it. Certainly I didn't want *anything* that had on-screen animation going on. Sonique is one that I use a lot, uses very little processor time, though you might be able to find an older version. Another one I used successfully was mpg123 for dos; there are a few versions hanging around but http://www.fareham.org/mpg123/ is probably a good start. It's command line only, and you can set all sorts of things like forcing mono playback (less decoding) and setting bigger buffers. IIRC it runs in a dos box. Worth a play. Hope this helps, Neil