jensandClaude Sonnet 5 608ae003df Fix High-severity real-time audio-thread safety issues from TODO.md
- synthChanged() no longer builds JaySynthActionListener Strings and
  calls sendActionMessage directly on the audio thread. It now pushes
  a small POD event into a lock-free SPSC queue (JUCE's AbstractFifo),
  drained by the existing 10ms UI timer on the message thread, which
  does the String-building/posting there instead.
- VoiceProcessDataV's ~450KB-900KB of SYNTH_MAX_BUFSIZE-sized local
  arrays are now persistent per-voice buffers allocated once in
  VoiceSetBufsize (freed in VoiceFree), matching the pattern already
  used for pBuf_Q and by vcf.c/env.c/lfo.c, instead of being
  reallocated on the stack on every audio block.
- SynthDebug uses vsnprintf instead of vsprintf, bounding writes to
  its 1024-byte buffer.

Verified with clean debug and release builds (no new warnings) and a
live playback smoke test in Reaper.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011dhtwRLARk4eiPngcQykLJ
2026-07-27 18:08:35 +02:00
2025-08-21 07:52:16 +02:00
2025-08-06 22:08:46 +02:00
2025-08-03 10:57:01 +02:00
2026-05-09 08:29:00 +02:00
2025-08-03 10:57:01 +02:00
2025-08-08 13:54:08 +02:00
2026-05-09 08:37:16 +02:00
2025-07-29 20:43:25 +02:00
2015-03-20 16:35:58 +00:00
2026-05-09 08:34:24 +02:00
2023-04-26 22:01:57 +02:00
2014-10-25 07:27:55 +00:00
S
Description
No description provided
90 MiB
Languages
C++ 53.7%
C 36.8%
Makefile 4.1%
MATLAB 2.2%
Roff 1.6%
Other 1.6%