Squashed 'tmk_core/' changes from 7967731..b9e0ea0

b9e0ea0 Merge commit '7fa9d8bdea3773d1195b04d98fcf27cf48ddd81d' as 'tool/mbed/mbed-sdk'
7fa9d8b Squashed 'tool/mbed/mbed-sdk/' content from commit 7c21ce5

git-subtree-dir: tmk_core
git-subtree-split: b9e0ea08cb940de20b3610ecdda18e9d8cd7c552
This commit is contained in:
Jun Wako
2015-04-24 16:26:14 +09:00
parent a20ef7052c
commit 1fe4406f37
4198 changed files with 2016457 additions and 0 deletions

View File

@ -0,0 +1,73 @@
#include "mbed.h"
#include "USBMIDI.h"
USBMIDI midi;
Serial pc(USBTX, USBRX);
// MIDI IN
void transmitMessage(MIDIMessage msg) {
switch (msg.type()) {
case MIDIMessage::NoteOnType:
wait(0.1);
midi.write(MIDIMessage::NoteOn(msg.key()));
break;
case MIDIMessage::NoteOffType:
wait(0.1);
midi.write(MIDIMessage::NoteOff(msg.key()));
break;
case MIDIMessage::ProgramChangeType:
wait(0.1);
midi.write(MIDIMessage::ProgramChange(msg.program()));
break;
case MIDIMessage::SysExType:
wait(0.1);
unsigned char tmp[64];
for(int i=0;i<msg.length-1;i++) {
tmp[i]=msg.data[i+1];
}
midi.write(MIDIMessage::SysEx(tmp,msg.length-1));
break;
default:
break;
}
}
int main(void)
{
wait(5);
// MIDI OUT
// set piano
midi.write(MIDIMessage::ProgramChange(1));
wait(0.1);
// play A
midi.write(MIDIMessage::NoteOn(21));
wait(0.1);
midi.write(MIDIMessage::NoteOff(21));
wait(0.1);
// GM reset
unsigned char gm_reset[]={0xF0,0x7E,0x7F,0x09,0x01,0xF7};
midi.write(MIDIMessage::SysEx(gm_reset,6));
wait(0.1);
// GM Master volume max
unsigned char gm_master_vol_max[]={0xF0,0x7F,0x7F,0x04,0x01,0x7F,0x7F,0xF7};
midi.write(MIDIMessage::SysEx(gm_master_vol_max,8));
wait(0.1);
// GS reset
unsigned char gs_reset[]={0xF0,0x41,0x10,0x42,0x12,0x40,0x00,0x7F,0x00,0x41,0xF7};
midi.write(MIDIMessage::SysEx(gs_reset,11));
wait(0.1);
// GS Master volume max
unsigned char gs_master_vol_max[]={0xF0,0x41,0x10,0x42,0x12,0x40,0x00,0x04,0x7F,0x3D,0xF7};
midi.write(MIDIMessage::SysEx(gs_master_vol_max,11));
wait(0.1);
midi.attach(transmitMessage);
while(1);
}