Commit Graph

151 Commits

Author SHA1 Message Date
Loic Coenen
3646f6c47e Merge branch '6-recording-wav-file' 2026-05-17 16:59:56 +00:00
Loic Coenen
10d0269a5a add tests 2026-05-13 16:55:32 +00:00
b994911dab Merge pull request '4-implement-scene-switching-engine' (#4) from 4-implement-scene-switching-engine into master
Reviewed-on: #4
2026-05-13 12:51:03 -04:00
Loic Coenen
bb648d471b fix: resolve cppcheck warnings for const pointer and static functions
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:58:20 +00:00
Loic Coenen
fa9dbf2185 style: fix code formatting and include order in looper and ringbuffer 2026-05-12 19:58:19 +00:00
Loic Coenen
51493d5cab docs: add WAV load/save documentation and update evaluation table
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:35:21 +00:00
Loic Coenen
ce2dd7be76 fix: make channel state variables atomic to eliminate data races
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:32:10 +00:00
Loic Coenen
87d5e658c5 fix: restore all integration tests in main()
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:18:20 +00:00
Loic Coenen
525516fe03 refactor: replace manual WAV I/O with libsndfile
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:15:12 +00:00
Loic Coenen
3e52142f62 feat: replace manual WAV parsing with libsndfile
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:14:35 +00:00
Loic Coenen
a92b5c51e1 fix: skip remaining fmt chunk bytes correctly in wav_read
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:09:58 +00:00
Loic Coenen
bb3dfa8b2a fix: correct RIFF chunk size in test WAV header
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:07:09 +00:00
Loic Coenen
3721c0c9e1 refactor: disable all tests except failing WAV load/save
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:04:36 +00:00
Loic Coenen
c041645019 fix: increase sleep duration in WAV load test to ensure control key processing
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:03:22 +00:00
Loic Coenen
6344eaed47 fix: add debug output and increase delay in WAV load test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 19:02:59 +00:00
Loic Coenen
f96d7d290d fix: ensure fresh MIDI connection before each integration test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:49:12 +00:00
Loic Coenen
2d254c0503 fix: ensure fresh MIDI connection before each integration test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:39:48 +00:00
Loic Coenen
4339fda529 fix: keep persistent MIDI client across notes in integration tests
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:37:15 +00:00
Loic Coenen
04b59999c8 fix: make loop_count atomic and increase remove channel delay
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:28:54 +00:00
Loic Coenen
df1f4fa6bd fix: only set loop_count from record_pos when transitioning from record state
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:22:55 +00:00
Loic Coenen
7e5362259b refactor: extract JACK MIDI client reconnection logic
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:19:35 +00:00
Loic Coenen
b10d218749 fix: reconnect MIDI client before each test to avoid stale connections
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:19:06 +00:00
Loic Coenen
cc50577444 fix: cast atomic pointer loads/stores and remove duplicate free in writer_thread
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-12 18:01:57 +00:00
Loic Coenen
346c15d1c3 fix: use persistent MIDI client and fix save_ring race condition
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 22:14:33 +00:00
Loic Coenen
7deea9266b fix: reorder passthrough setup before load command in WAV load test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 21:49:35 +00:00
Loic Coenen
7d842163a2 fix: increase listen duration and add RMS logging in WAV load test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 21:39:49 +00:00
Loic Coenen
54fa307360 fix: increase sleep durations in WAV load test to prevent false failure
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 21:31:29 +00:00
Loic Coenen
5430795510 feat: push loop output into save ring during playback
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 21:16:02 +00:00
Loic Coenen
5a2414b4c3 feat: add WAV load/save and ring buffer implementation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 21:15:12 +00:00
Loic Coenen
6b490ed739 feat: add WAV file loading, saving, and dedicated I/O threads
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-11 20:58:00 +00:00
Loic Coenen
d4a811e552 docs: add scene switching engine documentation and update evaluation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:42:34 +00:00
Loic Coenen
567799a2d3 docs: add scene switching engine implementation guide 2026-05-10 19:42:33 +00:00
Loic Coenen
755af275d8 fix: convert shared scene metadata to atomic_int to fix data races
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:33:12 +00:00
Loic Coenen
74db4ed46c fix: add missing channel pointer declaration in apply_command
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:13:51 +00:00
Loic Coenen
15be644af7 refactor: remove unused variable 'cur' in looper_process_commands
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:07:52 +00:00
Loic Coenen
aaca25ebf1 refactor: remove unused local variable in looper commands
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:01:37 +00:00
Loic Coenen
e3b9321b1a fix: remove unused variable and suppress cppcheck warnings
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 19:00:13 +00:00
Loic Coenen
015ad2c5a7 chore: add trailing space to CFLAGS in makefile 2026-05-10 19:00:11 +00:00
Loic Coenen
c8b9de8e81 fix: reopen FIFO on EOF to prevent blocking on subsequent writes
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 18:39:10 +00:00
Loic Coenen
1ba98fc768 fix: prevent hang in scene add/remove test and fix unsafe scene copy
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 18:34:26 +00:00
Loic Coenen
4dfb7a87c1 fix: correct state access in MIDI clock handling
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 18:24:48 +00:00
Loic Coenen
8892acd3d2 refactor: split integration.c into modular test files
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 18:22:38 +00:00
Loic Coenen
7b00246443 feat: implement scene infrastructure for multi-scene looper support
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 18:00:32 +00:00
Loic Coenen
44177f785f style: fix code formatting in channel.c and midi.c 2026-05-10 18:00:29 +00:00
Loic Coenen
94d6bc25f1 test: add scene integration tests for add/remove/next/prev via FIFO and MIDI
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 17:42:45 +00:00
Loic Coenen
86d9bc72f1 style: reformat long lines in looper.c for readability 2026-05-10 16:36:15 +00:00
75f347c418 Merge pull request '2-midi-looping' (#3) from 2-midi-looping into master
Reviewed-on: #3
2026-05-10 12:24:23 -04:00
Loic Coenen
0be6cfb31d fix: move persistent MIDI client init/cleanup into each test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 13:19:14 +00:00
Loic Coenen
de8202a0d2 fix: use persistent JACK client for MIDI injection to avoid race conditions
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 13:05:42 +00:00
Loic Coenen
fe3fb7d873 fix: reduce main loop sleep to 1ms and add polling in tests
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
2026-05-10 12:53:15 +00:00