Edited from the Hello World example for the USBMIDI library to play notes from a PwmOut using beep.....
Dependencies: USBDevice beep mbed
main.cpp
00001 // Edited from the Hello World example for the USBMIDI library 00002 // to play notes from the PwmOut using beep..... 00003 00004 #include "mbed.h" 00005 #include "USBMIDI.h" 00006 #include "beep.h" 00007 00008 //USBMIDI object 00009 USBMIDI midi; 00010 00011 00012 Beep buzzer(p26); 00013 00014 int freq = 0; 00015 00016 00017 //defining your midi notes as frequencies... 00018 void show_message(MIDIMessage msg) { 00019 switch (msg.type()) { 00020 case MIDIMessage::NoteOnType: 00021 switch (msg.key()) { 00022 case 48: 00023 freq = 261; 00024 break; 00025 case 49: 00026 freq = 277; 00027 break; 00028 case 50: 00029 freq = 293; 00030 break; 00031 case 51: 00032 freq = 311; 00033 break; 00034 case 52: 00035 freq = 329; 00036 break; 00037 case 53: 00038 freq = 349; 00039 break; 00040 case 54: 00041 freq = 369; 00042 break; 00043 case 55: 00044 freq = 391; 00045 break; 00046 case 56: 00047 freq = 415; 00048 break; 00049 case 57: 00050 freq = 440; 00051 break; 00052 case 58: 00053 freq = 466; 00054 break; 00055 case 59: 00056 freq = 493; 00057 break; 00058 case 60: 00059 freq = 523; 00060 break; 00061 case 61: 00062 freq = 554; 00063 break; 00064 case 62: 00065 freq = 587; 00066 break; 00067 case 63: 00068 freq = 622; 00069 break; 00070 case 64: 00071 freq = 659; 00072 break; 00073 case 65: 00074 freq = 698; 00075 break; 00076 case 66: 00077 freq = 739; 00078 break; 00079 case 67: 00080 freq = 783; 00081 break; 00082 case 68: 00083 freq = 830; 00084 break; 00085 case 69: 00086 freq = 880; 00087 break; 00088 case 70: 00089 freq = 932; 00090 break; 00091 case 71: 00092 freq = 987; 00093 break; 00094 case 72: 00095 freq = 1046; 00096 break; 00097 } 00098 switch (msg.velocity()) { 00099 case 0: 00100 freq = 0; 00101 } 00102 break; 00103 } 00104 } 00105 00106 float note = 60; 00107 00108 int main() { 00109 00110 // call back for messages received 00111 midi.attach(show_message); 00112 00113 while (1) { 00114 00115 float note = freq; 00116 if (note > 0){ 00117 buzzer.beep(note,0.1); 00118 } 00119 00120 wait ((0.01)); 00121 } 00122 }
Generated on Tue Jul 12 2022 23:59:43 by 1.7.2