Methods and systems for synchronizing visualizations with audio streams
First Claim
1. A system for synchronizing a visualization with audio samples comprising:
- first means configured to receive and preprocess audio samples before the samples are rendered by a renderer that comprises part of a media player, the first means preprocessing the samples to provide characterizing data derived from each sample, the characterizing data comprising a timestamp associated with each audio sample, the timestamp being assigned in accordance with when the audio sample is calculated to be rendered by the renderer, wherein the first means comprises a Fast Fourier Transform that it utilizes to process the audio samples to provide frequency data associated with the audio samples;
second means to hold the characterizing data, each second means being associated with an audio sample;
third means configured to call the first means to ascertain the characterizing data associated with an audio sample that is currently being rendered by the renderer;
the first means being configured to ascertain said characterizing data by querying the renderer for a time associated with the currently-rendered audio sample, and then using said time to identify a data structure having a timestamp that is nearest in value to said time; and
fourth means configured to receive characterizing data that is associated with the second means having the timestamp that is nearest in value to said time, and use the characterizing data to render a visualization that is synchronized with the audio sample that is being rendered by the renderer.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems are described that assist media players in rendering visualizations and synchronizing those visualizations with audio samples. In one embodiment, visualizations are synchronized with an audio stream using a technique that builds and maintains various data structures. Each data structure can maintain data that is associated with a particular pre-processed audio sample. The maintained data can include a timestamp that is associated with a time when the audio sample is to be rendered. The maintained data can also include various characteristic data that is associated with the audio stream. When a particular audio sample is being rendered, its timestamp is used to locate a data structure having characteristic data. The characteristic data is then used in a visualization rendering process to render a visualization.
-
Citations
13 Claims
-
1. A system for synchronizing a visualization with audio samples comprising:
-
first means configured to receive and preprocess audio samples before the samples are rendered by a renderer that comprises part of a media player, the first means preprocessing the samples to provide characterizing data derived from each sample, the characterizing data comprising a timestamp associated with each audio sample, the timestamp being assigned in accordance with when the audio sample is calculated to be rendered by the renderer, wherein the first means comprises a Fast Fourier Transform that it utilizes to process the audio samples to provide frequency data associated with the audio samples;
second means to hold the characterizing data, each second means being associated with an audio sample;
third means configured to call the first means to ascertain the characterizing data associated with an audio sample that is currently being rendered by the renderer;
the first means being configured to ascertain said characterizing data by querying the renderer for a time associated with the currently-rendered audio sample, and then using said time to identify a data structure having a timestamp that is nearest in value to said time; and
fourth means configured to receive characterizing data that is associated with the second means having the timestamp that is nearest in value to said time, and use the characterizing data to render a visualization that is synchronized with the audio sample that is being rendered by the renderer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 12)
-
-
8. A system for providing a visualization comprising:
-
means for receiving multiple audio samples;
means for pre-processing the audio samples before they are rendered by a media player renderer, the pre-processing deriving characterizing data from each sample, wherein the characterizing data comprises a timestamp associated with the audio sample, the timestamp being provided based upon when the audio sample is calculated to be rendered by the media player renderer;
means for maintaining characterizing data for each audio sample in a data structure associated with each audio sample;
means for determining when an audio sample is being rendered by the media player renderer, wherein said means for determining comprises;
means for ascertaining a time associated with a currently-rendered audio sample;
means for selecting a data structure having a timestamp that is nearest the time; and
means for providing characterizing data associated with the selected data structure to a component configured to provide the visualization; and
means for using the characterizing data that is associated with the audio sample that is being rendered to provide a visualization. - View Dependent Claims (9, 10)
-
-
11. A system for providing a visualization comprising:
-
means for defining a frame rate at which visualization frames of a visualization are to be rendered, the visualization frames being rendered from characterizing data that is computed from audio samples and which is used to create the visualization;
means for setting a threshold associated with an amount of time that is to be spent rendering a visualization frame;
means for monitoring the time associated with rendering individual visualization frames;
means for determining whether a visualization frame rendering time exceeds the threshold; and
means for providing an effective frame rate for rendering visualization frames that is longer than the defined frame rate if the determined visualization frame rendering time exceeds the threshold. - View Dependent Claims (13)
-
Specification