Progressive calculation and application of rendering configurations for dynamic applications
Some examples involve rendering received audio data by determining a first relative activation of a set of loudspeakers in an environment according to a first rendering configuration corresponding to a first set of speaker activations, receiving a first rendering transition indication indicating a transition from the first rendering configuration to a second rendering configuration and determining a second set of speaker activations corresponding to a simplified version of the second rendering configuration. Some examples involve performing a first transition from the first set of speaker activations to the second set of speaker activations, determining a third set of speaker activations corresponding to a complete version of the second rendering configuration and performing a second transition to the third set of speaker activations without requiring completion of the first transition.
1 . An audio processing method, comprising:
receiving, by a control system and via an interface system, audio data, the audio data including one or more audio signals and associated spatial data, the spatial data indicating an intended perceived spatial position corresponding to an audio signal;
rendering, by the control system, the audio data for reproduction via a set of loudspeakers of an environment, to produce first rendered audio signals, wherein rendering the audio data for reproduction involves determining a first relative activation of a set of loudspeakers in the environment according to a first rendering configuration, the first rendering configuration corresponding to a first set of speaker activations, wherein rendering the audio data for reproduction also involves determining and implementing loudspeaker delays in a frequency domain and implementing sub-block delay filtering;
providing, via the interface system, the first rendered audio signals to at least some loudspeakers of the set of loudspeakers of the environment;
receiving, by the control system and via the interface system, a first rendering transition indication, the first rendering transition indication indicating a transition from the first rendering configuration to a second rendering configuration;
determining, by the control system, a second set of speaker activations corresponding to a simplified version of the second rendering configuration;
performing, by the control system, a first transition from the first set of speaker activations to the second set of speaker activations;
determining, by the control system, a third set of speaker activations corresponding to a complete version of the second rendering configuration; and
performing, by the control system, a second transition to the third set of speaker activations without requiring completion of the first transition.
2 . The method of claim 1 , wherein the first set of speaker activations, the second set of speaker activations and the third set of speaker activations are frequency-dependent speaker activations.
3 . The method of claim 2 , wherein the frequency-dependent speaker activations involve applying, in at least a first frequency band, a model of perceived spatial position that produces a binaural response corresponding to an audio object position at the left and right ears of a listener.
4 . The method of claim 3 , wherein the frequency-dependent speaker activations involve applying, in at least a second frequency band, a model of perceived spatial position that places a perceived spatial position of an audio signal playing from a set of loudspeakers at a center of mass of the set of loudspeakers' positions weighted by the loudspeaker's associated activating gains.
5 . The method of claim 1 , wherein at least one of the first set of speaker activations, the second set of speaker activations or the third set of speaker activations is a result of optimizing a cost that is a function of:
a model of perceived spatial position of the audio signal played when played back over the set of loudspeakers in the environment;
a measure of proximity of the intended perceived spatial position of the audio signal to a position of each loudspeaker of the set of loudspeakers; and
one or more additional dynamically configurable functions, wherein the one or more additional dynamically configurable functions are based on one or more of: proximity of loudspeakers to one or more listeners; proximity of loudspeakers to an attracting force position, wherein an attracting force is a factor that favors relatively higher activation of loudspeakers in closer proximity to the attracting force position; proximity of loudspeakers to a repelling force position, wherein a repelling force is a factor that favors relatively lower activation of loudspeakers in closer proximity to the repelling force position; capabilities of each loudspeaker relative to other loudspeakers in the environment; synchronization of the loudspeakers with respect to other loudspeakers; wakeword performance; or echo canceller performance.
6 . The method of claim 1 , further comprising:
receiving, by the control system and via the interface system, a second rendering transition indication, the second rendering transition indication indicating a transition to a third rendering configuration;
determining, by the control system, a fourth set of speaker activations corresponding to the third rendering configuration; and
performing, by the control system, a third transition to the fourth set of speaker activations without requiring completion of the first transition or the second transition.
7 . The method of claim 6 , further comprising:
receiving, by the control system and via the interface system, a third rendering transition indication, the third rendering transition indication indicating a transition to a fourth rendering configuration;
determining, by the control system, a fifth set of speaker activations corresponding to the fourth rendering configuration; and
performing, by the control system, a fourth transition to the fifth set of speaker activations without requiring completion of the first transition, the second transition or the third transition.
8 . The method of claim 1 , further comprising:
receiving, by the control system and via the interface system and sequentially, second through (N)th rendering transition indications, where N is an integer;
determining, by the control system, fourth through (N+2) th sets of speaker activations corresponding to the second through (N) th rendering transition indications;
performing, by the control system and sequentially, third through (N) th transitions from the fourth set of speaker activations to a (N+1) th set of speaker activations; and
performing, by the control system, an (N+1) th transition to the (N+2) th set of speaker activations without requiring completion of any of the first through (N) th transitions.
9 . The method of claim 1 , further comprising:
receiving, by the control system and via the interface system, a second rendering transition indication, the second rendering transition indication indicating a transition to a third rendering configuration;
determining, by the control system, a fourth set of speaker activations corresponding to a simplified version of the third rendering configuration;
performing, by the control system, a third transition from the third set of speaker activations to the fourth set of speaker activations;
determining, by the control system, a fifth set of speaker activations corresponding to a complete version of the third rendering configuration; and
performing, by the control system, a fourth transition to the fifth set of speaker activations without requiring completion of the first transition, the second transition or the third transition.
10 . The method of claim 1 , further comprising:
receiving, by the control system and via the interface system and sequentially, second through (N) th rendering transition indications, where N is an integer;
determining, by the control system, a first set of speaker activations and a second set of speaker activations for each of the second through (N) th rendering transition indications, the first set of speaker activations corresponding to a simplified version of a rendering configuration and the second set of speaker activations corresponding to a complete version of a rendering configuration for each of the second through (N) th rendering transition indications;
performing, by the control system and sequentially, third through (2N−1) th transitions from a fourth set of speaker activations to a (2N) th set of speaker activations; and
performing, by the control system, a (2N) th transition to a (2N+1) th set of speaker activations without requiring completion of any of the first through (2N) th transitions.
11 . The method of claim 1 , wherein a single renderer instance renders the audio data for reproduction.
12 . The method of claim 1 , wherein rendering the audio data for reproduction comprises determining a single set of interpolated activations from the first and second rendering configurations and applying the single set of interpolated activations to produce a single set of rendered audio signals.
13 . The method of claim 12 , wherein the single set of rendered audio signals is fed into a set of loudspeaker delay lines, the set of loudspeaker delay lines including one loudspeaker delay line for each loudspeaker of a plurality of loudspeakers.
14 . The method of claim 1 , wherein determining and implementing speaker delays in the frequency domain involves determining and implementing a combination of transform block delays and sub-block delays applied by frequency domain filter coefficients, the sub-block delays being residual phase terms which allow for delays which are not exact multiples of a frequency domain transform block size.
15 . The method of claim 1 , wherein rendering the audio data for reproduction also involves implementing a set of transform block delay lines with separate read offsets.
16 . The method of claim 1 , wherein implementing the sub-block delay filtering involves implementing multi-tap filters across blocks of the frequency domain transform.
17 . The method of claim 16 , wherein the rendering of the audio data for reproduction comprises determining and applying interpolated speaker activations and crossfade windows for each rendering configuration.
18 . The method of claim 17 , wherein rendering the audio data for reproduction also involves implementing a set of transform block delay lines with separate delay line read offsets, wherein crossfade window selection is based, at least in part, on the delay line read offsets and wherein the crossfade windows are designed to have a unity power sum if the delay line read offsets are not identical.
19 . The method of claim 1 , wherein the rendering of the audio data for reproduction is performed in a frequency domain.
20 . The method of claim 1 , wherein the first set of speaker activations are for each of a corresponding plurality of positions in a three-dimensional space.
21 . The method of claim 1 , wherein the spatial data comprises positional metadata.
22 . The method of claim 1 , wherein the first set of speaker activations correspond to a channel-based audio format.
23 . The method of claim 22 , wherein the intended perceived spatial position comprises a channel of the channel-based audio format.
24 . An apparatus, comprising:
an interface system and
a control system configured to:
receive, via the interface system, audio data, the audio data including one or more audio signals and associated spatial data, the spatial data indicating an intended perceived spatial position corresponding to an audio signal;
render the audio data for reproduction via a set of loudspeakers of an environment, to produce first rendered audio signals, wherein rendering the audio data for reproduction involves determining a first relative activation of a set of loudspeakers in the environment according to a first rendering configuration, the first rendering configuration corresponding to a first set of speaker activations, wherein rendering the audio data for reproduction also involves determining and implementing loudspeaker delays in a frequency domain and implementing a set of transform block delay lines with separate read offsets;
provide, via the interface system, the first rendered audio signals to at least some loudspeakers of the set of loudspeakers of the environment;
receive, via the interface system, a first rendering transition indication, the first rendering transition indication indicating a transition from the first rendering configuration to a second rendering configuration;
determine a second set of speaker activations corresponding to a simplified version of the second rendering configuration;
perform a first transition from the first set of speaker activations to the second set of speaker activations;
determine a third set of speaker activations corresponding to a complete version of the second rendering configuration; and
perform a second transition to the third set of speaker activations without requiring completion of the first transition.
25 . One or more non-transitory media having software stored thereon, the software including instructions for controlling one or more devices to perform a method, the method comprising:
receiving, by a control system and via an interface system, audio data, the audio data including one or more audio signals and associated spatial data, the spatial data indicating an intended perceived spatial position corresponding to an audio signal;
rendering, by the control system, the audio data for reproduction via a set of loudspeakers of an environment, to produce first rendered audio signals, wherein rendering the audio data for reproduction involves determining a first relative activation of a set of loudspeakers in the environment according to a first rendering configuration, the first rendering configuration corresponding to a first set of speaker activations, wherein rendering the audio data for reproduction also involves determining and implementing loudspeaker delays in a frequency domain and wherein determining and implementing speaker delays in the frequency domain involves determining and implementing a combination of transform block delays and sub-block delays applied by frequency domain filter coefficients, the sub-block delays being residual phase terms which allow for delays which are not exact multiples of a frequency domain transform block size;
providing, via the interface system, the first rendered audio signals to at least some loudspeakers of the set of loudspeakers of the environment;
receiving, by the control system and via the interface system, a first rendering transition indication, the first rendering transition indication indicating a transition from the first rendering configuration to a second rendering configuration;
determining, by the control system, a second set of speaker activations corresponding to a simplified version of the second rendering configuration;
performing, by the control system, a first transition from the first set of speaker activations to the second set of speaker activations;
determining, by the control system, a third set of speaker activations corresponding to a complete version of the second rendering configuration; and
performing, by the control system, a second transition to the third set of speaker activations without requiring completion of the first transition.