Mirage, the problem is that there's no callback or anything which is called when the buffer has been finished. You have to poll it yourself. Calls to the OpenAL API are nonblocking to my knowledge.

Doublebuffering will help against studdering and silences between updates, but you still have to do the polling with regular timesteps