1#ifndef BRICK_CORE_SEQ_SEQ_MODEL_H_
2#define BRICK_CORE_SEQ_SEQ_MODEL_H_
18#define SEQ_MODEL_STEPS_PER_PATTERN 64U
20#define SEQ_MODEL_VOICES_PER_STEP 4U
22#define SEQ_MODEL_MAX_PLOCKS_PER_STEP 24U
25#define SEQ_MODEL_DEFAULT_VELOCITY_PRIMARY 100U
27#define SEQ_MODEL_DEFAULT_VELOCITY_SECONDARY 0U
@ SEQ_MODEL_PLOCK_PARAM_NOTE
Definition seq_model.h:51
@ SEQ_MODEL_PLOCK_PARAM_GLOBAL_LE
Definition seq_model.h:57
@ SEQ_MODEL_PLOCK_PARAM_GLOBAL_TR
Definition seq_model.h:55
@ SEQ_MODEL_PLOCK_PARAM_GLOBAL_VE
Definition seq_model.h:56
@ SEQ_MODEL_PLOCK_PARAM_LENGTH
Definition seq_model.h:53
@ SEQ_MODEL_PLOCK_PARAM_GLOBAL_MI
Definition seq_model.h:58
@ SEQ_MODEL_PLOCK_PARAM_VELOCITY
Definition seq_model.h:52
@ SEQ_MODEL_PLOCK_PARAM_MICRO
Definition seq_model.h:54
uint8_t seq_model_plock_domain_t
Definition seq_model.h:42
#define SEQ_MODEL_VOICES_PER_STEP
Definition seq_model.h:20
void seq_model_voice_init(seq_model_voice_t *voice, bool primary)
Definition seq_model.c:37
bool seq_model_step_set_voice(seq_model_step_t *step, size_t voice_index, const seq_model_voice_t *voice)
Definition seq_model.c:109
#define SEQ_MODEL_STEPS_PER_PATTERN
Definition seq_model.h:18
bool seq_model_step_remove_plock(seq_model_step_t *step, size_t index)
Definition seq_model.c:148
bool seq_model_gen_has_changed(const seq_model_gen_t *lhs, const seq_model_gen_t *rhs)
Definition seq_model.c:29
const seq_model_voice_t * seq_model_step_get_voice(const seq_model_step_t *step, size_t voice_index)
Definition seq_model.c:101
void seq_model_pattern_set_scale(seq_model_pattern_t *pattern, const seq_model_scale_config_t *config)
Definition seq_model.c:297
@ SEQ_MODEL_VOICE_ENABLED
Definition seq_model.h:38
@ SEQ_MODEL_VOICE_DISABLED
Definition seq_model.h:37
bool seq_model_step_get_plock(const seq_model_step_t *step, size_t index, seq_model_plock_t *out)
Definition seq_model.c:162
void seq_model_step_set_offsets(seq_model_step_t *step, const seq_model_step_offsets_t *offsets)
Definition seq_model.c:171
void seq_model_step_init_default(seq_model_step_t *step, uint8_t note)
Definition seq_model.c:66
@ SEQ_MODEL_PLOCK_CART
Definition seq_model.h:45
@ SEQ_MODEL_PLOCK_INTERNAL
Definition seq_model.h:44
uint8_t seq_model_scale_mode_t
Definition seq_model.h:72
bool seq_model_step_is_automation_only(const seq_model_step_t *step)
Definition seq_model.c:195
void seq_model_gen_reset(seq_model_gen_t *gen)
Definition seq_model.c:13
void seq_model_pattern_set_transpose(seq_model_pattern_t *pattern, const seq_model_transpose_config_t *config)
Definition seq_model.c:289
void seq_model_step_init(seq_model_step_t *step)
Definition seq_model.c:49
uint8_t seq_model_plock_internal_param_t
Definition seq_model.h:49
void seq_model_step_clear_plocks(seq_model_step_t *step)
Definition seq_model.c:138
void seq_model_pattern_set_quantize(seq_model_pattern_t *pattern, const seq_model_quantize_config_t *config)
Definition seq_model.c:281
@ SEQ_MODEL_SCALE_MINOR
Definition seq_model.h:76
@ SEQ_MODEL_SCALE_MIXOLYDIAN
Definition seq_model.h:78
@ SEQ_MODEL_SCALE_DORIAN
Definition seq_model.h:77
@ SEQ_MODEL_SCALE_CHROMATIC
Definition seq_model.h:74
@ SEQ_MODEL_SCALE_MAJOR
Definition seq_model.h:75
void seq_model_step_recompute_flags(seq_model_step_t *step)
Definition seq_model.c:337
bool seq_model_step_add_plock(seq_model_step_t *step, const seq_model_plock_t *plock)
Definition seq_model.c:119
#define SEQ_MODEL_MAX_PLOCKS_PER_STEP
Definition seq_model.h:22
@ SEQ_MODEL_QUANTIZE_1_4
Definition seq_model.h:64
@ SEQ_MODEL_QUANTIZE_1_16
Definition seq_model.h:66
@ SEQ_MODEL_QUANTIZE_1_32
Definition seq_model.h:67
@ SEQ_MODEL_QUANTIZE_1_8
Definition seq_model.h:65
@ SEQ_MODEL_QUANTIZE_1_64
Definition seq_model.h:68
void seq_model_gen_bump(seq_model_gen_t *gen)
Definition seq_model.c:21
bool seq_model_step_has_playable_voice(const seq_model_step_t *step)
Definition seq_model.c:187
void seq_model_step_make_neutral(seq_model_step_t *step)
Definition seq_model.c:257
uint8_t seq_model_quantize_grid_t
Definition seq_model.h:62
void seq_model_step_make_automation_only(seq_model_step_t *step)
Definition seq_model.c:241
bool seq_model_step_has_seq_plock(const seq_model_step_t *step)
Definition seq_model.c:211
bool seq_model_step_has_cart_plock(const seq_model_step_t *step)
Definition seq_model.c:226
bool seq_model_step_has_any_plock(const seq_model_step_t *step)
Definition seq_model.c:203
void seq_model_pattern_init(seq_model_pattern_t *pattern)
Definition seq_model.c:86
uint8_t seq_model_voice_state_t
Definition seq_model.h:35
const seq_model_step_offsets_t * seq_model_step_get_offsets(const seq_model_step_t *step)
Definition seq_model.c:179
Definition seq_model.h:30
uint32_t value
Definition seq_model.h:31
Definition seq_model.h:143
seq_model_quantize_config_t quantize
Definition seq_model.h:144
seq_model_scale_config_t scale
Definition seq_model.h:146
seq_model_transpose_config_t transpose
Definition seq_model.h:145
Definition seq_model.h:150
seq_model_gen_t generation
Definition seq_model.h:153
seq_model_pattern_config_t config
Definition seq_model.h:152
Definition seq_model.h:82
seq_model_plock_domain_t domain
Definition seq_model.h:85
seq_model_plock_internal_param_t internal_param
Definition seq_model.h:87
int16_t value
Definition seq_model.h:83
uint16_t parameter_id
Definition seq_model.h:84
uint8_t voice_index
Definition seq_model.h:86
Definition seq_model.h:123
bool enabled
Definition seq_model.h:124
uint8_t strength
Definition seq_model.h:126
seq_model_quantize_grid_t grid
Definition seq_model.h:125
Definition seq_model.h:136
bool enabled
Definition seq_model.h:137
uint8_t root
Definition seq_model.h:138
seq_model_scale_mode_t mode
Definition seq_model.h:139
Definition seq_model.h:108
uint8_t active
Definition seq_model.h:109
uint8_t automation
Definition seq_model.h:110
uint8_t reserved
Definition seq_model.h:111
Definition seq_model.h:100
int8_t transpose
Definition seq_model.h:102
int16_t velocity
Definition seq_model.h:101
int8_t micro
Definition seq_model.h:104
int8_t length
Definition seq_model.h:103
Definition seq_model.h:114
uint8_t plock_count
Definition seq_model.h:117
seq_model_step_offsets_t offsets
Definition seq_model.h:118
seq_model_step_flags_t flags
Definition seq_model.h:119
Definition seq_model.h:130
int8_t global
Definition seq_model.h:131
Definition seq_model.h:91
seq_model_voice_state_t state
Definition seq_model.h:96
uint8_t length
Definition seq_model.h:94
uint8_t velocity
Definition seq_model.h:93
int8_t micro_offset
Definition seq_model.h:95
uint8_t note
Definition seq_model.h:92