Library for DMX and MIDI protocol
Dependents: Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF
controleurs.cpp@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.cpp file */ |
villemejane | 0:9cf6898e6b66 | 7 | /* MIDI notes are from 0 to 127 */ |
villemejane | 0:9cf6898e6b66 | 8 | /* MIDI notes are defined as follow : */ |
villemejane | 0:9cf6898e6b66 | 9 | /* * CTL_M(char) : effect on spot ; */ |
villemejane | 0:9cf6898e6b66 | 10 | /* + bit 7 : Dimmer */ |
villemejane | 0:9cf6898e6b66 | 11 | /* + bit 6 : RED */ |
villemejane | 0:9cf6898e6b66 | 12 | /* + bit 5 : GREEN */ |
villemejane | 0:9cf6898e6b66 | 13 | /* + bit 4 : BLUE */ |
villemejane | 0:9cf6898e6b66 | 14 | /* + bit 3 : WHITE */ |
villemejane | 0:9cf6898e6b66 | 15 | /* + bit 2 : AMBER */ |
villemejane | 0:9cf6898e6b66 | 16 | /* + bit 1 : UV */ |
villemejane | 0:9cf6898e6b66 | 17 | /* + bit 0 : not used yet */ |
villemejane | 0:9cf6898e6b66 | 18 | /* * CTL_L(char) : effect on spot ; */ |
villemejane | 0:9cf6898e6b66 | 19 | /* + bit 7 : Pan */ |
villemejane | 0:9cf6898e6b66 | 20 | /* + bit 6 : Tilt */ |
villemejane | 0:9cf6898e6b66 | 21 | /* + bit 5 : Speed */ |
villemejane | 0:9cf6898e6b66 | 22 | /* + bit 4 : Strobe */ |
villemejane | 0:9cf6898e6b66 | 23 | /* + bit 3 : not used yet */ |
villemejane | 0:9cf6898e6b66 | 24 | /* + bit 2 : not used yet */ |
villemejane | 0:9cf6898e6b66 | 25 | /* + bit 1 : not used yet */ |
villemejane | 0:9cf6898e6b66 | 26 | /* + bit 0 : not used yet */ |
villemejane | 0:9cf6898e6b66 | 27 | /* * C1 to C16 (char) : value to affect to each type of CTL_M or L */ |
villemejane | 0:9cf6898e6b66 | 28 | /* */ |
villemejane | 0:9cf6898e6b66 | 29 | /* MIDI control changes CC are from 0 to 127 */ |
villemejane | 0:9cf6898e6b66 | 30 | /* MIDI controls are defined as follow : TO DO */ |
villemejane | 0:9cf6898e6b66 | 31 | /* * CTL_M(char) : effect on spot ; */ |
villemejane | 0:9cf6898e6b66 | 32 | /* + bit 7 : Dimmer */ |
villemejane | 0:9cf6898e6b66 | 33 | /* + bit 6 : RED */ |
villemejane | 0:9cf6898e6b66 | 34 | /* */ |
villemejane | 0:9cf6898e6b66 | 35 | /* */ |
villemejane | 0:9cf6898e6b66 | 36 | /****************************************************************************/ |
villemejane | 0:9cf6898e6b66 | 37 | /* Tested on Nucleo-L476RG / 16th nov 2021 */ |
villemejane | 0:9cf6898e6b66 | 38 | /****************************************************************************/ |
villemejane | 0:9cf6898e6b66 | 39 | |
villemejane | 0:9cf6898e6b66 | 40 | #include "controleurs.h" |
villemejane | 0:9cf6898e6b66 | 41 | |
villemejane | 0:9cf6898e6b66 | 42 | char notes[MIDI_NOTES_NB][MIDI_NOTES_GROUPS][MIDI_NOTES_CHAN] = {0}; |
villemejane | 0:9cf6898e6b66 | 43 | |
villemejane | 0:9cf6898e6b66 | 44 | /* Functions */ |
villemejane | 0:9cf6898e6b66 | 45 | /* initialisation of notes */ |
villemejane | 0:9cf6898e6b66 | 46 | void initController(void){ |
villemejane | 0:9cf6898e6b66 | 47 | for(int j = 0; j < MIDI_NOTES_NB; j++){ |
villemejane | 0:9cf6898e6b66 | 48 | for(int g = 0; g < MIDI_NOTES_GROUPS; g++){ |
villemejane | 0:9cf6898e6b66 | 49 | for(int i = 0; i < MIDI_NOTES_CHAN; i++){ |
villemejane | 0:9cf6898e6b66 | 50 | notes[j][g][i] = 0; |
villemejane | 0:9cf6898e6b66 | 51 | } |
villemejane | 0:9cf6898e6b66 | 52 | } |
villemejane | 0:9cf6898e6b66 | 53 | } |
villemejane | 0:9cf6898e6b66 | 54 | |
villemejane | 0:9cf6898e6b66 | 55 | /* Note 0 */ |
villemejane | 0:9cf6898e6b66 | 56 | // Groupe 0 |
villemejane | 0:9cf6898e6b66 | 57 | notes[0][0][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 58 | notes[0][0][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 59 | notes[0][0][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 60 | notes[0][0][MIDI_CTL_GREEN] = 0; |
villemejane | 0:9cf6898e6b66 | 61 | notes[0][0][MIDI_CTL_BLUE] = 0; |
villemejane | 0:9cf6898e6b66 | 62 | notes[0][0][MIDI_CTL_RED] = 255; |
villemejane | 0:9cf6898e6b66 | 63 | // Groupe 1 |
villemejane | 0:9cf6898e6b66 | 64 | notes[0][1][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 65 | notes[0][1][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 66 | notes[0][1][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 67 | notes[0][1][MIDI_CTL_GREEN] = 120; |
villemejane | 0:9cf6898e6b66 | 68 | notes[0][1][MIDI_CTL_BLUE] = 0; |
villemejane | 0:9cf6898e6b66 | 69 | notes[0][1][MIDI_CTL_RED] = 255; |
villemejane | 0:9cf6898e6b66 | 70 | |
villemejane | 0:9cf6898e6b66 | 71 | /* Note 1 */ |
villemejane | 0:9cf6898e6b66 | 72 | // Groupe 0 |
villemejane | 0:9cf6898e6b66 | 73 | notes[1][0][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 74 | notes[1][0][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 75 | notes[1][0][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 76 | notes[1][0][MIDI_CTL_BLUE] = 255; |
villemejane | 0:9cf6898e6b66 | 77 | notes[1][0][MIDI_CTL_RED] = 255; |
villemejane | 0:9cf6898e6b66 | 78 | notes[1][0][MIDI_CTL_GREEN] = 0; |
villemejane | 0:9cf6898e6b66 | 79 | // Groupe 1 |
villemejane | 0:9cf6898e6b66 | 80 | notes[1][1][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 81 | notes[1][1][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 82 | notes[1][1][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 83 | notes[1][1][MIDI_CTL_BLUE] = 255; |
villemejane | 0:9cf6898e6b66 | 84 | notes[1][1][MIDI_CTL_RED] = 0; |
villemejane | 0:9cf6898e6b66 | 85 | notes[1][1][MIDI_CTL_GREEN] = 0; |
villemejane | 0:9cf6898e6b66 | 86 | |
villemejane | 0:9cf6898e6b66 | 87 | /* Note 2 */ |
villemejane | 0:9cf6898e6b66 | 88 | // Groupe 0 |
villemejane | 0:9cf6898e6b66 | 89 | notes[2][0][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 90 | notes[2][0][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 91 | notes[2][0][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 92 | notes[2][0][MIDI_CTL_GREEN] = 255; |
villemejane | 0:9cf6898e6b66 | 93 | notes[2][0][MIDI_CTL_BLUE] = 0; |
villemejane | 0:9cf6898e6b66 | 94 | notes[2][0][MIDI_CTL_RED] = 0; |
villemejane | 0:9cf6898e6b66 | 95 | // Groupe 1 |
villemejane | 0:9cf6898e6b66 | 96 | notes[2][1][MIDI_CTL_CTL_M] = 0b11110000; |
villemejane | 0:9cf6898e6b66 | 97 | notes[2][1][MIDI_CTL_CTL_L] = 0b00000000; |
villemejane | 0:9cf6898e6b66 | 98 | notes[2][1][MIDI_CTL_DIM] = 255; |
villemejane | 0:9cf6898e6b66 | 99 | notes[2][1][MIDI_CTL_GREEN] = 0; |
villemejane | 0:9cf6898e6b66 | 100 | notes[2][1][MIDI_CTL_BLUE] = 50; |
villemejane | 0:9cf6898e6b66 | 101 | notes[2][1][MIDI_CTL_RED] = 200; |
villemejane | 0:9cf6898e6b66 | 102 | |
villemejane | 0:9cf6898e6b66 | 103 | } |
villemejane | 0:9cf6898e6b66 | 104 |