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.h

App Keyboard (Custom Keys + Omnichord) — logique de notes/accords, options page 2, octave shift. Plus de détails...

#include <stdint.h>
#include <stdbool.h>

Aller au code source de ce fichier.

Structures de données

struct  ui_keyboard_active_chord_t
 
struct  ui_keyboard_note_sink_t
 

Macros

#define CUSTOM_KEYS_OCT_SHIFT_MIN   (-4)
 
#define CUSTOM_KEYS_OCT_SHIFT_MAX   (+4)
 

Définitions de type

typedef void(* ui_keyboard_chord_cb_t) (const ui_keyboard_active_chord_t *chord)
 

Énumérations

enum  kbd_scale_t {
  KBD_SCALE_MAJOR = 0 , KBD_SCALE_NAT_MINOR , KBD_SCALE_DORIAN , KBD_SCALE_MIXOLYDIAN ,
  KBD_SCALE_PENT_MAJOR , KBD_SCALE_PENT_MINOR , KBD_SCALE_CHROMATIC
}
 
enum  note_order_t { NOTE_ORDER_NATURAL = 0 , NOTE_ORDER_FIFTHS = 1 }
 

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_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).
 
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)
 

Description détaillée

App Keyboard (Custom Keys + Omnichord) — logique de notes/accords, options page 2, octave shift.

  • Omnichord OFF : pads → degrés de la gamme (2 lignes = deux octaves).
  • Omnichord ON : Chord buttons (triades + extensions) + zone Notes = root de l’accord.
  • Quantisation commune OFF/ON (diatonique), tie-break vers le bas, clamp [0..127].
  • Options page 2 : Note order (Natural/Fifths), Chord override (accidentals autorisés).
  • Octave Shift : décalage global de toutes les notes, ±12 par cran, borné [-4..+4], base C4 (60) à 0.

Documentation du type de l'énumération

◆ kbd_scale_t

Identifiants de gammes (alignés avec kbd_chords_dict).

Valeurs énumérées
KBD_SCALE_MAJOR 
KBD_SCALE_NAT_MINOR 
KBD_SCALE_DORIAN 
KBD_SCALE_MIXOLYDIAN 
KBD_SCALE_PENT_MAJOR 
KBD_SCALE_PENT_MINOR 
KBD_SCALE_CHROMATIC