1#ifndef BRICK_CORE_ARP_ARP_ENGINE_H
2#define BRICK_CORE_ARP_ARP_ENGINE_H
85 void (*note_on)(uint8_t note, uint8_t velocity,
systime_t when);
86 void (*note_off)(uint8_t note);
94 uint8_t phys_notes[32];
95 uint8_t phys_velocities[32];
98 uint8_t latched_notes[32];
99 uint8_t latched_velocities[32];
103 uint8_t pattern_notes[32];
104 uint8_t pattern_velocities[32];
117 uint8_t active_notes[64];
121 uint8_t pending_on_notes[64];
122 uint8_t pending_on_vel[64];
arp_pattern_t
Definition arp_engine.h:28
@ ARP_PATTERN_UP
Definition arp_engine.h:29
@ ARP_PATTERN_RANDOM
Definition arp_engine.h:32
@ ARP_PATTERN_COUNT
Definition arp_engine.h:34
@ ARP_PATTERN_DOWN
Definition arp_engine.h:30
@ ARP_PATTERN_CHORD
Definition arp_engine.h:33
@ ARP_PATTERN_UP_DOWN
Definition arp_engine.h:31
arp_rate_t
Definition arp_engine.h:15
@ ARP_RATE_EIGHTH_TRIPLET
Definition arp_engine.h:21
@ ARP_RATE_SIXTEENTH
Definition arp_engine.h:18
@ ARP_RATE_QUARTER_TRIPLET
Definition arp_engine.h:20
@ ARP_RATE_THIRTY_SECOND_TRIPLET
Definition arp_engine.h:23
@ ARP_RATE_COUNT
Definition arp_engine.h:24
@ ARP_RATE_QUARTER
Definition arp_engine.h:16
@ ARP_RATE_SIXTEENTH_TRIPLET
Definition arp_engine.h:22
@ ARP_RATE_EIGHTH
Definition arp_engine.h:17
@ ARP_RATE_THIRTY_SECOND
Definition arp_engine.h:19
void arp_init(arp_engine_t *engine, const arp_config_t *cfg)
Definition arp_engine.c:491
void arp_tick(arp_engine_t *engine, systime_t now)
Definition arp_engine.c:583
void arp_set_callbacks(arp_engine_t *engine, const arp_callbacks_t *cb)
Definition arp_engine.c:522
arp_accent_t
Definition arp_engine.h:38
@ ARP_ACCENT_COUNT
Definition arp_engine.h:43
@ ARP_ACCENT_FIRST
Definition arp_engine.h:40
@ ARP_ACCENT_RANDOM
Definition arp_engine.h:42
@ ARP_ACCENT_ALTERNATE
Definition arp_engine.h:41
@ ARP_ACCENT_OFF
Definition arp_engine.h:39
void arp_set_config(arp_engine_t *engine, const arp_config_t *cfg)
Definition arp_engine.c:531
void arp_note_input(arp_engine_t *engine, uint8_t note, uint8_t velocity, bool pressed)
Definition arp_engine.c:539
arp_sync_mode_t
Definition arp_engine.h:57
@ ARP_SYNC_INTERNAL
Definition arp_engine.h:58
@ ARP_SYNC_COUNT
Definition arp_engine.h:61
@ ARP_SYNC_MIDI_CLOCK
Definition arp_engine.h:59
@ ARP_SYNC_FREERUN
Definition arp_engine.h:60
arp_strum_t
Definition arp_engine.h:47
@ ARP_STRUM_RANDOM
Definition arp_engine.h:52
@ ARP_STRUM_UP
Definition arp_engine.h:49
@ ARP_STRUM_COUNT
Definition arp_engine.h:53
@ ARP_STRUM_OFF
Definition arp_engine.h:48
@ ARP_STRUM_DOWN
Definition arp_engine.h:50
@ ARP_STRUM_ALT
Definition arp_engine.h:51
void arp_stop_all(arp_engine_t *engine)
Definition arp_engine.c:630
void arp_set_hold(arp_engine_t *engine, bool enabled)
Definition arp_engine.c:643
uint32_t systime_t
Definition ch.h:12
Definition arp_engine.h:84
Definition arp_engine.h:65
arp_rate_t rate
Definition arp_engine.h:68
arp_strum_t strum_mode
Definition arp_engine.h:75
uint8_t octave_range
Definition arp_engine.h:69
uint8_t spread_percent
Definition arp_engine.h:78
bool enabled
Definition arp_engine.h:66
int8_t transpose
Definition arp_engine.h:77
uint8_t strum_offset_ms
Definition arp_engine.h:76
uint8_t gate_percent
Definition arp_engine.h:71
uint8_t direction_behavior
Definition arp_engine.h:79
arp_sync_mode_t sync_mode
Definition arp_engine.h:80
uint8_t swing_percent
Definition arp_engine.h:72
arp_accent_t accent
Definition arp_engine.h:73
uint8_t vel_accent
Definition arp_engine.h:74
bool hold_enabled
Definition arp_engine.h:67
arp_pattern_t pattern
Definition arp_engine.h:70
Definition arp_engine.h:90
systime_t strum_offset
Definition arp_engine.h:110
arp_callbacks_t callbacks
Definition arp_engine.h:92
arp_config_t config
Definition arp_engine.h:91
uint32_t step_index
Definition arp_engine.h:112
uint32_t random_seed
Definition arp_engine.h:126
systime_t next_event
Definition arp_engine.h:107
uint8_t direction
Definition arp_engine.h:113
bool latched_active
Definition arp_engine.h:101
uint8_t latched_count
Definition arp_engine.h:100
uint8_t strum_phase
Definition arp_engine.h:115
systime_t swing_period
Definition arp_engine.h:109
systime_t base_period
Definition arp_engine.h:108
uint8_t active_count
Definition arp_engine.h:119
uint8_t pending_on_count
Definition arp_engine.h:124
bool running
Definition arp_engine.h:114
uint8_t pattern_count
Definition arp_engine.h:105
uint8_t phys_count
Definition arp_engine.h:96