ROCO 104 / MUSIC

Dependents:   ROCO104_7d5m1

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers tunes.cpp Source File

tunes.cpp

00001  #include "mbed.h"
00002  #include "pwm_tone.h"
00003  #include "motor.h"
00004  #define TIME_PERIOD 2             //Constant compiler Values here 2 equates to 2ms or 500Hz base Frequency
00005 PwmOut buzzer(D5);
00006   
00007  void tone1(void){
00008     Tune(buzzer,1e6/C6,4);
00009     buzzer.period_ms(TIME_PERIOD);
00010  }
00011  
00012 void tone2(void){
00013     Tune(buzzer,1e6/E6,4);
00014     buzzer.period_ms(TIME_PERIOD);
00015  }
00016 
00017 void megolavania (int s){
00018     Tune(buzzer,1e6/Dd5,s*8);
00019     
00020    
00021     Tune(buzzer,1e6/Dd4,s*6);
00022     Tune(buzzer,1e6/Aa4,s*6);
00023     Tune(buzzer,1e6/G4s,s*4);
00024     Tune(buzzer,1e6/G4,s*4);
00025     Tune(buzzer,1e6/F4,s*4);
00026     Tune(buzzer,1e6/Dd4,s*2);
00027     Tune(buzzer,1e6/F4,s*2);
00028     Tune(buzzer,1e6/G4,s*2);
00029     Tune(buzzer,1e6/C4,s*2);
00030     Tune(buzzer,1e6/C4,s*6);
00031     Tune(buzzer,1e6/Aa4,s*6);
00032     Tune(buzzer,1e6/G4s,s*4);
00033     Tune(buzzer,1e6/G4,s*4);
00034     Tune(buzzer,1e6/F4,s*4);
00035     Tune(buzzer,1e6/Dd4,s*2);
00036     Tune(buzzer,1e6/F4,s*2);
00037     Tune(buzzer,1e6/G4,s*8);
00038     Tune(buzzer,1e6/Aa4,s*6);
00039     Tune(buzzer,1e6/G4s,s*4);
00040     Tune(buzzer,1e6/G4,s*4);
00041     Tune(buzzer,1e6/F4,s*4);
00042     Tune(buzzer,1e6/Dd4,s*2);
00043     Tune(buzzer,1e6/F4,s*2);
00044     Tune(buzzer,1e6/G4,s*10);
00045      
00046 }
00047 
00048 void close_encounter(int s){
00049     Tune(buzzer,1e6/Dd5,s*2); //It's a close encounter of the 3rd kind of!!!
00050     Tune(buzzer,1e6/E5,s*2);
00051     Tune(buzzer,1e6/C5,s*2);
00052     Tune(buzzer,1e6/C4,s*2);
00053     Tune(buzzer,1e6/G4,s*4);
00054     buzzer.period_ms(TIME_PERIOD);
00055  }
00056  
00057  void jingle_bells(int s){
00058     Tune(buzzer,1e6/E4,s*2); //Jingle Bells!!!
00059     Tune(buzzer,1e6/E4,s*2);
00060     Tune(buzzer,1e6/E4,s*4);
00061   
00062     Tune(buzzer,1e6/E4,s*2);
00063     Tune(buzzer,1e6/E4,s*2);
00064     Tune(buzzer,1e6/E4,s*4);
00065     
00066     Tune(buzzer,1e6/E4,s*2);
00067     Tune(buzzer,1e6/G4,s*2);
00068     Tune(buzzer,1e6/C4,s*3);
00069     Tune(buzzer,1e6/E4,s*1);
00070     
00071     Tune(buzzer,1e6/E4,s*8);
00072   
00073     Tune(buzzer,1e6/F4,s*2);
00074     Tune(buzzer,1e6/F4,s*2);
00075     Tune(buzzer,1e6/F4,s*3);
00076     Tune(buzzer,1e6/F4,s*1);
00077     
00078     Tune(buzzer,1e6/F4,s*2);
00079     Tune(buzzer,1e6/E4,s*2);
00080     Tune(buzzer,1e6/E4,s*2);
00081     Tune(buzzer,1e6/E4,s*1);
00082     Tune(buzzer,1e6/E4,s*1);
00083     
00084     Tune(buzzer,1e6/E4,s*2);
00085     Tune(buzzer,1e6/Dd4,s*2);
00086     Tune(buzzer,1e6/Dd4,s*2);
00087     Tune(buzzer,1e6/E4,s*2);
00088   
00089     Tune(buzzer,1e6/Dd4,s*4);
00090     Tune(buzzer,1e6/G4,s*4);
00091     buzzer.period_ms(TIME_PERIOD);
00092   }
00093 void twinkle(int s){
00094     Tune(buzzer,1e6/C4,s*2); //Twinkle Little Star!!!!!
00095     Tune(buzzer,1e6/C4,s*2);
00096     Tune(buzzer,1e6/G4,s*2);
00097     Tune(buzzer,1e6/G4,s*2);
00098   
00099     Tune(buzzer,1e6/Aa4,s*2);
00100     Tune(buzzer,1e6/Aa4,s*2);
00101     Tune(buzzer,1e6/G4,s*4);
00102     
00103     Tune(buzzer,1e6/F4,s*2);
00104     Tune(buzzer,1e6/F4,s*2);
00105     Tune(buzzer,1e6/E4,s*2);
00106     Tune(buzzer,1e6/E4,s*2);
00107 
00108     Tune(buzzer,1e6/Dd4,s*2);
00109     Tune(buzzer,1e6/Dd4,s*2);
00110     Tune(buzzer,1e6/C4,s*4);
00111     buzzer.period_ms(TIME_PERIOD);
00112   }