# Patent

## Title
Hierarchical control path with constraints for audio dynamics processing

## Abstract

Information useful for modifying the dynamics of an audio signal is derived from one or more devices or processes operating at one or more respective nodes of each of a plurality of hierarchy levels, each hierarchical level having one or more nodes, in which the one or more devices or processes operating at each hierarchical level takes a measure of one or more characteristics of the audio signal such that the one or more devices or processes operating at each successively lower hierarchical level takes a measure of one or more characteristics of progressively smaller subdivisions of the audio signal.

## Background
TECHNICAL FIELD
The invention relates to audio signal processors, audio signal processing, and software for controlling audio signal processors and audio signal processing. In accordance with aspects of the invention, a hierarchical control path for dynamics processing is provided and constraints on audio signal dynamics processing are imposed in a hierarchical manner to provide improved performance.
BACKGROUND ART
The object of audio dynamics processing is to alter the relative level or dynamics of an audio signal to be within some desired limits. This is generally achieved by creating some type of time-varying measure of an audio signal's level (rms level or peak level, for example) and then computing and applying a signal modification (a gain change, for example) that is a function of the level measure. Dynamics processors sharing such a mode of operation are set forth in International Patent Application PCT/US 2005/038579 of Alan Jeffrey Seefeldt, published as WO 2006/047600 on May 4, 2006 and include automatic gain controls (AGCs), dynamic range controls (DRCs), expanders, limiters, noise gates, etc. The Seefeldt application designates the United States among other entities. The application is hereby incorporated by reference in its entirety.
FIG. 1 depicts a high-level block diagram of a generic audio dynamics processor that processes an audio signal (a single channel of a multichannel audio signal or an audio signal having only one channel). The processor may be considered to have two paths: an upper “signal” path 2 and a lower “control” path 4. On the lower control path, the level of the audio signal is measured by a measuring device or process (“Level Measure”) 6 and this measurement, a measure of the signal level, is then used by a dynamics control device or process (“Dynamics Control”) 8 to compute one or more signal modification parameters. Such parameters function as signal modification control signals and are used to modify the audio signal according to a dynamics processing function, which function may be a desired dynamics processing profile such as shown in FIG. 3b, described below. As shown, the modification parameters are derived from the input audio signal. Alternatively, the modification parameters may be derived from the processed (output) audio or from a combination of the input and output audio signals. In the audio signal path 2, the modification parameters generated by the Dynamics Control 8 are applied to the audio to control the modification of the audio, thereby generating the processed audio. The application of the modification parameters to an audio signal may be accomplished in many known ways and is shown generically by the multiplier symbol 12. In the audio signal path 2, the audio may be delayed by a delay device or process (“Delay”) 10 to compensate for any delay associated with the level estimation and dynamics control processes.
When dealing with complex multichannel audio material, care must be taken in computing and applying the signal modifications in order to avoid the introduction of perceptible artifacts. A basic dynamics processor receiving a multichannel audio signal input might compute a signal level that is representative of all channels combined in total and then apply the same modification to all channels based on such a total level measure. In modifying all channels in the same way, such an approach has the advantage of maintaining the relative levels among all channels, thereby preserving the spatial image (including, for example, the location of virtual images panned between channels as well as perceived diffuseness). Such an approach may work well if the applied modifications are not overly aggressive.
However, problems may arise when the desired modifications are more severe. Consider a multichannel audio signal (5.1 channels, for example) to which a dynamic range controller with a very high compression ratio is applied. With such a processor, signals above the compression threshold are attenuated significantly to bring the signal level closer to the threshold. Assume that the audio signal contains relatively constant-level background music in all channels for which the total level after combining all channels is below the compression threshold. Assume further that a brief but loud segment of dialog is introduced into the center channel. Due to the dialog, the total level of all channels combined now exceeds the compression threshold and the entire signal is therefore attenuated. Once the dialog is finished, the signal level falls back below the compression threshold and no attenuation is applied. As a result, the background music from the left, right, left surround, and right surround channels is heard to fluctuate in level or “pump” down and back up in accordance with the dialog in the center channel. The effect can be very unnatural sounding and disturbing for a listener. This type of artifact, a type of cross-modulation or intermodulation, is well recognized in the field of audio dynamics processing, and a typical prior art solution involves applying dynamic range control independently to each channel. Although such a solution may correct the aforementioned problem, it may have the disadvantage of altering the spatial image of the audio. In particular, virtual sources panned between two channels may appear to “wander” due to differing amounts of attenuation applied to the two channels. Thus, there is a need for a solution that addresses both the pumping and the unstable image problems.
Analogous problems exist when considering the spectrum of a single channel of audio. Consider a single channel that contains a sustained string note at mid to high frequencies for which the signal level is below the compression threshold. Now consider a very loud bass drum hit introduced at the low frequencies causing the signal level to momentarily increase above the compression threshold. The entire signal is momentarily attenuated resulting in the strings being perceived to pump unnaturally down and up in level in accordance with the bass drum. A typical prior art solution to this problem is to break the audio signal into multiple frequency bands and then apply dynamic range control independently to each band. This reduces the pumping problem, but may alter the perceived spectral balance or timbre. Thus, there is a need for a solution that reduces pumping while reducing changes in the perceived spectral balance.
DISCLOSURE OF THE INVENTION
In accordance with aspects of the present invention, information useful for modifying the dynamics of an audio signal is derived from one or more devices or processes operating at one or more respective nodes of each of a plurality of hierarchy levels, each hierarchical level having one or more nodes, in which the one or more devices or processes operating at each hierarchical level takes a measure of one or more characteristics of the audio signal such that the one or more devices or processes operating at each successively lower hierarchical level takes a measure of one or more characteristics of progressively smaller subdivisions of the audio signal. The information useful for modifying the dynamics of an audio signal may be applied to an audio signal in a device or process associated with the device or process that derives the information or such information may be carried along with the audio signal as metadata, for example, so that the information may be applied to the audio signal spatially and/or temporally remote. The progressively smaller subdivisions of the audio may include one or both of (1) channel subdivisions and (2) frequency band subdivisions. Said one or more devices or one or more processes at each node of each hierarchical level takes a measure of the audio at the node's hierarchical level and may derive information from such measure of the audio signal and also from information that it may receive from one or more devices or processes at another hierarchical level, as explained further below.
A first, topmost, level of the hierarchy may comprise a root node that takes a measure of a totality of the audio signal. In the case of a multichannel audio signal, at least one lower hierarchical level may comprise a plurality of nodes each taking a measure of a channel subdivision of the audio signal, and at least one further lower hierarchical level may comprise a plurality of nodes each taking a measure of a frequency subdivision of channels of the audio signal. In the case of a single channel audio signal, at least one lower hierarchical level may comprise a plurality of nodes each taking a measure of a frequency subdivision of the audio signal.
In accordance with further aspects of the present invention, information derived from a measure of the audio signal at a particular hierarchical level may be passed downward in the hierarchy to one or more lower hierarchical levels in order to influence the operation of the devices or processes operating at such hierarchical levels. Information derived from a measure of the audio information at a particular hierarchical level may comprise not only information useful for influencing the operation of devices and processes operating at one or more lower hierarchical levels but also information useful for modifying the dynamics of the audio signal.
In accordance with yet further aspects of the present invention, information derived from a measure of the audio signal at a particular lower hierarchical level and from information passed to such a lower hierarchical level may be used to influence the operation of the devices or processes operating at such a lower hierarchical level. Such influence may, for example, cause the lower hierarchical level to generate a modification of the information that it would otherwise generate. Alternatively, or in addition, information derived from a measure of the audio signal at a particular lower hierarchical level and also from information passed to such a lower hierarchical level may be passed upward in the hierarchy to one or more higher hierarchical levels in order to influence the operation of the devices or processes operating at such higher hierarchical levels. Such influence may, for example, cause a higher hierarchical level to generate a modification of the information that it would otherwise pass to one or more lower hierarchical levels or that would be used for modifying the audio signal.
FIG. 2a depicts a schematic overview of an example of hierarchical control path architecture according to aspects of the invention in which information is passed down a control path hierarchy from top to bottom (a “top-down” hierarchical arrangement). In this example of a top-down control path hierarchy, the input signal to the dynamics processor or process is a multiband audio signal and the hierarchical levels are (1) all bands of all channels (the “Total” hierarchical level), (2) channels within the multichannel audio signal (the “Channels” hierarchical level), and (3) frequency bands within each channel (the “Bands” hierarchical level). Outputs of respective Dynamics Control devices or processes at the Bands hierarchical level, at the right-hand side of the figure, may function as signal modification control signals and may be applied so as to modify the audio signals in the respective channels and bands of an audio signal being processed as shown in FIG. 2b, described below. Alternatively, such control signals may be carried along with the audio signal as metadata, for example, so that the information may be applied to the audio signal, in the manner of FIG. 2b, for example, at a spatially and/or temporally remote place. As is explained further below, the information passed down the hierarchy may include more than modification parameters suitable for controlling the modification of the audio signal if they were applied to it—the information passed down the hierarchy may, include control parameters usable within Dynamics Control devices or processes for influencing the operation of such devices or processes (such control parameters may be referred to as “dynamics control parameters” and such parameters may include “modification parameters” suitable for directly or indirectly controlling the audio signal).
The input signal applied to the FIG. 2a hierarchical control path may be derived from an audio signal applied to an audio dynamics processor of which the FIG. 2a control path is a part, or, alternatively, from the processed (output) audio of such an audio dynamics processor or from a combination of such input and output audio signals.
In FIG. 2a, the solid lines represent the flow of audio of a multichannel audio signal having channels x1, . . . xC and each channel having one of more frequency bands or “subbands” b1 . . . bn. Although, in principle, aspects of the invention may be practiced by analog, digital or hybrid analog/digital embodiments, in practical embodiments, processing of the audio may be performed in the digital domain. The dashed line output of each Dynamics Control device or process represents one or more dynamics control parameters generated by a respective Dynamics Control device or process. Dynamics control parameters may be coupled to Dynamics Control devices or processes in lower hierarchical levels of the control path hierarchy for the purposes of imposing constraints. For example, as explained in connection with an example described below, values of long-term signal level, long-term gain and short-term gain may be passed down from the Total hierarchical level to the Channels hierarchical level and from the Channels hierarchical level to the Bands hierarchical level to implement constraints. Of these, only the short-term gain at the Bands hierarchical level applied to control the audio signal's dynamics in the examples described herein (and such short term-gain may be time-smoothed, also as in a described example).
In principle, information passed down the hierarchy may skip being applied to one or more hierarchical levels. Also, in principle, information from hierarchical levels other than the Bands hierarchical level may be applied (in addition to or in place of information from the Bands hierarchical level) to control the audio signal's dynamics. Such information may be time-smoothed.
Thus, in the FIG. 2a control path example, a multichannel audio signal having channels x1 . . . xC is applied to a first hierarchical control path level, the Total hierarchical level, in which a device or process (“Total Level Measure”) 14 computes an average signal level measure for the total of all audio channels combined. The operation of Total Level 14 is similar to that of Level 6 of FIG. 1 except that Total Level 14 operates on all channels of a multichannel audio signal rather than on the single channel of a multichannel audio signal or an audio signal having only one channel. The measurement obtained by Total Level 14, a measure of the total signal level, may then be used by a dynamics control device or process (“Dynamics Control”) 16, to compute one or more Total hierarchical level dynamics control parameters that may include one or more signal modification parameters. Some or all of the dynamics control parameters computed by Dynamic Control 16 may be passed down to Dynamics Controls 20 in the Channels hierarchical level for use by such Dynamics Controls in their operation. Modification parameters computed by the Total hierarchical level's Dynamics Control 16, or functions thereof, may be applied to the audio signal, but are not in this example.
Next, in a second hierarchical control path level, the Channels hierarchical level, the next lower hierarchical level in this example, each channel x1 through xc is applied to its own pair of Level Measure and Dynamics Control devices or processes 18-1 through 18-c and 20-1 through 20-c, respectively. Each Level Measure 18-1 through 18-c may operate in a manner similar to Level Measure 6 of FIG. 1 to compute an average signal level measure for the particular audio channel that is applied to it. From that level measure each Dynamics Control 20-1 through 20-c in the Level/Dynamics-Control pair computes one or more dynamics control parameters that may include one or more signal modification parameters. However, in addition to differing from the FIG. 1 Dynamics Control 8 in producing dynamics control parameters rather than modification parameters, the Dynamics Controls 20-1 through 20-c in the FIG. 2a arrangement also differ in receiving one or more dynamics control parameters calculated by Dynamics Control 16 in the hierarchical step next above. Such higher hierarchical level dynamics control parameters may be used to constrain or affect the operation of the respective Dynamics Controls 20-1 through 20-c. Some or all of the dynamics control parameters computed by Dynamic Controls 20 may be passed down to Dynamics Controls 26 in the Bands hierarchical level for use by such Dynamics Controls in their operation. Modification parameters, or functions thereof, computed by one or more of Dynamics Controls 20 may be applied to the audio signal, but are not in this example.
Next in a third hierarchical control path level, the Bands hierarchical level, each channel x1 through xc of the audio signal is applied to a band splitting device or function (“Band Split”) 22-1 through 22-c that splits each audio channel into a plurality of frequency bands b1 through bn. Many devices and processes for splitting an audio signal into frequency bands are well known in the art (filterbanks, bandpass filters, quadrature mirror filters, time-to-frequency transforms, etc.). The use of any particular such band splitter is not critical to the invention. Each frequency band of each channel is applied to its own pair of Level Measure and Dynamics Control devices or processes 24-1-1 through 24-c-n and 26-1-1 through 26-c-n, respectively. Each Level Measure 24-1-1 through 24-c-n may operate in a manner similar to Level Measure 6 of FIG. 1 to compute an average signal level measure for the particular frequency band of the audio channel that is applied to it—thus, it operates at a frequency band hierarchical level rather than a channel hierarchical level. From the signal level measure provided by the Level Measure paired with it, each Dynamics Control 26-1-1 through 26-c-n computes signal modification parameters, in a manner similar to Dynamics Control 8 of FIG. 1. However, unlike the FIG. 1 Dynamics Control 8, the Dynamics Controls 26-1-1 through 26-c-n in the FIG. 2a example may also receive one or more dynamics control parameters calculated by Dynamics Control 20 associated with the same channel in the hierarchical step next above. Such higher hierarchical level modification parameters may be used to constrain or affect the operation of the respective Dynamics Controls 26-1-1 through 26-c-n operating on bands within a channel. One or more modification parameters calculated by each of Dynamics Controls 26-1-1 through 26-c-n may be applied to bands of each channel of the audio, as shown in FIG. 2b. At the Bands hierarchical level, because it is the bottom level of the hierarchy in this example, the Dynamics Controls 26 need not provide a dynamics control parameters output (none is required) but instead provide an output of one or more modification parameters that may be used to control modification of the audio signal as shown in FIG. 2b. 
Referring to FIG. 2b, in a manner similar to the upper signal path of FIG. 1, a particular band of each channel of audio (audio channel 1 band 1 through audio channel c band n) is applied to a respective signal path having a respective delay 10-1-1 through 10-c-n and a respective multiplier 12-1-1 through 12-c-n. As in FIG. 1, the multipliers are shown generically by a multiplier symbol to indicate any suitable way of modifying the audio in response to one or more modification parameters. Each of the multipliers receives one or more modification parameters from a corresponding Dynamics Control 26-1-1 through 26-c-n (i.e., the channel 1 band 1 audio is modified by modification parameters from the Dynamics Control for channel 1 band 1, etc.). Alternatively, modification parameters or functions of them produced by other levels of the hierarchy may be applied to the audio signal, one or more of its channels, and/or one or more bands of one or more its channels.
Although the example of FIGS. 2a and 2b shows a three-level hierarchy of Total hierarchical level, Channels hierarchical level, and Bands hierarchical level, aspects of the invention are not limited to a three-level hierarchy and the hierarchy may be of a different order. For example, one may not wish to perform multi-band modifications, in which case a two-level hierarchy having only a total hierarchical level and a channel hierarchical level may be appropriate. Similarly, one might not want to allow any independence among channels and therefore may utilize a two-level hierarchy of only a total hierarchical level and a band hierarchical level. In other words, one may not want to apply different modification parameters to different channels—the bands may be treated differently, but each band may be modified in the same way across all channels. As mentioned above, each hierarchical level may comprise one or more devices or processes. The three-hierarchy example of FIGS. 2a and 6 may be expanded to include more hierarchical levels. For example, rather than splitting the signal into a plurality of bands at one level, one might split the signal into two bands at a first band level. Then each of these bands may be further split into two more bands at a second band-level, etc. Similarly, the splitting into channels may occur in more than one hierarchy level. For example, after the Total level, the channels might be split into three groups in a first channel hierarchy level: (1) Left and Right, (2) Center, and (3) Left Surround and Right Surround. Then, at the next channel hierarchy level the Left and Right group may be split explicitly into Left and Right. Similarly, the Left Surround and Right Surround group may be split explicitly into Left Surround and Right Surround.
A control path hierarchy having constraints in the manner of the example of FIGS. 2a and 2b and variations thereof is applicable to a wide variety of dynamics processing applications, such as compressors, limiter, expanders, etc. However, for simplicity in explanation, examples of aspects of the present invention are described in the context of dynamic range controls (DRCs) in which the original dynamic range of an audio signal is reduced. In other words, loud portions of the audio are made softer and/or quiet portions are made louder. Such processing is useful, for example, when one wishes to listen to a selection of audio late at night at a reduced average volume.
FIG. 3a depicts a typical input/output profile or transfer function for a DRC in which the horizontal axis is a logarithmic representation of the input signal level, and the vertical axis is a logarithmic representation of the desired output signal level. Signal level generically represents any of a number of possible measures; for example rms level or psychoacoustic loudness level, as will be described in a preferred embodiment. In the “null band” region of the profile or transfer function the slope of the curve is unity, indicating that no signal modification is made. Above and below the null band, the slope is less than one indicating that compression is applied—above the null band the audio is attenuated, and below the null band the audio is boosted. FIG. 3b depicts an equivalent representation of the FIG. 3a input/output profile or transfer function that replaces the output signal level on the vertical axis with the log of the gain, which when applied to the input signal level, results in the desired output signal level. In this context, the term “gain” is meant to represent generically a modification that either boosts or attenuates the signal. Such “gain” may be a value that is directly multiplied with the signal or it might be something more sophisticated, such as a scaling of perceptual loudness, as will be described in a preferred embodiment. Because constraints are applied to such gain, it is this alternative representation of the dynamics profile or transfer function (namely, the FIG. 3b representation) that is utilized for the remainder of this example.
Averaging Constraints
Typically, the input signal level L in an audio dynamics processor is a time-varying measure of signal level using a relatively short time-constant—rms signal level integrated over a duration of a few milliseconds, for example. For the purposes of imposing constraints, a corresponding long-term, or average, signal level L may also be computed. L may be the same basic measure (e.g., rms, peak, etc.) as L but with a significantly longer time constant—on the order of one or more seconds, for example.
Although the time constants for L and L are not critical, it will be appreciated that the time constant for L is longer than that for L. In the case of dynamic range control (DRC), the short-term time constant may be commensurate with the human temporal resolution of loudness perception (the shortest time interval over which a person can perceive loudness variations), and the long-term may be commensurate with a time sufficient for a person to integrate “short-term” loudness into a psychoacoustic impression of the loudness of a sound source.
In a three-level control path hierarchy, such as the example of FIG. 2a, both a short-term and an average (long-term) signal level measure may be computed in the respective Dynamics Controls 16, 20 and 26 for the total of all audio channels combined, for each individual channel, and for each of a multiple of frequency bands in each channel. Such measures of signal level may be referred to as LT and LT, LC and LC, and LB and LB, respectively, and may represent logarithmic values, for example, as shown in FIGS. 3a and 3b. 
With respect to a three hierarchical layer control path arrangement such as the example of FIG. 2a, the application of constraints may begin by specifying a desired dynamics processing profile, such as the one shown in FIG. 3b, for the Total hierarchy level. Such a profile may be represented generically as a function FT {L} relating gain G to signal level L at the Total hierarchical level. Thus

G=FT{L}  (1a)

Each signal level measure L, however measured (e.g., rms, peak, etc.), may be considered to have associated with it a notional gain G computed from the associated dynamics processing function FT. Thus, gains GT and GT may be computed from LT and LT according to

GT=FT{LT}  (1b)

 GT=FT{ LT}  (1c)

Next, for each channel at the Channels control path hierarchical level, a dynamics processing function FC {L} relating gain G to signal level L at the Channels hierarchical level may be derived from FT constrained so that GC= GT (where GC and GC are the notional gains associated with LC and LC, respectively). Deriving the dynamics function FC{L} with the desired constraints may be achieved by shifting the input argument of FT by the difference, if any, depending on signal conditions, between the average signal levels LT and LC. (see FIG. 4b):

FC{L}=FT{( LT− LC)+L}  (2a)

Depending on signal conditions, the effect may be a shift of the function FT on the gain/level axes, preserving the shape of the desired dynamics processing profile but moving all thresholds horizontally by the amount LC− LT, such that the relationship between the average channel signal level LC and the various thresholds associated with the channel function FC is the same as the relationship between the total signal level LT and the thresholds associated with the total function FT. Such shifting is shown in FIGS. 4a-c, described further below. Equation 2a indicates that that information defining FT and LT is passed from the Total hierarchical level to the Channels hierarchical level.
From the derived channel dynamics processing function FC, the gains GC and GC may be computed as

GC=FC{LC}  (2b)

 GC=FC{ LC}  (2c)

From the previous equations it can be seen that

 GC=FC{ LC}=FT{( LT− LC)+ LC}=FT{ LT}= GT  (2d)

In constructing the channel dynamics function FC from the total dynamics function FT such that GC= GT, the average value of GC over time is equal to the average value of GT over time. In others words, the modification to a channel is, on average, equal to the desired modification to the signal in total. However, on a short-term basis, LT and LC remain relatively constant, and GC acts as a function of the channel signal level LC to reduce or prevent cross-channel pumping.
As an example, consider again the multi-channel audio signal with music in all channels and then a brief segment of loud dialog introduced in the center channel. Before the introduction of the dialog, the average total signal level LT lies in the null-band of the dynamics function FT along with the short-term total signal level LT. As a result, the function calls for no modification. The same is true for the signal levels LC and LC with respect to FC in all the channels. When the dialog is introduced, the short-term signal level LC in the center channel increases significantly above the compression threshold of FC, resulting in attenuation. The behavior of the signal levels in the remaining channels stays the same, however, and no attenuation is applied. Thus, cross-channel pumping is reduced or prevented at the expense of a momentary alteration to the spatial image. However, if the loud dialog then continues, the average total signal level LT slowly increases above the compression threshold. This in turn results in a slowly increasing attenuation applied to all channels due to the constraints used in the construction of the channel functions FC. This proceeds until the average attenuation applied to all channels reaches the attenuation level of that applied to the continuing dialog in the center channel. Therefore, a hierarchical constraint arrangement in accordance with aspects of the invention may provide a balance between the reduction or prevention of cross-channel pumping and the preservation of the spatial image.
The same principles apply to the individual bands within a channel. The dynamics processing function FB for a particular band may be constructed from the function of the channel of which it is a part just as the channel function may be constructed from the total function. The function FB may be derived by shifting the input argument of FC by the difference, if any, depending on signal conditions, between the average signal levels LC and LB (see FIG. 4c):

FB{L}=FC{( LC− LB)+L}  (3a)

Equation 3a indicates that information defining FC and LC is passed from the Channels hierarchical level to the Channels hierarchical level.

The band gains are computed according to

GB=FB{LB}  (3b)

 GB=FB{ LB}  (3c)

This construction constrains GB= GC, which is shown below:

 GB=FB{ LB}=FC{( LC− LB)+ LB}=FC{ LC}= GC  (3d)

Because GB= GC, the average value of the band gain GB over time is approximately equal to that of GC, but on a short-term basis, the gain GB varies as a function of the band signal level LB to reduce or prevent cross-spectral pumping. FIGS. 4a-c depict the described process of constructing FC as a shifted version of FT and FB as a shifted version of FC such that GB= GC= GB. The Total hierarchical level to Channels hierarchical level shift is shown in FIG. 4b. The Channels hierarchical level to Bands hierarchical level shift is shown in FIG. 4c. FIGS. 4a-c may be viewed together to see how the desired dynamics processing profile is passed down the hierarchy from Total level to Channels level to Bands level.
Range Constraints
Ideally, the constraints used in the construction of FB from FC and FC from FT assure that the average modification applied to each band in a channel is substantially the same as that for the entire channel, and that the average modification applied to each channel is substantially the same as that for all channels combined. Because such constraints do not place limits on the range of the modifications around their average value, certain cases may be problematic. Consider again the multi-channel audio signal with music in all channels and then a brief segment of loud dialog introduced in the center channel. When the dialog is introduced, the total signal level LT increases a certain amount above the average total signal level LT, and the dynamics function FT calls for an overall attenuation of the signal. In the center channel, the signal level LC also increases above the average signal level LC, but the increase of LC relative to LC is much larger than the increase of LT relative to LT because LT has contributions from all the other channels containing music. As a result, the attenuation computed by FC is significantly greater than the desired overall attenuation, computed by FT. To reduce such problems, it is therefore desirable to place constraints on the range of the modifications in addition to their average behavior.
Such range constraints might be implemented in a number of ways, but a simple and effective technique involves constraining the channel gain GC to lie between the total short-term and average gains GT and GT and then to further constrain the band gain GB to lie between the channel short-term and average gains GC and GC. Thus, when range constraints are also employed the information passed from the Total hierarchical level to the Channels hierarchical level includes not only information defining FT and LT, but also information defining GT and GT, and the information passed from the Channels hierarchical level to the Bands hierarchical level includes not only information defining FC and Lc but also information defining GC and GC. Letting G′C and G′B represent these range-constrained channel and band gains, the constraints may be written formally according to the following logic:

    
    
        I) Total to Channel Constraint:
        
            A) If GT<= GT then
            
                i) If GC<GT then G′C=GT 
                ii) Else if GC> GT then G′C= GT 
                iii) Else G′C=GC 
            
            
            B) Else if GT> GT then
            
                i) If GC>GT then G′C=GT 
                ii) Else if GC< GT then G′C= GT 
                iii) Else G′C=GC 
            
            
        
        
        II) Channel to Band Constraint:
        
            A) If G′C<= GC then
            
                i) If GB<G′C then G′B=G′C 
                ii) Else if GB> GC then G′B= GC 
                iii) Else G′B=GB 
            
            
            B) Else if G′C> GC then
            
                i) If GB>G′C then G′B=G′C 
                ii) Else if GB< GC then G′B= GC 
                iii) Else G′B=GB 
            
            
        
        
    
    


FIGS. 5a and 5b depict two examples of range constraints passing from total to channel to band. In each case, the constraint region from a current level of the hierarchy is passed down to the next level. In the top row one notes that at the Channels hierarchical level, constraint I.A.i from the above logic is imposed. At the Bands hierarchical level, constraint II.A.ii is then imposed. In the bottom row, constraint I.A.iii is imposed at the Channels hierarchical level, and constraint II.A.i is imposed at the Bands hierarchical level.
“Bottom-Up Constraints
In the examples above, constraints have been imposed in a “top-down” manner passing from upper to lower hierarchical levels (total to channels to bands in the FIGS. 2a and 2b example). It may also be beneficial to implement a further aspect of the invention in which “bottom-up” secondary constraints are implemented along with top-down primary constraints.
In accordance with another aspect of the invention, FIG. 6 depicts a general overview, in the context of the example of FIG. 2a, of the application of hierarchical “bottom-up” constraints in addition to the top-down hierarchical constraints of FIG. 2a. In the course of applying top-down constraints in the FIG. 2a example, each of the Dynamics Controls produces one or more constrained parameters, represented by the single dashed lines in FIG. 6.
As with respect to the FIG. 2a example, the input signal applied to the FIG. 6 hierarchical control path may be derived from an audio signal applied to an audio dynamics processor of which the FIG. 6 control path is a part, or, alternatively, from the processed (output) audio of such an audio dynamics processor or from a combination of such input and output audio signals.
To begin the process of applying bottom-up constraints, the top-down parameters may first be analyzed in an analyzing device or process (“Analyze”) 27 across all bands in all channels to generate a secondary Bands hierarchical constraint or constraints that may passed back to all Dynamics Controls at the Bands level and, optionally, upward in the hierarchy to all the channels. As explained further below, Analyze 27 may compute, for example, an average or a minimum of all its inputs. In FIG. 6, such one or more secondary band constraints is shown as the double-dashed line output from Analyze 27 at the Bands hierarchical level. Such one or more secondary band constraints are applied to and utilized by each Dynamics Control 26′-1-1 through 26′-c-n in the Bands hierarchical level to further constrain the top-down dynamics control parameters of FIG. 2a. Such doubly-constrained (i.e., downwardly=constrained and upward-constrained) one or more dynamics control parameters are represented by the double dashed lines at the output of each band Dynamics Control 26′-1-1 through 26′-c-n. In other words, the doubly-constrained dynamics control parameters produced by each of the Dynamics Controls 26′-1-1 through 26′-c-n, shown in double dashed lines, are the result of the top-down constrained modification parameters produced by Dynamics Controls 26-1-1 through 26 of FIG. 2a as further constrained by the one or more bottom-up secondary constraints from the output of Analyze 27.
Optionally, the secondary constraints from the output of Analyze 27 are also passed upward in the hierarchy to the Channels hierarchical level. In that case, at the Channels hierarchical level, the top-down constrained dynamics control parameters across all channels, represented by the single dashed lines, are analyzed by an analyzer device or function (“Analyze”) 21 along with the one or more secondary band constraints received from Analyze 27 to generate doubly-constrained modification parameters, represented by the double-dashed line output of Analyze 21 at the Channels hierarchical level. Such a secondary Channels hierarchical level constraint is utilized by each Dynamics Control 20-1 through 20-c in the Channel hierarchical level to produce one or more doubly-constrained dynamics control parameters, represented by the double-dashed lines at the output of each Dynamics Controls 20′ at the Channels hierarchical level.
Optionally, the secondary constraints from the output of Analyze 21 are also passed upward in the hierarchy to the Total hierarchical level. In that case, the top-down constrained dynamics parameters for the Total hierarchical level are analyzed by an analyzing device or process (“Analyze”) 17 along with the secondary channel constraints to generate a secondary total constraint, which in turn is used to create one or more doubly-constrained dynamics control parameters at the Total hierarchical level.
After applying such secondary, bottom-up constraints, doubly-constrained modification parameters at the output of ones of the Dynamics Control may be used to modify the audio. For example, the parameters at the outputs of the Dynamics Controls 26′-1-1 through 26′′-c-n at the Bands hierarchical level may be used to modify individual bands within each channel of the audio signal. Alternatively, the parameters at the Channels hierarchical level may be used to modify each channel uniformly across bands, the parameters at the Total hierarchical level could be used to modify all channels uniformly, or some combination of parameters at various hierarchical levels, or functions thereof, may be used to modify the audio signal.
Such secondary bottom-up constraints are particularly useful when the dynamics processing system is in “release” mode, meaning that the short-term total signal level LT is less than the average total signal level LT. To understand the need for such constraints, consider once again the multi-channel audio signal with music in all channels and dialog in the center channel. Assume that the loud dialog has been constant in the center channel for a significant period of time. Therefore, the top-down constraints have converged to a steady state behavior, resulting in all channels receiving approximately the same amount of attenuation. Now assume that the dialog suddenly stops, leaving only the lower level music signal in all channels. The total signal level LT immediately drops below the average total signal level LT into the null band of the dynamics function FT, meaning that GT calls for no modification in comparison to the previous attenuation. The same is true of G′C in the center channel where dialog had been present. However, in the remaining channels, the behavior of LC with respect to LC remains as it had been, meaning that the previous attenuation continues. Therefore, the center channel is now boosted with respect to the remaining channels, distorting the spatial image of the music. This distortion continues until the average total signal level LT decreases to the average level of the music, lying in the null-band, at which time the top-down constraints result in no modification applied to the remaining channels. Therefore, the spatial image of the music is distorted for a significant period of time as LT slowly decreases.
To address this problem, one may apply a secondary bottom-up constraint when LT< LT. For the particular problem just described, one may analyze the values of G′C across all channels and constrain these values along with GT to all be equal to the minimum value of G′C across all channels. This prevents any one channel from being boosted more than any other. The same principle may be extended down to the bands. If LT< LT, the values of G′B across all bands and channels may be constrained to be equal to the minimum of this set of values. This minimum is then passed back up to the channels where G′C for all channels is set equal to the minimum of the set including G′C across all channels along with the minimum from the band constraint. This channel minimum may finally be passed back up to the total where GT is set equal to the minimum of GT and the previous channel minimum.
Time Smoothing
The application of the described hierarchical constraints, both top-down and bottom-up, may introduce abrupt discontinuities in the trajectories of the gains over time. Left unmodified, such discontinuities may cause perceptible artifacts in the processed audio. Therefore, smoothing the constrained gains over time prior to their use in modifying the audio is desirable in a practical embodiment of the invention. Such smoothing may be performed in a variety of ways, and one such method will be discussed below in the description of a preferred embodiment.



DESCRIPTION OF THE DRAWINGS
FIG. 1 is a high-level block diagram of a generic prior art audio dynamics processor that processes a single channel of a multichannel audio signal or an audio signal having only one channel.
FIG. 2a is a schematic overview of an example of hierarchical control path architecture according to aspects of the invention in which information is passed down a control path hierarchy from top to bottom (a “top-down” hierarchical arrangement).
FIG. 2b is a schematic overview of an example of the audio path in which an audio signal may be modified in accordance with information derived in a control path such as that of FIG. 2a and/or that of FIG. 2a and FIG. 6.
FIG. 3a is an exemplary input/output profile or transfer function for a dynamic range control (DRC) in which the horizontal axis is a logarithmic representation of the input signal level, and the vertical axis is a logarithmic representation of the desired output signal level.
FIG. 3b is an equivalent representation of the FIG. 3a input/output profile or transfer function that replaces the output signal level on the vertical axis with the log of the gain, which when applied to the input signal level, results in the desired output signal level.
FIGS. 4a-c are examples, useful in understanding aspects of the invention, showing input/output profiles or transfer functions in the manner of FIG. 3b wherein versions of an initial profile at an initial upper hierarchical level is reconstructed at lower hierarchical levels, taking certain averaging constraints into account.
FIGS. 5a and 5b are examples, useful in understanding aspects of the invention, showing input/output profiles or transfer functions in the manner of FIG. 3b wherein versions of an initial profile at an initial upper hierarchical level is reconstructed at lower hierarchical levels, taking certain range constraints into account.
FIG. 6 is a schematic overview of an example of hierarchical control path architecture according to additional aspects of the invention in which information is passed up a control path hierarchy from bottom to top (a “bottom-up” hierarchical arrangement) in addition to the top-down hierarchical information of the FIG. 2a example.
FIG. 7 depicts a suitable set of critical band filter responses in which 40 bands are spaced uniformly along the Equivalent Rectangular Bandwidth (ERB) scale, as defined by Moore and Glasberg.
FIG. 8 is a set of equal-loudness contours.



BEST MODE FOR CARRYING OUT THE INVENTION
Said International Patent Application PCT/US 2005/038579 of Alan Jeffrey Seefeldt, published as WO 2006/047600 discloses, among other things, arrangements for both measuring and modifying the perceived loudness and/or perceived spectral balance of an audio signal through the use of a psychoacoustic model of loudness perception. The disclosure discusses the use of such arrangements for audio dynamics processing, citing several advantages for performing such processing in the perceptual loudness domain. However, the Seefeldt arrangements may be improved further by aspects the present invention. Thus, a preferred embodiment of the present invention is next described in the context of a psychoacoustic loudness model.
As a first step, specific loudness, a measure of perceptual loudness distributed across frequency and time, of a multichannel digital audio signal xc[n], c=1 . . . C, is computed through the following steps. First, an excitation signal Ec[b,t] for each channel is computed approximating the distribution of energy along the basilar membrane of the inner ear at critical band b during time block t. This excitation may be computed from the Short-time Discrete Fourier Transform (STDFT) of the audio signal as follows:




  
    
      
        
          
            E
            c
          
          ⁡
          
            [
            
              b
              ,
              t
            
            ]
          
        
        =
        
          
            
              λ
              b
            
            ⁢
            
              
                E
                c
              
              ⁡
              
                [
                
                  b
                  ,
                  
                    t
                    -
                    1
                  
                
                ]
              
            
          
          +
          
            
              (
              
                1
                -
                
                  λ
                  b
                
              
              )
            
            ⁢
            
              
                ∑
                k
              
              ⁢
              
                
                  
                    
                    
                      T
                      ⁡
                      
                        [
                        k
                        ]
                      
                    
                    
                  
                  2
                
                ⁢
                
                  
                    
                    
                      
                        C
                        b
                      
                      ⁡
                      
                        [
                        k
                        ]
                      
                    
                    
                  
                  2
                
                ⁢
                
                  
                    
                    
                      
                        X
                        c
                      
                      ⁡
                      
                        [
                        
                          k
                          ,
                          t
                        
                        ]
                      
                    
                    
                  
                  2
                
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




where Xc[k,t] represents the STDFT of xc[n] at time block t and bin k. T[k] represents the frequency response of a filter simulating the transmission of audio through the outer and middle ear, and Cb[k] represents the frequency response of the basilar membrane at a location corresponding to critical band b. FIG. 7 depicts a suitable set of critical band filter responses in which 40 bands are spaced uniformly along the Equivalent Rectangular Bandwidth (ERB) scale, as defined by Moore and Glasberg (B. C. J. Moore, B. Glasberg, T. Baer, “A Model for the Prediction of Thresholds, Loudness, and Partial Loudness,” Journal of the Audio Engineering Society, Vol. 45, No. 4, April 1997, pp. 224-240). Each filter shape is described by a rounded exponential function and the bands are distributed using a spacing of 1 ERB. The smoothing time constant λb in Eqn. 4 may be advantageously chosen proportionate to the integration time of human loudness perception within band b.

In addition to the per channel excitation, an excitation representative of the total audio signal is computed by summing the channel excitations across channels:




  
    
      
        
          
            E
            T
          
          ⁡
          
            [
            
              b
              ,
              t
            
            ]
          
        
        =
        
          
            ∑
            
              c
              =
              1
            
            C
          
          ⁢
          
            
              E
              c
            
            ⁡
            
              [
              
                b
                ,
                t
              
              ]
            
          
        
      
    
    
      
        (
        5
        )
      
    
  




Using equal-loudness contours, such as those depicted in FIG. 8, the total and channel excitations at each band are next transformed into excitation levels that would generate the same loudness at 1 kHz. Total and channel specific loudness spectra are finally computed from these transformed excitations, E′c[b,t] and E′T[b,t], through a compressive non-linearity. Referring generically to the function to compute specific loudness N from the transformed excitation E as N=D{E}, one such suitable function is given by:




  
    
      
        
          Φ
          ⁢
          
            {
            E
            }
          
        
        =
        
          β
          ⁡
          
            (
            
              
                
                  (
                  
                    E
                    
                      TQ
                      
                        1
                        ⁢
                        
                          
                        
                        ⁢
                        k
                        ⁢
                        
                          
                        
                        ⁢
                        H
                        ⁢
                        
                          
                        
                        ⁢
                        z
                      
                    
                  
                  )
                
                α
              
              -
              1
            
            )
          
        
      
    
    
      
        (
        6
        )
      
    
  




where TQ1khz is the threshold in quiet at 1 kHz and the constants β and α are chosen to match published growth of loudness data. Using this function, the total and channel specific loudness spectra are computed according to:

NT[b,t]=Ψ{E′T[b,t]}  (7a)

Nc[b,t]=Ψ{E′c[b,t]}  (7b)

Total loudness and channel loudness values are then computed by summing the total and channel specific loudness spectra across bands b:




  
    
      
        
          
            N
            T
          
          ⁡
          
            [
            t
            ]
          
        
        =
        
          
            ∑
            b
          
          ⁢
          
            
              N
              T
            
            ⁡
            
              [
              
                b
                ,
                t
              
              ]
            
          
        
      
    
    
      
        (
        
          8
          ⁢
          a
        
        )
      
    
  
  
    
      
        
          
            N
            c
          
          ⁡
          
            [
            t
            ]
          
        
        =
        
          
            ∑
            b
          
          ⁢
          
            
              N
              c
            
            ⁡
            
              [
              
                b
                ,
                t
              
              ]
            
          
        
      
    
    
      
        (
        
          8
          ⁢
          b
        
        )
      
    
  




For the purposes of imposing dynamics processing constraints, average specific loudness spectra and average loudness values are computed by smoothing the specific loudness spectra and loudness values from above using a large smoothing time-constant λ:

 NT[t]= λNT[t−1]+(1− λ)NT[t]  (9a)

 Nc[t]= λNc[t−1]+(1+ λ)Nc[t]  (9b)

 Nc[b,t]= λNx[b,t−1]+(1− λ)Nc[b,t]  (9c)

Finally, values corresponding to the generic terms LT, LT, LC, LC, LB, LB used in the general description of the invention are computed from the loudness values and specific loudness spectra as:

LT→LT[t]=log(NT[t])  (10a)

 LT→ LT[t]=log( NT[t])  (10b)

LC→Lc[t]=log(Nc[t])  (10c)

 LC→ Lc[t]=log( Nc[t])  (10d)

LB→Lc[b,t]=log(Nc[b,t])  (10e)

 LB→ Lc[b,t]=log( Nc[b,t])  (10f)

Starting with a desired total dynamics function FT that takes as its input log perceptual loudness and outputs the log of the desired perceptual loudness scaling, the top-down and bottom-up constraints detailed in the general description of the invention are applied to generate constrained total, channel, and band log loudness scaling values represented by G′T[t], G′c[t], and G′c[b,t], respectively.
The constrained band log loudness scaling G′c[b,t] is used to modify the audio signal. However, this quantity must first be smoothed over time to remove any temporal discontinuities introduced through the application of the constraints. The smoothing may advantageously employ a fast and slow time constant where the decision of which time constant to use is based on simultaneous smoothing of both Lc[b,t] and G′c[b,t]. If Lc[b,t] is increasing relative to its smoothed version while G′c[b,t] is decreasing relative to its smoothed version, then the fast time constant is used. Otherwise, the slow time constant is used. More specifically, temporally smoothed versions of Lc[b,t] and G′c[b,t] are computed as:




  
    
      
        
          
            
              G
              ~
            
            c
            ′
          
          ⁡
          
            [
            
              b
              ,
              t
            
            ]
          
        
        =
        
          
            
              
                
                  λ
                  ~
                
                c
              
              ⁡
              
                [
                
                  b
                  ,
                  t
                
                ]
              
            
            ⁢
            
              
                
                  G
                  ~
                
                c
                ′
              
              ⁡
              
                [
                
                  b
                  ,
                  t
                
                ]
              
            
          
          +
          
            
              (
              
                1
                -
                
                  
                    
                      λ
                      ~
                    
                    c
                  
                  ⁡
                  
                    [
                    
                      b
                      ,
                      t
                    
                    ]
                  
                
              
              )
            
            ⁢
            
              
                G
                c
                ′
              
              ⁡
              
                [
                
                  b
                  ,
                  t
                
                ]
              
            
          
        
      
    
    
      
        (
        
          11
          ⁢
          a
        
        )
      
    
  
  
    
      
        
          
            
              
                L
                ~
              
              c
            
            ⁡
            
              [
              
                b
                ,
                t
              
              ]
            
          
          =
          
            
              
                
                  
                    λ
                    ~
                  
                  c
                
                ⁡
                
                  [
                  
                    b
                    ,
                    t
                  
                  ]
                
              
              ⁢
              
                
                  
                    L
                    ~
                  
                  c
                
                ⁡
                
                  [
                  
                    b
                    ,
                    t
                  
                  ]
                
              
            
            +
            
              
                (
                
                  1
                  -
                  
                    
                      
                        λ
                        ~
                      
                      c
                    
                    ⁡
                    
                      [
                      
                        b
                        ,
                        t
                      
                      ]
                    
                  
                
                )
              
              ⁢
              
                
                  L
                  c
                
                ⁡
                
                  [
                  
                    b
                    ,
                    t
                  
                  ]
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        where
      
    
    
      
        (
        
          11
          ⁢
          b
        
        )
      
    
  
  
    
      
        
          
            
              λ
              ~
            
            c
          
          ⁡
          
            [
            
              b
              ,
              t
            
            ]
          
        
        =
        
          {
          
            
              
                
                  
                    λ
                    fast
                  
                  ,
                
              
              
                
                  
                    
                      
                        
                          
                            G
                            c
                            ′
                          
                          ⁡
                          
                            [
                            
                              b
                              ,
                              t
                            
                            ]
                          
                        
                        <
                        
                          
                            
                              
                                G
                                ~
                              
                              c
                              ′
                            
                            ⁡
                            
                              [
                              
                                b
                                ,
                                
                                  t
                                  -
                                  1
                                
                              
                              ]
                            
                          
                          ⁢
                          
                            
                          
                          ⁢
                          and
                        
                      
                    
                  
                  
                    
                      
                        
                          
                            L
                            c
                          
                          ⁡
                          
                            [
                            
                              b
                              ,
                              t
                            
                            ]
                          
                        
                        >
                        
                          
                            
                              L
                              ~
                            
                            c
                          
                          ⁡
                          
                            [
                            
                              b
                              ,
                              
                                t
                                -
                                1
                              
                            
                            ]
                          
                        
                      
                    
                  
                
              
            
            
              
                
                  
                    λ
                    slow
                  
                  ,
                
              
              
                otherwise
              
            
          
        
      
    
    
      
        (
        
          11
          ⁢
          c
        
        )
      
    
  




As a next step in computing the modified signal, a desired modified specific loudness spectrum in each channel is computed by multiplying the original specific loudness with the smoothed band scaling {tilde over (G)}′c[b,t]:

{circumflex over (N)}c[b,t]=exp({tilde over (G)}′c[b,t])N[b,t]  (12)

Letting the function Ψ{•} represent the transformation from excitation to specific loudness, a band varying gain gc[b,m] is computed for each channel such that

{circumflex over (N)}c[b,t]=Ψ{gc2[b,m]Ec[b,m]}  (13a)

Rearranging (13a), one arrives at the solution




  
    
      
        
          
            g
            c
          
          ⁡
          
            [
            
              b
              ,
              m
            
            ]
          
        
        =
        
          
            
              
                Ψ
                
                  -
                  1
                
              
              ⁢
              
                {
                
                  
                    
                      N
                      ^
                    
                    c
                  
                  ⁡
                  
                    [
                    
                      b
                      ,
                      m
                    
                    ]
                  
                
                }
              
            
            
              
                E
                c
              
              ⁡
              
                [
                
                  b
                  ,
                  m
                
                ]
              
            
          
        
      
    
    
      
        (
        
          13
          ⁢
          b
        
        )
      
    
  




In said International Patent Application PCT/US 2005/038579 of Alan Jeffrey Seefeldt, published as WO 2006/047600, several techniques for computing the inverse function Ψ−1 in (13b) are described, including a closed form expression, a lookup table, and iterative search.
Finally, the band varying gain gc[b,m] is applied in each critical band to the corresponding bins of the original STDFT to generate a modified STDFT:




  
    
      
        
          
            
              X
              ^
            
            c
          
          ⁡
          
            [
            
              k
              ,
              m
            
            ]
          
        
        =
        
          
            ∑
            b
          
          ⁢
          
            
              
                g
                c
              
              ⁡
              
                [
                
                  b
                  ,
                  m
                
                ]
              
            
            ⁢
            
              
              
                
                  C
                  b
                
                ⁡
                
                  [
                  k
                  ]
                
              
              
            
            ⁢
            
              
                X
                c
              
              ⁡
              
                [
                
                  k
                  ,
                  m
                
                ]
              
            
          
        
      
    
    
      
        (
        14
        )
      
    
  




The modified STDFT is inverse transformed and overlap added to produce the final modified multichannel digital audio signal {circumflex over (x)}c[n]. Further details of a digital audio processing arrangement employing overlapping blocks of samples are set forth in U.S. Pat. No. 5,899,969 of Fielder et al (“Frame-based audio with gain-control words”), which patent is hereby incorporated by reference in its entirety.
Although various hierarchical constraints (e.g., GB= GC, GB) are expressed herein as equalities, such equalities are idealized examples. The invention contemplates the imposition of constraints that tend to bring such values closer to being equal than they otherwise would be in the absence of such an imposition of constraints. Similarly, although the passing of dynamics processing profiles from one hierarchical level to another are illustrated (e.g., FIG. 3b) as the passing of the same profile shape, such a sameness of shapes are idealized examples. The invention contemplates the passing of dynamics processing profiles from one hierarchical level to another in which the passed profile is an approximation of one or more higher level profiles, the degree of closeness being an implementation choice of the creator of the dynamics processing device or process.
Implementation
The invention may be implemented in hardware or software, or a combination of both (e.g., programmable logic arrays). Unless otherwise specified, the algorithms included as part of the invention are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct more specialized apparatus (e.g., integrated circuits) to perform the required method steps. Thus, the invention may be implemented in one or more computer programs executing on one or more programmable computer systems each comprising at least one processor, at least one data storage system (including volatile and non-volatile memory and/or storage elements), at least one input device or port, and at least one output device or port. Program code is applied to input data to perform the functions described herein and generate output information. The output information is applied to one or more output devices, in known fashion.
Each such program may be implemented in any desired computer language (including machine, assembly, or high level procedural, logical, or object oriented programming languages) to communicate with a computer system. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on or downloaded to a storage media or device (e.g., solid state memory or media, or magnetic or optical media) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer system to perform the procedures described herein. The inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer system to operate in a specific and predefined manner to perform the functions described herein.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, some of the steps described herein may be order independent, and thus can be performed in an order different from that described.

## Claims

1. A method for generating audio signal dynamics control signals using a hierarchical control path architecture, comprising
receiving a plurality of audio channels,
in a first hierarchical level having a root node,
at said root node, computing a signal level for the total of all audio channels combined, and
at said root node, computing, in response to said signal level for the total of all audio channels combined, one or more first dynamics control parameters, and

in a second hierarchical level having a plurality of channels, each channel having one or more nodes,
at the node or nodes for each channel, computing a signal level for the particular audio channel, and
at the node or nodes for each channel, computing, in response to said signal level for the particular audio channel and to one or more of said first dynamics control parameters, one or more second dynamics control parameters.

2. The method of claim 1 wherein said one or more first dynamics control parameters includes control parameters for influencing the operation of said computing one or more second dynamics control parameters and/or modification parameters for directly or indirectly controlling the dynamics of an audio signal.

3. The method of claim 1 further comprising,
in a third hierarchical level,
splitting each audio channel into a plurality of frequency bands b1 through bn, each frequency band having one or more nodes,
at the node or nodes for each band, computing a signal level for the particular audio band, and
at the node or nodes for each band, computing in response to said signal level for the particular audio band and to one or more of said second dynamics control parameters, one or more third dynamics control parameters.

4. The method of claim 3 wherein said one or more second dynamics control parameters includes control parameters for influencing the operation of said computing one or more third dynamics control parameters and/or modification parameters for directly or indirectly controlling the dynamics of an audio signal.

5. Apparatus adapted to perform the methods of any one of claims 1 through 4.

6. A computer program, stored on a non-transitory computer-readable medium for causing a computer to perform the methods of any one of claims 1 through 4.