Library for DMX and MIDI protocol
Dependents: Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF
DMX_MIDI.h
- Committer:
- villemejane
- Date:
- 2021-12-12
- Revision:
- 0:9cf6898e6b66
File content as of revision 0:9cf6898e6b66:
/****************************************************************************/ /* DMX_MIDI module library */ /****************************************************************************/ /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */ /****************************************************************************/ /* Library - DMX_MIDI.h file */ /****************************************************************************/ /* Tested on Nucleo-L476RG / 11th nov 2021 */ /****************************************************************************/ #ifndef DMX_MIDI_H_INCLUDED #define DMX_MIDI_H_INCLUDED #include "projecteurs.h" #include "preset.h" #include "projecteurs.h" #include "controleurs.h" #define SAMPLES 512 #define MIDI_NOTE_ON 0x90 #define MIDI_NOTE_OFF 0x80 #define MIDI_CC 0xB0 #include "mbed.h" /* Entrées - Sorties */ extern Serial debug_pc; extern DigitalOut debug_out; extern Serial dmx; extern DigitalOut out_tx; extern DigitalOut start; //envoie des données extern DigitalOut enableDMX; extern AnalogIn CV_volume; extern AnalogIn CV_pitch; extern AnalogIn variationR; extern AnalogIn variationG; extern AnalogIn variationB; /* Variables globales */ extern const uint8_t vague[]; extern char dmx_data[]; extern int rgb; extern char cpt_midi; extern char new_data_midi, new_note_midi; extern char midi_data[], note_data, velocity_data; extern char control_ch, control_value; /* Fonctions */ /* Fonction d'initialisation de la liaison DMX */ void initDMX(void); /* Fonction de mise à jour de la sortie DMX */ void updateDMX(); /* Fonction d'initialisation de la liaison MIDI */ void initMIDI(void); /* Fonction d'initialisation de la liaison MIDI - version beta */ void initMIDI2(void); /* Detection d'une note reçue en MIDI */ bool isNoteMIDIdetected(void); /* Note reçue en MIDI traitée */ void resetNoteMIDI(void); /* Renvoie la note reçue sur la liaison MIDI */ void resendNoteMIDI(void); /* Renvoie la note reçue sur la liaison MIDI - version beta */ void resendNoteMIDI2(void); /* Joue une note sur la liaison MIDI */ void playNoteMIDI(char note, char velocity); /* Joue une note sur la liaison MIDI - version beta */ void playNoteMIDI2(char note, char velocity); /* Stoppe une note sur la liaison MIDI */ void stopNoteMIDI(char note, char velocity); /* Detection d'un controle reçu en MIDI */ bool isCCMIDIdetected(void); /* Controle reçu en MIDI traité */ void resetCCMIDI(void); /* Fonction d'appel à une variation de lumière en fonction d'un angle @out : R G B au format 24 bits */ int sineLED(int angle); /* Fonction d'interruption sur MIDI */ void ISR_midi_in(void); /* Fonction d'interruption sur MIDI - version beta */ void ISR_midi_in2(void); #endif