|
|
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 |
|
Loic Coenen
|
ffe422d83f
|
fix: poll for burst stabilization in MIDI stop test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 12:36:13 +00:00 |
|
Loic Coenen
|
5b1969415f
|
fix: increase wait time and tolerance in MIDI stop test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 12:21:33 +00:00 |
|
Loic Coenen
|
91d58a07f5
|
fix: allow up to 2 extra bursts after MIDI stop in test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 12:18:08 +00:00 |
|
Loic Coenen
|
4e489b5e40
|
docs: add MIDI looping documentation and update evaluation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 11:54:00 +00:00 |
|
Loic Coenen
|
df5ecef580
|
feat: add FIFO add_midi command and integration tests for FIFO stop/bind/unbind and MIDI channel creation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 11:46:04 +00:00 |
|
Loic Coenen
|
df181b117e
|
fix: correct MIDI channel processing and port cleanup
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 11:37:04 +00:00 |
|
Loic Coenen
|
ff226a8ea6
|
feat: add per-channel MIDI looping support
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 11:29:41 +00:00 |
|
Loic Coenen
|
85e828f461
|
style: reformat comments and code for consistent indentation
|
2026-05-10 11:29:39 +00:00 |
|
Loic Coenen
|
19b686fe2d
|
docs: add arbitrary number of channels documentation and update evaluation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 10:55:25 +00:00 |
|
Loic Coenen
|
0691594a92
|
docs: add documentation for arbitrary number of channels
|
2026-05-10 10:55:23 +00:00 |
|
Loic Coenen
|
9da4481300
|
fix: defer freeing old channel array until RT thread sees new pointer
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 10:50:03 +00:00 |
|
Loic Coenen
|
b7827e7311
|
fix: reset channel state on stop to prevent burst continuation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 10:45:33 +00:00 |
|
Loic Coenen
|
595a35ec32
|
fix: correct atomic pointer declaration syntax
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 10:42:20 +00:00 |
|
|
|
f11a18a203
|
Merge pull request '12-command-art' (#2) from 12-command-art into master
Reviewed-on: #2
|
2026-05-10 06:42:11 -04:00 |
|
Loic Coenen
|
5739ff8019
|
feat: remove hard limit on number of channels
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 10:38:59 +00:00 |
|
Loic Coenen
|
3a4aac3356
|
Documentation
|
2026-05-10 01:12:07 +00:00 |
|
Loic Coenen
|
69859a6294
|
docs: add command architecture documentation
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 01:11:47 +00:00 |
|
Loic Coenen
|
d47fddbeb3
|
docs: add command architecture documentation
|
2026-05-10 01:11:46 +00:00 |
|
Loic Coenen
|
900619a714
|
12-command-art
|
2026-05-10 01:08:11 +00:00 |
|
Loic Coenen
|
98c851f051
|
test: add MIDI stop and full record-loop-stop integration tests
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 00:37:21 +00:00 |
|
Loic Coenen
|
011d29cb09
|
docs: update evaluation.md with final code review
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 00:21:57 +00:00 |
|
Loic Coenen
|
be3188bbe2
|
fix: keep FIFO fd open across both writes to prevent hang
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-10 00:16:03 +00:00 |
|
Loic Coenen
|
c592c24634
|
feat: add MIDI stop command and FIFO pipe integration test
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 23:56:09 +00:00 |
|
Loic Coenen
|
7b61384154
|
docs: update evaluation.md with current code analysis
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 23:55:07 +00:00 |
|
Loic Coenen
|
7edd95d06e
|
fix: split main command queue into per-source SPSC queues
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 23:32:21 +00:00 |
|
Loic Coenen
|
de0389e144
|
feat: remove MIDI-driven add/remove channel commands to fix SPSC race
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 23:12:53 +00:00 |
|
Loic Coenen
|
bd5fd59b7b
|
fix: add missing source files to build
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 22:51:13 +00:00 |
|
Loic Coenen
|
b1e330e839
|
refactor: remove stale cmd_add/cmd_remove declarations from channel.h
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 22:20:35 +00:00 |
|
Loic Coenen
|
437ac31913
|
feat: unify add/remove commands into queue and fix race on channel removal
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 22:03:11 +00:00 |
|
Loic Coenen
|
a8a9c6164b
|
docs: update evaluation.md with detailed code review and recommendations
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 21:35:38 +00:00 |
|
Loic Coenen
|
392dabbc0f
|
feat: add command queue and FIFO pipe for unified input handling
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 21:31:54 +00:00 |
|
Loic Coenen
|
f7f18f9fa7
|
style: fix formatting and include order in source files
|
2026-05-09 21:31:52 +00:00 |
|
Loic Coenen
|
72839a9e5f
|
Merge remote-tracking branch 'origin/multichannel'
|
2026-05-09 19:55:36 +00:00 |
|
Loic Coenen
|
d6336970bf
|
Merge branch 'multichannel'
|
2026-05-09 19:54:08 +00:00 |
|
Loic Coenen
|
8c061f93cd
|
delete main.c
|
2026-05-09 19:52:10 +00:00 |
|
|
|
2b4531f3f3
|
Merge pull request '1-multichannel' (#1) from 1-multichannel into multichannel
Reviewed-on: #1
|
2026-05-09 15:47:08 -04:00 |
|
Loic Coenen
|
b4a65a5788
|
chore: add git hooks
|
2026-05-09 14:47:04 +00:00 |
|
Loic Coenen
|
20c0820910
|
refactor: use explicit pointer casts to clarify type conversions
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 14:46:09 +00:00 |
|
Loic Coenen
|
934843e9b1
|
fix: move cppcheck suppression comment to same line as assignment
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 13:23:32 +00:00 |
|
Loic Coenen
|
2fa1d159e7
|
refactor: remove global cppcheck suppressions and move usleep suppression locally
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 13:20:37 +00:00 |
|
Loic Coenen
|
982dd4dc02
|
refactor: replace usleep with safe_usleep in integration tests
|
2026-05-09 13:20:36 +00:00 |
|
Loic Coenen
|
b02c45e7ab
|
fix: suppress cppcheck warnings for missing includes and usleep
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 13:19:08 +00:00 |
|
Loic Coenen
|
aa0b191b46
|
makefile
```makefile
<<<<<<< SEARCH
check:
cppcheck --enable=all --error-exitcode=1 --suppress=missingIncludeSystem --suppress=usleepCalled --suppress=unreadVariable --suppress=normalCheckLevelMaxBranches src/*.c --library=posix .
=======
check:
cppcheck --enable=all --error-exitcode=1 --suppress=unreadVariable src/*.c --library=posix .
>>>>>>> REPLACE
```
src/channel.c
```c
<<<<<<< SEARCH
#include "channel.h"
#include <jack/jack.h>
#include <stdatomic.h>
#include <stdio.h>
#include <string.h>
=======
// cppcheck-suppress missingIncludeSystem
#include "channel.h"
#include <jack/jack.h>
#include <stdatomic.h>
#include <stdio.h>
#include <string.h>
>>>>>>> REPLACE
```
src/channel.h
```c
<<<<<<< SEARCH
#include <jack/jack.h>
#include <stdatomic.h>
=======
// cppcheck-suppress missingIncludeSystem
#include <jack/jack.h>
#include <stdatomic.h>
>>>>>>> REPLACE
```
src/looper.c
```c
<<<<<<< SEARCH
#include "looper.h"
#include "channel.h"
#include "midi.h"
#include <jack/jack.h>
#include <jack/midiport.h>
#include <math.h>
#include <stdatomic.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
=======
// cppcheck-suppress missingIncludeSystem
#include "looper.h"
#include "channel.h"
#include "midi.h"
#include <jack/jack.h>
#include <jack/midiport.h>
#include <math.h>
#include <stdatomic.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
>>>>>>> REPLACE
```
src/looper.h
```c
<<<<<<< SEARCH
#include <jack/jack.h>
=======
// cppcheck-suppress missingIncludeSystem
#include <jack/jack.h>
>>>>>>> REPLACE
```
src/main.c
```c
<<<<<<< SEARCH
#include "looper.h"
#include <jack/jack.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
=======
// cppcheck-suppress missingIncludeSystem
#include "looper.h"
#include <jack/jack.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
>>>>>>> REPLACE
```
src/midi.c
```c
<<<<<<< SEARCH
#include "midi.h"
#include "channel.h"
#include <jack/jack.h>
#include <jack/midiport.h>
#include <stdatomic.h>
=======
// cppcheck-suppress missingIncludeSystem
#include "midi.h"
#include "channel.h"
#include <jack/jack.h>
#include <jack/midiport.h>
#include <stdatomic.h>
>>>>>>> REPLACE
```
src/midi.h
```c
<<<<<<< SEARCH
#include <jack/types.h>
=======
// cppcheck-suppress missingIncludeSystem
#include <jack/types.h>
>>>>>>> REPLACE
```
tests/integration.c
```c
<<<<<<< SEARCH
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <string.h>
#include <stdarg.h>
#include <fcntl.h>
#include <jack/jack.h>
#include <jack/midiport.h>
#include <math.h>
#include <time.h>
=======
// cppcheck-suppress missingIncludeSystem
// cppcheck-suppress usleepCalled
// cppcheck-suppress normalCheckLevelMaxBranches
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <string.h>
#include <stdarg.h>
#include <fcntl.h>
#include <jack/jack.h>
#include <jack/midiport.h>
#include <math.h>
#include <time.h>
>>>>>>> REPLACE
```
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 12:46:50 +00:00 |
|
Loic Coenen
|
c2df024350
|
style: reformat code and update cppcheck suppressions
|
2026-05-09 12:46:31 +00:00 |
|
Loic Coenen
|
d2e39f3451
|
chore: add install-hooks target and update cppcheck library flag
|
2026-05-09 12:38:35 +00:00 |
|
Loic Coenen
|
7e9224cdc7
|
fix: replace usleep with nanosleep and fix const correctness
Co-authored-by: aider (deepseek/deepseek-reasoner) <aider@aider.chat>
|
2026-05-09 12:11:57 +00:00 |
|