Dalek Voice changer in 1kB

You know you want one...

Similar projects worth following
Here is an update Dalek Voice changer implemented on a AVR.

Saw this comment by [Steven Gann] on

>The original Dalek voice effect was created using a ring modulator and a tape recording of a 60Hz sine wave as the carrier. Lower frequencies can give you a Cyberman, and higher frequencies can give you the newer Daleks.

wiki: A ring modulator is an electronic device for ring modulation, used for amplitude modulation or frequency mixing.

In my updated version, DDS is used to generate the sine wave carrier frequency which is for modulate the audio. The firmware multiplies the input audio waveform with the carrier to produce Amplitude Modulation (AM) for the new voice.

I'll be using PWM as a DAC for audio output. The (PWM) timer overflow interrupt service routine is used for updating the phase accumulator for the DDS, waveform multiplication and PWM output. A low pass filter is used to filter out the PWM switching frequency to protect the speaker.

Parts selection

I'll try to use more accessible parts that you might already have rather than my usual preferred parts. The requirements are low enough for the old ATMega8 and probably even the ATTiny part with some modifications.

Normally, I do not recommend the lousy LM358 for audio use and low voltage designs. It this design, I have accounted for the drawbacks.

  • the limited output range of Vcc-1.5V for 5V still covers for [0V, 2.56V] range I am using.
  • Cross-over distortions - not driving significant loads. Distortions is not an issue for this application.
  • It is very cheap and easily available.

I am not the only one that thinks LM358/LM324 are bad:

More detail analysis

  • Class AB Amplifier

    K.C. Lee12/14/2016 at 22:55 0 comments

    I got side tracked a bit designing this class AB Amplifier. Unfortunately this is as high output swing as it can get before clipping. The output is around 50mW.

    Looking at the FFT plot, my rough estimate for the THD is 1%.

    So looks like going down this path drives up the complexity and not getting where it needs to be.

  • Update and issues

    K.C. Lee12/14/2016 at 16:47 0 comments

    I got the basic code to compile. I have seen a few issues:

    • mic and speaker feedback. There need to be some sound proofing/isolation between the two. Sorry no fancy software echo cancellation in 1k AVR.
    • There is a lot of 60Hz in the audio output. I am starting to think that they do not simply mix the 60Hz sinewave as in AM, but to use it to chop up the audio input. I'll have to play around with the DDS waveform table and audio code. Not sure how to clean up the 60Hz components in the audio.
    • PWM audio is noisy. Not sure if I need to use R-2R and better amplifier design at this point.
    • My breadboard power supply is noisy. I guess I'll have to go old school regulator.

View all 2 project logs

Enjoy this project?



Does this project spark your interest?

Become a member to follow this project and never miss any updates