| × | 3 | ||||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 2 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Out of My League - Music on Arduino © GPL3+
Music by Fitz and the Tantrums played on 3 piezo buzzers using an Arduino Nano (clone).
- 2,242 views
- 0 comments
- 4 respects
Components and supplies
Apps and online services
About this project
This started when I decided to make this project as a birthday present for someone. I wanted to take things to the next level so I found some real music and put it to code! Hope you like it!
Schematics:The code comments say which pins I used. I used the most resistance on the harmony buzzer (10.6K ohms), less on the bass buzzer (7.5K ohms), and the least on the melody buzzer (3.1K ohms). Just for balance, you don't have to have the same resistances.
Sorry I'm not posting schematics. If the materials list, the paragraph above, and the video aren't enough, I suggest looking up how breadboards are set up. Then just hook up the resistors in series to the pins and buzzers (it doesn't matter if the resistor goes in the ground or signal pin.) If it still doesn't make sense feel free to comment and I'll hopefully respond!
Things I learned from the two projects:1. Buzzers cannot share a ground pin - you can try it - it just sounds really, really bad. To get more ground pins, just set one of the Digital pins to output
2. Upping resistance decreases volume but not sound quality (I just experimented with resistor values).
Code
//created by Reed Zimmermann 4/23/18
#include <Tone.h>
//Don't forget to download that library, I have the notes defined here but not the methods
// Redefined notes just temperemant (C), sounds so much better
#define NOTE_C2 65.4
#define NOTE_CS2 69.8
#define NOTE_D2 73.6
#define NOTE_DS2 78.5
#define NOTE_E2 81.8
#define NOTE_F2 87.2
#define NOTE_FS2 92
#define NOTE_G2 98.1
#define NOTE_GS2 104.6
#define NOTE_A2 109
#define NOTE_AS2 116.3
#define NOTE_B2 122.6
#define NOTE_C3 130.8
#define NOTE_CS3 139.5
#define NOTE_D3 147.2
#define NOTE_DS3 157
#define NOTE_E3 163.5
#define NOTE_F3 174.4
#define NOTE_FS3 184
#define NOTE_G3 196.2
#define NOTE_GS3 209.3
#define NOTE_A3 218
#define NOTE_AS3 232.5
#define NOTE_B3 245.3
#define NOTE_C4 261.6
#define NOTE_CS4 279.1
#define NOTE_D4 294.3
#define NOTE_DS4 314
#define NOTE_E4 327
#define NOTE_F4 348.8
#define NOTE_FS4 367.9
#define NOTE_G4 392.4
#define NOTE_GS4 418.6
#define NOTE_A4 436
#define NOTE_AS4 465.1
#define NOTE_B4 490.5
#define NOTE_C5 523.2
#define NOTE_CS5 558.1
#define NOTE_D5 588.6
#define NOTE_DS5 627.9
#define NOTE_E5 654.1
#define NOTE_F5 697.7
#define NOTE_FS5 735.8
#define NOTE_G5 784.9
#define NOTE_GS5 837.1
#define NOTE_A5 872
#define NOTE_AS5 930.2
#define NOTE_B5 981.1
#define NOTE_C6 1046.6
#define NOTE_CS6 1116.2
#define NOTE_D6 1177.4
Tone melody;
Tone bass;
Tone harmony;
const int t = 300; // quater note duration (ms)
void wait(Tone t) //doesn't let the song go on until the specified Tone has finished its note
{
while (t.isPlaying()) { }
}
void setup(void)
{
pinMode(4, OUTPUT); // melody buzzer ground pin
pinMode(9, OUTPUT); // harmony buzzer ground pin
// Use GND for bass ground pin
melody.begin(6); // melody buzzer signal pin
bass.begin(3); // bass buzzer signal pin
harmony.begin(10); // harmony buzzer signal pin
}
void loop(void)
{
melody.play(NOTE_E5, t); //More
wait(melody);
melody.play(NOTE_D5, t/2); //Than
wait(melody);
melody.play(NOTE_C5, t); //Just
wait(melody);
melody.play(NOTE_D5, t/2); // A
wait(melody);
melody.play(NOTE_A4, t); //Dream
wait(melody);
melody.play(NOTE_A4, t*2);
harmony.play(NOTE_C5, t*2);
bass.play(NOTE_F3, t*5);
wait(melody);
melody.play(NOTE_A5, t*2);
harmony.play(NOTE_C5, t*2);
wait(melody);
melody.play(NOTE_A5, t*1.5);
harmony.play(NOTE_C6, t*1.5);
wait(bass);
bass.play(NOTE_F3, t);
wait(melody);
melody.play(NOTE_F5, t/2);
wait(bass);
bass.play(NOTE_G3, t);
melody.play(NOTE_A5, t/2);
wait(melody);
melody.play(NOTE_C6, t*1.5);
wait(bass);
bass.play(NOTE_A3, t);
wait(bass);
bass.play(NOTE_E3, t*5);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
wait(melody);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
wait(melody);
melody.play(NOTE_E5, t); //More
harmony.play(NOTE_B4, t);
wait(melody);
melody.play(NOTE_D5, t/2); //Than
bass.play(NOTE_E3, t);
wait(melody);
melody.play(NOTE_C5, t); //Just
harmony.play(NOTE_G4, t);
wait(bass);
bass.play(NOTE_D3, t);
wait(melody);
melody.play(NOTE_D5, t/2); // A
wait(melody);
melody.play(NOTE_A4, t); //Dream
bass.play(NOTE_E3, t);
wait(melody);
melody.play(NOTE_A4, t*2);
harmony.play(NOTE_C5, t*2);
bass.play(NOTE_F3, t*5);
wait(melody);
melody.play(NOTE_A5, t*2);
harmony.play(NOTE_C5, t*2);
wait(melody);
melody.play(NOTE_A5, t*1.5);
harmony.play(NOTE_C6, t*1.5);
wait(bass);
bass.play(NOTE_F3, t);
wait(melody);
melody.play(NOTE_F5, t/2);
wait(bass);
bass.play(NOTE_G3, t);
melody.play(NOTE_A5, t/2);
wait(melody);
melody.play(NOTE_C6, t*1.5);
wait(bass);
bass.play(NOTE_A3, t);
wait(bass);
bass.play(NOTE_E3, t);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
wait(bass);
bass.play(NOTE_E3, t);
wait(bass);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
bass.play(NOTE_E3, t);
wait(bass);
bass.play(NOTE_E3, t);
wait(bass);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
bass.play(NOTE_D4, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
wait(bass);
melody.play(NOTE_B5, t*2);
harmony.play(NOTE_G5, t*2);
bass.play(NOTE_B3, t/2);
wait(bass);
bass.play(NOTE_B3, t/2);
wait(bass);
bass.play(NOTE_B3, t);
wait(bass);
bass.play(NOTE_F3, t);
harmony.play(NOTE_A3, t*.75);
wait(bass);
melody.play(NOTE_C5, t/2); // 1 OOhs
wait(melody);
melody.play(NOTE_C5, t/2);
bass.play(NOTE_F3, t*1.5);
wait(melody);
melody.play(NOTE_A4, t);
harmony.play(NOTE_A3, t);
wait(melody);
melody.play(NOTE_F4, t);
harmony.play(NOTE_C4, t*4);
wait(melody);
melody.play(NOTE_C5, t);
bass.play(NOTE_F3, t*2);
wait(melody);
melody.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_D5, t*.75);
bass.play(NOTE_G3, t/2);
wait(bass);
bass.play(NOTE_F3, t/2);
wait(melody);
melody.play(NOTE_C5, t/4);
wait(melody);
melody.play(NOTE_A4,t);
bass.play(NOTE_G3, t*.5);
wait(bass);
bass.play(NOTE_A3, t*.5);
wait(bass);
bass.play(NOTE_E3, t);
wait(bass);
melody.play(NOTE_C5, t/2); // 2 OOhs
wait(melody);
melody.play(NOTE_C5, t/2);
bass.play(NOTE_E3, t*1.5);
wait(melody);
melody.play(NOTE_A4, t);
harmony.play(NOTE_G3, t);
wait(melody);
melody.play(NOTE_F4, t);
harmony.play(NOTE_B3, t*4);
wait(melody);
melody.play(NOTE_C5, t);
bass.play(NOTE_E3, t*2);
wait(melody);
melody.play(NOTE_C5, t/2);
wait(melody);
melody.play(NOTE_D5, t/2);
wait(melody);
melody.play(NOTE_D5, t/2);
bass.play(NOTE_E3, t/2);
wait(bass);
melody.play(NOTE_C5, t/2);
bass.play(NOTE_C3, t/2);
wait(melody);
melody.play(NOTE_A4,t);
bass.play(NOTE_D3, t/2);
wait(bass);
bass.play(NOTE_E3, t/2);
wait(bass);
bass.play(NOTE_F3, t);
wait(bass);
melody.play(NOTE_C5, t/2); // 3 OOhs
wait(melody);
melody.play(NOTE_C5, t/2);
bass.play(NOTE_F3, t*1.5);
wait(melody);
melody.play(NOTE_A4, t);
harmony.play(NOTE_A3, t);
wait(melody);
melody.play(NOTE_F4, t);
harmony.play(NOTE_C4, t*4);
wait(melody);
melody.play(NOTE_C5, t);
bass.play(NOTE_F3, t*2);
wait(melody);
melody.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_D5, t*.75);
bass.play(NOTE_G3, t/2);
wait(bass);
bass.play(NOTE_F3, t/2);
wait(melody);
melody.play(NOTE_C5, t/4);
wait(melody);
melody.play(NOTE_A4,t);
bass.play(NOTE_G3, t*.5);
wait(bass);
bass.play(NOTE_A3, t*.5);
wait(bass);
bass.play(NOTE_E3, t);
wait(bass);
melody.play(NOTE_C5, t/2); // 4 OOhs
wait(melody);
melody.play(NOTE_C5, t/2);
bass.play(NOTE_E3, t*1.5);
wait(melody);
melody.play(NOTE_A4, t);
harmony.play(NOTE_G3, t);
wait(melody);
melody.play(NOTE_F4, t);
harmony.play(NOTE_B2, t*4);
wait(melody);
melody.play(NOTE_F5, t);
bass.play(NOTE_D4, t*2);
wait(melody);
melody.play(NOTE_F5, t/2);
wait(melody);
melody.play(NOTE_D5, t/2);
wait(melody);
melody.play(NOTE_D5, t/2);
bass.play(NOTE_B3, t*2);
wait(melody);
melody.play(NOTE_C5, t/2);
wait(melody);
melody.play(NOTE_A4,t);
wait(bass);
bass.play(NOTE_F3, t*2);
wait(bass);
melody.play(NOTE_G4, t/2); //For-
harmony.play(NOTE_G4, t/2);
bass.play(NOTE_F3, t*2);
wait(melody);
melody.play(NOTE_A4, t); //ty
harmony.play(NOTE_A4, t);
wait(melody);
melody.play(NOTE_C5, t); //days
harmony.play(NOTE_A4, t);
wait(bass);
bass.play(NOTE_A3, t*4);
wait(melody);
melody.play(NOTE_A4, t); //and
harmony.play(NOTE_F4, t);
wait(melody);
melody.play(NOTE_G5, t); //for-
harmony.play(NOTE_E5, t);
wait(melody);
melody.play(NOTE_F5, t); //ty
harmony.play(NOTE_D5, t);
wait(melody);
melody.play(NOTE_E5, t*8.5); //nights
harmony.play(NOTE_C5, t*8.5);
wait(bass);
bass.play(NOTE_G3, t*4);
wait(bass);
bass.play(NOTE_B3, t*2);
wait(bass);
bass.play(NOTE_C4, t/2);
wait(bass);
bass.play(NOTE_A3, t/2);
wait(bass);
bass.play(NOTE_C4, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
wait(bass);
bass.play(NOTE_F3, t*2);
wait(bass);
bass.play(NOTE_F3, t*2);
melody.play(NOTE_G4, t/2); //Wait-
harmony.play(NOTE_G4, t/2);
wait(melody);
melody.play(NOTE_A4, t); //ed
harmony.play(NOTE_A4, t);
wait(melody);
melody.play(NOTE_C5, t); //for
harmony.play(NOTE_A4, t);
wait(bass);
bass.play(NOTE_A3, t*4);
wait(melody);
melody.play(NOTE_A4, t); //a
harmony.play(NOTE_F4, t);
wait(melody);
melody.play(NOTE_G5, t*1.5); //girl
harmony.play(NOTE_E5, t*1.5);
wait(melody);
melody.play(NOTE_F5, t); //like
harmony.play(NOTE_D5, t);
wait(melody);
melody.play(NOTE_E5, t); //you
harmony.play(NOTE_C5, t);
wait(bass);
bass.play(NOTE_G3, t*3.5);
wait(melody);
melody.play(NOTE_C5, t/2); //to
harmony.play(NOTE_C5, t/2);
wait(melody);
melody.play(NOTE_E5, t); //come
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_C5, t); //and
harmony.play(NOTE_C5, t);
wait(bass);
bass.play(NOTE_B3, t*2.5);
wait(melody);
melody.play(NOTE_E5, t); //save
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_E5, t); //my
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_F5, t/2); // Life----
harmony.play(NOTE_F5, t/2);
wait(melody);
melody.play(NOTE_F5, t/2);
harmony.play(NOTE_F5, t/2);
bass.play(NOTE_C4, t/2);
wait(melody);
melody.play(NOTE_E5, t/2);
harmony.play(NOTE_E5, t/2);
bass.play(NOTE_A3, t/2);
wait(bass);
bass.play(NOTE_C4, t/2);
melody.play(NOTE_D5, t/2);
harmony.play(NOTE_D5, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
melody.play(NOTE_C5, t/2);
harmony.play(NOTE_C5, t/2);
wait(bass);
bass.play(NOTE_F3, t*2);
melody.play(NOTE_A4, t*2);
harmony.play(NOTE_C4, t*2);
wait(bass);
melody.play(NOTE_G4, t/2); //All
harmony.play(NOTE_G4, t/2);
bass.play(NOTE_F3, t*2);
wait(melody);
melody.play(NOTE_A4, t); //the
harmony.play(NOTE_A4, t);
wait(melody);
melody.play(NOTE_C5, t); //days
harmony.play(NOTE_A4, t);
wait(bass);
bass.play(NOTE_A3, t*4);
wait(melody);
melody.play(NOTE_A4, t); //I
harmony.play(NOTE_F4, t);
wait(melody);
melody.play(NOTE_G5, t); //waited
harmony.play(NOTE_E5, t);
wait(melody);
melody.play(NOTE_A5, t); //for
harmony.play(NOTE_F5, t);
wait(melody);
melody.play(NOTE_E5, t*8.5); //you
harmony.play(NOTE_C5, t*8.5);
wait(bass);
bass.play(NOTE_G3, t*4);
wait(bass);
bass.play(NOTE_B3, t*2);
wait(bass);
bass.play(NOTE_C4, t/2);
wait(bass);
bass.play(NOTE_A3, t/2);
wait(bass);
bass.play(NOTE_C4, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
wait(bass);
bass.play(NOTE_F3, t*2);
wait(bass);
bass.play(NOTE_F3, t*2);
melody.play(NOTE_G4, t/2); //You
harmony.play(NOTE_G4, t/2);
wait(melody);
melody.play(NOTE_A4, t); //know
harmony.play(NOTE_A4, t);
wait(melody);
melody.play(NOTE_C5, t); //the
harmony.play(NOTE_A4, t);
wait(bass);
bass.play(NOTE_A3, t*4);
wait(melody);
melody.play(NOTE_A4, t); //ones
harmony.play(NOTE_F4, t);
wait(melody);
melody.play(NOTE_G5, t*1.5); //who
harmony.play(NOTE_E5, t*1.5);
wait(melody);
melody.play(NOTE_F5, t); //said
harmony.play(NOTE_D5, t);
wait(melody);
melody.play(NOTE_E5, t); //I'd ne-
harmony.play(NOTE_C5, t);
wait(bass);
bass.play(NOTE_G3, t*3.5);
wait(melody);
melody.play(NOTE_C5, t/2); //ver
harmony.play(NOTE_C5, t/2);
wait(melody);
melody.play(NOTE_E5, t); //find
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_C5, t); //some-
harmony.play(NOTE_C5, t);
wait(bass);
bass.play(NOTE_B3, t*2.5);
wait(melody);
melody.play(NOTE_E5, t); //one
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_E5, t); //like
harmony.play(NOTE_C5, t);
wait(melody);
melody.play(NOTE_F5, t/2); // You----
harmony.play(NOTE_F5, t/2);
wait(melody);
melody.play(NOTE_F5, t/2);
harmony.play(NOTE_F5, t/2);
bass.play(NOTE_C4, t/2);
wait(melody);
melody.play(NOTE_E5, t/2);
harmony.play(NOTE_E5, t/2);
bass.play(NOTE_A3, t/2);
wait(bass);
bass.play(NOTE_C4, t/2);
melody.play(NOTE_D5, t/2);
harmony.play(NOTE_D5, t/2);
wait(bass);
bass.play(NOTE_D4, t/2);
melody.play(NOTE_C5, t/2);
harmony.play(NOTE_C5, t/2);
wait(bass);
bass.play(NOTE_F3, t*2);
melody.play(NOTE_A4, t*2);
harmony.play(NOTE_C4, t*2);
wait(bass);
bass.play(NOTE_F3, t*2);
harmony.play(NOTE_A3, t*2);
melody.play(NOTE_G4, t); //You
wait(melody);
melody.play(NOTE_A4, t); //Were
wait(melody);
bass.play(NOTE_A3, t*4);
harmony.play(NOTE_C4, t*4);
melody.play(NOTE_C5, t); //Out
wait(melody);
melody.play(NOTE_A4, t); //Of
wait(melody);
melody.play(NOTE_G5, t); //My
wait(melody);
melody.play(NOTE_E5, t); //League
wait(melody);
melody.play(NOTE_E5, t*2);
bass.play(NOTE_G3, t*4);
harmony.play(NOTE_B3, t*4);
wait(melody);
melody.play(NOTE_G4, t); //All
wait(melody);
melody.play(NOTE_A4, t); //The
wait(melody);
melody.play(NOTE_C5, t); //Things
bass.play(NOTE_B3, t*2);
wait(melody);
melody.play(NOTE_A4, t); //I
wait(melody);
melody.play(NOTE_G5, t); //Be-
bass.play(NOTE_C4, t);
wait(melody);
bass.play(NOTE_D4, t);
melody.play(NOTE_E5, t); //lieve
wait(melody);
bass.play(NOTE_F3, t*4);
harmony.play(NOTE_A3, t*4);
melody.play(NOTE_E5, t*2);
wait(melody);
melody.play(NOTE_G4, t); //You
wait(melody);
melody.play(NOTE_A4, t); //Were
wait(melody);
bass.play(NOTE_A3, t*4);
harmony.play(NOTE_C4, t*4);
melody.play(NOTE_C5, t); //Just
wait(melody);
melody.play(NOTE_A4, t); //The
wait(melody);
melody.play(NOTE_G5, t); //Right
wait(melody);
melody.play(NOTE_E5, t); //Kind
wait(melody);
bass.play(NOTE_G3, t*4);
harmony.play(NOTE_B3, t*4);
melody.play(NOTE_E5, t);
wait(melody);
melody.play(NOTE_D5, t); //Cause
wait(melody);
melody.play(NOTE_C5, t); //You
wait(melody);
melody.play(NOTE_D5, t); //Are
wait(melody);
melody.play(NOTE_E5, t); //More
wait(melody);
melody.play(NOTE_D5, t/2); //Than
wait(melody);
melody.play(NOTE_C5, t); //Just
wait(melody);
melody.play(NOTE_D5, t/2); //A
wait(melody);
melody.play(NOTE_A4, t); //Dream
wait(melody);
melody.play(NOTE_A4, t*2);
bass.play(NOTE_F3, t*4);
harmony.play(NOTE_A3, t*4);
wait(melody);
melody.play(NOTE_G4, t); //You
wait(melody);
melody.play(NOTE_A4, t); //Are
wait(melody);
bass.play(NOTE_A3, t*4);
harmony.play(NOTE_C4, t*4);
melody.play(NOTE_C5, t); //Out
wait(melody);
melody.play(NOTE_A4, t); //Of
wait(melody);
melody.play(NOTE_A5, t); //My
wait(melody);
melody.play(NOTE_E5, t); //League
wait(melody);
melody.play(NOTE_E5, t*2);
bass.play(NOTE_G3, t*4);
harmony.play(NOTE_B3, t*4);
wait(melody);
melody.play(NOTE_G4, t); //Got
wait(melody);
melody.play(NOTE_A4, t); //My
wait(melody);
melody.play(NOTE_C5, t); //Heart-
bass.play(NOTE_B3, t*2);
wait(melody);
melody.play(NOTE_A4, t); //beat
wait(melody);
melody.play(NOTE_A5, t); //Rac-
bass.play(NOTE_C4, t);
wait(melody);
bass.play(NOTE_D4, t);
melody.play(NOTE_E5, t); //ing
wait(melody);
bass.play(NOTE_F3, t*4);
harmony.play(NOTE_A3, t*4);
melody.play(NOTE_E5, t*2);
wait(melody);
melody.play(NOTE_G4, t); //If
wait(melody);
melody.play(NOTE_A4, t); //I
wait(melody);
bass.play(NOTE_A3, t*4);
harmony.play(NOTE_C4, t*4);
melody.play(NOTE_C5, t); //Die
wait(melody);
melody.play(NOTE_A4, t); //Don't
wait(melody);
melody.play(NOTE_G5, t); //Wake
wait(melody);
melody.play(NOTE_E5, t); //Me
wait(melody);
bass.play(NOTE_G3, t*4);
harmony.play(NOTE_B3, t*4);
melody.play(NOTE_E5, t);
wait(melody);
melody.play(NOTE_D5, t); //Cause
wait(melody);
melody.play(NOTE_C5, t); //You
wait(melody);
melody.play(NOTE_D5, t); //Are
wait(melody);
//Then it goes back to beginning and repeats
}
Comments
Author
Published on
April 23, 2018Members who respect this project
you might like