This invention references a patent application entitled “A Method of Synchronizing Clocks the Playback of a Digital Audio Broadcast using an Audio Waveform Sample”, and a patent application entitled “A Method of Manually Fine-Tuning Audio Synchronization of a Home Network”.
This invention generally relates to audio playback for multiple devices, and specifically, to synchronizing the audio playback.
In order to achieve a depth and richness of sound, two or more audio devices are used to provide a surround sound effect to the listener. These audio devices may be cabled to a controller device which provides the audio data to them. A bus may be used to supply this data. Alternatively, the different devices may communicate with each other through wireless communication, such as through an RF or infrared port.
In a system in which one computer or device broadcasts a single digital audio stream that is then simultaneously received by more than one receiving device, the different receiving devices will often play their audio slightly out of sync with each other, due to differing latencies in receiving and processing the digital audio stream. This produces an echo or delay effect which causes a listener to receive the same audio at slightly different times from the multiple devices. The listener's enjoyment is thereby impaired.
A method and apparatus for synchronizing the playback of audio from several devices is needed.
The present invention provides a method and apparatus for synchronizing the playback of the audio from several audio receivers by using a control track pulse so that there is no audible delay or echo effect between them when listened to simultaneously.
In a first aspect of the present invention, a method is disclosed for synchronizing the playback of a digital audio broadcast on a network output devices by inserting a control track pulse in an audio stream of the digital audio broadcast. The method includes the steps of outputting a first control track pulse as part of an audio signal which has unique identifying characteristics and is regularly occurring, outputting a second control track pulse, consecutive to the first control track pulse, so that the time between the first and second control track pulses must be significantly greater than the latency between sending and receiving devices (at least two times greater; preferably three, four, or more times greater), and coordinating play of audio at the time of the occurrence of the transmission of the second control track pulse assuring the simultaneous output of the audio signal from multiple devices. The control track pulses having a value unique from any other portion of the audio stream. The digital audio broadcast from multiple receivers not presenting to a listener any audible delay or echo effect.
In a second aspect of the present invention, a system for synchronizing audio playback of multiple receiving devices is disclosed which has a transmitting device and two or more receiving devices, wherein the receiving devices are synchronized through at least two of the group consisting of a control track pulse, communication latency, and processing latency. The system has a time drift detector, a clock synchronizer, a latency detector, and manual fine tune control. The receiving devices are synchronized through control track pulses and the communication latency is shorter than the time interval between consecutive control track pulses.
In a third aspect of the invention, a system for synchronizing the audio playback of two or more receiving devices is disclosed which has means for transmitting consecutive control track pulses in an audio stream and means for receiving the consecutive control track pulses in the audio stream. The time the means for receiving the control track pulse takes to act upon the audio signal is determined by a communications latency between the transmitting means and the receiving means and a processing latency is determined by internal processing by the receiving means. There is also means for synchronizing clocks located in the receiving means and means for detecting time drift in the receiving means.
It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention.
The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
Referring generally now to
The method of synchronizing audio playback may be employed on a set of audio playback devices tuned to a common network digital audio broadcast. All audio playback devices are running synchronized clocks. This method does not require that the transmitting device be in sync with the receivers. Preferably, the receivers stay in sync. The method uses a latency detector, a clock synchronizer, and a time drift detector. A master reference computer or other device first sets its own clock, then sets all clocks on all receiving devices using the latency detector and clock synchronizer. It periodically repeats the process, possibly during silence between audio broadcasts, so that the clocks stay in sync. Each receiver also periodically adjusts for time drift, between clock synchronizations, using its time drift detector.
The present invention provides a method and apparatus for synchronizing the audio playback of several devices by using a control track pulse. A control track pulse is inserted into the audio stream. The audio transmitting device inserts a control track pulse or marker into the digital audio stream at regular known intervals, i.e., exactly one per 2 seconds of audio, beginning at 0:00. This is similar to control pulses added to video tape signals to support time tracking on consumer video equipment. Like the time code value, it can be used to synchronize playback between two or more audio receivers, but unlike the time code, it is not required that the transmitter have a clock that is synchronized with the clocks of the receivers (for instance, it could be in a remote location). A “pulse” could be something as simple as inserting a single audio sample of maximum amplitude, while reducing any such naturally occurring value by one, so that the pulse value is unique in the digital stream. An example of a control track pulse is shown in
All devices may buffer the audio stream. In one embodiment, some amount of buffering of the audio stream is occurring, to allow the receiving devices to search forward and backward in the audio data, and to allow them to delay or shift audio playback. Signal transmission may be in analog or digital format.
The transmitting device might or might not be playing audio and does not have to be in sync with the receivers. If the transmitting device is local and playing audio, it would participate in the same synchronized audio playback method.
Several discrete sub-processes are used in an embodiment of the present invention. These may include a latency detector, a clock synchronizer, a time drift detector, and manual fine tune control. Each networked device supplies a real-time system clock that can be set, that measures time in increments since some beginning absolute point in time, and that measures time in sufficiently small increments to be used as a synchronization reference for digital audio.
An average latency detector detects the average latency between transmitting a signal to a device, and the device receiving the signal. “Symmetrical latency” is assumed between two computers, e.g., if a signal packet is sent from PCA to PCB, and an acknowledgment packet is returned from PCB to PCA, the time from PCA to PCB will be, on average, approximately the same as from PCB to PCA.
All devices may account for latency of their own audio playback subsystem. Playback devices must also account for normal latency in the audio subsystem. There are three different methods for this, each of which would occur after the other processes described herein have been used to synchronize the clocks on all audio playback devices. First, shifting the playback by a predetermined value, such value determined through empirical testing of the actual playback device. Second, shifting the playback by a predetermined value, such value determined at run time, by the customer, using the manual audio synchronization fine-tune control, to determine the actual latency of the device's internal audio subsystem. Third, fine-tuning the clock synchronization at run time, by the customer, using the manual audio synchronization fine-tune control.
In an embodiment of the method, several steps are used to determine the latency. First, a variable “latency” is set to 0. Second, PCA fetches its current time and records from “Start Time”. Third, PCA sends a signal packet to PCB. Fourth, PCB receives the message and immediately sends an acknowledgment to PCA. Fifth, upon receiving the acknowledgment from PCB, PCA again fetches its local time and records one-half of the difference between Start Time and the current time. Sixth, PCA averages this new latency value with all previous latency values and records it as “latency”. After n repeated cycles, it discards any “outliers”, values that are not close to the current average. The second through sixth steps are repeated as many times as necessary to get an accurate time reference.
If the assumption of symmetrical latency (above) is not true, and if the asymmetry between latency values due to differing performance characteristics between two types of computers can be quantified, this value might be either more or less than one-half.
In the case of asymmetrical latency, various techniques may be employed to determine the latency time between the transmitting device and the receiving device.
In one embodiment, as shown in
A clock synchronizer is a process that one networked computer may use to synchronize another networked computer's clock to its own. By extension, it can then synchronize all of the clocks on n computers by connecting to other computers and repeating the process.
In an exemplary embodiment, as shown in
An exemplary hardware implementation of the circuitry is shown in
A time drift detector is a simple process by which a device that is periodically receiving a time standard from the clock synchronizer checks for the amount that its own clock is drifting from the time standard, and compensates for it by periodically adding or subtracting from its own clock. It assumes that a device's system clock might drift, fast or slow, relative to the master device's clock, and that the rate of drift is constant. The time drift detector may be implemented in hardware, software, or a combination of hardware and software.
A manual audio synchronization fine-tune control allows the user to “fine tune” the end results of automated synchronization. It also allows the user to manually determine the internal latency of a device audio playback subsystem, by comparing the amount and direction of playback latency error between itself and a reference system with a known internal audio subsystem latency value. The system requires two devices playing audio, one that is the reference (PCA), and one that is adjusted by the user (PCB). The method assumes that the reference player PCA buffers and delays its own audio playback, so that PCB is able to move its own playback either forward or backward in time, relative to PCA. PCA synchronizes its clock with PCB. PCA emits an audible high-pitched pulse every n seconds, on even n second boundaries. PCB emits an audible pulse every n seconds, on even n second boundaries. PCB displays a graphic slider control to the user, defaulted to “centered” position. As the user slides the control left or right, PCB increments/decrements a correction value, and simultaneously shifts the audio click forward or backward in time. The user adjusts the slider until the two clicks converge and sound to the user as a single click. The resultant correction value may be added or subtracted from PCA's known internal latency value, to determine PCB's internal latency value.
The above process describes three separate roles for devices. However, a single device could take on any of the three roles described, i.e., it could be a receiver and the time reference, or the time reference and the audio transmitter, and the like. The process is a single time reference device (probably one of the receivers) first sets its own clock, then sets the clocks on all other receiving devices. Each receiver periodically adjusts itself for time drift. Keeping time synchronized on all receivers is its only responsibility. Each receiving device keeps the playback of the audio in sync with other devices by obtaining the exact time of the received pulse relative to its own (synchronized) clock, and then delaying the audio until the pulse exactly aligns with the next multiple of the pulse interval. For instance, if the pulse interval is once every 5 seconds, but the pulse appears 570 milliseconds prior to 2:15, the audio playback is delayed for 570 milliseconds. Note that the effect of this is that the playback on all devices is in sync, but always behind the transmission by approximately the pulse interval.
It is believed that the method of synchronizing the playback of a digital audio broadcast by inserting a control track pulse of the present invention and many of its attendant advantages will be understood by the forgoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes.
Number | Name | Date | Kind |
---|---|---|---|
3798650 | McComas et al. | Mar 1974 | A |
4005266 | Lehr et al. | Jan 1977 | A |
4234958 | Pipes et al. | Nov 1980 | A |
4543657 | Wilkinson | Sep 1985 | A |
4843617 | Marshall et al. | Jun 1989 | A |
5146585 | Smith, III | Sep 1992 | A |
5388102 | Griffith et al. | Feb 1995 | A |
5402450 | Lennen | Mar 1995 | A |
5416808 | Witsaman et al. | May 1995 | A |
5469467 | Vella-Colerio | Nov 1995 | A |
5530704 | Gibbons et al. | Jun 1996 | A |
5734985 | Ito et al. | Mar 1998 | A |
6175604 | Noro et al. | Jan 2001 | B1 |
6243372 | Petch | Jun 2001 | B1 |
6466832 | Zuqert et al. | Oct 2002 | B1 |
6594601 | Umminger et al. | Jul 2003 | B1 |
6598172 | VanDeusen et al. | Jul 2003 | B1 |
6611537 | Edens et al. | Aug 2003 | B1 |
20040148159 | Crockett et al. | Jul 2004 | A1 |
20060002681 | Spilo et al. | Jan 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20030198254 A1 | Oct 2003 | US |