Paint with your voice - write code so pitch decides color etc.

Hey everyone, this is my first post, I hope you could help me with a school project me and some friends are working on.

We want to create an interactive painting tool where the user paints by using sounds.

Therefore, we think an Arduino could help us doing this. We have an idea that the pitch on your voice will decide the color. The brush size will be decided by how loud your voice is. Maybe even program so more variables could be included, such as velocity, overtones, formants. But this is secondary.

How could we write the code so different frequencies triggers different colors and and different volumes triggers different brush sizes?

We've had a thought of having low frequenced sounds dark colored and the higher pitch you have the brighter the colors will get. If you make a soft sound, the brush size will be big. The louder you make the sound, the smaller the brush gets. So if you want to make a big black blob, just make a weak groan. If you want to make a bright yellow tiny dot, make a high pitched scream.

Thanks in advance!!


Congratulations. It sounds like an interesting project.

The hardest part is probably going to be the frequency detection. You'll need to look at Fast Fourier Transforms (FFTs) to do that. There are quite a few posts on this forum about doing FFTs on Arduinos.

How are you going to move the paintbrush? How are you going to display the painting? LCD screen? Video Out?

Good luck.

Thank you very much for your reply!

I'm looking more into FFTs and return if I have further questions.

We will try to hook up an Xbox Kinect to the computer to the brush will be moved by hand motions and then project everything on a screen.