Electronic devices may render streams of audio to drive components such as speakers, actuators, and so on. Typically, such electronic devices may render multiple streams of audio within a particular period of time. In some cases, the rendering of such multiple streams of audio may need to be synchronized with another type of output, such as a haptic or visual output.
For example, a haptic output device may include both a tactile and an audio component as part of a haptic output. The components that produce the tactile and audio components may be driven by data that is delivered (“streamed”) from an internal processing unit. In such an example, many electronic devices simply output the tactile and audio outputs as they are received from the processing unit, according to a time stamp in the data streams of the tactile and audio data, or otherwise approximate rendering the two output types are roughly the same time.
However, these approaches do not necessarily yield true synchronized output. For example, the latency between the processing unit and one of the rendering components may be different than the latency between the processing unit and another of the rendering components. Likewise, data for one type of output may be ready or transmitted before the other type of data. Further, it may simply take more time for one of the rendering components to prepare and output its data.
Additionally, some electronic devices that utilize independent renderers to render each of the multiple output streams may not synchronize the renderings. To the contrary, such an electronic device may instruct independent renderers to render the various multiple streams and accept any lack of synchronization that occurs. Other electronic devices may combine rendering of the multiple streams into a single, unitary process. However, in such a case the rendering of the various multiple streams is not performed independently.
In the above cases, there may be a perceptible dissonance between the various types of output. They may appear to be out of sync, thereby losing their effectiveness and creating an unpleasant sensation in a user.
Accordingly, an improved apparatus and method for synchronizing output rendering may be useful.