Mike Sheldon
/
Synth
A simple string synthesizer implementing the Karplus-Strong algorithm. Licensed under the GNU LGPL.
Diff: main.cpp
- Revision:
- 0:ce6724069f0a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jan 09 22:46:12 2013 +0000 @@ -0,0 +1,128 @@ +#include "mbed.h" +#include "Synth.h" + +Synth s(p18); + +void fly_me_to_the_moon(Synth *s) { + //Fly me to the moon + s->add_note(NOTE_C5, 1.5); + s->add_note(NOTE_B4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_G4, 0.5); + + s->add_note(NOTE_F4, 1.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_C5, 0.5); + + s->add_note(NOTE_B4, 1.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_F4, 0.5); + + s->add_note(NOTE_E4, 3); + + s->add_note(NOTE_A4, 1.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_E4, 0.5); + + s->add_note(NOTE_D4, 1.5); + s->add_note(NOTE_E4, 0.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_A4, 0.5); + + s->add_note(NOTE_A_FLAT4, 1.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_E4, 0.5); + s->add_note(NOTE_D4, 0.5); + + s->add_note(NOTE_C4, 2); + s->add_note(NOTE_C_SHARP4, 1); + + s->add_note(NOTE_D4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_A4, 3); + s->add_note(NOTE_C5, 1); + s->add_note(NOTE_B4, 1); + + s->add_note(NOTE_G4, 5); + s->add_note(NOTE_B3, 1); + + s->add_note(NOTE_C4, 0.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_F4, 3); + s->add_note(NOTE_A4, 1); + s->add_note(NOTE_G4, 1); + s->add_note(NOTE_F4, 1); + s->add_note(NOTE_E4, 5); + + s->add_note(NOTE_C5, 1.5); + s->add_note(NOTE_B4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_G4, 0.5); + + s->add_note(NOTE_F4, 1.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_C5, 0.5); + + s->add_note(NOTE_B4, 1.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_F4, 0.5); + + s->add_note(NOTE_E4, 3); + + s->add_note(NOTE_A4, 1.5); + s->add_note(NOTE_G4, 0.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_E4, 0.5); + + s->add_note(NOTE_D4, 1.5); + s->add_note(NOTE_E4, 0.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_G4, 0.5); + + s->add_note(NOTE_A_FLAT4, 1.5); + s->add_note(NOTE_F4, 0.5); + s->add_note(NOTE_E4, 0.5); + s->add_note(NOTE_D4, 0.5); + + s->add_note(NOTE_C4, 2); + s->add_note(NOTE_C_SHARP4, 1); + + s->add_note(NOTE_D4, 0.5); + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_A4, 3); + s->add_note(NOTE_C5, 1); + s->add_note(NOTE_B4, 1); + + s->add_note(NOTE_G4, 5); + s->add_note(NOTE_A_FLAT4, 1); + + s->add_note(NOTE_A4, 0.5); + s->add_note(NOTE_C4, 0.5); + s->add_note(NOTE_C4, 3); + s->add_note(NOTE_C4, 1); + s->add_note(NOTE_D4, 1); + + s->add_note(NOTE_C4, 3); +} + +int main() { + PluckedGuitar *g = new PluckedGuitar(); + s.set_bpm(100); + s.set_instrument(g); + fly_me_to_the_moon(&s); + s.set_repeat(true); + s.play(); + DigitalOut led1(LED1); + DigitalOut led4(LED4); + led1 = 1; + while(1) { + led1 = !led1; + led4 = !led4; + wait(1); + } +} \ No newline at end of file