Library for DMX and MIDI protocol
Dependents: Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF
DMX_MIDI.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 - DMX_MIDI.h file */ |
villemejane | 0:9cf6898e6b66 | 7 | /****************************************************************************/ |
villemejane | 0:9cf6898e6b66 | 8 | /* Tested on Nucleo-L476RG / 11th nov 2021 */ |
villemejane | 0:9cf6898e6b66 | 9 | /****************************************************************************/ |
villemejane | 0:9cf6898e6b66 | 10 | |
villemejane | 0:9cf6898e6b66 | 11 | #ifndef DMX_MIDI_H_INCLUDED |
villemejane | 0:9cf6898e6b66 | 12 | #define DMX_MIDI_H_INCLUDED |
villemejane | 0:9cf6898e6b66 | 13 | #include "projecteurs.h" |
villemejane | 0:9cf6898e6b66 | 14 | #include "preset.h" |
villemejane | 0:9cf6898e6b66 | 15 | #include "projecteurs.h" |
villemejane | 0:9cf6898e6b66 | 16 | #include "controleurs.h" |
villemejane | 0:9cf6898e6b66 | 17 | |
villemejane | 0:9cf6898e6b66 | 18 | #define SAMPLES 512 |
villemejane | 0:9cf6898e6b66 | 19 | |
villemejane | 0:9cf6898e6b66 | 20 | #define MIDI_NOTE_ON 0x90 |
villemejane | 0:9cf6898e6b66 | 21 | #define MIDI_NOTE_OFF 0x80 |
villemejane | 0:9cf6898e6b66 | 22 | #define MIDI_CC 0xB0 |
villemejane | 0:9cf6898e6b66 | 23 | |
villemejane | 0:9cf6898e6b66 | 24 | #include "mbed.h" |
villemejane | 0:9cf6898e6b66 | 25 | |
villemejane | 0:9cf6898e6b66 | 26 | /* Entrées - Sorties */ |
villemejane | 0:9cf6898e6b66 | 27 | extern Serial debug_pc; |
villemejane | 0:9cf6898e6b66 | 28 | extern DigitalOut debug_out; |
villemejane | 0:9cf6898e6b66 | 29 | |
villemejane | 0:9cf6898e6b66 | 30 | extern Serial dmx; |
villemejane | 0:9cf6898e6b66 | 31 | extern DigitalOut out_tx; |
villemejane | 0:9cf6898e6b66 | 32 | extern DigitalOut start; //envoie des données |
villemejane | 0:9cf6898e6b66 | 33 | extern DigitalOut enableDMX; |
villemejane | 0:9cf6898e6b66 | 34 | extern AnalogIn CV_volume; |
villemejane | 0:9cf6898e6b66 | 35 | extern AnalogIn CV_pitch; |
villemejane | 0:9cf6898e6b66 | 36 | |
villemejane | 0:9cf6898e6b66 | 37 | extern AnalogIn variationR; |
villemejane | 0:9cf6898e6b66 | 38 | extern AnalogIn variationG; |
villemejane | 0:9cf6898e6b66 | 39 | extern AnalogIn variationB; |
villemejane | 0:9cf6898e6b66 | 40 | |
villemejane | 0:9cf6898e6b66 | 41 | /* Variables globales */ |
villemejane | 0:9cf6898e6b66 | 42 | extern const uint8_t vague[]; |
villemejane | 0:9cf6898e6b66 | 43 | extern char dmx_data[]; |
villemejane | 0:9cf6898e6b66 | 44 | extern int rgb; |
villemejane | 0:9cf6898e6b66 | 45 | extern char cpt_midi; |
villemejane | 0:9cf6898e6b66 | 46 | extern char new_data_midi, new_note_midi; |
villemejane | 0:9cf6898e6b66 | 47 | extern char midi_data[], note_data, velocity_data; |
villemejane | 0:9cf6898e6b66 | 48 | extern char control_ch, control_value; |
villemejane | 0:9cf6898e6b66 | 49 | |
villemejane | 0:9cf6898e6b66 | 50 | /* Fonctions */ |
villemejane | 0:9cf6898e6b66 | 51 | /* Fonction d'initialisation de la liaison DMX */ |
villemejane | 0:9cf6898e6b66 | 52 | void initDMX(void); |
villemejane | 0:9cf6898e6b66 | 53 | /* Fonction de mise à jour de la sortie DMX */ |
villemejane | 0:9cf6898e6b66 | 54 | void updateDMX(); |
villemejane | 0:9cf6898e6b66 | 55 | |
villemejane | 0:9cf6898e6b66 | 56 | /* Fonction d'initialisation de la liaison MIDI */ |
villemejane | 0:9cf6898e6b66 | 57 | void initMIDI(void); |
villemejane | 0:9cf6898e6b66 | 58 | /* Fonction d'initialisation de la liaison MIDI - version beta */ |
villemejane | 0:9cf6898e6b66 | 59 | void initMIDI2(void); |
villemejane | 0:9cf6898e6b66 | 60 | /* Detection d'une note reçue en MIDI */ |
villemejane | 0:9cf6898e6b66 | 61 | bool isNoteMIDIdetected(void); |
villemejane | 0:9cf6898e6b66 | 62 | /* Note reçue en MIDI traitée */ |
villemejane | 0:9cf6898e6b66 | 63 | void resetNoteMIDI(void); |
villemejane | 0:9cf6898e6b66 | 64 | /* Renvoie la note reçue sur la liaison MIDI */ |
villemejane | 0:9cf6898e6b66 | 65 | void resendNoteMIDI(void); |
villemejane | 0:9cf6898e6b66 | 66 | /* Renvoie la note reçue sur la liaison MIDI - version beta */ |
villemejane | 0:9cf6898e6b66 | 67 | void resendNoteMIDI2(void); |
villemejane | 0:9cf6898e6b66 | 68 | /* Joue une note sur la liaison MIDI */ |
villemejane | 0:9cf6898e6b66 | 69 | void playNoteMIDI(char note, char velocity); |
villemejane | 0:9cf6898e6b66 | 70 | /* Joue une note sur la liaison MIDI - version beta */ |
villemejane | 0:9cf6898e6b66 | 71 | void playNoteMIDI2(char note, char velocity); |
villemejane | 0:9cf6898e6b66 | 72 | /* Stoppe une note sur la liaison MIDI */ |
villemejane | 0:9cf6898e6b66 | 73 | void stopNoteMIDI(char note, char velocity); |
villemejane | 0:9cf6898e6b66 | 74 | |
villemejane | 0:9cf6898e6b66 | 75 | /* Detection d'un controle reçu en MIDI */ |
villemejane | 0:9cf6898e6b66 | 76 | bool isCCMIDIdetected(void); |
villemejane | 0:9cf6898e6b66 | 77 | /* Controle reçu en MIDI traité */ |
villemejane | 0:9cf6898e6b66 | 78 | void resetCCMIDI(void); |
villemejane | 0:9cf6898e6b66 | 79 | |
villemejane | 0:9cf6898e6b66 | 80 | /* Fonction d'appel à une variation de lumière en fonction d'un angle |
villemejane | 0:9cf6898e6b66 | 81 | @out : R G B au format 24 bits |
villemejane | 0:9cf6898e6b66 | 82 | */ |
villemejane | 0:9cf6898e6b66 | 83 | int sineLED(int angle); |
villemejane | 0:9cf6898e6b66 | 84 | |
villemejane | 0:9cf6898e6b66 | 85 | /* Fonction d'interruption sur MIDI */ |
villemejane | 0:9cf6898e6b66 | 86 | void ISR_midi_in(void); |
villemejane | 0:9cf6898e6b66 | 87 | /* Fonction d'interruption sur MIDI - version beta */ |
villemejane | 0:9cf6898e6b66 | 88 | void ISR_midi_in2(void); |
villemejane | 0:9cf6898e6b66 | 89 | |
villemejane | 0:9cf6898e6b66 | 90 | #endif |