Marc Mitchell
/
Options_slider
Simple audio out with variable tempo using mbed templates
Music_tempo_main.cpp
- Committer:
- mm73
- Date:
- 2014-06-10
- Revision:
- 0:614598ef90dd
File content as of revision 0:614598ef90dd:
#include "mbed.h" #include "tsi_sensor.h" /* This defines will be replaced by PinNames soon */ #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z) #define ELEC0 9 #define ELEC1 10 #elif defined (TARGET_KL05Z) #define ELEC0 9 #define ELEC1 8 #else #error TARGET NOT DEFINED #endif #define C3 131 #define D3 147 #define E3 165 #define F3 175 #define G3 196 #define A3 220 #define B3 247 #define C4 262 #define D4 294 #define E4 330 #define F4 349 #define G4 392 #define A4 440 #define B4 494 #define C5 523 #define A5 880 #define B5 988 #define Pause 1 Ticker tick; DigitalOut led1(LED_RED); DigitalOut led2(LED_GREEN); DigitalOut gpo(D10); void flip() { led2 = !led2; gpo = !gpo; } int main() { int Notes_Hz[] = {G4, F4, G4, Pause, D3, B5, A4, Pause, G4, E3, E4, E4, E4, F4, G4,Pause, G4, F4, G4, Pause, D3, B5, A4, Pause, G4, E3, E4, E4, E4, F4, G4, Pause}; int i; float bpm =120; //tick.attach(&flip, 0.7); // setup ticker to call flip led2 after 0.7 seconds //PwmOut led3(LED_BLUE); TSIAnalogSlider tsi(ELEC0, ELEC1, 40); while (1) { //bpm = 2000.0 * tsi.readPercentage(); //led3 = 1.0 - tsi.readPercentage(); i = 0; while (Notes_Hz[i]) { led1 = !led1; tick.attach(&flip, 0.5/Notes_Hz[i]); wait (50.0/bpm); // bpm = beats per minute tick.attach(&flip, 1); wait (10.0/bpm); // bpm = 400.0 * (1.0 - tsi.readPercentage()); i++; } } }