Introduction: The Arduino OctoSynth

What is the OctoSynth you may ask? The octosynth is a polyphonic synthesizer that is able to produce eight Pulse Width Modulated tones that form together a musical scale. In English terms, it is a 8 key electronic organ that can play more than one tone at once but only one scale.

Special thanks to Joe Marshall who wrote the very useful code.

As suggested in the title, it runs on Arduino.

So before we get started, let's see what is sounds like. Shall, we?


And and explanation would be nice.



Step 1: Parts of the OctoSynth.

You will need:
An Arduino
12 Male headers (2 together and another six together. Also, another 4 together(Optional))
8 Unifomly LONG Wires ( By long I don't mean 3 meters but it means a decent 10 inches or maybe, 20 crentimeters.)
A Certain Amount of Copper Tape (Get a roll to be safe)
Enclosure (I used styrofoam as a base but if you want an enclosure, which is totally fine, you can use one. The length will depend on the wideness of you choose.)
Power Jack and Battery
Speaker

Step 2: Program.

Upload the code below to the Arduino.

Open with the viewer of your choice.


Step 3: Build.

  1. Measure out how much material you have with the copper tape. Make sure you leave enough enclosure/foam to accommodate for the spaces in between to prevent shorting.
  2. Cut that much tape and maybe a millimeter more.
  3. Divide the tape into eight sections by folding.
  4. Solder ONE wire to each piece of tape.
  5. Solder male headers to the tape. Six pieces to six headers for six in puts and then a pair of two for the other two inputs; Digital 6 and 7.
  6. Order will now begin to matter. The first one (Analog 0) will go on the far left of the enclosure/foam. Analog 5 will go to the input 6 so it is la on the musical scale. 
  7. Digital input 6 is ti and input 7 is high do.

Step 4: Wiring.

Plug in the wires to the Arduino. Connect the speaker to Digital Output 11. You may need to use headers.

Step 5: Enjoy.

You can now add power to your Arduino. You speaker should play an opening tone.

The thing is the opening tone is when the machine calibrates itself. If you press any key then it will think that that key is 0. Count to ten before playing.

This is polyphonic and so it can play more than one note at once. Hope you enjoy.

Comments

author
CemR made it!(author)2017-02-07

Hi, I made it but when i power it and not touch anything, after 3 seconds it stars making a loud sound. It is like every note is played.

I disconnected 7 of the (buttons?) it still sounds the same

author
CemR made it!(author)2017-02-08

Please help this is urgent

author
kahodel made it!(author)2016-09-28

It's great!

OctoSynth_Test.mov
author
Lasse+Munk made it!(author)2016-05-20

Hi ! This is great !

:)

I would like to use quite a few sensing 'pads' to make a sort of lamp. But I need some longer cables / wires.

It works when I use a 1,5m cat5 cable, using only 1 of the wires, but if I connect 1+ wires, then I can't get a reading from. Do you have an idea of why? And do you know how to use longer wires?

I'm not sure I understand it right, but it would it help to amplify the voltage?

author
blinkyblinky made it!(author)2016-05-22

When working with wireless, I often wish I could just use a very long wire and be done with it. Unfortunately, that is not always the case. In this case, this circuit depends on capacitance, so the lengthier the wire, the more noise the wire will pick up, meaning it will be less able to detect the change when you touch it. When you add another wire, you increase the amount of noise pick up. In this case, one viable solution I can think of is to use wireless, which can lead to a whole array of other problems.

author
ValdemarK made it!(author)2016-05-10

Cool! Thanks for sharing! Modifying it to output midi would be really sweet! A small and simple polyphonic midi keyboard/ controller would surely be appreciated!

author
PCtronics made it!(author)2016-02-07

Great project, thanks a lot. A small video https://www.youtube.com/watch?v=b59mOrAyLO4

IMG_1605.JPG
author
ArnavS1 made it!(author)2015-10-30

can someone give me the code the file is not compatible with my computer

author
Ricardo621 made it!(author)2015-08-24

Hi, just made this in about 20 minutes – it's ace!

author
makeosaurus made it!(author)2015-07-08

if you used a on-off-on switch could you program it to do two or maybe three different scales or change it using a potentiometer???

author
makeosaurus made it!(author)2015-07-08

Could you use tin foil instead of the copper tape???

author
ramakrishna.kakani made it!(author)2015-04-23

sketch_apr23e.ino:807:5: error: expected unqualified-id before string constant

Error compiling.

how to get rid of this? plz

author
arast%C4%B1rmac%C4%B1 made it!(author)2015-03-24

sketch_mar25a.ino:781:5: error: expected unqualified-id before string constant

Why am I getting the error caused

author
blinkyblinky made it!(author)2015-03-31

Arduino 1.6.0 and beyond has problems with older code because some variable declarations have changed; revert back to Arduino 1.0.6 or something older and it should work but not before arduino 1.0 though.

Just the other day I was trying to compile some other code and found out that instead of just byte [variable name] I have to declare byte PROGMEM [variable name] in order to make it work; something similar may have happened with the Octosynth code so try an older build of Arduino such as Arduino 1.0.6 or prior.

author
DimitarD2 made it!(author)2015-03-26

can someone help me?

i'm really bad with programing and i don't know what to do.

Arduino: 1.6.1 (Windows 7), Board: "Arduino Uno"


sketch_mar26c.ino:807:5: error: expected unqualified-id before string constant

Error compiling.

author
blinkyblinky made it!(author)2015-03-31

Arduino 1.6.0 and beyond has problems with older code because some variable declarations have changed; revert back to Arduino 1.0.6 or something older and it should work but not before arduino 1.0 though.

Just the other day I was trying to compile some other code and found out that instead of just byte [variable name] I have to declare byte PROGMEM [variable name] in order to make it work; something similar may have happened with the Octosynth code so try an older build of Arduino such as Arduino 1.0.6 or prior.

author
jo_mo made it!(author)2012-02-17

Really great work. I made one and it sounds sweet.

DSCN5780.JPG
author
arast%C4%B1rmac%C4%B1 made it!(author)2015-03-24

would you please assign me the code of the project

author
blinkyblinky made it!(author)2012-02-17

Very good job! Achievement patch coming soon!

author
Ploopy made it!(author)2015-02-16

Cool!

Here's my messy version of it. I added volume control.

Nice code :)

Photo on 2-16-15 at 6.19 PM.jpg
author
amaria9 made it!(author)2015-02-02

can the same code be used for lilypad?

author
saymowan made it!(author)2014-09-23

Nice project, simples and amazing! :-))

author
orangeisnon made it!(author)2014-06-12

First off, great project. I haven't read through all of it, but I get the idea.

Now, how feasible would it be to get this running using something besides the copper tape? Say, mmm, bananas?

Basically, could one use the same wiring and code from this and use bananas (like this: https://www.instructables.com/id/Bananaphone-A-Touch-Capacitance-Synth/)? People know me as the banana guy, and I think it would be fun to make a video of me playing a banana synth. I've got all the parts (and the nanners) but the linked 'able doesn't use Arduino.

author
rogeliotorlao made it!(author)2014-05-24

can you add more effects to choose from? and add more keys .. lt is a brilliant project

author
Electronickid4314 made it!(author)2013-12-28

What's the point of havin the headers couldn't u just plug the wires straight in the arduino

author
blinkyblinky made it!(author)2013-12-28

The headers are thicker than the wire and are more likely to stay in the Arduino headers; they make the project more stable; also, it means you wont have to dig through to figure out which wire is which when you leave the project on hold and then suddenly pick it up again.

author
Electronickid4314 made it!(author)2013-11-17

What gauge wire

author
blinkyblinky made it!(author)2013-11-17

What do you mean?

author
igneonumous made it!(author)2013-09-09

i´m trying to make some like this but to use with Fl studio but i can´t figure how to change the code, any clue? (sorry my bad english)

author
blinkyblinky made it!(author)2013-11-17

I am not as advanced as FL Studio so I can't really help you there. Sorry.

author
agomes6 made it!(author)2013-05-22

thanks for the instructable!

i am running into a problem though...i built mine and it only plays the first 3 keys, the remaining keys will play just fine if i touch the 9v battery...any thoughts?

author
blinkyblinky made it!(author)2013-05-22

What do you mean "touch" the 9 volt battery?

author
agomes6 made it!(author)2013-05-22

if i am in contact with the batteryor the arduino itself it plays, otherwise it will just plays the first 3 keys odly enough

author
blinkyblinky made it!(author)2013-05-22

Check the amount of power from the 9 volt using a multimeter.

If that checks out, look and see if you have proper connections.

author
agomes6 made it!(author)2013-05-23

battery was at 8.xx V capacity, the connections must be good, otherwise it wouldn't play properly attached to a usb port (does this make sense?)

I am using 1.2cm copper tape and they are 1cm apart from each other, I wonder if i am having some sort of capacitance issues. I will record a quick video and post it tomorrow morning

author
blinkyblinky made it!(author)2013-11-17

Sorry for the late reply but are you still having problems?

author
MaxTheFilmDude made it!(author)2013-04-29

What kind of power source did you use? You mention a battery, but what kind?

author
blinkyblinky made it!(author)2013-04-29

9 volt.

author
blinkyblinky made it!(author)2013-04-29

9 volt battery

author
mabostudio made it!(author)2012-09-11

very cool gizmo! we did this for burning man and people were awed!
thanks for the instructable.
I do have one question. Is it possible to wire this to a shiftbrite LED and have it play both colors and sound? I looked at the code but my novice level is a major handicap. how do you suggest this can be implemented?

author
Freaky271 made it!(author)2012-08-29

to what pin I connect the speakers?

author
blinkyblinky made it!(author)2012-08-29

Pin 11

author
umfan110 made it!(author)2012-07-31

could you add a pot to change the frequency of the synth

author
Emanuelgeo made it!(author)2012-07-31

How did you connect the speaker up to the arduino board?

author
mocm made it!(author)2012-02-25

any chance of midi out?

author
blinkyblinky made it!(author)2012-02-25

I am assuming you posted three of the same comments and then deleted two or Instructables just spazzed.

Not really. I have wanted to learn how MIDI works for a long time and what the uses could be...

If someone could write a good article (simpler than Wikipedia and other websites) I would probable try and add MIDI. I still have no idea about its application.

author
mocm made it!(author)2012-02-25

Hi, thanks for the replay...
i just sing up on the Instructables site and i mess with the comments ☺

author
blinkyblinky made it!(author)2012-02-25

Its okay. Sorry for no MIDI yet.

author
mocm made it!(author)2012-02-25

if you have sum time check my funny sound modules...
www.mocm.gr
thanks...

author
blinkyblinky made it!(author)2012-02-25

Cool.

Now you just need How-Tos.

(I really like the FA one but I only examined a few. Any suggestions on which ones I should watch?)

About This Instructable

49,780views

272favorites

License:

Bio: I love building things and taking pictures. If you want me to build something...I'm open to ideas. My motto? "If you want something ... More »
More by blinkyblinky:Keeping Up Appearances with ChindoguA Complete Beginner's Guide to Raw Files And Raw ProcessingHypercard - An Impossible Paper Object
Add instructable to: