Gemphet8 ; 8-polyphonic synthesizer control application

Dependencies:   MIDI REnc button mbed

Revision:
5:7d7be4c72d21
Child:
9:a86ad099f24d
diff -r 3514a8b850dd -r 7d7be4c72d21 MIDI_Proc/midi_proc.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MIDI_Proc/midi_proc.h	Mon Aug 11 07:46:03 2014 +0000
@@ -0,0 +1,60 @@
+#ifndef __C_MIDI_PROC_H__
+#define __C_MIDI_PROC_H__ 1
+
+#include "mbed.h"
+#include "MIDI.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+    /** MIDI System message */
+#define MIDI_ALL_NOTE_OFF             0x7B
+#define MIDI_RESET_ALL_CONTROLLERS    0x79
+
+#define POLYPHONICE_NOTES 8
+
+    typedef unsigned char uint8_t;
+    typedef unsigned short uint16_t;
+    typedef uint8_t byte;
+    typedef uint16_t word;
+    
+    /** @structure MIDI Note management structure
+     *
+     */
+    typedef struct _MidiNote {
+        /// MIDI Note number
+        uint8_t Note;
+        /// MIDI Note velocity
+        uint8_t Velocity;
+        /// MIDI Note channel
+        uint8_t Channel;
+        /// pointer to the next _MidiNote object
+        struct _MidiNote *next;
+    } MN_t, MN_p;
+
+    extern MN_t NoteEnd;
+    extern MN_t NoteStart;
+    extern MN_t MidiNotes[];
+    extern uint16_t MidiNotesTag;
+    extern uint8_t NumOfNotes;
+
+    /** @brief Prototypes related to MIDI
+     *
+     */
+    extern void midi_init(void);
+    extern MN_p allocN(void);
+    extern void freeN(MN_p addr);
+    extern void midi_allnoteoff(void);
+    extern void midi_resetcontrol(void);
+    extern void midi_sysreset(void);
+    extern void midi_noteoff(byte channel, byte note, byte velocity);
+    extern void midi_noteon(byte channel, byte note, byte velocity);
+    extern void midi_cc(byte channel, byte number, byte value);
+    extern void midi_pc(byte channel, byte number);
+    extern void midi_pbend(byte channel, int bend);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __C_MIDI_PROC_H__ */
\ No newline at end of file