×

Encoded audio synchronization

  • US 10,454,604 B2
  • Filed: 10/02/2015
  • Issued: 10/22/2019
  • Est. Priority Date: 10/02/2015
  • Status: Active Grant
First Claim
Patent Images

1. A method of synchronizing playback of audio over a plurality of wireless speaker packages that are each adapted to play audio, where the audio comprises an audio track or stream that comprises a plurality of frames of encoded audio data, wherein one of the plurality of wireless speaker packages is a master playback device that receives encoded audio data from an audio source and distributes the encoded audio data to the rest of the plurality of wireless speaker packages, which function as slave playback devices, wherein each of the wireless speaker packages comprises an encoded data buffer that stores frames of encoded audio data, and wherein each of the wireless speaker packages comprises a decoder that decodes encoded data that is stored in the encoded data buffer of the respective wireless speaker package and a decoded data buffer that stores frames of decoded audio data, and wherein the master playback device and the slave playback devices have clocks that are synchronized, the method comprising:

  • the master playback device determining and providing to the slave playback devices a play at time for audio received from an audio source, wherein the play at time is provided to the slave playback devices separately from the audio data and is provided only once per track or stream;

    using the decoder of the master playback device to determine an offset time for each of a plurality of frames of encoded audio data, where the offset time defines the time after the play at time when the playback of the respective frame is to begin;

    using the decoder of the master playback device to determine a checksum on the decoded audio samples or the quantity of audio samples in the frame for each frame of encoded audio data stored in the encoded data buffer of the master playback device;

    inserting the determined offset time into the respective frame of encoded audio data;

    storing in the encoded data buffer of the master playback device the encoded frames along with the inserted determined offset times and the determined checksum on the decoded audio samples or the quantity of audio samples for the respective frames;

    distributing frames from the master encoded data buffer to each of the slave playback devices;

    wherein the slave playback devices also determine the checksum on the decoded audio samples or the quantity of audio samples in the frame, for each frame of encoded audio data they receive from the master playback device;

    wherein the slave playback devices synchronize playback of audio with the master playback device based at least in part on a match between the determined checksum on the decoded audio samples or the quantity of audio samples in the frame determined by the master and that was stored in the master encoded data buffer along with the respective frame, and the checksum on the decoded audio samples or the quantity of audio samples in the frame as determined by the slave playback device; and

    wherein the slave playback devices synchronize playback of audio with the master playback device beginning by playing a first frame when the play at time plus the offset for that first frame equals the current synchronized clock time;

    wherein a joining slave playback device is configured to join an ongoing playback of a track or stream by the master playback device, by;

    the joining slave playback device pulling from the encoded data buffer of the master playback device a plurality of encoded frames along with the inserted determined offset times and the determined checksums or the quantity of audio samples for each of the plurality of pulled encoded frames; and

    placing the decoders of the joining slave playback device and the master playback device in the same state, wherein the state is based on a match between the master playback device and the joining slave playback device on the checksum on the audio samples or the quantity of audio samples in the plurality of pulled encoded frames.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×