diff options
author | Bad Diode <bd@badd10de.dev> | 2024-02-01 16:06:38 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-02-01 16:06:38 +0100 |
commit | e475e43918fc200fea3951093223273ee2fb3761 (patch) | |
tree | 60f72b186c6e6681f03b1ac115ad1b0e7d8a2852 /src/sequencer.c | |
parent | 8b34c630e2389df2b8892c7b3c52b8056ae5f8a1 (diff) | |
download | stepper-e475e43918fc200fea3951093223273ee2fb3761.tar.gz stepper-e475e43918fc200fea3951093223273ee2fb3761.zip |
Adjust sync options to new tick sequencer
Diffstat (limited to 'src/sequencer.c')
-rw-r--r-- | src/sequencer.c | 64 |
1 files changed, 45 insertions, 19 deletions
diff --git a/src/sequencer.c b/src/sequencer.c index 7570a7a..a72eced 100644 --- a/src/sequencer.c +++ b/src/sequencer.c | |||
@@ -306,27 +306,14 @@ play_step(void) { | |||
306 | SOUND_NOISE_CTRL = 0; | 306 | SOUND_NOISE_CTRL = 0; |
307 | } | 307 | } |
308 | 308 | ||
309 | switch (settings.sync) { | ||
310 | case SYNC_OUT_LINK_16: { gate_on(); } break; | ||
311 | case SYNC_OUT_LINK_8: { if (step_counter % 2 == 0) { gate_on(); } } break; | ||
312 | case SYNC_OUT_LINK_4: { if (step_counter % 4 == 0) { gate_on(); } } break; | ||
313 | case SYNC_OUT_AUDIO_16: { audio_sync_click = true; } break; | ||
314 | case SYNC_OUT_AUDIO_8: { if (step_counter % 2 == 0) { audio_sync_click = true; } } break; | ||
315 | case SYNC_OUT_AUDIO_4: { if (step_counter % 4 == 0) { audio_sync_click = true; } } break; | ||
316 | case SYNC_OUT_LINK_AUDIO_16: { gate_on(); audio_sync_click = true; } break; | ||
317 | case SYNC_OUT_LINK_AUDIO_8: { if (step_counter % 2 == 0) { gate_on(); audio_sync_click = true; } } break; | ||
318 | case SYNC_OUT_LINK_AUDIO_4: { if (step_counter % 4 == 0) { gate_on(); audio_sync_click = true; } } break; | ||
319 | default: break; | ||
320 | } | ||
321 | |||
322 | // Adjust per-channel panning. | 309 | // Adjust per-channel panning. |
323 | switch (settings.sync) { | 310 | switch (settings.sync) { |
324 | case SYNC_OUT_LINK_AUDIO_4: | 311 | case SYNC_OUT_AUDIO_12BPQ: |
325 | case SYNC_OUT_LINK_AUDIO_8: | 312 | case SYNC_OUT_AUDIO_6BPQ: |
326 | case SYNC_OUT_LINK_AUDIO_16: | 313 | case SYNC_OUT_AUDIO_4BPQ: |
327 | case SYNC_OUT_AUDIO_4: | 314 | case SYNC_OUT_LINK_AUDIO_12BPQ: |
328 | case SYNC_OUT_AUDIO_8: | 315 | case SYNC_OUT_LINK_AUDIO_6BPQ: |
329 | case SYNC_OUT_AUDIO_16: break; | 316 | case SYNC_OUT_LINK_AUDIO_4BPQ: break; |
330 | default: { | 317 | default: { |
331 | SOUND_DMG_MASTER = dmg_stereo_vol(3) | 318 | SOUND_DMG_MASTER = dmg_stereo_vol(3) |
332 | | channel_vol(SOUND_SQUARE1, pan[0]) | 319 | | channel_vol(SOUND_SQUARE1, pan[0]) |
@@ -485,6 +472,21 @@ env_start: | |||
485 | 472 | ||
486 | void | 473 | void |
487 | sequencer_tick(void) { | 474 | sequencer_tick(void) { |
475 | switch (settings.sync) { | ||
476 | case SYNC_OUT_LINK_96BPQ: { gate_on(); } break; | ||
477 | case SYNC_OUT_LINK_48BPQ: { if (nseq_ticks % 2 == 0) { gate_on(); } } break; | ||
478 | case SYNC_OUT_LINK_24BPQ: { if (nseq_ticks % 4 == 0) { gate_on(); } } break; | ||
479 | case SYNC_OUT_LINK_12BPQ: { if (nseq_ticks % 8 == 0) { gate_on(); } } break; | ||
480 | case SYNC_OUT_LINK_6BPQ: { if (nseq_ticks % 16 == 0) { gate_on(); } } break; | ||
481 | case SYNC_OUT_LINK_4BPQ: { if (nseq_ticks % 24 == 0) { gate_on(); } } break; | ||
482 | case SYNC_OUT_AUDIO_12BPQ: { if (nseq_ticks % 8 == 0) { audio_sync_click = true; } } break; | ||
483 | case SYNC_OUT_AUDIO_6BPQ: { if (nseq_ticks % 16 == 0) { audio_sync_click = true; } } break; | ||
484 | case SYNC_OUT_AUDIO_4BPQ: { if (nseq_ticks % 24 == 0) { audio_sync_click = true; } } break; | ||
485 | case SYNC_OUT_LINK_AUDIO_12BPQ: { if (nseq_ticks % 8 == 0) { gate_on(); audio_sync_click = true; } } break; | ||
486 | case SYNC_OUT_LINK_AUDIO_6BPQ: { if (nseq_ticks % 16 == 0) { audio_sync_click = true; } } break; | ||
487 | case SYNC_OUT_LINK_AUDIO_4BPQ: { if (nseq_ticks % 24 == 0) { gate_on(); audio_sync_click = true; } } break; | ||
488 | default: break; | ||
489 | } | ||
488 | if (nseq_ticks++ == 0) { | 490 | if (nseq_ticks++ == 0) { |
489 | play_step(); | 491 | play_step(); |
490 | } else if (nseq_ticks == 24) { | 492 | } else if (nseq_ticks == 24) { |
@@ -499,6 +501,7 @@ set_time(int bpm) { | |||
499 | settings.sync == SYNC_IN_LINK_48BPQ || | 501 | settings.sync == SYNC_IN_LINK_48BPQ || |
500 | settings.sync == SYNC_IN_LINK_24BPQ || | 502 | settings.sync == SYNC_IN_LINK_24BPQ || |
501 | settings.sync == SYNC_IN_LINK_12BPQ || | 503 | settings.sync == SYNC_IN_LINK_12BPQ || |
504 | settings.sync == SYNC_IN_LINK_6BPQ || | ||
502 | settings.sync == SYNC_IN_LINK_4BPQ) { | 505 | settings.sync == SYNC_IN_LINK_4BPQ) { |
503 | return; | 506 | return; |
504 | } | 507 | } |
@@ -1887,6 +1890,29 @@ sync_in_12(void) { | |||
1887 | } | 1890 | } |
1888 | 1891 | ||
1889 | void | 1892 | void |
1893 | sync_in_6(void) { | ||
1894 | if (play_status) { | ||
1895 | // 6bpq -> 96bpq. | ||
1896 | sequencer_tick(); | ||
1897 | sequencer_tick(); | ||
1898 | sequencer_tick(); | ||
1899 | sequencer_tick(); | ||
1900 | sequencer_tick(); | ||
1901 | sequencer_tick(); | ||
1902 | sequencer_tick(); | ||
1903 | sequencer_tick(); | ||
1904 | sequencer_tick(); | ||
1905 | sequencer_tick(); | ||
1906 | sequencer_tick(); | ||
1907 | sequencer_tick(); | ||
1908 | sequencer_tick(); | ||
1909 | sequencer_tick(); | ||
1910 | sequencer_tick(); | ||
1911 | sequencer_tick(); | ||
1912 | } | ||
1913 | } | ||
1914 | |||
1915 | void | ||
1890 | sync_in_4(void) { | 1916 | sync_in_4(void) { |
1891 | if (play_status) { | 1917 | if (play_status) { |
1892 | // 4bpq -> 96bpq. | 1918 | // 4bpq -> 96bpq. |