A MIDI piano synthesizer that implements the Karplus Strong physical modeling algorithm.
Dependencies: mbed USBDevice PinDetect
main.cpp@0:cad8dafb22be, 2016-04-06 (annotated)
- 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?
User | Revision | Line number | New 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 |