Audio sample playback unit
AssigneeSynesthesia Corporation
InventorVincent DeFranco
Life of this patent
Estimating the term…
Abstract
Disclosed herein are a number of example embodiments for an improved audio sample playback unit. For example, multi-dimensional mapping of triggers to audio samples is disclosed. Also disclosed is low latency retrieval and playback of audio samples via pre-loading of sample heads into high speed memory. Furthermore, disclosed herein is a multi-threaded control operation for generating audio frames in response to trigger inputs, as well as the use of multiple pipes from which audio data can be generated. Further still, an example embodiment provides for multi-level control of audio properties, including voice-specific controls, pipe-specific controls, and global controls.
Claims25
An audio sample playback apparatus comprising:
- a memory configured to store (1) a plurality of audio samples and (2) a mapping data structure for the audio samples, the mapping data structure configured to associate the audio samples with at least one trigger parameter;
- and
- a processor configured to (1) maintain a plurality of pipes of audio samples, (2) receive trigger inputs, (3) for each of a plurality of the received trigger inputs, (i) determine at least one trigger parameter from the received trigger input, (ii) access the mapping data structure to identify a triggered audio sample associated with the determined at least one trigger parameter, and (iii) retrieve the identified triggered audio sample from the memory, (4) assign each of a plurality of the triggered audio samples to a pipe selected from among the pipes, and (5) generate a plurality of audio frames based on the triggered audio samples assigned to the pipes.
An audio sample playback apparatus comprising:
- a memory configured to store (1) a plurality of audio samples and (2) a mapping data structure for the audio samples, the mapping data structure configured to associate the audio samples with at least one trigger parameter;
- and
- a processor configured to (1) receive trigger inputs and (2) for each of a plurality of the received trigger inputs, (i) determine at least one trigger parameter from the received trigger input, (ii) access the mapping data structure to identify a triggered audio sample associated with the determined at least one trigger parameter, (iii) retrieve the identified triggered audio sample from the memory, and (iv) generate an audio frame based on the retrieved triggered audio sample;
- wherein the processor is further configured to execute a plurality of threads concurrently to control audio sample playback in response to the received trigger inputs, wherein the threads comprise:
- a main thread;
- a mixer thread;
- a disk thread;
- and
- a jack process thread;
- wherein the main thread communicates with the mixer thread via a dispatch ring buffer;
- wherein the mixer thread communicates with the disk thread via a disk ring buffer;
- and
- wherein the mixer thread communicates with the jack process thread via a jack ring buffer.
An audio sample playback apparatus comprising:
- a memory configured to store (1) a plurality of audio samples and (2) a mapping data structure for the audio samples, the mapping data structure configured to associate the audio samples with at least one trigger parameter;
- and
- a processor configured to (1) receive trigger inputs and (2) for each of a plurality of the received trigger inputs, (i) determine at least one trigger parameter from the received trigger input, (ii) access the mapping data structure to identify a triggered audio sample associated with the determined at least one trigger parameter, (iii) retrieve the identified triggered audio sample from the memory, and (iv) generate an audio frame based on the retrieved triggered audio sample;
- wherein the processor is further configured to execute a plurality of threads concurrently to control audio sample playback in response to the received trigger inputs, wherein the threads include a thread configured to (1) receive trigger data, (2) determine which of the audio samples have been triggered based on the mapping data structure as applied to the received trigger data, (3) populate voices with data about the triggered audio samples, and (4) dispatch the populated voices to a buffer.
Dependencies are inferred from the claim text.