Tuesday, September 8, 2015

i'm almost certain it's good to go. the last thing had to do with setting the buffer sizes, and this isn't supposed to make any difference on playback, but it definitely does. i can't really explain it, but it seems to be the last piece.

when you hear the term "streaming audio", it gives the impression of audio flowing from start to finish with no interference. that's what the language is meant to invoke. but, it's a digital process, so of course it's not true. rather, there's a continual process of small amounts of data moving into buffers, and the buffers moving forward like a conveyor belt. the buffer size is how big those chunks of data are, measured in samples or seconds or bytes. this is user configurable for largely historical reasons.

the conventional wisdom is that this shouldn't matter because it's just a determination of how big the copy operation is. it's broadly seen as a largely legacy issue, mostly to do with processor speed. older processors had to take larger buffers because they couldn't work as fast. what that would create is choppy playback, rather than differences in tone, because it was struggling to process fast enough to put the stream together in real time. but, modern processors don't have that problem, so it's supposed to be that it doesn't really matter.

but, that's not happening. i'm noticing that i need to get the buffer size to a certain minimum point in order to maintain tonal integrity, which is sort of weird. sometimes it's the bass that sounds a little thin, other times it's the higher parts - but mostly sustained parts. it's almost more like it's a reverb issue. and, this is known in some sense. if you put a reverb plugin on an out, then the reverb calculation will be different if it takes the stream in in small chunks than it will be if it takes it in in large chunks - because it's reverberating over different lengths. but, that only makes sense on playback if windows is interfering somewhere along the way.

in fact, i have noticed this previously, so reducing the issue back to an issue i've dealt with on a functioning system indicates i'm back in functional territory.

i need to eat. but, i think i'm very close.