Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 12 of 12

Thread: Vader voice changer

  1. #1
    Junior Member
    Join Date
    Oct 2018
    Posts
    3

    Vader voice changer

    Hello! Audio newb here. With Halloween around the corner I've been playing with recreating a Darth Vader voice effect. So far my result sounds less like the sith lord and more like a demon on nitrous oxide talking through a box fan. I'm wondering if you lovely people have ideas or have ever reproduced a similar effect.

    I've tried various combinations of pitch shifting (using the granular effect), flange, reverb, chorus, etc, but I do not feel like I'm converging on a great result.

    The guys on prop forums and costuming forums create the voice effect using products like the Zoom Multistomp guitar effects pedal (~$100) or specialty boxes like the Hyperdyne Vortex 3 voice changer ($400+). Interesting note about the Vortex 3.. it is built around the Teensy audio board.

    Anyway if anybody has ideas then I'd love to hear them.

  2. #2
    Senior Member+ Theremingenieur's Avatar
    Join Date
    Feb 2014
    Location
    Colmar, France
    Posts
    2,592
    Follow my example and smoke cigarillos during 35 years. That gives the same timbre...

  3. #3
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    23,398
    Dunno what effects you would use for Darth Vader, but this is one of my favorite projects


  4. #4
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    7,568
    Quote Originally Posted by PaulStoffregen View Post
    Dunno what effects you would use for Darth Vader, but this is one of my favorite projects
    Ohh... the Dalek voice is so cool I need this! Absolutely! I love it.
    Is there more info? Sourceode? Anything else?

  5. #5
    Senior Member
    Join Date
    Oct 2015
    Location
    Roma (IT, EU)
    Posts
    339
    COOOOOOOOLLLL !!!!!
    Daleks for the win!!!

  6. #6
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    13,142
    Frank_B I see this on the YouTube comment - links to the sketch:

    Published on Feb 21, 2018

    Subscribe 703
    30 Hz ring modulation and diode clipping done by Paul Stoffregen's Teensy Audio Library. Based on the original concept by ex-wife Jenni. Don't know if she ever finished hers but the statue of limitations for stealing an idea and running with it us up.

    Sketch here:
    https://pastebin.com/dYf49wp5
    <edit>: I don't find it on INTRUCTABLES .INTRUCTABLES .INTRUCTABLES .INTRUCTABLES .

    INO >> DALEK_dYf49wp5.txt
    Last edited by defragster; 10-17-2018 at 11:57 PM.

  7. #7
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    7,568
    Thank you, Tim!

  8. #8
    Junior Member
    Join Date
    Aug 2018
    Location
    Sopot
    Posts
    1
    Quote Originally Posted by PaulStoffregen View Post
    Dunno what effects you would use for Darth Vader, but this is one of my favorite projects

    This one is awesome

  9. #9
    Senior Member
    Join Date
    Jan 2013
    Location
    San Francisco Bay Area
    Posts
    644
    Cool seeing it with the lights on the megaphone, nice touch.

    When I did the dalek voice coder, I kinda liked the triangle waveform
    Code:
      sine1.begin(WAVEFORM_TRIANGLE);

  10. #10
    Junior Member
    Join Date
    Oct 2018
    Posts
    3
    Thanks for the input. I played with the sine wave a bit by itself and in combination with other effects but still didn't feel like I was zeroing in on an acceptable Vader sound. That Dalek megaphone is pretty slick though.

    I've spent some time trying to get an idea of which effects that the two aforementioned voice modulators use. The Vortex docs say it uses pitch shifting (2.25 semitones down by default), echo, and reverb but doesn't go into further detail. I had more luck with the Zoom Multistomp since some costumers have posted the settings they use. There are five effects and I've transcribed explanations from the product documentation for each effect's settings, as well as the range of values and the specific value suggested for the Vader effect. I'll just barf it all here:


    1) Compressor:
    This compressor in the style of the MXR Dyna Comp.
    * Sense [0 - 10]: 4 Adjusts the compressor sensitivity.
    * Tone [0 - 10]: 8 Adjusts the tone.
    * Level [0 - 150]: 78 Adjusts the output level.
    * Attack [slow|fast]: fast Sets compressor attack speed to Fast or Slow.

    2) Flanger:
    This is a jet sound like an ADA flanger
    * Depth [ 0 - 100]: 5 Sets the depth of the modulation.
    * Rate [ 0 - 50]: 7 Sets the speed of the modulation.
    * Reso [-10 - 10]: 0 Adjusts the intensity of the modulation resonance.
    * PreD [ 0 - 50]: 21 Sets pre-delay time of effect sound.
    * Mix [ 0 - 100]: 21 Adjusts the amount of effected sound that is mixed with the original sound.
    * Level [ 0 - 150]: 100 Adjusts the output level.

    3) Graphic EQ:
    This unit has a 6-band equalizer.
    * 160 Hz [-12 - 12]: 0 Boosts or cuts the low (160 Hz) frequency band.
    * 400 Hz [-12 - 12]: 0
    * 800 Hz [-12 - 12]: 0
    * 3.2 kHz [-12 - 12]: 0
    * 6.4 kHz [-12 - 12]: 6
    * 12 kHz [-12 - 12]: 9
    * Level [ 0 - 150]: 100 Adjusts the output level.

    4) Pitch Shift:
    This effect shifts the pitch up or down.
    * Shift [-12 - 12|24]: -3 Adjusts the pitch shift amount in semitones. Selecting 0 gives a detuning effect.
    * Tone [ 0 - 10]: 10 Adjusts the tone.
    * Bal [ 0 - 100]: 100 Adjusts the balance between original and effect sounds.
    * Fine [-25 - 25]: -1 Allows fine adjustment of pitch shift amount in Cent (1/100 semitone) steps.
    * Level [ 0 - 150]: 148 Adjusts the output level.

    5) Hall:
    This reverb effect simulates the acoustics of a concert hall.
    * Decay [1 - 30]: 3 Sets the duration of the reverberations.
    * Tone [0 - 10]: 10 Adjusts the tone.
    * Mix [0 - 100]: 14 Adjusts the amount of effected sound that is mixed with the original sound.
    * PreD [0 - 100]: 48 Adjusts the delay between input of the original sound and start of the reverb sound.
    * Level [0 - 150]: 100 Adjusts the output level.
    * Tail [off|on]: off When ON, effect sound continues even after effect is turned off. When OFF, effect sound stops right when effect is turned off.


    My problem now is converting these effects and settings into calls to the audio library. There doesn't appear to be a straightforward way to map from one to the other.

    I figure the basics are:
    Compressor -> sgtl5000.autoVolumeControl()
    Flanger -> use flanger effect plus a mixer
    Graphic EQ -> sgtl5000.eqBands() ; would need to convert settings from 6 to 5 bands
    Pitch Shift -> use granular effect (3 semitones down would be a ratio of 0.878 ?)
    Hall -> use freeverb effect? plus another mixer

    Does any of this make sense to anybody else?

  11. #11
    Junior Member
    Join Date
    Oct 2018
    Posts
    3
    Here's a simple proof of concept that I have so far using the new approach. EQ and compression is not in use yet but I've used pitch shifting, a delay (personal preference instead of flanger), and reverb. I played with the values a bit to get something that sounds passable, I guess? If anybody cares to mess with it and provide feedback then I'd love to hear it.


    Code:
    #include <Audio.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SD.h>
    #include <SerialFlash.h>
    
    // GUItool: begin automatically generated code
    AudioInputI2S            i2s1;           //xy=118,258
    AudioEffectGranular      granular1;      //xy=281,252
    AudioEffectDelay         delay1;         //xy=422,182
    AudioMixer4              mixer1;         //xy=562,259
    AudioEffectFreeverb      freeverb1;      //xy=711,235
    AudioMixer4              mixer2;         //xy=855,266
    AudioOutputI2S           i2s_out;        //xy=999,266
    AudioConnection          patchCord1(i2s1, 0, granular1, 0);
    AudioConnection          patchCord2(granular1, 0, mixer1, 1);
    AudioConnection          patchCord3(granular1, delay1);
    AudioConnection          patchCord4(delay1, 0, mixer1, 0);
    AudioConnection          patchCord5(mixer1, freeverb1);
    AudioConnection          patchCord6(mixer1, 0, mixer2, 1);
    AudioConnection          patchCord7(freeverb1, 0, mixer2, 0);
    AudioConnection          patchCord8(mixer2, 0, i2s_out, 1);
    AudioConnection          patchCord9(mixer2, 0, i2s_out, 0);
    AudioControlSGTL5000     sgtl5000_1;     //xy=202,171
    // GUItool: end automatically generated code
    
    #define SDCARD_CS_PIN    10
    #define SDCARD_MOSI_PIN  7
    #define SDCARD_SCK_PIN   14
    
    #define GRANULAR_MEMORY_SIZE 4410
    int16_t granular_memory[GRANULAR_MEMORY_SIZE];
    
    void setup() {
      Serial.begin(9600);
      AudioMemory(16);
    
      // Wait until SD card is readable.
      SPI.setMOSI(SDCARD_MOSI_PIN);
      SPI.setSCK(SDCARD_SCK_PIN);
      if(!(SD.begin(SDCARD_CS_PIN)))
      {
        while(1)
        {
          Serial.println("Unable to access the SD card");
          delay(500);
        }
      }
    
      sgtl5000_1.enable();
      sgtl5000_1.volume(0.6);
      sgtl5000_1.inputSelect(AUDIO_INPUT_MIC);
      sgtl5000_1.micGain(40);
      
      //sgtl5000_1.audioPostProcessorEnable();
    
      // Set graphic EQ.
      /*float bass = 0.0;
      float mid_bass = 0.0;
      float midrange = 0.0;
      float mid_treble = 0.0;
      float treble = 0.0;
      sgtl5000_1.eqBands(bass,mid_bass,midrange,mid_treble,treble);
    */
    
      // Set compressor.
      /*sgtl5000_1.autoVolumeEnable();
      uint8_t maxGain = 0;
      uint8_t response = 0;
      uint8_t hardLimit = 0;
      float threshold = 10.0;
      float attack = 10.0;
      float decay = 10.0;
      sgtl5000_1.autoVolumeControl(maxGain, response, hardLimit, threshold, attack, decay);
      */
    
      // Start the granular effect.
      float ratio = 0.878;
      float msec = 25.0;
      granular1.begin(granular_memory,GRANULAR_MEMORY_SIZE);
      granular1.setSpeed(ratio);
      granular1.beginPitchShift(msec);
    
      // Set up delay effect.
      delay1.delay(0,9);
    
      // Set up mixer for delay effect.
      float flange_percent = 0.35;
      mixer1.gain(0,flange_percent);
      mixer1.gain(1,1.0 - flange_percent);
    
      // Set up reverb effect.
      freeverb1.roomsize(0.1);
      freeverb1.damping(0.6);
    
      // Set up mixer for reverb effect.
      float echo_percent = 0.2;
      mixer2.gain(0,echo_percent);
      mixer2.gain(1,1.0 - echo_percent);
    
      AudioProcessorUsageMaxReset();
    }
    
    void loop()
    {
      Serial.print("CPU: ");
      Serial.print(AudioProcessorUsage());
      Serial.print(" / ");
      Serial.println(AudioProcessorUsageMax());
    }

  12. #12
    Junior Member
    Join Date
    Apr 2020
    Posts
    1
    Dalek setting for zoom ms 50G.Really struggling to get it right. I have the ringmod effect on ms 50G..any one managed to achieve a Dalek. I understand easy to achieve on moog Moogerfooger!! Anyone help.. Cheers Bud

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •