Patent ID: 7774077

Claim:
A method of providing selected channels of audio data to clients, the method comprising: receiving an audio stream comprising multiple channels of audio data, wherein the multiple channels of audio data, when combined, constitute an overall audio composition; wherein receiving said audio stream comprises: receiving, at a first time, a first push of audio data comprising audio data of each channel of the multiple channels, and receiving, at a second time after said first time, a second push of audio data comprising audio data of each channel of the multiple channels; storing each channel of the audio stream in a separate section of a buffer; wherein the buffer comprises a plurality of sections; wherein each section of the plurality of sections stores audio data of only one channel of the multiple channels; wherein each channel of the multiple channels is stored in only one section of the plurality of sections; wherein storing each channel of the audio stream in a separate section of the buffer comprises: for each audio data of each channel from the first push of audio data, storing a copy of the each audio data in the section of buffer that stores audio data of the each channel, and for each audio data of each channel from the second push of audio data, storing a copy of the each audio data in the section of the buffer that stores audio data of the each channel; receiving a first request from a first client for audio data of a requested channel of the multiple channels; receiving a second request from a second client for audio data of the requested channel of the multiple channels; wherein the first client is different from the second client; wherein the first request and the second request are distinct requests received at distinct times; and for the first request, providing, to the first client, audio data of the requested channel from: (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and (b) the copy of the audio data of the requested channel from the second push of audio data stored in the section of the buffer in which audio data for the requested channel is stored; for the second request, providing, to the second client, audio data of the requested channel from: (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and (b) the copy of the audio data of the requested channel from the second push of audio data stored in the section of the buffer in which audio data for the requested channel is stored; wherein the method is performed by one or more computing devices.