feat: add 8x8 scene/channel grid, MIDI clock sync, and quantization engine

Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
Loic Coenen
2026-05-01 01:29:03 +00:00
parent 0094cf5194
commit d63a3f5ab2
3 changed files with 371 additions and 48 deletions

View File

@@ -11,6 +11,16 @@ static Engine *create_test_engine(void) {
engine->control_channel = 0;
engine->sample_rate = 48000;
engine->quantize_mode = QUANTIZE_OFF;
engine->quantize_threshold = 0;
engine->queued_triggers = NULL;
// Initialize transport
engine->transport.rolling = false;
engine->transport.clock_count = 0;
engine->transport.beat_position = 0;
engine->transport.bar_position = 0;
engine->transport.sample_position = 0;
for (int i = 0; i < MAX_CLIPS; i++) {
engine->clips[i].state = CLIP_EMPTY;
@@ -26,6 +36,14 @@ static Engine *create_test_engine(void) {
static void destroy_test_engine(Engine *engine) {
if (engine) {
// Free queued triggers
QueuedTrigger *qt = engine->queued_triggers;
while (qt) {
QueuedTrigger *next = qt->next;
free(qt);
qt = next;
}
for (int i = 0; i < MAX_CLIPS; i++) {
free(engine->clips[i].buffer);
}