Library for DMX and MIDI protocol

Dependents:   Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF

Committer:
villemejane
Date:
Sun Dec 12 12:41:49 2021 +0000
Revision:
0:9cf6898e6b66
Library for DMX and MIDI protocol

Who changed what in which revision?

UserRevisionLine numberNew contents of line
villemejane 0:9cf6898e6b66 1 /****************************************************************************/
villemejane 0:9cf6898e6b66 2 /* DMX_MIDI module library */
villemejane 0:9cf6898e6b66 3 /****************************************************************************/
villemejane 0:9cf6898e6b66 4 /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */
villemejane 0:9cf6898e6b66 5 /****************************************************************************/
villemejane 0:9cf6898e6b66 6 /* Library - controleurs.h file */
villemejane 0:9cf6898e6b66 7 /* MIDI notes are from 0 to 127 */
villemejane 0:9cf6898e6b66 8 /* and MIDI CC controls are from 128 to 512 */
villemejane 0:9cf6898e6b66 9 /* MIDI controls are defined as follow : */
villemejane 0:9cf6898e6b66 10 /* * CTL_M(char) : effect on spot ; */
villemejane 0:9cf6898e6b66 11 /* + bit 7 : Dimmer */
villemejane 0:9cf6898e6b66 12 /* + bit 6 : RED */
villemejane 0:9cf6898e6b66 13 /* + bit 5 : GREEN */
villemejane 0:9cf6898e6b66 14 /* + bit 4 : BLUE */
villemejane 0:9cf6898e6b66 15 /* + bit 3 : WHITE */
villemejane 0:9cf6898e6b66 16 /* + bit 2 : AMBER */
villemejane 0:9cf6898e6b66 17 /* + bit 1 : UV */
villemejane 0:9cf6898e6b66 18 /* + bit 0 : not used yet */
villemejane 0:9cf6898e6b66 19 /* * CTL_L(char) : effect on spot ; */
villemejane 0:9cf6898e6b66 20 /* + bit 7 : Pan */
villemejane 0:9cf6898e6b66 21 /* + bit 6 : Tilt */
villemejane 0:9cf6898e6b66 22 /* + bit 5 : Speed */
villemejane 0:9cf6898e6b66 23 /* + bit 4 : Strobe */
villemejane 0:9cf6898e6b66 24 /* + bit 3 : not used yet */
villemejane 0:9cf6898e6b66 25 /* + bit 2 : not used yet */
villemejane 0:9cf6898e6b66 26 /* + bit 1 : not used yet */
villemejane 0:9cf6898e6b66 27 /* + bit 0 : not used yet */
villemejane 0:9cf6898e6b66 28 /* * C1 to C16 (char) : value to affect to each type of CTL_M or L */
villemejane 0:9cf6898e6b66 29 /* */
villemejane 0:9cf6898e6b66 30 /* */
villemejane 0:9cf6898e6b66 31 /****************************************************************************/
villemejane 0:9cf6898e6b66 32 /* Tested on Nucleo-L476RG / 16th nov 2021 */
villemejane 0:9cf6898e6b66 33 /****************************************************************************/
villemejane 0:9cf6898e6b66 34 /* Next upgrade : include CC controls */
villemejane 0:9cf6898e6b66 35
villemejane 0:9cf6898e6b66 36 #include "mbed.h"
villemejane 0:9cf6898e6b66 37 #include "DMX_MIDI.h"
villemejane 0:9cf6898e6b66 38
villemejane 0:9cf6898e6b66 39 #define MIDI_CONTROLS_NB 128
villemejane 0:9cf6898e6b66 40 #define MIDI_NOTES_NB 128
villemejane 0:9cf6898e6b66 41 #define MIDI_NOTES_GROUPS 16
villemejane 0:9cf6898e6b66 42 #define MIDI_NOTES_CHAN 18
villemejane 0:9cf6898e6b66 43
villemejane 0:9cf6898e6b66 44 #define MIDI_CTL_CTL_M 0
villemejane 0:9cf6898e6b66 45 #define MIDI_CTL_CTL_L 1
villemejane 0:9cf6898e6b66 46 #define MIDI_CTL_DIM 2
villemejane 0:9cf6898e6b66 47 #define MIDI_CTL_RED 3
villemejane 0:9cf6898e6b66 48 #define MIDI_CTL_GREEN 4
villemejane 0:9cf6898e6b66 49 #define MIDI_CTL_BLUE 5
villemejane 0:9cf6898e6b66 50 #define MIDI_CTL_WHITE 6
villemejane 0:9cf6898e6b66 51 #define MIDI_CTL_AMBER 7
villemejane 0:9cf6898e6b66 52 #define MIDI_CTL_UV 8
villemejane 0:9cf6898e6b66 53 #define MIDI_CTL_M0 9
villemejane 0:9cf6898e6b66 54 #define MIDI_CTL_PAN 10
villemejane 0:9cf6898e6b66 55 #define MIDI_CTL_TILT 11
villemejane 0:9cf6898e6b66 56 #define MIDI_CTL_SPEED 12
villemejane 0:9cf6898e6b66 57 #define MIDI_CTL_STROBE 13
villemejane 0:9cf6898e6b66 58 #define MIDI_CTL_L3 14
villemejane 0:9cf6898e6b66 59 #define MIDI_CTL_L2 15
villemejane 0:9cf6898e6b66 60 #define MIDI_CTL_L1 16
villemejane 0:9cf6898e6b66 61 #define MIDI_CTL_L0 17
villemejane 0:9cf6898e6b66 62
villemejane 0:9cf6898e6b66 63 #define MIDI_CTL_DIM_MASK 0b10000000
villemejane 0:9cf6898e6b66 64 #define MIDI_CTL_RED_MASK 0b01000000
villemejane 0:9cf6898e6b66 65 #define MIDI_CTL_GREEN_MASK 0b00100000
villemejane 0:9cf6898e6b66 66 #define MIDI_CTL_BLUE_MASK 0b00010000
villemejane 0:9cf6898e6b66 67 #define MIDI_CTL_WHITE_MASK 0b00001000
villemejane 0:9cf6898e6b66 68 #define MIDI_CTL_AMBER_MASK 0b00000100
villemejane 0:9cf6898e6b66 69 #define MIDI_CTL_UV_MASK 0b00000010
villemejane 0:9cf6898e6b66 70 #define MIDI_CTL_M0_MASK 0b00000001
villemejane 0:9cf6898e6b66 71 #define MIDI_CTL_PAN_MASK 0b10000000
villemejane 0:9cf6898e6b66 72 #define MIDI_CTL_TILT_MASK 0b01000000
villemejane 0:9cf6898e6b66 73 #define MIDI_CTL_SPEED_MASK 0b00100000
villemejane 0:9cf6898e6b66 74 #define MIDI_CTL_STROBE_MASK 0b00010000
villemejane 0:9cf6898e6b66 75 #define MIDI_CTL_L3_MASK 0b00001000
villemejane 0:9cf6898e6b66 76 #define MIDI_CTL_L2_MASK 0b00000100
villemejane 0:9cf6898e6b66 77 #define MIDI_CTL_L1_MASK 0b00000010
villemejane 0:9cf6898e6b66 78 #define MIDI_CTL_L0_MASK 0b00000001
villemejane 0:9cf6898e6b66 79
villemejane 0:9cf6898e6b66 80 /* Global variables */
villemejane 0:9cf6898e6b66 81 /* controls : [number of possible notes values in MIDI][number of groups of light][number of commands] */
villemejane 0:9cf6898e6b66 82 extern char notes[MIDI_NOTES_NB][MIDI_NOTES_GROUPS][MIDI_NOTES_CHAN];
villemejane 0:9cf6898e6b66 83
villemejane 0:9cf6898e6b66 84 /* Functions */
villemejane 0:9cf6898e6b66 85 /* initialisation of controls */
villemejane 0:9cf6898e6b66 86 void initController(void);