It’s been a busy few weeks between home decorating and events supporting my local maker space, but now I have some free time again and I’ve decided to focus my energy on one project at a time now so I can actually get something finished, so today I have been working on a breadboard prototype for my “ultimate voice changer” shield for the Arduino.
This is a project I’ve been wanting to get to for a while now. It is definitely inspired by the Adafruit wave shield and their voice changer sketch, but I’m taking it to the next level by using an external 12-bit ADC (the MCP3208) which is an order of magnitude faster than the ADC in the Arduino, allowing me to do more computation on the Arduino now that the ADC work is offloaded. In short, this means I can now control the sound effects like modulation and pitch shift in real time by adjusting pots which are also connected to the external DAC. It also means I can switch between different effects as well, so I can use this for my Dalek and my kids can use it in their Halloween costumes with different voice effects (demons and witches!).
Much to my amazement I was able to get this working from scratch today include writing new software. I started out with example sketches for both the MCP3208 and MCP4921 and then merged them. The Arduino uses SPI to communicate with both chips. I’m achieving a sample and playback rate of over 8 KHz with 12 bit resolution and it sounds very good so far.
I have to improve the high-pass and low-pass filters next and can then put one of these onto a perma-proto board. Ultimately, I want to get this onto a PCB board make a custom enclosure for it.
The source code is available on github: https://github.com/andygrove/ultimate_voice_changer