KAMUI USB HOST MIDI-CV Example based on Peter Barrett's BlueUSB

Dependencies:   TextLCD mbed

Committer:
radiojunkbox
Date:
Fri May 11 15:31:59 2012 +0000
Revision:
0:3b4e3e2ec6a5
Rev. 0.1 alfa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
radiojunkbox 0:3b4e3e2ec6a5 1 //-------------------------------------------------------------
radiojunkbox 0:3b4e3e2ec6a5 2 // file : midi_parser.h
radiojunkbox 0:3b4e3e2ec6a5 3 // Copyright (C) 2012 RJB RadioJunkBox
radiojunkbox 0:3b4e3e2ec6a5 4 // Released under the MIT License: http://mbed.org/license/mit
radiojunkbox 0:3b4e3e2ec6a5 5 //-------------------------------------------------------------
radiojunkbox 0:3b4e3e2ec6a5 6
radiojunkbox 0:3b4e3e2ec6a5 7 #ifndef MBED_MIDI_PARSER_H
radiojunkbox 0:3b4e3e2ec6a5 8 #define MBED_MIDI_PARSER_H
radiojunkbox 0:3b4e3e2ec6a5 9
radiojunkbox 0:3b4e3e2ec6a5 10 //-------------------------------------------------------------
radiojunkbox 0:3b4e3e2ec6a5 11 // Define
radiojunkbox 0:3b4e3e2ec6a5 12
radiojunkbox 0:3b4e3e2ec6a5 13 #define TRUE 1
radiojunkbox 0:3b4e3e2ec6a5 14 #define FALSE 0
radiojunkbox 0:3b4e3e2ec6a5 15 #define ON 1
radiojunkbox 0:3b4e3e2ec6a5 16 #define OFF 0
radiojunkbox 0:3b4e3e2ec6a5 17
radiojunkbox 0:3b4e3e2ec6a5 18 #define MAX_CH 16
radiojunkbox 0:3b4e3e2ec6a5 19 #define MAX_NOTE_CNT 16
radiojunkbox 0:3b4e3e2ec6a5 20
radiojunkbox 0:3b4e3e2ec6a5 21 // MIDI Massage
radiojunkbox 0:3b4e3e2ec6a5 22 #define MIDI_NoteOff 0x80
radiojunkbox 0:3b4e3e2ec6a5 23 #define MIDI_NoteOn 0x90
radiojunkbox 0:3b4e3e2ec6a5 24 #define MIDI_PolykeyPressure 0xA0
radiojunkbox 0:3b4e3e2ec6a5 25 #define MIDI_ControlChange 0xB0
radiojunkbox 0:3b4e3e2ec6a5 26 #define MIDI_ProgramChange 0xC0
radiojunkbox 0:3b4e3e2ec6a5 27 #define MIDI_ChannelPressure 0xD0
radiojunkbox 0:3b4e3e2ec6a5 28 #define MIDI_PitchBend 0xE0
radiojunkbox 0:3b4e3e2ec6a5 29
radiojunkbox 0:3b4e3e2ec6a5 30 #define MIDI_StartSysEx 0xF0
radiojunkbox 0:3b4e3e2ec6a5 31 #define MIDI_TuneRequest 0xF6
radiojunkbox 0:3b4e3e2ec6a5 32 #define MIDI_EndSysEx 0xF7
radiojunkbox 0:3b4e3e2ec6a5 33
radiojunkbox 0:3b4e3e2ec6a5 34 #define MIDI_TimingClock 0xF8
radiojunkbox 0:3b4e3e2ec6a5 35 #define MIDI_Start 0xFA
radiojunkbox 0:3b4e3e2ec6a5 36 #define MIDI_Continue 0xFB
radiojunkbox 0:3b4e3e2ec6a5 37 #define MIDI_Stop 0xFC
radiojunkbox 0:3b4e3e2ec6a5 38 #define MIDI_ActiveSensing 0xFE
radiojunkbox 0:3b4e3e2ec6a5 39 #define MIDI_SystemReset 0xFF
radiojunkbox 0:3b4e3e2ec6a5 40
radiojunkbox 0:3b4e3e2ec6a5 41 #define MIDI_CC_Moduration 0x01
radiojunkbox 0:3b4e3e2ec6a5 42 #define MIDI_CC_DataEntry 0x06
radiojunkbox 0:3b4e3e2ec6a5 43 #define MIDI_CC_RPN_LSB 0x64
radiojunkbox 0:3b4e3e2ec6a5 44 #define MIDI_CC_RPN_MSB 0x65
radiojunkbox 0:3b4e3e2ec6a5 45
radiojunkbox 0:3b4e3e2ec6a5 46 #define MIDI_MM_AllSoundOff 0x78
radiojunkbox 0:3b4e3e2ec6a5 47 #define MIDI_MM_ResetAllControl 0x79
radiojunkbox 0:3b4e3e2ec6a5 48 #define MIDI_MM_AllNoteOff 0x7B
radiojunkbox 0:3b4e3e2ec6a5 49
radiojunkbox 0:3b4e3e2ec6a5 50 //-------------------------------------------------------------
radiojunkbox 0:3b4e3e2ec6a5 51 // Global variables
radiojunkbox 0:3b4e3e2ec6a5 52
radiojunkbox 0:3b4e3e2ec6a5 53 unsigned char gPlayNoteBuf[MAX_CH];
radiojunkbox 0:3b4e3e2ec6a5 54 unsigned char gGateBuf[MAX_CH];
radiojunkbox 0:3b4e3e2ec6a5 55 unsigned char gPitchBendBuf[MAX_CH];
radiojunkbox 0:3b4e3e2ec6a5 56 unsigned char gModWheelBuf[MAX_CH];
radiojunkbox 0:3b4e3e2ec6a5 57 unsigned char gMIDISYNC_CLK;
radiojunkbox 0:3b4e3e2ec6a5 58 unsigned char gMIDISYNC_RUN;
radiojunkbox 0:3b4e3e2ec6a5 59
radiojunkbox 0:3b4e3e2ec6a5 60 unsigned char NoteCnt[MAX_CH];
radiojunkbox 0:3b4e3e2ec6a5 61 unsigned char NoteBuf[MAX_CH][MAX_NOTE_CNT];
radiojunkbox 0:3b4e3e2ec6a5 62
radiojunkbox 0:3b4e3e2ec6a5 63 unsigned char RxByte;
radiojunkbox 0:3b4e3e2ec6a5 64 unsigned char SysEx;
radiojunkbox 0:3b4e3e2ec6a5 65 unsigned char MidiCh;
radiojunkbox 0:3b4e3e2ec6a5 66 unsigned char PC;
radiojunkbox 0:3b4e3e2ec6a5 67 unsigned char MByte[2];
radiojunkbox 0:3b4e3e2ec6a5 68
radiojunkbox 0:3b4e3e2ec6a5 69 //-------------------------------------------------------------
radiojunkbox 0:3b4e3e2ec6a5 70 // Functions
radiojunkbox 0:3b4e3e2ec6a5 71
radiojunkbox 0:3b4e3e2ec6a5 72 void MIDI_Parser(unsigned char);
radiojunkbox 0:3b4e3e2ec6a5 73 int MIDI_SystemMessage(void);
radiojunkbox 0:3b4e3e2ec6a5 74 void MIDI_SystemRealtimeMessage(void);
radiojunkbox 0:3b4e3e2ec6a5 75 void MIDI_ChannelMessage(void);
radiojunkbox 0:3b4e3e2ec6a5 76 void NoteON(void);
radiojunkbox 0:3b4e3e2ec6a5 77 void NoteOFF(void);
radiojunkbox 0:3b4e3e2ec6a5 78
radiojunkbox 0:3b4e3e2ec6a5 79 #endif