change tone sounds by altering the waveforms
Dependencies: mbed
Fork of 5_songs by
Diff: main.cpp
- Revision:
- 3:c04186a77ede
- Parent:
- 2:610196c7b41c
- Child:
- 4:02dc2ab8eabb
--- a/main.cpp Thu May 12 17:36:35 2016 +0000 +++ b/main.cpp Thu May 12 17:37:43 2016 +0000 @@ -20,42 +20,7 @@ static void play_song(int notes_left, int* melody, int* duration) { // YOUR CODE HERE - //REMOVE - // melody and duration are pointers, they point to the array of tones and durations we declared earlier -// every time we play a note we up these pointers (move one element forward) -// so the current tone is always the first element of melody (same for duration) -int length; - -while(notes_left > 0) -{ - - int tone = melody[0]; - // BPM is quarter notes per minute, so length in milliseconds is: - length = static_cast<int>(static_cast<float>(1000 / duration[0]) * (60000.0f / static_cast<float>(BPM * 1000))); - - play_tone(tone); - - // after half the length of this tone, we silence - Thread::wait(length / 2); //block this main thread until it is time to silence. This lets other threads run. - silence(); - - //after the full length of this tone, call next note - Thread::wait(length); //block this main thread until it is time to play the next note. This lets other threads run. - - // after the full length of this tone, we up the melody, and down the notes_left - - notes_left--; - melody++; - duration++; - -} - -// we're done! just finish this note and silence -Thread::wait(length / 2); //block this main thread until it is time to silence. This lets other threads run. -silence(); - - //END REMOVE } // this code runs when the microcontroller starts up