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

Brick sequencer data model definitions and helpers. Plus de détails...

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

Aller au code source de ce fichier.

Structures de données

struct  seq_model_gen_t
 
struct  seq_model_plock_t
 
struct  seq_model_voice_t
 
struct  seq_model_step_offsets_t
 
struct  seq_model_step_flags_t
 
struct  seq_model_step_t
 
struct  seq_model_quantize_config_t
 
struct  seq_model_transpose_config_t
 
struct  seq_model_scale_config_t
 
struct  seq_model_pattern_config_t
 
struct  seq_model_pattern_t
 

Macros

#define SEQ_MODEL_STEPS_PER_PATTERN   64U
 
#define SEQ_MODEL_VOICES_PER_STEP   4U
 
#define SEQ_MODEL_MAX_PLOCKS_PER_STEP   24U
 
#define SEQ_MODEL_DEFAULT_VELOCITY_PRIMARY   100U
 
#define SEQ_MODEL_DEFAULT_VELOCITY_SECONDARY   0U
 

Définitions de type

typedef uint8_t seq_model_voice_state_t
 
typedef uint8_t seq_model_plock_domain_t
 
typedef uint8_t seq_model_plock_internal_param_t
 
typedef uint8_t seq_model_quantize_grid_t
 
typedef uint8_t seq_model_scale_mode_t
 

Énumérations

enum  { SEQ_MODEL_VOICE_DISABLED = 0U , SEQ_MODEL_VOICE_ENABLED = 1U }
 
enum  { SEQ_MODEL_PLOCK_INTERNAL = 0U , SEQ_MODEL_PLOCK_CART = 1U }
 
enum  {
  SEQ_MODEL_PLOCK_PARAM_NOTE = 0U , SEQ_MODEL_PLOCK_PARAM_VELOCITY , SEQ_MODEL_PLOCK_PARAM_LENGTH , SEQ_MODEL_PLOCK_PARAM_MICRO ,
  SEQ_MODEL_PLOCK_PARAM_GLOBAL_TR , SEQ_MODEL_PLOCK_PARAM_GLOBAL_VE , SEQ_MODEL_PLOCK_PARAM_GLOBAL_LE , SEQ_MODEL_PLOCK_PARAM_GLOBAL_MI
}
 
enum  {
  SEQ_MODEL_QUANTIZE_1_4 = 0U , SEQ_MODEL_QUANTIZE_1_8 , SEQ_MODEL_QUANTIZE_1_16 , SEQ_MODEL_QUANTIZE_1_32 ,
  SEQ_MODEL_QUANTIZE_1_64
}
 
enum  {
  SEQ_MODEL_SCALE_CHROMATIC = 0U , SEQ_MODEL_SCALE_MAJOR , SEQ_MODEL_SCALE_MINOR , SEQ_MODEL_SCALE_DORIAN ,
  SEQ_MODEL_SCALE_MIXOLYDIAN
}
 

Fonctions

void seq_model_gen_reset (seq_model_gen_t *gen)
 
void seq_model_gen_bump (seq_model_gen_t *gen)
 
bool seq_model_gen_has_changed (const seq_model_gen_t *lhs, const seq_model_gen_t *rhs)
 
void seq_model_voice_init (seq_model_voice_t *voice, bool primary)
 
void seq_model_step_init (seq_model_step_t *step)
 
void seq_model_step_init_default (seq_model_step_t *step, uint8_t note)
 
void seq_model_step_make_neutral (seq_model_step_t *step)
 
void seq_model_step_make_automation_only (seq_model_step_t *step)
 
void seq_model_pattern_init (seq_model_pattern_t *pattern)
 
const seq_model_voice_tseq_model_step_get_voice (const seq_model_step_t *step, size_t voice_index)
 
bool seq_model_step_set_voice (seq_model_step_t *step, size_t voice_index, const seq_model_voice_t *voice)
 
bool seq_model_step_add_plock (seq_model_step_t *step, const seq_model_plock_t *plock)
 
void seq_model_step_clear_plocks (seq_model_step_t *step)
 
bool seq_model_step_remove_plock (seq_model_step_t *step, size_t index)
 
bool seq_model_step_get_plock (const seq_model_step_t *step, size_t index, seq_model_plock_t *out)
 
void seq_model_step_set_offsets (seq_model_step_t *step, const seq_model_step_offsets_t *offsets)
 
const seq_model_step_offsets_tseq_model_step_get_offsets (const seq_model_step_t *step)
 
bool seq_model_step_has_playable_voice (const seq_model_step_t *step)
 
bool seq_model_step_is_automation_only (const seq_model_step_t *step)
 
bool seq_model_step_has_any_plock (const seq_model_step_t *step)
 
bool seq_model_step_has_seq_plock (const seq_model_step_t *step)
 
bool seq_model_step_has_cart_plock (const seq_model_step_t *step)
 
void seq_model_step_recompute_flags (seq_model_step_t *step)
 
void seq_model_pattern_set_quantize (seq_model_pattern_t *pattern, const seq_model_quantize_config_t *config)
 
void seq_model_pattern_set_transpose (seq_model_pattern_t *pattern, const seq_model_transpose_config_t *config)
 
void seq_model_pattern_set_scale (seq_model_pattern_t *pattern, const seq_model_scale_config_t *config)
 

Description détaillée

Brick sequencer data model definitions and helpers.

Documentation des macros

◆ SEQ_MODEL_DEFAULT_VELOCITY_PRIMARY

#define SEQ_MODEL_DEFAULT_VELOCITY_PRIMARY   100U

Default velocity applied to the first voice when arming a step.

◆ SEQ_MODEL_DEFAULT_VELOCITY_SECONDARY

#define SEQ_MODEL_DEFAULT_VELOCITY_SECONDARY   0U

Default velocity applied to secondary voices when arming a step.

◆ SEQ_MODEL_MAX_PLOCKS_PER_STEP

#define SEQ_MODEL_MAX_PLOCKS_PER_STEP   24U

Maximum number of parameter locks attached to a step.

◆ SEQ_MODEL_STEPS_PER_PATTERN

#define SEQ_MODEL_STEPS_PER_PATTERN   64U

Maximum number of steps per pattern.

◆ SEQ_MODEL_VOICES_PER_STEP

#define SEQ_MODEL_VOICES_PER_STEP   4U

Maximum number of voices per step.

Documentation des définitions de type

◆ seq_model_plock_domain_t

typedef uint8_t seq_model_plock_domain_t

Types of parameter locks the model can store.

◆ seq_model_plock_internal_param_t

Enumerates internal sequencer parameters that support parameter locks.

◆ seq_model_quantize_grid_t

typedef uint8_t seq_model_quantize_grid_t

Quantize grid resolution.

◆ seq_model_scale_mode_t

typedef uint8_t seq_model_scale_mode_t

Available musical scales.

◆ seq_model_voice_state_t

typedef uint8_t seq_model_voice_state_t

Voice enablement state.

Documentation du type de l'énumération

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_MODEL_VOICE_DISABLED 

Voice is muted/off.

SEQ_MODEL_VOICE_ENABLED 

Voice produces note data.

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_MODEL_PLOCK_INTERNAL 

Internal engine parameters.

SEQ_MODEL_PLOCK_CART 

External cartridge parameter.

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_MODEL_PLOCK_PARAM_NOTE 

Note value override.

SEQ_MODEL_PLOCK_PARAM_VELOCITY 

Velocity override.

SEQ_MODEL_PLOCK_PARAM_LENGTH 

Step length override.

SEQ_MODEL_PLOCK_PARAM_MICRO 

Micro-timing offset override.

SEQ_MODEL_PLOCK_PARAM_GLOBAL_TR 

Per-step transpose offset.

SEQ_MODEL_PLOCK_PARAM_GLOBAL_VE 

Per-step velocity offset.

SEQ_MODEL_PLOCK_PARAM_GLOBAL_LE 

Per-step length offset.

SEQ_MODEL_PLOCK_PARAM_GLOBAL_MI 

Per-step micro offset.

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_MODEL_QUANTIZE_1_4 
SEQ_MODEL_QUANTIZE_1_8 
SEQ_MODEL_QUANTIZE_1_16 
SEQ_MODEL_QUANTIZE_1_32 
SEQ_MODEL_QUANTIZE_1_64 

◆ anonymous enum

anonymous enum
Valeurs énumérées
SEQ_MODEL_SCALE_CHROMATIC 
SEQ_MODEL_SCALE_MAJOR 
SEQ_MODEL_SCALE_MINOR 
SEQ_MODEL_SCALE_DORIAN 
SEQ_MODEL_SCALE_MIXOLYDIAN 

Documentation des fonctions

◆ seq_model_gen_bump()

void seq_model_gen_bump ( seq_model_gen_t gen)

Increment the generation counter after a mutation.

◆ seq_model_gen_has_changed()

bool seq_model_gen_has_changed ( const seq_model_gen_t lhs,
const seq_model_gen_t rhs 
)

Check whether two generation counters differ.

◆ seq_model_gen_reset()

void seq_model_gen_reset ( seq_model_gen_t gen)

Reset the generation counter to its initial value.

◆ seq_model_pattern_init()

void seq_model_pattern_init ( seq_model_pattern_t pattern)

Reset a full pattern to defaults.

◆ seq_model_pattern_set_quantize()

void seq_model_pattern_set_quantize ( seq_model_pattern_t pattern,
const seq_model_quantize_config_t config 
)

Update the quantize configuration of a pattern.

◆ seq_model_pattern_set_scale()

void seq_model_pattern_set_scale ( seq_model_pattern_t pattern,
const seq_model_scale_config_t config 
)

Update the scale configuration of a pattern.

◆ seq_model_pattern_set_transpose()

void seq_model_pattern_set_transpose ( seq_model_pattern_t pattern,
const seq_model_transpose_config_t config 
)

Update the transpose configuration of a pattern.

◆ seq_model_step_add_plock()

bool seq_model_step_add_plock ( seq_model_step_t step,
const seq_model_plock_t plock 
)

Append a parameter lock to a step.

◆ seq_model_step_clear_plocks()

void seq_model_step_clear_plocks ( seq_model_step_t step)

Remove all parameter locks from a step.

◆ seq_model_step_get_offsets()

const seq_model_step_offsets_t * seq_model_step_get_offsets ( const seq_model_step_t step)

Access the aggregate offsets for a step.

◆ seq_model_step_get_plock()

bool seq_model_step_get_plock ( const seq_model_step_t step,
size_t  index,
seq_model_plock_t out 
)

Retrieve a parameter lock by index.

◆ seq_model_step_get_voice()

const seq_model_voice_t * seq_model_step_get_voice ( const seq_model_step_t step,
size_t  voice_index 
)

Retrieve a voice descriptor by index.

◆ seq_model_step_has_any_plock()

bool seq_model_step_has_any_plock ( const seq_model_step_t step)

Return true when the step exposes at least one parameter lock.

◆ seq_model_step_has_cart_plock()

bool seq_model_step_has_cart_plock ( const seq_model_step_t step)

Return true when the step exposes at least one cartridge-domain parameter lock.

◆ seq_model_step_has_playable_voice()

bool seq_model_step_has_playable_voice ( const seq_model_step_t step)

Return true if at least one voice is enabled with a non-zero velocity.

◆ seq_model_step_has_seq_plock()

bool seq_model_step_has_seq_plock ( const seq_model_step_t step)

Return true when the step exposes at least one sequencer-domain parameter lock.

◆ seq_model_step_init()

void seq_model_step_init ( seq_model_step_t step)

Clear a step and restore default voices/offsets.

◆ seq_model_step_init_default()

void seq_model_step_init_default ( seq_model_step_t step,
uint8_t  note 
)

Initialise a step using Elektron quick-step defaults for the provided note.

◆ seq_model_step_is_automation_only()

bool seq_model_step_is_automation_only ( const seq_model_step_t step)

Return true if the step should be treated as automation-only.

◆ seq_model_step_make_automation_only()

void seq_model_step_make_automation_only ( seq_model_step_t step)

Convert a step into an automation-only placeholder (all voices muted).

◆ seq_model_step_make_neutral()

void seq_model_step_make_neutral ( seq_model_step_t step)

Convert an empty step into a neutral quick-step shell.

◆ seq_model_step_recompute_flags()

void seq_model_step_recompute_flags ( seq_model_step_t step)

Recompute cached flags after mutating voices or parameter locks.

◆ seq_model_step_remove_plock()

bool seq_model_step_remove_plock ( seq_model_step_t step,
size_t  index 
)

Remove a parameter lock at the provided index.

◆ seq_model_step_set_offsets()

void seq_model_step_set_offsets ( seq_model_step_t step,
const seq_model_step_offsets_t offsets 
)

Assign the aggregate offsets for a step.

◆ seq_model_step_set_voice()

bool seq_model_step_set_voice ( seq_model_step_t step,
size_t  voice_index,
const seq_model_voice_t voice 
)

Replace the voice descriptor at the provided index.

◆ seq_model_voice_init()

void seq_model_voice_init ( seq_model_voice_t voice,
bool  primary 
)

Initialise a voice with Elektron-like defaults.