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 } |
Brick sequencer data model definitions and helpers.
#define SEQ_MODEL_DEFAULT_VELOCITY_PRIMARY 100U |
Default velocity applied to the first voice when arming a step.
#define SEQ_MODEL_DEFAULT_VELOCITY_SECONDARY 0U |
Default velocity applied to secondary voices when arming a step.
#define SEQ_MODEL_MAX_PLOCKS_PER_STEP 24U |
Maximum number of parameter locks attached to a step.
#define SEQ_MODEL_STEPS_PER_PATTERN 64U |
Maximum number of steps per pattern.
#define SEQ_MODEL_VOICES_PER_STEP 4U |
Maximum number of voices per step.
typedef uint8_t seq_model_plock_domain_t |
Types of parameter locks the model can store.
typedef uint8_t seq_model_plock_internal_param_t |
Enumerates internal sequencer parameters that support parameter locks.
typedef uint8_t seq_model_quantize_grid_t |
Quantize grid resolution.
typedef uint8_t seq_model_scale_mode_t |
Available musical scales.
typedef uint8_t seq_model_voice_state_t |
Voice enablement state.
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
void seq_model_gen_bump | ( | seq_model_gen_t * | gen | ) |
Increment the generation counter after a mutation.
bool seq_model_gen_has_changed | ( | const seq_model_gen_t * | lhs, |
const seq_model_gen_t * | rhs | ||
) |
Check whether two generation counters differ.
void seq_model_gen_reset | ( | seq_model_gen_t * | gen | ) |
Reset the generation counter to its initial value.
void seq_model_pattern_init | ( | seq_model_pattern_t * | pattern | ) |
Reset a full pattern to defaults.
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.
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.
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.
bool seq_model_step_add_plock | ( | seq_model_step_t * | step, |
const seq_model_plock_t * | plock | ||
) |
Append a parameter lock to a step.
void seq_model_step_clear_plocks | ( | seq_model_step_t * | step | ) |
Remove all parameter locks from a step.
const seq_model_step_offsets_t * seq_model_step_get_offsets | ( | const seq_model_step_t * | step | ) |
Access the aggregate offsets for a step.
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.
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.
bool seq_model_step_has_any_plock | ( | const seq_model_step_t * | step | ) |
Return true when the step exposes at least one parameter lock.
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.
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.
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.
void seq_model_step_init | ( | seq_model_step_t * | step | ) |
Clear a step and restore default voices/offsets.
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.
bool seq_model_step_is_automation_only | ( | const seq_model_step_t * | step | ) |
Return true if the step should be treated as 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).
void seq_model_step_make_neutral | ( | seq_model_step_t * | step | ) |
Convert an empty step into a neutral quick-step shell.
void seq_model_step_recompute_flags | ( | seq_model_step_t * | step | ) |
Recompute cached flags after mutating voices or parameter locks.
bool seq_model_step_remove_plock | ( | seq_model_step_t * | step, |
size_t | index | ||
) |
Remove a parameter lock at the provided index.
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.
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.
void seq_model_voice_init | ( | seq_model_voice_t * | voice, |
bool | primary | ||
) |
Initialise a voice with Elektron-like defaults.