Streaming Vorbis and audio processing
2008-02-08 00:04:58
Okay, I've been noticing problems with Ogg Vorbis (aotuv b5, b4.51, b4 and xiph 1.1, 1.1.1, 1.1.2, 1.2) and I can't figure out the cause. I have some ideas on what it could be, but I'd like to get some advice on it first. I do a live stream via Icecast. I use darkice to push to the icecast server, aotuv as the encoding library, and I'm using a Santa Cruz to capture from line-in, which comes from my audio processing computer (500mhz ipaq celeron system dedicated to running soundsolution via winamp line-in), processing the output from my mixing board, which completes its run around the audio processing chain by pulling the audio input from the santa cruz card in my linux computer for music playback (line-in output disabled to avoid feedback). Confusing setup, takes about 30 mins to set it all up when I feel like streaming. However, I don't suspect the Linux computer or the mixing board, I suspect the audio processing and encoder not playing nicely together. The reason I bring this up here is because I'm pretty sure that the encoder is optimized for something that my audio processing setup is completely going against. I know it's not a problem with the encoder itself, since I use the same exact library to encode my CDs with at q4, they sound fantastic and have very reasonable bitrates around where they should be (120-130kbps) On average, if I set the stream quality level to q0, the bitrate averages 100kbps and everything sounds extremely fat and warbly. The lowest 'listenable' quality level is 2, with average bitrate around 130-150kbps. I can't figure out what is causing the bitrates to inflate. I thought it was possible that the audio processing was sending out some interference since it's a mostly analog chain, but I enabled a low pass and high pass to chop off 'unusable' frequencies to no avail. I set the max frequency as low as 15khz in the audio processing, still highly inflated bitrates and poor sound quality. I've even tried using the ac'97 card in my linux computer for input, no change (besides the fact that the ac'97 sucks for sound quality and everything sounds dull). Bypassing the audio processing system works, but the audio processing really does sound good, despite it eating up almost double the bandwidth. I'd assume that any processing will inflate the bitrate, but almost double the bitrate is way too much imo. I've been able to reproduce this problem with oddcast on windows with a soundblaster input, so it's not a problem with my soundcard or the darkice program. The audio processing is responsible for stereo expansion, bass shelving, 5 band dynamic range compression (light compression, since i play dozens of different types of music and want the sound to be somewhat consistent), gating (also lightly), and a little bit of leveling. I can't figure out which of these could inflate the bitrate. I've disabled stereo expansion since I suspected it was messing with the lossy stereo coupling, no significant change. I guess my main questions are could the dynamic range compression be messing with the encoder? Could it likely be bad output from the ipaq i'm using for audio processing? Perhaps bad wiring causing an unhearable artifact that the encoder is picking up on? I'm so out of ideas on how to fix this. I've been having this issue for quite a while and I just want to fix it. MP3 sounds fantastic at 128kbit, vorbis loses at the same bitrates. I love vorbis, though, and want to keep using it. I just want to know if there is a way to fix this. I can provide a sample clip tomorrow so you can see what I'm talking about (at work right now, no internet at home until tomorrow), but if anyone has any ideas, please post them. I'm just hoping someone who knows vorbis very well can tell me what to look for in terms of the audio stream itself. I want to optimize my audio processing to accent vorbis, not fight it, but I haven't even been able to break even yet. I've streamed with MP3 a few times, once at 192kbps, another at 128kbps. Both times people commented on how much better the stream sounded, which really gives vorbis a black eye. Is there anything obvious I'm missing here? Does vorbis rely on a lot of dynamic range? Maybe it's too good and is picking up an undesirable and unhearable artifact somewhere in the chain? I'm really having a hard time figuring this out, but I'll post a sample clip tomorrow and maybe someone who knows what to listen for can tell me why this problem is still around, or maybe someone can figure out whats going on just from my description? Thanks in advance.