Patent ID: 7568057

Claim:
An apparatus for playing audio to a user in a computing system, comprising: at least one audio application to provide the user an interface to play a sound; an audio mixer to mix portions of audio data provided by the at least one audio application, the mixed audio data being stored in a buffer in a memory of the computing system (“memory buffer”); an audio controller to transfer the mixed audio data from the memory buffer to a buffer local to the audio controller (“controller buffer”), the controller buffer having a capacity to store enough audio data to enable the audio controller to remain self-sufficient without data transfer from the memory buffer to the controller buffer for a period of time longer than 100 milliseconds; and an audio codec to obtain the mixed audio data from the controller buffer and to render the mixed audio data to the user, and wherein the audio controller to detect an event that requires a new sound to be played that is different from a currently playing sound, wherein the audio controller further to determine, in response to the detecting the event, that an amount of data in the controller buffer is larger than a predetermined limit, and wherein the audio controller further to re-fetch from the memory buffer audio data which is previously buffered in the controller buffer but has not yet been transmitted to the audio codec, the re-fetching the audio data in response to the determining that the amount of data in the controller buffer is larger than the predetermined limit.