Chorus Effect

“Chorus” is a popular effect that tends to add a sense of movement and depth to sounds. It is particularly popular with guitarists, but can also be used to good effect for creating ethereal synthesizer sounds, or for thickening or adding character to other instrument of vocal sounds. Stereo Chorus can also be used to widen a stereo image.

As with most effects it can become tiresome if used too much :wink: but used in moderation it can enhance and enliven recordings.

The name comes from a “chorus” or “ensemble” of players or singers, though the sound of this effect only loosely approximates to a real ensemble.
When a group of (real) instruments play together, there is invariably small differences in the pitch, timing and tone of the notes being played by each instrument. What a Chorus effect does is to create a slightly delayed and detuned copy of the input sound and mix it in with the original sound. The amount of pitch difference and delay slowly changes over time. A “multi-voice” Chorus effect produces several copies of the sound, each delayed and pitch shifted by a different amount.

In spite of its popularity, Audacity has never included a Chorus effect, so I thought it was time to make one. :smiley:

The controls of this chorus effect are similar to what might be found on a guitar “stomp box” chorus effect, but with the addition of a “limiter” that can prevent the output from exceeding 0 dB. This is a stereo effect, but is also compatible with mono tracks.

The Controls:

  • Speed: (0 to 10) Higher values cause the effect to vary more rapidly. Low settings can produce a slow “flanging” effect.
  • Depth: (0 to 10) How much variation in pitch (and delay). Low settings can produce a subtle “shimmer” to the sound. Very high settings can create an “out of tune” warble.
  • Voices: (1 to 4) The number of copies of the sound that are delayed / pitch shifted (per channel). For a simpler, cleaner effect try using one or two voices. For a more complex effect try increasing the number of voices.
  • Mix: (0 to 10) How much of the effect is mixed in with the original signal. Low settings produce a more subtle effect.
  • Output Limiter: (Enabled or Disabled) The output from this effect may be higher than the original sound. When the output limiter is enabled, any peaks that would exceed 0 dB will be compressed so as to prevent clipping.

As always, feedback / comments / suggestions are very welcome.
MultiVoiceChorus.ny (2.31 KB)

Steve:
Very nice. Classic sound.

My only suggestion is that “Mix” become “Dry/Wet” so one can duplicate a track then apply the effect 100% wet to the duplicate, then later control the mix between the dry and wet tracks - similar to handling reverb. This moves it somewhat out of the “stomp box” category and more into the mixing desk effect category.

– Bill

Thanks for the comments Bill.
One of the “strange” things about a chorus effect is that “100% wet” has less “chorus” effect than 50% wet, so while I can appreciate where’ you’re coming from I think it could be a bit confusing for many users to provide a maximum of “100% wet”.

Currently the code mixes “up to 100% wet signal” with the original unprocessed signal.
How about, as a compromise, “Mix” kept the 0 to 10 scale, but allow the “Mix” to be set to greater than 10 by text entry, where > 10 reduces the dry signal such that when Mix is set to 20 the mix is 100% wet and 0% dry?

If the chorus is set to 1 voice, then 100% wet would have no chorus effect on its own, right? It would just be a slightly delayed and detuned version of the original. If more voices, then 100% wet would have the multiple processed voices but not the original and would sound “chorus-y”. Am I missing something here?

Anyway, it is probably simpler to leave it in the stomp box category rather than the unintuitive method of setting the mix to 20 to get 100% wet for side-chain use.

– Bill

Yes.

This version of the effect creates multiple “voices” that all have exactly the same “speed” and “depth” (as set by the “Speed” and “Depth” controls), but different “phase”.
“Speed” is the frequency of the LFO that controls the variable delay, which in turn controls the “detuning”.
“Depth” controls how much the delay varies and so how much detuning there is.
“Phase” is the starting phase of the LFO.

So without the original signal, the pitch of the voices remain “in step” with each other, thus producing amplitude modulation rather than a “chorus-y” effect.
What you are envisioning is what would happen if the frequencies of the voices were (slightly) different from each other. This is a practical proposition, and possibly a good “enhancement” to the current effect, though it would require either, an executive decision about how much “frequency spread” between the (now independent) LFOs, or an additional control to set the frequency spread.

I like the idea of this enhancement, though the wiki feature request seems to suggest that a simpler effect might be preferred:

  • Chorus: (9 votes)
  • Only needs rate and depth controls (8 votes)
    • Multi-voice Chorus (1 votes)

I’ll try adding this feature so that we can see if the sound justifies the additional complexity. (watch this space…)

As you can see from this article, there are a lot of additional features that could (but probably won’t) be added: http://wiki.fractalaudio.com/index.php?title=Chorus

Steve:
I’m looking at the code and it seems that the starting phase of the LFO is changed for each voice

(setq phase (+ phase (/ (* i 180) voices))

Would this not detune each voice differently at any given point in time?

And to emphasize - the effect is fine as it is. A nice shimmery stomp-box-like effect for keyboards, synths and guitars.

– Bill

Yes but only if there is more than one voice per channel - ah but on reading your post again I see that’s what you said the first time. Sorry, my mind was elsewhere :smiley:

Here’s a version with a “Voice Variance” control.
Depending on the source material and the other settings the effect of this control can be quite subtle or can produce a more “complex” and less “mechanical” effect.
Is it worth the extra control in the interface?

I’ve also tweaked some of the other parameters to (hopefully) make the working ranges more useful.
The default setting is pretty similar to the previous version.
MultiVoiceChorus.ny (2.92 KB)

Interesting effect : the multivoice chorus adds add tremolo to vibrato …

[ 2nd “(2.92 KiB)” version of plugin used ]
all the twos.png

Thanks Trebor. Yes you can get some really weird effects with Chorus.
Here’s some more “chorusy” settings using your sound sample. I added a little reverb before the chorus to make it a bit more “ethereal”:

I was intending to upload this to the wiki today, but have discovered a minor bug.
(the “maxdelay” is exceeded by the “vardelay” in some cases, which is unintentional and does not produce the intended effect. http://www.cs.cmu.edu/~rbd/doc/nyquist/part8.html#index692)
Also noted that in the later version, the “Voice Variance” does not quite work correctly, and playing with this effect with a fresh perspective, I miss not having a “Stereo Width” control.
The effect could also do with updating to a version 4 plug-in, so all in all I’ve decided to rework this effect.

Eventually I’d be very keen to see a built-in Chorus effect as it’s considered by many (including myself) to be one of the ‘standard set’ of electronic musical effects (along with Eq. Reverb, Delay, Echo, etc.) With over 3600 downloads of the experimental version in the first post, there is clearly a demand.

Just what I needed, thank you very much.

“In spite of its popularity, Audacity has never included a Chorus effect, so I thought it was time to make one.”

Will this work with Audacity 2.0.5?

I expect so, but Audacity 2.0.5 is obsolete. Audacity 2.4.2 is available via the Audacity website: Audacity ® | Download for Windows

Hi , so i downloaded this and put it in the plugins folder , then it showed up under " new" plugins and so i enabled it , but i cannot see it in the list of effects.

Ok so it is in there now . What does the number of “voices” do?

Also , i dont know if its just me or not , but the effect seems to get stronger when i lower the parameters. What is the best way to lessen the effect a bit? thanks

See the firsr post: Chorus Effect

Hello,

I downloaded the file and moved to /usr/share/audacity/plug-ins but I can’t find the plug-in in my audacity, what did I do wrong?

T+ = See you later

To install “.NY” = Nyquist plugins, see: Nyquist Plug-in Installer