Scalable audio processing on a heterogeneous processor array
AssigneeEuPhonics, Incorporated
InventorsRobert Crawford Maher, Jeffrey Barish
Life of this patent
Estimating the term…
Abstract
The present invention provides apparatus and methods which allow music synthesis and audio processing tasks to dynamically scale from a default processor to additional processors in a heterogeneous array of processors in a manner transparent to the user. A router running on one of the processors in the array knows or estimates the load on each processor, and dynamically allocates processing tasks based upon the current load on each processor and its capacity. Processing parameters are shared between all the audio processors to ensure that perceived audio quality is independent of where a task is running.
Claims22
Apparatus for dynamically scaling audio processing among processors in a heterogeneous processor array, said array comprising a default processor and at least one additional processor, said apparatus comprising:
- means for determining a current audio processing load value for each processor;
- and
- means for allocating audio processing load among the processors dynamically, based upon the load values;
- wherein the means for allocating comprises:
- means for dividing voices into groups according to timbre;
- means for selecting a particular group of voices to allocate to an individual processor;
- and
- means for allocating the particular group of voices to the individual processor.
Apparatus for dynamically scaling audio processing among processors in a heterogeneous processor array, said array comprising a default processor and at least one additional processor, said apparatus comprising:
- means for determining a current audio processing load value for each processor;
- and
- means for allocating audio processing load among the processors dynamically, based upon the load values;
- wherein the means for determining comprises:
- means for counting the number of voices allocated to each processor;
- and
- means for estimating the audio processing load value for each processor based upon the number of voices assigned to each processor.
Apparatus for dynamically scaling audio processing among processors in a heterogeneous processor array, said array comprising a default processor and at least one additional processor, said apparatus comprising:
- means for determining a current audio processing load value for each processor;
- and
- means for allocating audio processing load among the processors dynamically, based upon the load values;
- wherein the means for allocating comprises means for allocating voices and effects processing among the processors;
- and
- wherein the means for determining comprises a lookup table of load figures for each note and effect, and means for computing the audio processing load value for each processor based upon the voices and effects assigned to each processor and the load figure for each note and effect.
Apparatus for dynamically allocating audio processing tasks between at least two processors, said apparatus comprising:
- a host audio processor;
- and
- at least one hardware acceleration unit connected to the host processor;
- wherein the host processor includes:
- means for determining current audio processing load values for the host processor and the hardware acceleration unit;
- and
- means for allocating audio processing tasks among the host processor and the hardware acceleration unit dynamically, based upon the load values;
- and
- wherein the means for allocating further comprises:
- means for dividing voices into groups according to timbre;
- means for selecting a first group of voices to allocate to the host processor and a second group of voices to allocate to the hardware acceleration unit;
- and
- means for allocating the first group of voices to the host processor and the second group of voices to the hardware acceleration unit.
Dependencies are inferred from the claim text.