ABSTRACT

This program allows users to generate echo and chorus effect by using sound files or recorded sound; users can either use the sound files or record a sound file in Max/MSP, and modify the sound with chorus effect and echo effect. Using both echo effect and chorus effect, a similar effect with reverberation can be created. (Similar!! Not the same.) If the sound is a simple tone, users can use the repetition of the tone. At last, users can record the result sound. I post 3 Max/Msp patches and 2 sub-patches. The first one allows users to understand the implementation easier, and it uses the sub-patches that are provided by professor Dobrian. The second one provides better user interface, and the 3rd one is original work without the sub-patches.

INTRODUCTION

Comb filters can be designed in many different ways in Max/Msp, and one can use comb filters to generate many different sound effects. The delay function of a comb filter can be developed farther to generate the special sound effects. Two of interesting effects that a comb filter can created are chorus and echo effect. Chorus effect is to modify one sound source file to sound like from many sources; it uses small delay to accomplish the goal. Echo effect is created because the reflection of the sound. The delay time of echo effect is usually larger than the chorus effect.

APPROACHES

For the chorus effect, users can generate the effect by either using one sound file or two different sound files. The patch will make one sound source to sound like from several sources. In order to accomplish that, I make two feedforward loops, which are FIR comb filter. However, users might not distinguish the number of sound sources, but the users can sense several sound sources. In order to make the chorus effect more natural, I make the delay times of each sound source varies upon the time because in the reality, the time differences between each source are varied and random. The program will generate the delay time between 10ms-30ms, which are usual delay time for chorus effect. One of the problems is that changing the delay time causes the clicking sound. In the beginning, I only came up the idea that is to change the delay time by small increments, but this might be too slow and not good for huge changes in delay time. Professor Dobrian suggests me to use the cross fade method, so I use the sub-patches delayxfade~ and mix~ that are provided by professor to create cross fade effect. The idea of delayxfade~ is that it creates two delay lines, but only one delay line is sending or receiving the signals at the time. If the delay time is changed, the number is stored at another delay line, and the patch will do the cross fade to the delay line that is stored with new delay time.

For the echo effect, I generate 3 types of echo. Users can switch between different types and hear the differences. These 3 types of echo effect are composed by comb object in Max/Msp. The first type of echo is making the sound more natural because it is added with a lowpass filter on the feedback loop only. The problem of making this type of echo is that in Max/Msp the comb object is already designed to generate the output signal with both the original input signal (non-delayed) and the modified signal (delayed), thus if I just add lowpass filter after the comb object, then the lowpass pass filter will filter both input signal and delayed version where we want the original input signal to remain the same. In order to do that, I used the feedforward loop in the comb object; the comb object is designed with both feedback and feedforward loops as well. I make two paths that are connected to the dac. The first path is just connecting the original sound to the dac, so users are able to hear the original sound without any effect and delay. The second path is connected to the comb object. I only use the feedforward loop as the input signal for comb object otherwise the comb object will play another non-delayed sound that is filtered by the lowpass filter at the "same time" with the non-effect sound, which makes the original sound louder or noisy than the delayed version, so I set the coefficient a to 0 and coefficient b to 1. The second type of the echo effect is just using the lowpass filter to filter both non-delayed signal and delayed signals, and the last type generates the echo without adding a lowpass filter, which sounds more metallic.

This program can generate a effect that is similar with reverberation, but the effect is still not the same as reverberation. For more details, please check my final paper. Users can produce the effect by using both chorus effect and echo effect. Typically, a FIR comb filter is used for creating the early reflections of reverberation, and IIR comb filter is used for the late reflections. In my program, I use FIR comb filter for chorus effect, and IIR comb filter for echo effect, so when two effects are turned on, a similar effect with reverberation can be produced.

In this program, there are many feedback loops for IIR comb filters, which might cause the system unstable, so one of the tasks is to make the program stable as much as possible. I use many *~ objects to scale the amplitude to make the program more stable. The *~ objects for the controls are multiplying either 0 or .1, so when the chorus or echo effect is on, the scaling amplitude is 1, and when the effect is off, the *~ objects scale the amplitude to 0.

CONCLUSION

There are many other kinds of sound effect that can be generated by changing the delay time. However, every sound has different characteristics that require different delay time in order to hear the effects, so users might need to adjust the delay time by themselves. In the very beginning, I did not realize there were many things that I have to concern to create the echo and chorus effect. As I tested the program, many problems came up, and I tried to fix the problem one by one, but the program might still have some problems and errors that I have not realized.

 

Final Program

Final program with better user interface

Original Program

Sub-Patches: (Save as delayxfade~ and mix~)

These sub-patches are made by Professor Christopher Dobrian

delayxfade~

mix~

 

Example Sound Files:

Original Sound File

Filtered Sound File

 

Hosted by www.Geocities.ws

1