Interface du module MIDI (UART + USB) pour ChibiOS. Plus de détails...
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
Aller au code source de ce fichier.
Structures de données | |
struct | midi_tx_stats_t |
Statistiques de transmission MIDI (pour diagnostic et debug). Plus de détails... | |
Macros | |
#define | MIDI_MB_DROP_OLDEST 0 |
Comportement en cas de débordement de la file d’attente USB MIDI. | |
#define | MIDI_RT_MICROWAIT_US 50 |
Délai (en µs) avant de relâcher le sémaphore d’envoi pour les messages temps réel. | |
#define | MIDI_USB_CABLE 0u |
Numéro de câble USB MIDI (0 pour unique interface). | |
Énumérations | |
enum | midi_dest_t { MIDI_DEST_NONE = 0 , MIDI_DEST_UART , MIDI_DEST_USB , MIDI_DEST_BOTH } |
Sélectionne la ou les destinations d’envoi MIDI. Plus de détails... | |
Fonctions | |
void | midi_init (void) |
Initialise le module MIDI (UART + thread TX USB). | |
void | midi_note_on (midi_dest_t dest, uint8_t ch, uint8_t note, uint8_t vel) |
Envoie une note ON. | |
void | midi_note_off (midi_dest_t dest, uint8_t ch, uint8_t note, uint8_t vel) |
Envoie une note OFF. | |
void | midi_poly_aftertouch (midi_dest_t dest, uint8_t ch, uint8_t note, uint8_t pressure) |
Envoie un message de pression polyphonique (aftertouch). | |
void | midi_cc (midi_dest_t dest, uint8_t ch, uint8_t cc, uint8_t val) |
Envoie un message de changement de contrôle (Control Change). | |
void | midi_program_change (midi_dest_t dest, uint8_t ch, uint8_t program) |
Envoie un changement de programme (Program Change). | |
void | midi_channel_pressure (midi_dest_t dest, uint8_t ch, uint8_t pressure) |
Envoie une pression de canal (Channel Pressure). | |
void | midi_pitchbend (midi_dest_t dest, uint8_t ch, int16_t value14b) |
Envoie un pitch bend 14 bits. | |
void | midi_mtc_quarter_frame (midi_dest_t dest, uint8_t qf) |
void | midi_song_position (midi_dest_t dest, uint16_t pos14) |
void | midi_song_select (midi_dest_t dest, uint8_t song) |
void | midi_tune_request (midi_dest_t dest) |
void | midi_clock (midi_dest_t dest) |
void | midi_start (midi_dest_t dest) |
void | midi_continue (midi_dest_t dest) |
void | midi_stop (midi_dest_t dest) |
void | midi_active_sensing (midi_dest_t dest) |
void | midi_system_reset (midi_dest_t dest) |
void | midi_all_sound_off (midi_dest_t dest, uint8_t ch) |
void | midi_reset_all_controllers (midi_dest_t dest, uint8_t ch) |
void | midi_local_control (midi_dest_t dest, uint8_t ch, bool on) |
void | midi_all_notes_off (midi_dest_t dest, uint8_t ch) |
void | midi_omni_mode_off (midi_dest_t dest, uint8_t ch) |
void | midi_omni_mode_on (midi_dest_t dest, uint8_t ch) |
void | midi_mono_mode_on (midi_dest_t dest, uint8_t ch, uint8_t num_channels) |
void | midi_poly_mode_on (midi_dest_t dest, uint8_t ch) |
void | midi_stats_reset (void) |
Réinitialise les compteurs de statistiques MIDI. | |
uint16_t | midi_usb_queue_high_watermark (void) |
Retourne le plus haut niveau de remplissage observé sur la mailbox USB. | |
Variables | |
midi_tx_stats_t | midi_tx_stats |
Statistiques globales d’état et de performance MIDI. | |
Interface du module MIDI (UART + USB) pour ChibiOS.
Fournit une API unifiée pour l’envoi de messages MIDI sur ports :
Fonctions principales :
midi.c
#define MIDI_MB_DROP_OLDEST 0 |
Comportement en cas de débordement de la file d’attente USB MIDI.
Si défini à 1, le message le plus ancien est supprimé pour insérer le nouveau. Sinon, le nouveau message est perdu.
#define MIDI_RT_MICROWAIT_US 50 |
Délai (en µs) avant de relâcher le sémaphore d’envoi pour les messages temps réel.
#define MIDI_USB_CABLE 0u |
Numéro de câble USB MIDI (0 pour unique interface).
enum midi_dest_t |
void midi_active_sensing | ( | midi_dest_t | dest | ) |
void midi_all_notes_off | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_all_sound_off | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_cc | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | cc, | ||
uint8_t | val | ||
) |
Envoie un message de changement de contrôle (Control Change).
void midi_channel_pressure | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | pressure | ||
) |
Envoie une pression de canal (Channel Pressure).
void midi_clock | ( | midi_dest_t | dest | ) |
void midi_continue | ( | midi_dest_t | dest | ) |
void midi_init | ( | void | ) |
Initialise le module MIDI (UART + thread TX USB).
Configure le port UART DIN à 31250 bauds, initialise la mailbox et crée le thread responsable de l’envoi USB.
Initialise le module MIDI (UART + thread TX USB).
void midi_local_control | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
bool | on | ||
) |
void midi_mono_mode_on | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | num_channels | ||
) |
void midi_mtc_quarter_frame | ( | midi_dest_t | dest, |
uint8_t | qf | ||
) |
void midi_note_off | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | note, | ||
uint8_t | vel | ||
) |
Envoie une note OFF.
void midi_note_on | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | note, | ||
uint8_t | vel | ||
) |
Envoie une note ON.
dest | Destination d’envoi (UART/USB/BOTH) |
ch | Canal MIDI [0–15] |
note | Numéro de note [0–127] |
vel | Vélocité [0–127] (0 = Note Off) |
void midi_omni_mode_off | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_omni_mode_on | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_pitchbend | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
int16_t | value14b | ||
) |
Envoie un pitch bend 14 bits.
value14b | Valeur entre -8192 et +8191 |
void midi_poly_aftertouch | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | note, | ||
uint8_t | pressure | ||
) |
Envoie un message de pression polyphonique (aftertouch).
void midi_poly_mode_on | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_program_change | ( | midi_dest_t | dest, |
uint8_t | ch, | ||
uint8_t | program | ||
) |
Envoie un changement de programme (Program Change).
void midi_reset_all_controllers | ( | midi_dest_t | dest, |
uint8_t | ch | ||
) |
void midi_song_position | ( | midi_dest_t | dest, |
uint16_t | pos14 | ||
) |
void midi_song_select | ( | midi_dest_t | dest, |
uint8_t | song | ||
) |
void midi_start | ( | midi_dest_t | dest | ) |
void midi_stats_reset | ( | void | ) |
Réinitialise les compteurs de statistiques MIDI.
Réinitialise les compteurs de statistiques MIDI.
void midi_stop | ( | midi_dest_t | dest | ) |
void midi_system_reset | ( | midi_dest_t | dest | ) |
void midi_tune_request | ( | midi_dest_t | dest | ) |
uint16_t midi_usb_queue_high_watermark | ( | void | ) |
Retourne le plus haut niveau de remplissage observé sur la mailbox USB.
|
extern |
Statistiques globales d’état et de performance MIDI.
Statistiques globales d’état et de performance MIDI.