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.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