This is a sample recording of what the "Quasaar Box" can do. Here is one I built permanently into a small wooden box. Do not be mistaken.... It makes noise, but it makes actual notes. Do you like it?? Do you hate it?? Haha! Maybe a little of both. No foolin. It can be fun to play with and it's pretty simple to put together.
Step 1: Build It on a Breadboard
QUASAAR BOX - on breadboard
-- By theArab-EXE --
So, f you’ve been looking for a cool project to do involving sound, and the 100x Arduino piano tutorials have got you feeling the blues. Well, you could be PLAYING the blues... Check out this tutorial for a neat tone generator that uses the Arduino "pitches.h" library to generate tones, actual notes, and other cool sounds at your will.
Step 2: Materials
(3x) 10K Ohm Linear B potentiometer
P1 - A3 - value determines the baseline of our tone
P2 - A4 - value determines the high-point modulation
P3 - A5 - value determines the delay between playing tones
(1x) Momentary button
(1x) Continuous on/off SPST switch - or button ---
2 momentary will work, however the switch allows us to hold one button in the on state
--- (2x) 10K resistors for buttons
B1 - p12 - plays the tone quickly and stops playing when released
B2 - p8 - plays the tone continuously until it is switched off
//-- if B1 and B2 are pushed simultaneously, the tone jumps up one octave
(1x) 220 resistor for LED
L1 - p2 - LED to provide visual feedback when a note is playing.
1 Small Speaker
Arduino NANO (Regular Arduino will work too)
(cats – optional)
HOW IT WORKS
P1 selects a low value. P2 selects a top value. The device will randomize a number between the two and select that to play. Delay setting is for between notes. Some interesting results can be obtained when we drop the delay down to nearly nothing. If we drop P1 down to zero and change the value of P2, the device will produce a squelching sound.
Some sounds can even bring us back to the days of dial up modems. Dropping P2 down to zero and changing the value of P1 will produce a steady note from the scale. My friend Mark Morpurgo, who is a musical genius, helped me to decipher the "pitches.h" library. We were able to put together a number of different arrays based on the library. These allow us to harness an individual musical scale and embed that inside our project. This is a major benefit to our project.
Our device now resembles more of a musical instrument that one can play - to forsake other saw-wave devices that seem to merely annoy. I have included one scale in the code. It is possible to use a potentiometer to select from a number of scales. For simplicity, I use only one scale in this demo. I will post some helpful links if I can think of them. Feel free to post questions & comments. I'll do my best to help if I can.
Step 3: Add NANO
Add Arduino NANO to breadboard
I plug it in all the way, flush to the left so I can count pins easier.
Step 4: Add Buttons
Add the tactile buttons to the breadboard.
As mentioned in the sketch notes, you can use a SPST switch in place of one of the buttons.
It actually is recommended - Future updates of the device call for using a switch.
It allows for continual playing of the device.
But just 2 simple buttons are just fine for now.
Step 5: Connect to 5V
Step 6: Add Resistors
Step 7: Add Jumper Wires
Step 8: Connect to Pins
Connect jumper wires to Pins 12 & 8
Step 9: Another View of Buttons
Just another perspective of the buttons, in case the others got a little too busy.
Step 10: Add LED
Step 11: Add Resistor
Step 12: Add Jumper Wire
Step 13: Connect Jumper
Connect jumper wire to pin 2 on NANO.
Step 14: Add Potentiometers
Step 15: Connect Potentiometers
Left pin - Gnd
Middle pin - Jumper
Right - 5V
Step 16: Connect to NANO
Connect the jumper wires to pins A0, A1, A2 on the NANO.
!!!!!!! NOTE !!!!!!!
The photo shows A3, A4, A5 -- but its changed to A0, A1, A2 in sketch. Just a heads up. Sorry!
Step 17: Setup
Step 18: Add Speaker
Step 19: Upload Sketch
Upload sketch and let 'er rip!
You can get the sketch here at GitHub:
The zip folder should contain the "pitches.h" library.
If not, you can get it here:
Trouble uploading to Arduino??