 |
This module refers to LabVIEW, a software development environment that features a graphical programming language.
Please see the LabVIEW QuickStart Guide module for tutorials and documentation that will help you: |
| • Apply LabVIEW to Audio Signal Processing |
| • Get started with LabVIEW |
| • Obtain a fully-functional evaluation edition of LabVIEW |
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 to
Reverberation 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 1 screencast 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 in
Karplus-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.
Problem 1
Determine the transfer function
H(z)
H(z)
MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8YjY=vipgYlh9vqqj=hEeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9q8qqaq=dir=f0=yqaiVgFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamisaiaacIcacaWG6bGaaiykaaaa@3861@
for the all-pass filter structure of
Figure 3.
[
Click for Solution 1 ]
Solution 1
H(z)=
−g+
z
−N
1−g
z
−N
H(z)=
−g+
z
−N
1−g
z
−N
MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8YjY=vipgYlh9vqqj=hEeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9q8qqaq=dir=f0=yqaiVgFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamisaiaacIcacaWG6bGaaiykaiabg2da9maalaaabaGaeyOeI0Iaam4zaiabgUcaRiaadQhadaahaaWcbeqaaiabgkHiTiaad6eaaaaakeaacaaIXaGaeyOeI0Iaam4zaiaadQhadaahaaWcbeqaaiabgkHiTiaad6eaaaaaaaaa@44A8@
[
Hide Solution 1 ]
Problem 2
Based on your result for the previous exercise, write the difference equation for the all-pass filter.
[
Click for Solution 2 ]
Solution 2
y(n)=−gx(n)+x(n−N)+gy(n−N)
y(n)=−gx(n)+x(n−N)+gy(n−N)
MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8YjY=vipgYlh9vqqj=hEeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9q8qqaq=dir=f0=yqaiVgFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyEaiaacIcacaWGUbGaaiykaiabg2da9iabgkHiTiaadEgacaWG4bGaaiikaiaad6gacaGGPaGaey4kaSIaamiEaiaacIcacaWGUbGaeyOeI0IaamOtaiaacMcacqGHRaWkcaWGNbGaamyEaiaacIcacaWGUbGaeyOeI0IaamOtaiaacMcaaaa@4B71@
[
Hide Solution 2 ]
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.
"This online course covers signal processing concepts using music and audio to keep the subject relevant and interesting. Written by Prof. Ed Doering from the Rose-Hulman Institute of Technology, […]"