Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier midi_clock.h

Interface du générateur d’horloge MIDI (24 PPQN via GPT3). Plus de détails...

#include "ch.h"
#include "hal.h"
#include "midi.h"

Aller au code source de ce fichier.

Définitions de type

typedef void(* midi_tick_cb_t) (void)
 Type de callback appelé à chaque tick MIDI (24 PPQN).
 

Fonctions

void midi_clock_register_tick_callback (midi_tick_cb_t cb)
 Enregistre un callback appelé à chaque tick (24 PPQN).
 
void midi_clock_init (void)
 Initialise le générateur d’horloge MIDI.
 
void midi_clock_start (void)
 Démarre la génération de MIDI Clock.
 
void midi_clock_stop (void)
 Stoppe la génération de MIDI Clock.
 
void midi_clock_set_bpm (float bpm)
 Définit le BPM et recalcule l’intervalle du timer.
 
float midi_clock_get_bpm (void)
 Retourne le tempo actuel (BPM).
 
bool midi_clock_is_running (void)
 Indique si l’horloge MIDI est actuellement en cours d’exécution.
 

Description détaillée

Interface du générateur d’horloge MIDI (24 PPQN via GPT3).

Ce module fournit une horloge MIDI conforme à la spécification :

  • Envoi automatique de messages 0xF8 à fréquence dépendant du BPM.
  • Basée sur le timer matériel TIM3 configuré à 1 MHz.
  • Résolution temporelle : 1 µs.
  • Prise en charge du callback applicatif à chaque tick (24 PPQN).
  • Support du démarrage/arrêt dynamique et ajustement de tempo en temps réel.

Documentation des définitions de type

◆ midi_tick_cb_t

midi_tick_cb_t

Type de callback appelé à chaque tick MIDI (24 PPQN).

Documentation des fonctions

◆ midi_clock_get_bpm()

float midi_clock_get_bpm ( void  )

Retourne le tempo actuel (BPM).

◆ midi_clock_init()

void midi_clock_init ( void  )

Initialise le générateur d’horloge MIDI.

Configure GPT3 (1 MHz), initialise la sémaphore de synchronisation et crée le thread d’envoi des ticks.

Initialise le générateur d’horloge MIDI.

◆ midi_clock_is_running()

bool midi_clock_is_running ( void  )

Indique si l’horloge MIDI est actuellement en cours d’exécution.

Renvoie
true si la clock tourne, false sinon.

Indique si l’horloge MIDI est actuellement en cours d’exécution.

◆ midi_clock_register_tick_callback()

void midi_clock_register_tick_callback ( midi_tick_cb_t  cb)

Enregistre un callback appelé à chaque tick (24 PPQN).

Paramètres
cbPointeur de fonction callback

Enregistre un callback appelé à chaque tick (24 PPQN).

◆ midi_clock_set_bpm()

void midi_clock_set_bpm ( float  bpm)

Définit le BPM et recalcule l’intervalle du timer.

Si la clock est active, le GPT est redémarré avec la nouvelle période.

Paramètres
bpmNouveau tempo en battements par minute.

Définit le BPM et recalcule l’intervalle du timer.

Paramètres
bpmNouveau tempo en BPM.

◆ midi_clock_start()

void midi_clock_start ( void  )

Démarre la génération de MIDI Clock.

Lance le GPT en mode continu selon le BPM courant.

◆ midi_clock_stop()

void midi_clock_stop ( void  )

Stoppe la génération de MIDI Clock.

Arrête le timer GPT (plus de tick F8).

Stoppe la génération de MIDI Clock.