Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE PinDetect mbed SparkfunAnalogJoystick mbed-rtos
Fork of ECE2036Lab2StarterCode by
soundBuilder.cpp
00001 #include "Speaker.h" 00002 #include "soundBuilder.h" 00003 00004 Note::Note(){ 00005 setFreq(0); 00006 setLength(0); 00007 setVolume(0); 00008 } 00009 00010 Note::Note(float freq, float dur, float vol){ 00011 setFreq(freq); 00012 setLength(dur); 00013 setVolume(vol); 00014 } 00015 00016 void Note::setFreq(float nfreq){ 00017 freq = nfreq; 00018 } 00019 00020 void Note::setLength(float dur){ 00021 length = dur; 00022 } 00023 00024 void Note::setVolume(float vol){ 00025 volume = vol; 00026 } 00027 00028 float Note::getFreq(){ 00029 return freq; 00030 } 00031 00032 float Note::getLength(){ 00033 return length; 00034 } 00035 00036 float Note::getVolume(){ 00037 return volume; 00038 } 00039 00040 SoundBuilder::SoundBuilder(float freq[], float dur[], float vol[], int numNotes, Speaker *mainspeaker){ 00041 for (int i = 0; i < numNotes; i++){ 00042 song[i].setFreq(freq[i]); 00043 song[i].setLength(dur[i]); 00044 song[i].setVolume(vol[i]); 00045 } 00046 speaker = &(*mainspeaker); 00047 } 00048 00049 void SoundBuilder::setNote(float freq, float dur, float vol, int noteNum){ 00050 song[noteNum].setFreq(freq); 00051 song[noteNum].setLength(dur); 00052 song[noteNum].setVolume(vol); 00053 } 00054 00055 void SoundBuilder::playNotes(int start, int stop){ 00056 for (int i = start; i <= stop; i++) 00057 speaker->PlayNote(song[i].getFreq(), song[i].getLength(), song[i].getVolume()); 00058 } 00059 00060 void SoundBuilder::playSong(){ 00061 playNotes(0, sizeof(song)/sizeof(*song)-1); 00062 } 00063 00064 void SoundBuilder::clearSong(){ 00065 for (int i = 0; i < sizeof(song)/sizeof(*song); i++){ 00066 song[i].setFreq(0); 00067 song[i].setLength(0); 00068 song[i].setVolume(0); 00069 } 00070 }
Generated on Fri Jul 15 2022 08:13:00 by
