Edited from the Hello World example for the USBMIDI library to play notes from a PwmOut using beep.....

Dependencies:   USBDevice beep mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }