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

App Keyboard — moteur Omnichord-style (Orchid) + clavier scalaire, octave shift & label. Plus de détails...

#include "ui_keyboard_app.h"
#include <string.h>
#include "brick_config.h"
#include "ui_led_backend.h"
#include "kbd_chords_dict.h"

Structures de données

struct  kbd_state_t
 

Macros

#define KBD_MAX_VOICING_NOTES   12
 
#define KBD_MAX_ACTIVE_NOTES   16
 

Fonctions

void ui_keyboard_app_init (const ui_keyboard_note_sink_t *sink)
 
void ui_keyboard_app_set_params (uint8_t root_midi, kbd_scale_t scale, bool omnichord)
 Met à jour Root/Scale/Omnichord.
 
void ui_keyboard_app_set_observer (ui_keyboard_chord_cb_t cb)
 
void ui_keyboard_app_set_note_order (note_order_t order)
 
void ui_keyboard_app_set_chord_override (bool enable)
 Réglage page 2 : comportement Orchid — les Chord Buttons peuvent déroger à la gamme.
 
void ui_keyboard_app_all_notes_off (void)
 
const ui_keyboard_active_chord_tui_keyboard_app_get_active_chord (void)
 
void ui_keyboard_app_tick (uint32_t elapsed_ms)
 
void ui_keyboard_app_set_octave_shift (int8_t shift)
 Définit le décalage d’octave global (appliqué à toutes les notes).
 
int8_t ui_keyboard_app_get_octave_shift (void)
 Récupère l’octave shift courant (pour l’overlay).
 
void ui_keyboard_app_note_button (uint8_t note_slot, bool pressed)
 Note button press/release.
 
void ui_keyboard_app_chord_button (uint8_t chord_index, bool pressed)
 Chord button press/release (Omni ON uniquement).
 

Description détaillée

App Keyboard — moteur Omnichord-style (Orchid) + clavier scalaire, octave shift & label.

  • Omnichord OFF : pads → degrés de la gamme (2 lignes = deux octaves).
  • Omnichord ON : pads de notes + boutons d’accords; extensions seules → pas de son.
  • Quantisation commune OFF/ON; tie-break vers le bas; clamp [0..127].
  • Options page 2 : Note order (Natural/Fifths), Chord override (accidentals).
  • Octave Shift : appliqué avant quantisation/clamp, borné [-4..+4].

Documentation des macros

◆ KBD_MAX_ACTIVE_NOTES

#define KBD_MAX_ACTIVE_NOTES   16

◆ KBD_MAX_VOICING_NOTES

#define KBD_MAX_VOICING_NOTES   12