A MIDI piano synthesizer that implements the Karplus Strong physical modeling algorithm.

Dependencies:   mbed USBDevice PinDetect

Committer:
asuszek
Date:
Wed Apr 06 18:48:44 2016 +0000
Revision:
0:cad8dafb22be
Child:
2:e21bd39bdf46
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asuszek 0:cad8dafb22be 1 // Hello World example for the USBMIDI library
asuszek 0:cad8dafb22be 2
asuszek 0:cad8dafb22be 3 #include "mbed.h"
asuszek 0:cad8dafb22be 4 #include "USBMIDI.h"
asuszek 0:cad8dafb22be 5
asuszek 0:cad8dafb22be 6 Serial pc(USBTX, USBRX);
asuszek 0:cad8dafb22be 7 DigitalOut led(LED1);
asuszek 0:cad8dafb22be 8
asuszek 0:cad8dafb22be 9 USBMIDI midi;
asuszek 0:cad8dafb22be 10
asuszek 0:cad8dafb22be 11 void midiMessageReceived(MIDIMessage message) {
asuszek 0:cad8dafb22be 12 pc.printf("Message Received\r\n");
asuszek 0:cad8dafb22be 13 led = !led;
asuszek 0:cad8dafb22be 14
asuszek 0:cad8dafb22be 15 switch (message.type()) {
asuszek 0:cad8dafb22be 16 case MIDIMessage::NoteOnType:
asuszek 0:cad8dafb22be 17 pc.printf("\tType: Note On\r\n");
asuszek 0:cad8dafb22be 18 pc.printf("\tNote: %d\r\n", message.key());
asuszek 0:cad8dafb22be 19 break;
asuszek 0:cad8dafb22be 20 case MIDIMessage::NoteOffType:
asuszek 0:cad8dafb22be 21 pc.printf("\tType: Note Off\r\n");
asuszek 0:cad8dafb22be 22 break;
asuszek 0:cad8dafb22be 23 default:
asuszek 0:cad8dafb22be 24 pc.printf("\tType: Other\r\n");
asuszek 0:cad8dafb22be 25 }
asuszek 0:cad8dafb22be 26 }
asuszek 0:cad8dafb22be 27
asuszek 0:cad8dafb22be 28 int main() {
asuszek 0:cad8dafb22be 29 pc.printf("In Main\r\n");
asuszek 0:cad8dafb22be 30 midi.attach(midiMessageReceived);
asuszek 0:cad8dafb22be 31 led = 1;
asuszek 0:cad8dafb22be 32
asuszek 0:cad8dafb22be 33 while (1) {
asuszek 0:cad8dafb22be 34 }
asuszek 0:cad8dafb22be 35 }
asuszek 0:cad8dafb22be 36