Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » Schroeder Reverberator

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Endorsed by Endorsed (What does "Endorsed by" mean?)

This content has been endorsed by the organizations listed. Click each link for a list of all content endorsed by the organization.
  • IEEE-SPS display tagshide tags

    This module is included inLens: IEEE Signal Processing Society Lens
    By: IEEE Signal Processing SocietyAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "A multimedia educational resource for signal processing students and faculty."

    Click the "IEEE-SPS" link to see all content they endorse.

    Click the tag icon tag icon to display tags associated with this content.

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • NSF Partnership display tagshide tags

    This module is included inLens: NSF Partnership in Signal Processing
    By: Sidney BurrusAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Click the "NSF Partnership" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

  • National Instruments display tagshide tags

    This module is included in aLens by: National InstrumentsAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "Developed by Rose Hulman Prof Ed Doering, this collection is a multimedia educational resource for students and faculty that augments traditional DSP courses and courses that cover music […]"

    Click the "National Instruments" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

Also in these lenses

  • Lens for Engineering

    This module is included inLens: Lens for Engineering
    By: Sidney Burrus

    Click the "Lens for Engineering" link to see all content selected in this lens.

  • NI Signal Processing display tagshide tags

    This module is included inLens: Digital Signal Processing with NI LabVIEW and the National Instruments Platform
    By: Sam ShearmanAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "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, […]"

    Click the "NI Signal Processing" link to see all content selected in this lens.

    Click the tag icon tag icon to display tags associated with this content.

Recently Viewed

This feature requires Javascript to be enabled.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.
 

Schroeder Reverberator

Module by: Ed Doering. E-mail the authorEdited By: Erik Luther, Sam Shearman

Summary: The Schroeder reverberator uses parallel comb filters followed by cascaded all-pass filters to produce an impulse response that closely resembles a physical reverberant environment. Learn how to implement the Schroeder reverberator block diagram as a digital filter in LabVIEW, and apply the filter to an audio .wav file.

Table 1
LabVIEWq.png 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).

Figure 1: [video] Demonstration of the Schroeder reverberator as implemented in LabVIEW
Figure 1 (snd_reverb-schroeder-demo.html)

Structure of the Schroeder Reverberator

The Figure 2 screencast video presents the structure of the Schroeder reverberator and describes the rationale for its design.

Figure 2: [video] Structure of the Schroeder reverberator and rationale for its design
Figure 2 (snd_reverb-schroeder-theory.html)

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.

Figure 3: All-pass filter structure
Figure 3 (snd_reverb-schroeder-apfstructure.png)

Exercise 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.

Solution

H(z)= g+ z N 1g z N H(z)= g+ z N 1g z N MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8YjY=vipgYlh9vqqj=hEeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9q8qqaq=dir=f0=yqaiVgFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamisaiaacIcacaWG6bGaaiykaiabg2da9maalaaabaGaeyOeI0Iaam4zaiabgUcaRiaadQhadaahaaWcbeqaaiabgkHiTiaad6eaaaaakeaacaaIXaGaeyOeI0Iaam4zaiaadQhadaahaaWcbeqaaiabgkHiTiaad6eaaaaaaaaa@44A8@

Exercise 2

Based on your result for the previous exercise, write the difference equation for the all-pass filter.

Solution

y(n)=gx(n)+x(nN)+gy(nN) y(n)=gx(n)+x(nN)+gy(nN) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8YjY=vipgYlh9vqqj=hEeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9q8qqaq=dir=f0=yqaiVgFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyEaiaacIcacaWGUbGaaiykaiabg2da9iabgkHiTiaadEgacaWG4bGaaiikaiaad6gacaGGPaGaey4kaSIaamiEaiaacIcacaWGUbGaeyOeI0IaamOtaiaacMcacqGHRaWkcaWGNbGaamyEaiaacIcacaWGUbGaeyOeI0IaamOtaiaacMcaaaa@4B71@

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.

Figure 4: [video] Derivation of the all-pass filter impulse response
Figure 4 (snd_reverb-schroeder-apf-impulse-response.html)

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.

LabVIEW.png Download the LabVIEW VI presented in the video: apfdemo.zip Refer to TripleDisplay to install the front-panel indicator required by the VI.

Figure 5: [video] Audio demonstration of the all-pass filter impulse response combined with comb filter
Figure 5 (snd_reverb-schroeder-apfdemo.html)

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).

Figure 6: Reverb time and loop time values for the comb filters and all-pass filters of the Schroeder reverberator
Figure 6 (snd_reverb-schroeder-timetable.png)

The Figure 7 screencast video provides everything you need to know to build your own LabVIEW VI for the Schroeder reverberator.

LabVIEW.png Download the .wav reader subVI mentioned in the video : WavRead.vi.

Figure 7: [video] Suggested LabVIEW techniques to build your own Schroeder reverberator
Figure 7 (snd_reverb-schroeder-build.html)

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.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks