The Arduino OctoSynth

59K30664

Intro: 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.

60 Comments

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

Please help this is urgent

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?

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.

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!

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

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

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???

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

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

Error compiling.

how to get rid of this? plz

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

Why am I getting the error caused

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.

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.

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.

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

would you please assign me the code of the project

Very good job! Achievement patch coming soon!

can the same code be used for lilypad?

Nice project, simples and amazing! :-))

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.

More Comments