US20040213416A1 - Reverberation processor for interactive audio applications - Google Patents

Reverberation processor for interactive audio applications Download PDF

Info

Publication number
US20040213416A1
US20040213416A1 US10/852,941 US85294104A US2004213416A1 US 20040213416 A1 US20040213416 A1 US 20040213416A1 US 85294104 A US85294104 A US 85294104A US 2004213416 A1 US2004213416 A1 US 2004213416A1
Authority
US
United States
Prior art keywords
reverberation
echo
delay
control parameter
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/852,941
Inventor
Luke Dahl
Jean-Marc Jot
Vincent Vu
Dana Massie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/852,941 priority Critical patent/US20040213416A1/en
Publication of US20040213416A1 publication Critical patent/US20040213416A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • G10K15/08Arrangements for producing a reverberation or echo sound
    • G10K15/12Arrangements for producing a reverberation or echo sound using electronic time-delay networks

Definitions

  • Virtual auditory displays create virtual worlds in which a virtual listener can hear sounds generated from sound sources within these worlds.
  • the computer also processes the source signal to simulate the effects of the virtual environment on the sound emitted by the source.
  • the player hears the sound that he/she would hear if he/she were located in the position of the virtual listener in the virtual world.
  • reverberation refers to the reflections of the generated sound which bounce off objects in the environment.
  • Reverberation can be characterized by measurable criteria, such as the reverberation time, which is a measure of the time it takes for the reflections to become imperceptible.
  • a typical model of reverberation breaks the reverberation effects into discrete time segments.
  • the first signal that reaches the listener is the direct-path signal, which undergoes no reflections.
  • a series of discrete “early” reflections are received during an initial period of the reverberation response.
  • the exponentially decaying “late” reverberation is modeled statistically because of the combination and overlapping of the various reflections.
  • the magnitudes of Reflections_delay and Reverb_delay are typically dependent on the size of the room and on the position of the source and the listener in the room. As illustrated in FIG.
  • the early reflections and the late reverberation are often generated by two separate processing modules whose output signals are combined to produce the output of the reverberation processor. Examples of an early reflection module and a late reverberation module are shown on FIGS. 2 b and 2 c , respectively.
  • the lengths of delay lines comprising these modules can be made smaller or larger according to the size of the virtual room.
  • Reverberation processors of the type described above are commonly used for the production of music and soundtracks in recording studios. In these applications, it is not common to produce drastic changes in reverberation characteristics while the sound is playing. Noticeable drop-offs and other artifacts in the output signal of the processor will occur, for instance, when the user loads a different reverberation “program” or adjusts the room size parameter (which may involve changing the network structure or modifying delay lengths). However, such artifacts are not acceptable in interactive audio applications. In immersive 3D games or simulation systems, for instance, different reverberation settings may be associated with different rooms or environments composing a virtual 3D world in which the virtual listener is allowed to travel. Consequently, in these systems, the reverberation processor must be able to change settings while creating a minimum of disruptive or distracting audible artifacts.
  • a delay change is realized by cross-fading between two signals read from two different locations (or “taps”) in the delay line's memory. These two taps are provided by two read pointers whose locations in the memory correspond to the original delay value and the final delay value.
  • This method moves the read pointer to a new location in the delay memory without causing a drop-off, a discontinuity or a pitch alteration in the delayed audio signal.
  • comb filter effect causes a temporary timbre alteration known as “comb filter effect”.
  • audio artifacts are minimized when changing reverberation settings by causing the amplitude of a signal from a delay line having its read pointers changed to ramp down prior to moving the read pointer. The amplitude of the signal is then ramped up after the read pointer has been moved.
  • a set of delay lines whose output signals are combined to produce the output of a reverberation processor, are updated in sequence so that there is no audible drop-off in the processor's output signal.
  • a reverberation processor provides continuous control over the salience of a periodically repeating echo in the late reverberation decay.
  • a reverberation processor simultaneously provides continuous control over the salience of a periodically repeating echo in the late reverberation decay, and over the duration between successive repetitions of this echo.
  • a reverberation processor simultaneously provides continuous control over the salience of a periodically repeating echo in the late reverberation decay, and over the “diffusion” (or echo density) of the reverberation decay. Furthermore, these two controls combine so that reducing the amount of diffusion has the effect of prolonging the audibility of the repeating echo along the reverberation decay.
  • FIG. 1 is a graph depicting the division of the reverberation response into early reflections and late reverberation
  • FIG. 2 a is a block diagram of a reverberation processor, made of an early reflections module and a late reverberation module;
  • FIG. 2 b is a block diagram of an early reflections module
  • FIG. 2 c is a block diagram of a late reverberation module
  • FIG. 2 d is a block diagram of a variable delay line using a cross-fading technique
  • FIG. 3 is a schematic diagram of a modified early reflections module according to the present invention.
  • FIG. 4 is a schematic diagram of a modified late reverberation module according to the present invention.
  • FIG. 2 a depicts a standard reverberation processor.
  • the reverberation processor 10 has one input and four outputs: Left, Right, Right Surround, and Left Surround. It is has two primary components: the Early Reflections module 12 , and the Late Reverb module 14 .
  • the input signal is low-pass filtered and then passes into a delay line 15 (roomDelay).
  • the delay line 15 has two taps, reverbRead 15 a and reflRead 15 b , which feed the early reflections and reverberation module 12 and 14 .
  • Each of the four outputs of the Early Reflections module 12 is added to one of the four outputs of the Late Reverb module 14 , and these signals are the reverberation outputs.
  • the reverberation processor can be controlled by the following set of parameters (several of which would be affected by a simulated change of the room size):
  • Reflections Delay the delay of the first early reflection relative to the direct-path signal.
  • Reverb Delay the delay of the late reverberation onset relative to the first early reflection.
  • Reflections Level the amplitude level of the early reflections.
  • Reverb Level the amplitude level of the late reverberation.
  • Decay Time the time it takes for the late reverberation to decay by 60 dB at low frequencies.
  • Decay HF Ratio the ratio of the high-frequency decay time relative to the low-frequency decay time.
  • Modal Density the total length of the delay lines comprising the Late Reverb module.
  • Diffusion the echo density in the late reverberation.
  • Echo Depth the salience of a repeating echo in the late reverberation.
  • Echo Time the duration between successive repetitions of an echo in the late reverberation.
  • This method of updating delay lengths in a reverberation processor is particularly efficient because:
  • the additional computational cost is limited, at most, to one multiplication per variable delay line read in the network, and,
  • a single ramper can be shared between all the delay line reads (since the read pointers are updated one at a time).
  • FIGS. 3 and 4 depict novel implementations of the early and late reverberation blocks 12 and 14 of the standard reverberation processor 10 depicted in FIGS. 2 b and 2 c .
  • the reverberation block is implemented by software executed by digital signal processors (DSP).
  • DSP digital signal processors
  • the implementation of the blocks will be depicted as schematic diagrams of hardware where the equivalence between the hardware and software is well known to persons of skill in the art.
  • the roomDelay delay line 15 has two reads 15 a and b which respectively feed the Early Reflections module 12 and Late Reverb module 14 .
  • the locations of the two read pointers are determined by the values of the Reflections Delay and Reverb Delay parameters supplied to the Reverb module.
  • the read which feeds the Early Reflections, called reflRead is set by Reflections Delay to be up to 300 msec after the start of the delay line.
  • the read which feeds the Late Reverb module, called reverbRead is set by Reverb Delay to be up to 100 msec after reflRead.
  • FIG. 3 depicts a preferred embodiment of the Early Reflections module 12 which is made up of four parallel all-pass filters 120 a - d which are fed by a tapped delay line 122 (EarlyDiff). Each all-pass filter 120 includes an all-pass delay line 121 .
  • the input signal which comes from roomDelay delay line 15 , is multiplied by the coefficient, ReflLevel 124 .
  • the value of this coefficient is set by the parameter Reflections Level to control the level of the early reflections in the reverberation sound.
  • Reflections Delay is modified, ReflLevel is ramped down, then the read pointer reflRead is moved to its new location in the delay line 15 , and then ReflLevel is ramped back up.
  • EarlyDiff 122 After ReflLevel the signal enters the delay line EarlyDiff 122 .
  • EarlyDiff 122 has 4 taps 122 a , 122 b (earlyDiffReadLS), 112 c (earlyDiffReadR), and 122 d (earlyDiffReadRS) distributed across its length, which feed the four all-pass filters 120 .
  • the first tap, 122 a is at a fixed delay length of 0.
  • the range of the other three tap delays changes proportionally with the amplitude of Reverb Delay.
  • first level setting coefficients 128 b - c set initially to 1, as indicated in FIG. 3. These first level setting coefficients 128 are used to ramp down the signal when the delay line read pointers in the EarlyDiff delay line 122 are moved.
  • the four all-pass filters 120 a - d are identical except for the lengths of their all-pass delay lines 121 a - d .
  • the read pointers 132 a (earlyAPreadRS), 132 b (earlyAPreadR), 132 c (earlyAPreadLS), and 132 d (earlyAPreadL) to the delay lines 121 in the four all-passes 120 (and hence the effective length of the all-pass delays) are distributed and scaled proportionally to the amplitude of ReverbDelay.
  • the signals which are read from the all-pass delay lines 121 are multiplied by second level setting coefficients 130 a - d set initially to 1. These second level setting coefficients 130 are ramped down and then up when the all-pass delay lengths are changed, to avoid artifacts.
  • the all-pass coefficient used in all four filters, named earlyAPcoff is set to the value of 0.4 (in this embodiment).
  • FIG. 4 depicts a preferred embodiment of the Late Reverb module 14 , made up of an 8-channel Feedback Delay Network (FDN) 140 .
  • the single input to the Late Reverb module which comes from the reverbRead tap of the roomDelay delay line, feeds into the delay line clusterDelay 142 .
  • clusterDelay 142 has eight taps whose read pointer locations are constant and which feed the FDN.
  • delay lines 140 a - h there are eight delay lines 140 a - h in the FDN 140 , each having a different length.
  • the total length of the delay lines 140 a - h is specified by the Modal Density parameter.
  • the outputs of all the lateDelay delay lines 140 a - h are multiplied by the fbscale coefficients 141 , which are used to control the Decay Time of the reverberation and to normalize the Feedback Matrix 143 .
  • fbscale coefficients 141 which are used to control the Decay Time of the reverberation and to normalize the Feedback Matrix 143 .
  • the low-pass filter coefficients are adjusted according to the settings of the parameters Decay Time and Decay HF Ratio to control the decay time at high frequencies. Whenever one of the lateDelay read pointers 140 a - h is updated, the corresponding fbscale and lpcoff coefficients are updated according to the current settings of Decay Time and Decay HF Ratio.
  • each lateDelay delay line After the outputs of each lateDelay delay line have been multiplied by an fbscale coefficient they are added to a delayed input signal, and filtered by a low-pass filter. The resulting signals are mixed together by a unitary mixing feedback matrix 143 before being fed back to the lateDelay delay line inputs.
  • This feedback matrix can be changed from a diagonal matrix, which sends each of the inputs through unaffected, to a completely diffuse matrix, which mixes all of the input signals into each of the output signals.
  • the amount of mixing affects the echo density of the reverb output, and is under control of the Diffusion parameter.
  • a low Diffusion parameter value causes the feedback matrix to become diagonal, and a high value causes the matrix to become diffuse.
  • An intermediate Diffusion value causes the matrix to be more or less diffuse.
  • the preferred implementation uses a recursive rotation matrix.
  • a recursive rotation matrix can be made by applying a 2 ⁇ 2 rotation matrix to each pair of inputs, and then applying the same rotation to the outputs of the first rotation until all of the inputs have been mixed into each of the outputs, as described in FIG. 4.
  • the amount of mixing of the final 8 ⁇ 8 matrix can be controlled by one value, lateTan, which is calculated from the Diffusion parameter as follows:
  • the feedback matrix is made unitary by applying a normalizing gain to the values of the fbscale mutlipliers. This value is dependant on the diffusion of the feedback matrix and is calculated as follows:
  • the lengths of the lateDelay delay lines 140 are distributed across a range of values.
  • a repeating echo effect is achieved by reducing the range of lengths across which the delay lines are distributed. As the range becomes diminished, the repeating echo effect becomes more distinct.
  • DMIN 39.1 msec
  • DMAX 150.1 msec.
  • clusterDelay 142 has eight taps whose locations are constant and which feed the FDN 140 . Four of these eight taps have signals are multiplied by the coefficient halfecho 145 . This coefficient is controlled by the parameter Diffusion, and is used in conjunction with EchoDepth to make echoes in the late reverb sound half as often.
  • This coefficient is controlled by the parameter Diffusion, and is used in conjunction with EchoDepth to make echoes in the late reverb sound half as often.
  • the reverberation processor There are five different parts of the reverberation processor which have delay line reads which must be updated without causing artifacts.
  • many of the delay lines are modified when the Reverb Delay parameter is changed. This parameter controls the delay between the early reflections and late reverberation by changing the location of reverbRead. Changing the Reverb Delay parameter also spreads out the early reflections so that they span the time between Reflections Delay and the onset of the late reverberation. This is done by changing the EarlyDiff reads 122 b - d , and by changing the early all-pass delay lengths 121 a - d.
  • the pointer reflRead which reads from roomDelay 15 and feeds the Early Reflections module 12 , is moved when the Reflections Delay parameter is changed.
  • the pointer reverbRead which reads from roomDelay 15 and feeds the LateReverb module 14 , might be moved whenever Reflections Delay or Reverb Delay are changed.
  • the lateDelay reads 140 a - h in the Late Reverb module 14 are moved in sequence whenever the Modal Density, the Echo Depth or the Echo Time is changed.
  • the program which controls the DSP includes a function called GlitchlessSequence which performs the steps necessary to update all the aforementioned delay read pointers.
  • GlitchlessSequence uses a timer callback when it-is necessary to wait CBTIME milliseconds for the next step.
  • the delay line reads are changed according to the following pseudo code sequence:
  • Each of these steps is composed of a couple smaller steps similar to those described in the section Specifics of Updating One Delay Line Read Pointer.
  • GlitchlessSequence will be called starting at step #1. If the sequence is in progress a flag will be set which is used by steps #3, #11, and #20 to make sure the correct delay lines are changed the next time through the sequence. Similarly, changes to Reverb Delay and changes to the lateDelay read pointers (caused by changes in Modal Density, Echo Depth or Echo Time) will start the GlitchlessSequence at steps #2 and #12, respectively, or, if the sequence is already in progress, set their own flags.
  • the reverberation processor uses an interpolate instruction to ramp a coefficient for one value, called Ramp1Sub, to another value, called Ramp1Dest, at a rate determined by a variable called RampConst. For example, when the ReflRead tap to the roomDelay delay line 15 is to be moved then the ReflLevel coefficient would be initially equal to Ramp1Sub and would be ramped as described below.
  • the delayed signal can be ramped down or up, depending on the value of Ramp1Dest.
  • RampConst determines how fast Ramp1Sub approaches the value of Ramp1Dest, and therefore how much time each step of the ramping sequence will take. For a given ramp time in milliseconds, say CBTIME, RampConst is set to:
  • Ramp1Dest were set to zero, for example, it would take Ramp1Sub CBTIME milliseconds to reach 15 bits below its original value. In the preferred embodiment CBTIME is 20 milliseconds.

Abstract

A reverberation processor is provided comprising a plurality of delay lines implemented in delay line memory, and hardware operable to introduce an echo effect into the reverberation decay and to provide a control parameter to control salience of the echo effect. The delay lines are operable to generate a reverberation decay in response to an input signal. In one embodiment, an increase and a decrease in the salience of the echo effect is dependent upon the control parameter. The control parameter may provide continuous control over the salience of the echo effect and the echo effect may be embedded within the reverberation decay. In one embodiment, a range of delay lengths across which the plurality of delay lines is distributed is reduced to produce a repeating echo effect. The invention extends to method of and software product for providing reverberation.

Description

    RELATED APPLICATIONS
  • This application is a continuation of U.S. application Ser. No. 09/547,365 filed Apr. 11, 2000.[0001]
  • BACKGROUND OF THE INVENTION
  • Virtual auditory displays (including computer games, virtual reality systems or computer music workstations) create virtual worlds in which a virtual listener can hear sounds generated from sound sources within these worlds. In addition to reproducing sound as generated by the source, the computer also processes the source signal to simulate the effects of the virtual environment on the sound emitted by the source. In a first-person computer game, the player hears the sound that he/she would hear if he/she were located in the position of the virtual listener in the virtual world. One important environmental factor is reverberation, which refers to the reflections of the generated sound which bounce off objects in the environment. Reverberation can be characterized by measurable criteria, such as the reverberation time, which is a measure of the time it takes for the reflections to become imperceptible. Computer generated sounds without reverberation sound dead or dry. [0002]
  • Artificial reverberation algorithms are well known in the art and are described e. g. in Stautner, J., and Puckette, M. (1982). Designing Multi-Channel Reverberators. [0003] Computer Music Journal, Vol. 6, no. 1, Dattorro, J. (1997). Effect Design (Part 1: Reverberator and Other Filters; Part 2: Delay-Line Modulation and Chorus). Journal of the Audio Engineering Society, Vol. 45, no. 9-10, Jot, J. -M. (1997). Efficient Models for Reverberation and Distance Rendering in Computer Music and Virtual Audio Reality. Proceedings of the 1997 International Computer Music Conference. The implementation of these algorithms on digital signal processors is based on a network of digital delay lines which are connected together and to the input and output points of the algorithm by feed-forward or feedback connections. Rooms of different sizes and acoustical properties can be simulated by modifying the topology of the network (the number of delay lines and the connections between them), by varying the duration of the delays, or by adjusting the amplification or attenuation coefficients of multipliers and filters inserted on the feed-forward or feedback connections.
  • As depicted in FIG. 1, a typical model of reverberation breaks the reverberation effects into discrete time segments. The first signal that reaches the listener is the direct-path signal, which undergoes no reflections. Subsequently, a series of discrete “early” reflections are received during an initial period of the reverberation response. Finally, after a critical time, the exponentially decaying “late” reverberation is modeled statistically because of the combination and overlapping of the various reflections. The magnitudes of Reflections_delay and Reverb_delay are typically dependent on the size of the room and on the position of the source and the listener in the room. As illustrated in FIG. 2[0004] a, the early reflections and the late reverberation are often generated by two separate processing modules whose output signals are combined to produce the output of the reverberation processor. Examples of an early reflection module and a late reverberation module are shown on FIGS. 2b and 2 c, respectively. The lengths of delay lines comprising these modules can be made smaller or larger according to the size of the virtual room.
  • Reverberation processors of the type described above are commonly used for the production of music and soundtracks in recording studios. In these applications, it is not common to produce drastic changes in reverberation characteristics while the sound is playing. Noticeable drop-offs and other artifacts in the output signal of the processor will occur, for instance, when the user loads a different reverberation “program” or adjusts the room size parameter (which may involve changing the network structure or modifying delay lengths). However, such artifacts are not acceptable in interactive audio applications. In immersive 3D games or simulation systems, for instance, different reverberation settings may be associated with different rooms or environments composing a virtual 3D world in which the virtual listener is allowed to travel. Consequently, in these systems, the reverberation processor must be able to change settings while creating a minimum of disruptive or distracting audible artifacts. [0005]
  • Artifacts due to dynamic changes in reverberation settings can be avoided by using two reverberation processors set to simulate different room acoustics and cross-fading from one processor to the other (at their input or at their output). However, it is generally more advantageous to use a single reverberation processor and modify its parameters in order to produce the desired change in room acoustics. The coefficients of multipliers and filters comprising a reverberation processor are easily changed, without noticeable artifacts, by ramping their values to new values over a short time. This avoids the introduction of sudden discontinuities in the audio signal waveform, audible as pops or clicks. For the same reason, it is necessary to avoid sudden changes in the duration of the delay lines. [0006]
  • Methods for implementing continuously variable delays are well known in the art and are described e. g. in Laakso, T. I. et al. (1996). Splitting the Unit Delay—Tools for Fractional Delay Filter Design. [0007] IEEE Signal Processing Magazine, Vol. 13, no. 1. However, these methods involve digital audio interpolators, adding significant computational complexity to each delay line. Furthermore, when an interpolator is used, a large variation in a delay length can produce a noticeable change in the pitch of the delayed signal, which may result in an audible artifact. Another technique for implementing variable delays is described in Van Duyne, S. A. (1997). A Lossless, Click-Free, Pitchbend-able Delay Line Loop Interpolation Scheme. Proceedings of the 1997 International Computer Music Conference and illustrated in FIG. 2d. In this technique, a delay change is realized by cross-fading between two signals read from two different locations (or “taps”) in the delay line's memory. These two taps are provided by two read pointers whose locations in the memory correspond to the original delay value and the final delay value. This method moves the read pointer to a new location in the delay memory without causing a drop-off, a discontinuity or a pitch alteration in the delayed audio signal. However, it causes a temporary timbre alteration known as “comb filter effect”.
  • In order to provide a wider range of variation in simulated room acoustics, it is common to allow control for the echo density of the reverberation decay, suggesting more or less diffusing room walls. For instance, the reverberation algorithm described in Dattorro, supra allows to control diffusion by adjusting the feedback coefficients of a set of all-pass filters in the reverberation network. Another kind of common musical effect, also described e. g. in Dattorro supra, is the echo effect, which can be obtained simply by a single delay line with feedback. A cyclic echo can sometimes be obtained with existing reverberation algorithms as a side effect—usually unwanted—for particular settings of a reverberation processor's parameters. However, reverberators such as described in the above references do not provide parameters for controlling explicitly and intuitively aspects of an echo effect embedded in the reverberation decay. Such control would be useful to simulate larger rooms or semi-open environments such as a courtyard. [0008]
  • SUMMARY OF THE INVENTION
  • According to one aspect of the invention, audio artifacts are minimized when changing reverberation settings by causing the amplitude of a signal from a delay line having its read pointers changed to ramp down prior to moving the read pointer. The amplitude of the signal is then ramped up after the read pointer has been moved. [0009]
  • According to another aspect of the invention, a set of delay lines, whose output signals are combined to produce the output of a reverberation processor, are updated in sequence so that there is no audible drop-off in the processor's output signal. [0010]
  • According to another aspect of the invention, a reverberation processor provides continuous control over the salience of a periodically repeating echo in the late reverberation decay. [0011]
  • According to another aspect of the invention, a reverberation processor simultaneously provides continuous control over the salience of a periodically repeating echo in the late reverberation decay, and over the duration between successive repetitions of this echo. [0012]
  • According to another aspect of the invention, a reverberation processor simultaneously provides continuous control over the salience of a periodically repeating echo in the late reverberation decay, and over the “diffusion” (or echo density) of the reverberation decay. Furthermore, these two controls combine so that reducing the amount of diffusion has the effect of prolonging the audibility of the repeating echo along the reverberation decay. [0013]
  • Other features and advantages of the invention will be apparent in view of the following detailed description and appended drawings.[0014]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a graph depicting the division of the reverberation response into early reflections and late reverberation; [0015]
  • FIG. 2[0016] a is a block diagram of a reverberation processor, made of an early reflections module and a late reverberation module;
  • FIG. 2[0017] b is a block diagram of an early reflections module;
  • FIG. 2[0018] c is a block diagram of a late reverberation module;
  • FIG. 2[0019] d is a block diagram of a variable delay line using a cross-fading technique;
  • FIG. 3 is a schematic diagram of a modified early reflections module according to the present invention; and [0020]
  • FIG. 4 is a schematic diagram of a modified late reverberation module according to the present invention.[0021]
  • DESCRIPTION OF THE SPECIFIC EMBODIMENTS
  • FIG. 2[0022] a depicts a standard reverberation processor. The reverberation processor 10 has one input and four outputs: Left, Right, Right Surround, and Left Surround. It is has two primary components: the Early Reflections module 12, and the Late Reverb module 14. The input signal is low-pass filtered and then passes into a delay line 15 (roomDelay). The delay line 15 has two taps, reverbRead 15 a and reflRead 15 b, which feed the early reflections and reverberation module 12 and 14. Each of the four outputs of the Early Reflections module 12 is added to one of the four outputs of the Late Reverb module 14, and these signals are the reverberation outputs.
  • In a preferred embodiment of the present invention, the reverberation processor can be controlled by the following set of parameters (several of which would be affected by a simulated change of the room size): [0023]
  • Reflections Delay: the delay of the first early reflection relative to the direct-path signal. [0024]
  • Reverb Delay: the delay of the late reverberation onset relative to the first early reflection. [0025]
  • Reflections Level: the amplitude level of the early reflections. [0026]
  • Reverb Level: the amplitude level of the late reverberation. [0027]
  • Decay Time: the time it takes for the late reverberation to decay by 60 dB at low frequencies. [0028]
  • Decay HF Ratio: the ratio of the high-frequency decay time relative to the low-frequency decay time. [0029]
  • Modal Density: the total length of the delay lines comprising the Late Reverb module. [0030]
  • Diffusion: the echo density in the late reverberation. [0031]
  • Echo Depth: the salience of a repeating echo in the late reverberation. [0032]
  • Echo Time: the duration between successive repetitions of an echo in the late reverberation. [0033]
  • The problem of switching reverberation settings while creating minimal disruptive or disturbing artifacts is remedied in an embodiment of the present invention by the following mechanism. Any signals coming from delay line reads whose location might be changed are multiplied by variable coefficients. If the reverberation algorithm would not normally call for a multiply to be performed on that signal, it is multiplied by 1. When the delay line read pointer must be moved, the multiply coefficient is ramped towards zero. A short time later, when the coefficient has reached a sufficiently low value, the read pointer is moved, and the coefficient is then ramped back up to its correct value. If multiple delay line read pointers must be moved, they are moved sequentially so that the audible impact of dips in the delayed signals is minimized at any moment. [0034]
  • This method of updating delay lengths in a reverberation processor is particularly efficient because: [0035]
  • the additional computational cost is limited, at most, to one multiplication per variable delay line read in the network, and, [0036]
  • a single ramper can be shared between all the delay line reads (since the read pointers are updated one at a time). [0037]
  • With this scheme, quick drops in audio parts of the reverberation are sometimes audible (the entire reverberation signal is never muted at once, but aspects of the sound may be heard to dip). Echoes are sometimes created when delay line read pointers are moved to much longer values. However, the overall effect is usually subtle and much less distracting than clicks and pops. [0038]
  • FIGS. 3 and 4 depict novel implementations of the early and late reverberation blocks [0039] 12 and 14 of the standard reverberation processor 10 depicted in FIGS. 2b and 2 c. In a preferred embodiment, the reverberation block is implemented by software executed by digital signal processors (DSP). However, the implementation of the blocks will be depicted as schematic diagrams of hardware where the equivalence between the hardware and software is well known to persons of skill in the art.
  • For example, the delay lines depicted in FIGS. 2, 3 and [0040] 4 are implemented using samples stored in RAM. The roomDelay delay line 15 has two reads 15 a and b which respectively feed the Early Reflections module 12 and Late Reverb module 14. The locations of the two read pointers are determined by the values of the Reflections Delay and Reverb Delay parameters supplied to the Reverb module. The read which feeds the Early Reflections, called reflRead, is set by Reflections Delay to be up to 300 msec after the start of the delay line. The read which feeds the Late Reverb module, called reverbRead, is set by Reverb Delay to be up to 100 msec after reflRead.
  • Early Reflections Module [0041]
  • FIG. 3 depicts a preferred embodiment of the [0042] Early Reflections module 12 which is made up of four parallel all-pass filters 120 a-d which are fed by a tapped delay line 122 (EarlyDiff). Each all-pass filter 120 includes an all-pass delay line 121. The input signal, which comes from roomDelay delay line 15, is multiplied by the coefficient, ReflLevel 124. The value of this coefficient is set by the parameter Reflections Level to control the level of the early reflections in the reverberation sound. When Reflections Delay is modified, ReflLevel is ramped down, then the read pointer reflRead is moved to its new location in the delay line 15, and then ReflLevel is ramped back up.
  • After ReflLevel the signal enters the [0043] delay line EarlyDiff 122. EarlyDiff 122 has 4 taps 122 a, 122 b (earlyDiffReadLS), 112 c (earlyDiffReadR), and 122 d (earlyDiffReadRS) distributed across its length, which feed the four all-pass filters 120. The first tap, 122 a, is at a fixed delay length of 0. The range of the other three tap delays changes proportionally with the amplitude of Reverb Delay.
  • The three signals which are read from the [0044] EarlyDiff delay line 122 are multiplied by first level setting coefficients 128 b-c, set initially to 1, as indicated in FIG. 3. These first level setting coefficients 128 are used to ramp down the signal when the delay line read pointers in the EarlyDiff delay line 122 are moved.
  • The four all-pass filters [0045] 120 a-d are identical except for the lengths of their all-pass delay lines 121 a-d. The read pointers 132 a (earlyAPreadRS), 132 b (earlyAPreadR), 132 c (earlyAPreadLS), and 132 d (earlyAPreadL) to the delay lines 121 in the four all-passes 120 (and hence the effective length of the all-pass delays) are distributed and scaled proportionally to the amplitude of ReverbDelay. The signals which are read from the all-pass delay lines 121 are multiplied by second level setting coefficients 130 a-d set initially to 1. These second level setting coefficients 130 are ramped down and then up when the all-pass delay lengths are changed, to avoid artifacts. The all-pass coefficient used in all four filters, named earlyAPcoff, is set to the value of 0.4 (in this embodiment).
  • Late Reverb Module [0046]
  • FIG. 4 depicts a preferred embodiment of the [0047] Late Reverb module 14, made up of an 8-channel Feedback Delay Network (FDN) 140. The single input to the Late Reverb module, which comes from the reverbRead tap of the roomDelay delay line, feeds into the delay line clusterDelay 142. clusterDelay 142 has eight taps whose read pointer locations are constant and which feed the FDN.
  • There are eight delay lines [0048] 140 a-h in the FDN 140, each having a different length. The total length of the delay lines 140 a-h is specified by the Modal Density parameter. The outputs of all the lateDelay delay lines 140 a-h are multiplied by the fbscale coefficients 141, which are used to control the Decay Time of the reverberation and to normalize the Feedback Matrix 143. Once these eight signals have the delayed input signals added to them they are passed through 1-pole low-pass filters 146 and enter the feedback matrix 148. Each low-pass filter has its own filter coefficient (lpcoff0 for the 0th, etc.). The low-pass filter coefficients are adjusted according to the settings of the parameters Decay Time and Decay HF Ratio to control the decay time at high frequencies. Whenever one of the lateDelay read pointers 140 a-h is updated, the corresponding fbscale and lpcoff coefficients are updated according to the current settings of Decay Time and Decay HF Ratio.
  • Continuous Control of Diffusion in the Feedback Matrix [0049]
  • After the outputs of each lateDelay delay line have been multiplied by an fbscale coefficient they are added to a delayed input signal, and filtered by a low-pass filter. The resulting signals are mixed together by a unitary [0050] mixing feedback matrix 143 before being fed back to the lateDelay delay line inputs. This feedback matrix can be changed from a diagonal matrix, which sends each of the inputs through unaffected, to a completely diffuse matrix, which mixes all of the input signals into each of the output signals. The amount of mixing affects the echo density of the reverb output, and is under control of the Diffusion parameter. A low Diffusion parameter value causes the feedback matrix to become diagonal, and a high value causes the matrix to become diffuse. An intermediate Diffusion value causes the matrix to be more or less diffuse.
  • The preferred implementation uses a recursive rotation matrix. A recursive rotation matrix can be made by applying a 2×2 rotation matrix to each pair of inputs, and then applying the same rotation to the outputs of the first rotation until all of the inputs have been mixed into each of the outputs, as described in FIG. 4. The amount of mixing of the final 8×8 matrix can be controlled by one value, lateTan, which is calculated from the Diffusion parameter as follows: [0051]
  • The feedback matrix is made unitary by applying a normalizing gain to the values of the fbscale mutlipliers. This value is dependant on the diffusion of the feedback matrix and is calculated as follows:[0052]
  • FdnFbScale=cos3(diffnorm*π/4)
  • Producing and Controlling a Repeating Echo in the Reverberation Decay [0053]
  • The lengths of the lateDelay delay lines [0054] 140 are distributed across a range of values. A repeating echo effect is achieved by reducing the range of lengths across which the delay lines are distributed. As the range becomes diminished, the repeating echo effect becomes more distinct.
  • The locations of the read pointers for the lateDelay lines in the FDN are determined by the values of Modal Density and Echo Depth according to the following equations (DelayLen[i] is the location in msec of the ith read pointer):[0055]
  • In a preferred embodiment, DMIN=39.1 msec, DMAX=150.1 msec.
  • As depicted in FIG. 4, clusterDelay [0056] 142 has eight taps whose locations are constant and which feed the FDN 140. Four of these eight taps have signals are multiplied by the coefficient halfecho 145. This coefficient is controlled by the parameter Diffusion, and is used in conjunction with EchoDepth to make echoes in the late reverb sound half as often. In a preferred embodiment:
  • halfecho=diffnorm
  • which has been calculated above. [0057]
  • The Sequence for Changing Reverberation Delays [0058]
  • There are five different parts of the reverberation processor which have delay line reads which must be updated without causing artifacts. In the preferred embodiment, many of the delay lines are modified when the Reverb Delay parameter is changed. This parameter controls the delay between the early reflections and late reverberation by changing the location of reverbRead. Changing the Reverb Delay parameter also spreads out the early reflections so that they span the time between Reflections Delay and the onset of the late reverberation. This is done by changing the EarlyDiff reads [0059] 122 b-d, and by changing the early all-pass delay lengths 121 a-d.
  • The parts that are changed are: [0060]
  • 1. The pointer reflRead, which reads from [0061] roomDelay 15 and feeds the Early Reflections module 12, is moved when the Reflections Delay parameter is changed.
  • 2. The pointer reverbRead, which reads from [0062] roomDelay 15 and feeds the LateReverb module 14, might be moved whenever Reflections Delay or Reverb Delay are changed.
  • 3. The three reads [0063] 122 b-d from the EarlyDiff delay 122 in the Early Reflections module are moved in sequence whenever Reverb Delay changes.
  • 4. The lengths of the four all-pass delays [0064] 121 a-d in the Early Reflections module 12 are changed in sequence whenever Reverb Delay changes.
  • 5. The lateDelay reads [0065] 140 a-h in the Late Reverb module 14 are moved in sequence whenever the Modal Density, the Echo Depth or the Echo Time is changed.
  • The program which controls the DSP includes a function called GlitchlessSequence which performs the steps necessary to update all the aforementioned delay read pointers. GlitchlessSequence uses a timer callback when it-is necessary to wait CBTIME milliseconds for the next step. The delay line reads are changed according to the following pseudo code sequence: [0066]
  • 1. [0067] Change reflRead 15 b;
  • 2. [0068] Change reverbRead 15 a;
  • 3. If Reverb Delay has been changed or is in the process of being changed Continue; [0069]
  • Else if lateDelay read pointers need to be changed go to step #12; [0070]
  • Else if Reflections Delay has been changed go to step #1. [0071]
  • Else Break; [0072]
  • 4. [0073] Change DiffReadR 122 c;
  • 5. [0074] Change DiffReadLS 122 b;
  • 6. [0075] Change DiffReadRS 122 d;
  • 7. [0076] Change earlyAPreadL 132 d;
  • 8. [0077] Change earlyAPreadR 132 b;
  • 9. Change earlyAPreadLS [0078] 132 c;
  • 10. [0079] Change earlyAPreadRS 132 a;
  • 11. If lateDelay read pointers need to be changed Continue; [0080]
  • Else if Reflections Delay has been changed go to step #1; [0081]
  • Else if Reverb Delay has been changed go to step #2; [0082]
  • Else Break; [0083]
  • 12. Change lateDelay read [0084] pointer 0, 140 a;
  • 13. Change lateDelay read [0085] pointer 1, 140 b;
  • 14. Change lateDelay read [0086] pointer 2, 140 c;
  • 15. Change lateDelay read [0087] pointer 3, 140 d;
  • 16. Change lateDelay read [0088] pointer 4, 140 e;
  • 17. Change lateDelay read [0089] pointer 5, 140 f;
  • 18. Change lateDelay read [0090] pointer 6, 140 g;
  • 19. Change lateDelay read [0091] pointer 7, 140 h;
  • 20. If Reflections Delay has been changed go to step #1; [0092]
  • Else if Reverb Delay has been changed go to step #2; [0093]
  • Else if lateDelay read pointers need to be changed go to step #12; [0094]
  • Else Break; [0095]
  • Each of these steps is composed of a couple smaller steps similar to those described in the section Specifics of Updating One Delay Line Read Pointer. [0096]
  • If a change is made to Reflections Delay and the sequence is not in progress GlitchlessSequence will be called starting at [0097] step #1. If the sequence is in progress a flag will be set which is used by steps #3, #11, and #20 to make sure the correct delay lines are changed the next time through the sequence. Similarly, changes to Reverb Delay and changes to the lateDelay read pointers (caused by changes in Modal Density, Echo Depth or Echo Time) will start the GlitchlessSequence at steps #2 and #12, respectively, or, if the sequence is already in progress, set their own flags.
  • The Specifics of Changing One Delay Line Read Pointer [0098]
  • The reverberation processor uses an interpolate instruction to ramp a coefficient for one value, called Ramp1Sub, to another value, called Ramp1Dest, at a rate determined by a variable called RampConst. For example, when the ReflRead tap to the [0099] roomDelay delay line 15 is to be moved then the ReflLevel coefficient would be initially equal to Ramp1Sub and would be ramped as described below.
  • Specifically, at each sample period:[0100]
  • Ramp1Sub=(RampConst*Ramp1Sub)+((1−RampConst)*Ramp1Dest)
  • By replacing the ReflLevel coefficient with the new value Ramp1Sub at each sample period, the delayed signal can be ramped down or up, depending on the value of Ramp1Dest. [0101]
  • The value of RampConst determines how fast Ramp1Sub approaches the value of Ramp1Dest, and therefore how much time each step of the ramping sequence will take. For a given ramp time in milliseconds, say CBTIME, RampConst is set to:[0102]
  • RampConst=2{circumflex over ( )}(−15/(CBTIME*SampleRate/1000))
  • If Ramp1Dest were set to zero, for example, it would take Ramp1Sub CBTIME milliseconds to reach 15 bits below its original value. In the preferred embodiment CBTIME is 20 milliseconds. [0103]
  • The primary steps to move one delay line read pointer, reflRead for example, are as follows: ramp down ReflLevel, move reflRead, and ramp ReflLevel back up. However, to accomplish these steps there is a more detailed sequence of events that must take place. [0104]
  • 1. Set Ramp1Dest to the value of ReflLevel. This must be done so that the ramper does not ramp Ramp1Sub away before we can substitute it in for ReflLevel. [0105]
  • 2. Set Ramp1Sub to the value of ReflLevel, so that there will be no level jump when the substitution is made. [0106]
  • 3. Replace ReflLevel with Ramp1Sub in the instruction that multiplies the signal read from reflRead. [0107]
  • 4. Set Ramp1Dest to zero, so that the ramper starts ramping down. [0108]
  • 5. Wait CBTIME milliseconds while Ramp1Sub ramps down. [0109]
  • 6. Move reflRead to the new location. [0110]
  • 7. Set Ramp1Dest to the value of ReflLevel to start ramping up. [0111]
  • 8. Wait CBTIME milliseconds while Ramp1Sub ramps up. [0112]
  • 9. If ReflLevel has been changed since [0113] step 7,
  • Set ReflLevel to the value of Ramp1Sub, [0114]
  • Replace Ramp1Sub with ReflLevel in the multiply instruction, [0115]
  • Call the routine that would normal ramp ReflLevel if there were no update of the reflRead pointer. [0116]
  • 10. If ReflLevel has not been changed, replace Ramp1Sub with ReflLevel in the multiply instruction [0117]
  • If another delay line read pointer must be changed it can begin its own similar sequence immediately. It is not necessary to wait another time step. [0118]
  • The invention has now been described with reference to the preferred embodiments. Alternatives and substitutions will now be apparent to persons of skill in the art. For example, the particular ramping algorithm or delay configurations described can be modified by persons of skill in the art while practicing the principles of the invention. Accordingly, it is not intended to limit the invention except as provided by the appended claims. [0119]

Claims (30)

What is claimed is:
1. A reverberation processor comprising:
a plurality of delay lines implemented in delay line memory, the delay lines being operable to generate a reverberation decay in response to an input signal; and
hardware operable to introduce an echo effect into the reverberation decay and to provide a control parameter to control salience of the echo effect.
2. The reverberation processor of claim 1, wherein an increase and a decrease in the salience of the echo effect is dependent upon the control parameter.
3. The reverberation processor of claim 1, wherein the control parameter provides continuous control over the salience of the echo effect.
4. The reverberation processor of claim 1, wherein the echo effect is embedded within the reverberation decay.
5. The reverberation processor of claim 1, wherein a range of delay lengths across which the plurality of delay lines is distributed is reduced to produce a repeating echo effect.
6. The reverberation processor of claim 5, wherein the repeating echo effect is made more distinct by further decreasing the range of lengths of the plurality of delay lines.
7. The reverberation processor of claim 1, wherein the control parameter is an echo depth control parameter and locations of read pointers of the plurality of delay lines are based on the echo depth control parameter.
8. The reverberation processor of claim 1, wherein the echo effect is a repeating echo pattern and an echo time control parameter controls a duration between successive repetitions of an echo.
9. The reverberation processor of claim 1, which comprises a feedback matrix connected to inputs and outputs of the plurality of delay lines, the feedback matrix being changed between a diagonal matrix and a diffuse matrix to change the echo effect in the reverberation decay.
10. The reverberation processor of claim 9, wherein the diffusion matrix changes the echo density in the reverberation decay.
11. The reverberation processor of claim 10, wherein the echo density is dependent upon a diffusion parameter, the changing of the feedback matrix being dependent upon the diffusion parameter.
12. The reverberation processor of claim 9, wherein the feedback matrix is a recursive rotation matrix.
13. The reverberation processor of claim 1, which is implemented using software.
14. A method of providing reverberation, the method comprising:
generating a reverberation decay in response to an input signal using a plurality of delay lines implemented in delay line memory; and
introducing an echo effect into the reverberation decay and controlling the salience of the echo effect using a control parameter.
15. The method of claim 14, wherein an increase and a decrease in the salience of the echo effect is dependent upon the control parameter.
16. The method of claim 14, wherein the control parameter provides continuous control over the salience of the echo effect.
17. The method of claim 14, wherein the echo effect is embedded within the reverberation decay.
18. The method of claim 14, wherein a range of delay lengths across which the plurality of delay lines is distributed is reduced to produce a repeating echo effect.
19. The method of claim 18, wherein the repeating echo effect is made more distinct by further decreasing the range of lengths of the plurality of delay lines.
20. The method of claim 14, wherein the control parameter is an echo depth control parameter and locations of read pointers of the plurality of delay lines are derived from the echo depth control parameter.
21. The method of claim 14, wherein the echo effect is a repeating echo pattern and an echo time control parameter controls a duration between successive repetitions of an echo.
22. The method of claim 14, which comprises:
applying delay line outputs of the plurality of delay lines to a feedback matrix;
applying feedback matrix outputs of the feedback matrix to delay line inputs of the plurality of delay lines; and
changing the feedback matrix between a diagonal matrix and a diffuse matrix to change the echo effect in the reverberation decay.
23. The method of claim 22, wherein the diffusion matrix changes the echo density in the reverberation decay.
24. The reverberation processor of claim 23, wherein the echo density is dependent upon a diffusion parameter, the changing of the feedback matrix being dependent upon the diffusion parameter.
25. The reverberation processor of claim 22, wherein the feedback matrix is a recursive rotation matrix.
26. A software product which, when executed by a digital signal processor, causes the processor to:
generate a reverberation decay in response to an input signal using a plurality of delay lines implemented in delay line memory; and
introduce an echo effect into the reverberation decay and provide a control parameter to control the salience of the echo effect.
27. The software product of claim 26, wherein an increase and a decrease in the salience of the echo effect is dependent upon the control parameter.
28. The software product of claim 26, wherein the echo effect is a repeating echo pattern and an echo time control parameter controls a duration between successive repetitions of an echo.
29. The software product of claim 26, wherein
delay line outputs of the plurality of delay lines are applied to a feedback matrix;
feedback matrix outputs of the feedback matrix are applied to delay line inputs of the plurality of delay lines; and
the feedback matrix is changed between a diagonal matrix and a diffuse matrix to change the echo effect in the reverberation decay.
30. A reverberation processor comprising:
means for generating a reverberation decay in response to an input signal using a plurality of delay lines implemented in delay line memory; and
means for introducing an echo effect into the reverberation decay and providing a control parameter to control the salience of the echo effect.
US10/852,941 2000-04-11 2004-05-24 Reverberation processor for interactive audio applications Abandoned US20040213416A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/852,941 US20040213416A1 (en) 2000-04-11 2004-05-24 Reverberation processor for interactive audio applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/547,365 US6978027B1 (en) 2000-04-11 2000-04-11 Reverberation processor for interactive audio applications
US10/852,941 US20040213416A1 (en) 2000-04-11 2004-05-24 Reverberation processor for interactive audio applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/547,365 Continuation US6978027B1 (en) 2000-04-11 2000-04-11 Reverberation processor for interactive audio applications

Publications (1)

Publication Number Publication Date
US20040213416A1 true US20040213416A1 (en) 2004-10-28

Family

ID=33300160

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/547,365 Expired - Lifetime US6978027B1 (en) 2000-04-11 2000-04-11 Reverberation processor for interactive audio applications
US10/852,941 Abandoned US20040213416A1 (en) 2000-04-11 2004-05-24 Reverberation processor for interactive audio applications

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/547,365 Expired - Lifetime US6978027B1 (en) 2000-04-11 2000-04-11 Reverberation processor for interactive audio applications

Country Status (1)

Country Link
US (2) US6978027B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292753A1 (en) * 2008-05-26 2009-11-26 Casio Computer Co., Ltd. Fir filter apparatus, audio apparatus and fir filter program
US8345887B1 (en) * 2007-02-23 2013-01-01 Sony Computer Entertainment America Inc. Computationally efficient synthetic reverberation
US20130308800A1 (en) * 2012-05-18 2013-11-21 Todd Bacon 3-D Audio Data Manipulation System and Method
EP1921604B1 (en) * 2006-11-07 2016-04-27 STMicroelectronics Asia Pacific Pte Ltd. Environmental effects generator for digital audio signals
US9378754B1 (en) 2010-04-28 2016-06-28 Knowles Electronics, Llc Adaptive spatial classifier for multi-microphone systems
US9437180B2 (en) 2010-01-26 2016-09-06 Knowles Electronics, Llc Adaptive noise reduction using level cues
CN106488144A (en) * 2016-10-27 2017-03-08 浙江广播电视集团 The system and method that a kind of multi-source information convergence send studio real-time interactive to represent
CN113518286A (en) * 2021-06-29 2021-10-19 广州酷狗计算机科技有限公司 Reverberation processing method and device for audio signal, electronic equipment and storage medium

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005030855A1 (en) * 2005-07-01 2007-01-11 Müller-BBM GmbH Electro-acoustic method
SG135058A1 (en) * 2006-02-14 2007-09-28 St Microelectronics Asia Digital audio signal processing method and system for generating and controlling digital reverberations for audio signals
US8885834B2 (en) 2008-03-07 2014-11-11 Sennheiser Electronic Gmbh & Co. Kg Methods and devices for reproducing surround audio signals
JP5104553B2 (en) * 2008-05-30 2012-12-19 ヤマハ株式会社 Impulse response processing device, reverberation imparting device and program
US9558760B2 (en) 2015-03-06 2017-01-31 Microsoft Technology Licensing, Llc Real-time remodeling of user voice in an immersive visualization system
IL297445B2 (en) 2017-10-17 2024-03-01 Magic Leap Inc Mixed reality spatial audio
IL276510B2 (en) 2018-02-15 2024-02-01 Magic Leap Inc Mixed reality virtual reverberation
EP3804132A1 (en) 2018-05-30 2021-04-14 Magic Leap, Inc. Index scheming for filter parameters
US11304017B2 (en) 2019-10-25 2022-04-12 Magic Leap, Inc. Reverberation fingerprint estimation

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338581A (en) * 1980-05-05 1982-07-06 The Regents Of The University Of California Room acoustics simulator
US4731848A (en) * 1984-10-22 1988-03-15 Northwestern University Spatial reverberator
US4731835A (en) * 1984-11-19 1988-03-15 Nippon Gakki Seizo Kabushiki Kaisha Reverberation tone generating apparatus
US4817149A (en) * 1987-01-22 1989-03-28 American Natural Sound Company Three-dimensional auditory display apparatus and method utilizing enhanced bionic emulation of human binaural sound localization
US5131051A (en) * 1989-11-28 1992-07-14 Yamaha Corporation Method and apparatus for controlling the sound field in auditoriums
US5491754A (en) * 1992-03-03 1996-02-13 France Telecom Method and system for artificial spatialisation of digital audio signals
US5553150A (en) * 1993-10-21 1996-09-03 Yamaha Corporation Reverberation - imparting device capable of modulating an input signal by random numbers
US5619579A (en) * 1993-12-29 1997-04-08 Yamaha Corporation Reverberation imparting apparatus
US5657476A (en) * 1993-02-10 1997-08-12 Korg, Inc. Signal processor with delay line management logic
US5689571A (en) * 1994-12-08 1997-11-18 Kawai Musical Inst. Mfg. Co., Ltd. Device for producing reverberation sound
US5781461A (en) * 1996-05-09 1998-07-14 Board Of Trustees Of The Leland Stanford Junior University Digital signal processing system and method for generating musical legato using multitap delay line with crossfader
US5974154A (en) * 1994-07-14 1999-10-26 Yamaha Corporation Effector with integral setting of control parameters and adaptive selecting of control programs
US6032235A (en) * 1997-11-14 2000-02-29 Creative Technology Ltd. Memory initialization circuit
US6166315A (en) * 1998-09-22 2000-12-26 Yamaha Corporation Device for processing a microphone signal of a karaoke apparatus
US6188769B1 (en) * 1998-11-13 2001-02-13 Creative Technology Ltd. Environmental reverberation processor
US6483922B1 (en) * 1998-04-13 2002-11-19 Allen Organ Company Method and system for generating a simulated reverberation audio signal

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338581A (en) * 1980-05-05 1982-07-06 The Regents Of The University Of California Room acoustics simulator
US4731848A (en) * 1984-10-22 1988-03-15 Northwestern University Spatial reverberator
US4731835A (en) * 1984-11-19 1988-03-15 Nippon Gakki Seizo Kabushiki Kaisha Reverberation tone generating apparatus
US4817149A (en) * 1987-01-22 1989-03-28 American Natural Sound Company Three-dimensional auditory display apparatus and method utilizing enhanced bionic emulation of human binaural sound localization
US5131051A (en) * 1989-11-28 1992-07-14 Yamaha Corporation Method and apparatus for controlling the sound field in auditoriums
US5491754A (en) * 1992-03-03 1996-02-13 France Telecom Method and system for artificial spatialisation of digital audio signals
US5657476A (en) * 1993-02-10 1997-08-12 Korg, Inc. Signal processor with delay line management logic
US5553150A (en) * 1993-10-21 1996-09-03 Yamaha Corporation Reverberation - imparting device capable of modulating an input signal by random numbers
US5619579A (en) * 1993-12-29 1997-04-08 Yamaha Corporation Reverberation imparting apparatus
US5974154A (en) * 1994-07-14 1999-10-26 Yamaha Corporation Effector with integral setting of control parameters and adaptive selecting of control programs
US5689571A (en) * 1994-12-08 1997-11-18 Kawai Musical Inst. Mfg. Co., Ltd. Device for producing reverberation sound
US5781461A (en) * 1996-05-09 1998-07-14 Board Of Trustees Of The Leland Stanford Junior University Digital signal processing system and method for generating musical legato using multitap delay line with crossfader
US6032235A (en) * 1997-11-14 2000-02-29 Creative Technology Ltd. Memory initialization circuit
US6483922B1 (en) * 1998-04-13 2002-11-19 Allen Organ Company Method and system for generating a simulated reverberation audio signal
US6166315A (en) * 1998-09-22 2000-12-26 Yamaha Corporation Device for processing a microphone signal of a karaoke apparatus
US6188769B1 (en) * 1998-11-13 2001-02-13 Creative Technology Ltd. Environmental reverberation processor

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1921604B1 (en) * 2006-11-07 2016-04-27 STMicroelectronics Asia Pacific Pte Ltd. Environmental effects generator for digital audio signals
US8345887B1 (en) * 2007-02-23 2013-01-01 Sony Computer Entertainment America Inc. Computationally efficient synthetic reverberation
US20090292753A1 (en) * 2008-05-26 2009-11-26 Casio Computer Co., Ltd. Fir filter apparatus, audio apparatus and fir filter program
US8145693B2 (en) * 2008-05-26 2012-03-27 Casio Computer Co., Ltd. Fir filter apparatus, audio apparatus and fir filter program
US9437180B2 (en) 2010-01-26 2016-09-06 Knowles Electronics, Llc Adaptive noise reduction using level cues
US9378754B1 (en) 2010-04-28 2016-06-28 Knowles Electronics, Llc Adaptive spatial classifier for multi-microphone systems
US20130308800A1 (en) * 2012-05-18 2013-11-21 Todd Bacon 3-D Audio Data Manipulation System and Method
CN106488144A (en) * 2016-10-27 2017-03-08 浙江广播电视集团 The system and method that a kind of multi-source information convergence send studio real-time interactive to represent
CN113518286A (en) * 2021-06-29 2021-10-19 广州酷狗计算机科技有限公司 Reverberation processing method and device for audio signal, electronic equipment and storage medium

Also Published As

Publication number Publication date
US6978027B1 (en) 2005-12-20

Similar Documents

Publication Publication Date Title
US6978027B1 (en) Reverberation processor for interactive audio applications
US7257230B2 (en) Impulse response collecting method, sound effect adding apparatus, and recording medium
EP1685743B1 (en) Audio signal processing system and method
CA2585937C (en) Unnatural reverberation
US6658117B2 (en) Sound field effect control apparatus and method
GB2345622A (en) Reflection sound generator
JP3097398B2 (en) Reverberation effect imparting device
JP4019753B2 (en) Reverberation imparting device, reverberation imparting method, program, and recording medium
JP2003271165A (en) Sound field reproducing device, program and recording medium
US8059824B2 (en) Joint sound synthesis and spatialization
JP2003263179A (en) Reverberator, method of reverberation, program, and recording medium
JPS6253100A (en) Acoustic characteristic controller
JP4263869B2 (en) Reverberation imparting device, reverberation imparting method, program, and recording medium
JPH0527800U (en) Sound field variable playback device
Pfeiffer et al. Manipulating Audio Through the Web Audio API
JPH08286691A (en) Reverberation effect giving device
JP3433527B2 (en) Music synthesizer
JPH0728482A (en) Acoustic effect control device
JP2000250563A (en) Sound field generating device
JPS6343413A (en) Sound field controller
JP3053525B2 (en) Sound effect adding device
JPH04343600A (en) Reverberation device
KR20010001415A (en) Colorless reverberation generator
JPH09269775A (en) Reverberation device
JPH04143799A (en) Reverberation adding device

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION