Introduction
Reverberation is a property of concert halls that greatly adds to the enjoyment of a musical performance. The on-stage performer generates sound waves that propagate directly to the listener's ear. However, sound waves also bounce off the floor, walls, ceiling, and back wall of the stage, creating myriad copies of the direct sound that are time-delayed and reduced in intensity.
In the prerequisite module Reverberation, you learned how the comb filter structure can efficiently create replicas of a direct-path signal that are time delayed and reduced in intensity. However, the comb filter produces replicas that are time delayed by exactly the same amount, leading to the sensation of a pitched tone superimposed on the signal. Refer back toReverberation to hear an audio demonstration of this effect. Put another way, the impulse response of the comb filter contains impulses with identical spacing in time, which is not realistic.
The Schroeder reverberator (see "References" section) uses a combination of comb filters and all-pass filters to produce an impulse response that more nearly resembles the random nature of a physical reverberant environment.
This module introduces you to the Schroeder reverberator and guides you through the implementation process in LabVIEW. As a preview of what can be achieved, watch the Figure 1screencast video to see and hear a short demonstration of a LabVIEW VI that implements the Schroeder reverberator. The speech clip used in the video is available here: speech.wav (audio courtesy of the Open Speech Repository, www.voiptroubleshooter.com/open_speech; the sentences are two of the many phonetically balanced Harvard Sentences, an important standard for the speech processing community).
Structure of the Schroeder Reverberator
The Figure 2 screencast video presents the structure of the Schroeder reverberator and describes the rationale for its design.
All-Pass Filter
The Schroeder reverberator uses all-pass filters to increase the pulse density produced by the parallel comb filters. You perhaps are familiar with the frequency response of an all-pass filter: its magnitude response is unity (flat) for all frequencies, and its phase response varies with frequency. For example, the all-pass filter is used to create a variable fractional delay as described inKarplus-Strong Plucked String Algorithm with Improved Pitch Accuracy.
From an intuitive standpoint it would seem that a flat magnitude response in the frequency domain should correspond to an impulse response (time-domain) containing only a single delta function (recall that the impulse function and a constant-valued function constitute a Fourier transform pair). However, the all-pass filter's impulse response is actually a large negative impulse followed by a series of positive decaying impulses.
In this section, derive the transfer function and difference equation of the all-pass filter structure shown in Figure 3. Note that the structure is approximately of the same level of complexity as the comb filter: it contains a delay line of N samples and an extra gain element and summing element.
EXERCISE 1
Determine the transfer function H(z) for the all-pass filter structure of Figure 3.
EXERCISE 2
Based on your result for the previous exercise, write the difference equation for the all-pass filter.
All-Pass Filter Impulse Response
As described in the video of Figure 2, two all-pass filters are placed in cascade (series) with the summed output of the parallel comb filters. An understanding of the all-pass filter impulse response reveals why a cascade connection increases the pulse density of the comb filter in such a way as to emulate the effect of natural reverberation.
The Figure 4 screencast video derives the impulse response of the all-pass filter; the loop time and reverb time of the all-pass filter are also presented.
The Figure 5 screencast video demonstrates the sound of the all-pass filter impulse response compared to that of the comb filter. Moreover, the audible effect of increasing the comb filter pulse density with an all-pass filter is also demonstrated in the video.
Download the LabVIEW VI presented in the video: apfdemo.zip Refer to TripleDisplay to install the front-panel indicator required by the VI.
Project: Implement the Schroeder Reverberator in LabVIEW
As described in the Figure 2 screencast video, two all-pass filters are placed in cascade (series) with the summed output of four parallel comb filters. The video of Figure 4 explains how the all-pass filter "fattens up" each comb filter output impulse with high density pulses that rapidly decay to zero. Selecting mutually-prime numbers for the loop times ensures that the comb filter impulses do not overlap too soon, which further increases the effect of randomly-spaced impulses.
The table in Figure 6 lists the required reverb times (T60) and loop times (tau) of the Schroeder reverberator. Note that the comb filters all use the same value (the desired overall reverb time).
The Figure 7 screencast video provides everything you need to know to build your own LabVIEW VI for the Schroeder reverberator.
Download the .wav reader subVI mentioned in the video : WavRead.vi.
References
- Schroeder, M.R., and B.F. Logan, "Colorless Artificial Reverberation," Journal of the Audio Engineering Society 9(3):192, 1961.
- Schroeder, M.R., "Natural Sounding Artificial Reverberation," Journal of the Audio Engineering Society 10(3):219-223, 1962.
- Moore, F.R., "Elements of Computer Music," Prentice-Hall, 1990, ISBN 0-13-252552-6.
- Dodge, C., and T.A. Jerse, "Computer Music: Synthesis, Composition, and Performance," 2nd ed., Schirmer Books, 1997, ISBN 0-02-864682-7.
No comments:
Post a Comment