Library for DMX and MIDI protocol
Dependents: Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF
controleurs.h@0:9cf6898e6b66, 2021-12-12 (annotated)
- 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?
User | Revision | Line number | New 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); |