Additional Parts:
Time to Complete: 30 minutes
- 100 nF non-polarized capacitor x1
- 100 uF, 25v electrolytic capacitor x1
- 10k Ohm resistor x5
- 4.7k Ohm resistor x3
- 1M Ohm resistor x1
- 10k Ohm linear potentiometer x1
- TDA7052 1W audio amplifies x1
- Small 8 Ohm loudspeaker x1
Time to Complete: 30 minutes

This project is awesome. With just a handful of parts, I have assembled a crappy synthesizer the can play any tune that is programmed into it. In the video below, the Arduino plays the default song "Jingle Bells". The potentiometer is used as a volume knob.
The program for the project is interesting in that each note must be separately constructed from the appropriate sine wave, and the duration of each note must be adjusted so they are all roughly equal. The author has taken the time to create two octaves worth of notes. The song below is played in the higher octave. After I took the video, I played it in the lower octave, which sounded better. Since the notes are already defined, it's possible to play any song by simply writing the appropriate notes and spaces to account for the duration of the notes and silences between them. It would also be simple to add the accidentals to the array of available notes. By default, the only available notes are two octaves of ABCDEFG. Perhaps I will take the time to add the accidentals and program a new tune. I also think I made need to make some adjustments to tune the tune player. "Jingle Bells" sounds pretty bad.
The program for the project is interesting in that each note must be separately constructed from the appropriate sine wave, and the duration of each note must be adjusted so they are all roughly equal. The author has taken the time to create two octaves worth of notes. The song below is played in the higher octave. After I took the video, I played it in the lower octave, which sounded better. Since the notes are already defined, it's possible to play any song by simply writing the appropriate notes and spaces to account for the duration of the notes and silences between them. It would also be simple to add the accidentals to the array of available notes. By default, the only available notes are two octaves of ABCDEFG. Perhaps I will take the time to add the accidentals and program a new tune. I also think I made need to make some adjustments to tune the tune player. "Jingle Bells" sounds pretty bad.