This project is a demonstration for my MusicWithoutDelay library which can be downloaded from here.
You will also need Bhagman's famous Tone library.
- I created the library because there was no way to play classic 8-bit music while your main sketch was running. Also, reading other people's music files were hard and disorganized.
- I want to play more than one note at the same time. After a lot of research I gained this ability through Bhagman's Tone library. Unfortunately, the number of notes that can be played at the same time depends on how many timers your board has(Can't use Timer0 since millis() uses it). So the Arduino Uno can play up to 2 notes at same time.
Since no one made a library to make music easier to play and read, I decided to make my own library.
It uses my MusicWithoutDelay library to convert the songs into readable durations for Bhagman's Tone library to play.
The song files use the famous RTTL(Ring Tone Transfer Language) format that old Nokia phones used for their ringtones.
- To learn how to read and make your own music, learn RTTL in the ReadMe file of my library
- RTTL is an extremely easy language to understand for musicians and newbies
These song files are stored in char pointers that you write before the setup(). Then, my library takes the song file and converts them into milliseconds. Remember the BlinkWithoutDelay sketch? My library uses a similar technique to play the notes.
- Play more than one note at the same time
- Run other things like Serial monitor in the background
- Play music backwards and forwards
- Pause/play Music
- Skip to specific sections within the song
- Choose a new Song
- more to come :D