Distortion and Robot Voice Challenge

A challenge for all Nyquist plug-in authors.

Currently Audacity has a distortion effect, the mis-named “Leveller”.
The Leveller effect can be useful in creating “aircraft pilot” and “Walkie Talkie” type voices along with other “Robot” voices and other effects where distortion is required.

The problem with the Leveller effect is that it is not intended to be a distortion effect, it is intended to be a strong compressor/limiter effect (a job that is done with much better quality by the standard Compressor effect and/or the Nyquist Limiter and/or other compressors/limiters. Distortion is just an unintended byproduct of the effect.

The Challenge:
If the Leveller effect is removed from Audacity, then there is vacancy for a new distortion/robot voice effect to replace the Leveller.
This topic is for discussion about and proposed code snippets/full plug-ins for a replacement for the Leveller effect.

Contribution to this topic is not limited to Nyquist programmers. All users are welcome to contribute ideas regarding what they would like the effect to do.

I do not want to tell too much, but here are some code snippets to play with in the Audacity Nyquist prompt.

Robot voice by ring-modulation:

(mult s (osc-pulse 1000 0))

Maximum overdrive:

(scale ny:all s)

Metal distortion effect:

(hp (s-abs s) 20)
  • edgar

I built a vocoder that produced “robot-esque” vocals that was based on the RFT Vocoder a
while back. It was pretty good, but it left me disappointed.

The main problem I found was that too much of the original audio is left after processing.
You can actually hear a more interesting, more “robotic” vocal in the background post-
processing, but the original vocal still remains.

Is there a way to isolate the background robotic vocal? If there is, I’d like to hear some

Probably the best robotic voice (no vocoder) I’ve found is the Analog X “Say It”
program, but that’s based on synthesis (as far as I can tell).

One characteristic of robot voices is the low rate of changes to the speech waveform - the bandwidth may be there for a continuous sound, but the changes we humans make in our vocal tracts while speaking are rather choppy and discontinuous in the robot version. I’ve noticed that decoding an MP3 and re-encoding it with a different bit rate can produce a very similar effect. Taking pieces out of the sound stream and replacing them with looping of the remaining pieces would yield a similar effect. You would of course have to match up the looped waveforms with the next piece of original waveform which follows them, doing at least a point and slope match at each splice.

Using something like the Paulstretch effect instead of simple looping would be another (probably better) way of filling the space from the chopped-out pieces. The whole process would have to be repeated every 20-200 ms or so, and point/slope matching at the splices would still be needed.

Metallic effect:

When low sample rate audio is converted to analog without a reconstruction filter (the filter that smooths out the steps from sample to sample), the result has a metallic quality. I’m not referring to aliasing, which cannot be filtered out downstream. The noise to which I’m referring can be filtered out. I’m not a Nyquist programmer, so will leave the testing to others. I’d suggest increasing the distortion to signal ratio by subtracting out some of the original higher sample rate audio.

A minimalist sort of robot-like voice can be created by removing all but the most prominent frequency components. The Noise Removal effect does this rather nicely if Frequency Smoothing and Attack/Decay Time are small or zero and the Noise Sample is a fairly long sample of actual voice or suitably shaped pink noise.

Is this thread now obsolete? Or in a need of update?

I challenge for creating vocal processing distortion in style of Skrillex:

Note pitch sweeps etc, not only the distortions. Skrillex uses Melodyne but much more sure is involved.

For robotic voices, Kraftwerk is best I have heard of. Expo 2000 clip vocoders.