I might or might not be confused about why the size of my buffer has to be the way it is in order for my application to work. So I'll explain everything I'm thinking and you guys can tell me if I'm on the right track and/or explain it to me better. Pardon if this seems a little messy, I wrote it as if I was "thinking on paper."
BUF = 2048
my sample rate is 44100hz, stereo (16bit / 2 channel)
My application won't work with anything below 11, happens to be that BUF * 11 \~ (44100/2)!
It seems like the buffer has to be > (44100 / 2) ?Nyquist–Shannon sampling theorem? I'm thinking I'm not actually sampling at 44100, but at half. (I don't think that's why though... ok new direction...)
44100*2(channels)*2(16bit)=176400 byte array... right? well... then I thought then that int32 bit value \~ 176400/4(32bit) = 44100 int32 bytes....
So then this popped in to my mind... the above could work IF you store a 16 bit value in to a 32 bit integer you get half the space used!
So 44100 / 2 = 21050 which is \~ BUF*11 which is what I need MIN for my app to work.
So did I understand this correctly? Or did I say something completely stupid?