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

Bridge UI ↔ Keyboard App ↔ Backend, latence minimale (émission directe). Plus de détails...

#include "ui_keyboard_bridge.h"
#include "ui_keyboard_app.h"
#include "kbd_input_mapper.h"
#include "arp_engine.h"
#include "ui_arp_menu.h"
#include "ui_backend.h"
#include "ui_led_backend.h"
#include "seq_recorder.h"
#include "ui_keyboard_ui.h"
#include <stdint.h>
#include <stdbool.h>
#include <string.h>

Macros

#define UI_BACKEND_NOTE_API_DECLARED   1
 
#define DEFAULT_MIDI_CHANNEL   0
 
#define DEFAULT_VELOCITY   100
 
#define KBD_UI_ID(local)   (uint16_t)(UI_DEST_UI | ((local) & 0x1FFFu))
 

Énumérations

enum  { KBD_UI_LOCAL_SCALE = 0x0100u , KBD_UI_LOCAL_ROOT = 0x0101u , KBD_UI_LOCAL_ARP = 0x0102u }
 

Fonctions

void ui_backend_note_on (uint8_t note, uint8_t velocity)
 
void ui_backend_note_off (uint8_t note)
 
void ui_backend_all_notes_off (void)
 
void ui_keyboard_bridge_init (void)
 Initialise l’app Keyboard et connecte le sink MIDI (via ui_backend_param_changed).
 
void ui_keyboard_bridge_update_from_model (void)
 Synchronise les paramètres UI (Root, Scale, Omnichord, Note Order, Chord Override) vers l’app.
 
void ui_keyboard_bridge_tick (systime_t now)
 Tick optionnel (placeholder pour intégrations futures, ex: ARP).
 
void ui_keyboard_bridge_on_transport_stop (void)
 Panic clavier/ARP lors d'un STOP transport.
 

Description détaillée

Bridge UI ↔ Keyboard App ↔ Backend, latence minimale (émission directe).

  • Lit Root / Scale / Omnichord via ui_backend_shadow_get() (dest UI).
  • Lit aussi la page 2 : Note Order & Chord Override (IDs exposés par ui_keyboard_ui.h).
  • Met à jour immédiatement l’app + le mapper + les LEDs à chaque itération.
  • Le sink émet directement via ui_backend_note_on/off/all_notes_off → chemin court MIDI.

Documentation des macros

◆ DEFAULT_MIDI_CHANNEL

#define DEFAULT_MIDI_CHANNEL   0

◆ DEFAULT_VELOCITY

#define DEFAULT_VELOCITY   100

◆ KBD_UI_ID

#define KBD_UI_ID (   local)    (uint16_t)(UI_DEST_UI | ((local) & 0x1FFFu))

◆ UI_BACKEND_NOTE_API_DECLARED

#define UI_BACKEND_NOTE_API_DECLARED   1

Documentation du type de l'énumération

◆ anonymous enum

anonymous enum
Valeurs énumérées
KBD_UI_LOCAL_SCALE 
KBD_UI_LOCAL_ROOT 
KBD_UI_LOCAL_ARP 

Documentation des fonctions

◆ ui_backend_all_notes_off()

void ui_backend_all_notes_off ( void  )
extern

◆ ui_backend_note_off()

void ui_backend_note_off ( uint8_t  note)
extern

◆ ui_backend_note_on()

void ui_backend_note_on ( uint8_t  note,
uint8_t  velocity 
)
extern

◆ ui_keyboard_bridge_init()

void ui_keyboard_bridge_init ( void  )

Initialise l’app Keyboard et connecte le sink MIDI (via ui_backend_param_changed).

  • Lecture initiale des paramètres depuis le shadow UI (root/scale/omni + page 2).
  • Initialisation du mapper selon Omnichord.
  • Publication du mode LED Keyboard.

◆ ui_keyboard_bridge_on_transport_stop()

void ui_keyboard_bridge_on_transport_stop ( void  )

Panic clavier/ARP lors d'un STOP transport.

◆ ui_keyboard_bridge_tick()

void ui_keyboard_bridge_tick ( systime_t  now)

Tick optionnel (placeholder pour intégrations futures, ex: ARP).

◆ ui_keyboard_bridge_update_from_model()

void ui_keyboard_bridge_update_from_model ( void  )

Synchronise les paramètres UI (Root, Scale, Omnichord, Note Order, Chord Override) vers l’app.

Lecture via shadow UI (idempotent, très fréquent) → mise à jour immédiate de l’app, du mapper et des LEDs si nécessaire.