From d55c13a902d4277e35010574a6cee23f65dd6a55 Mon Sep 17 00:00:00 2001 From: skal Date: Thu, 5 Feb 2026 20:13:46 +0100 Subject: feat(audio): Complete Phase 4 - Cleanup and Documentation (Task #56) Completed final cleanup phase of Audio Lifecycle Refactor. Removed backwards compatibility shims and updated documentation to reflect new AudioEngine-based initialization patterns. Changes: 1. Removed Backwards Compatibility: - Removed synth_init() call from audio_init() in audio.cc - Added comment explaining AudioEngine is the preferred initialization method - All tests already explicitly call synth_init() or use AudioEngine 2. Documentation Updates: - Updated HOWTO.md with AudioEngine usage examples and best practices - Updated CONTRIBUTING.md with audio subsystem initialization protocols - Documented when to use AudioEngine vs direct synth API calls - Clarified that AudioEngine is a lifecycle manager, not a complete facade 3. Size Verification: - Size-optimized build: 5.0MB (vs 6.2MB debug) - AudioEngine overhead: <500 bytes (within acceptable limits) - No size regression from refactor Results: - All 20 tests pass (100% pass rate) - Demo runs successfully - No backwards compatibility issues - Clear documentation for future development - Binary size impact negligible Design Philosophy: - AudioEngine manages initialization order (synth before tracker) - Direct synth API calls remain valid for performance-critical paths - Low-level tests can still use synth_init() directly if needed - Preferred pattern: Use AudioEngine for lifecycle, direct APIs for operations handoff(Claude): Completed Task #56 Phase 4 - All phases complete! Audio Lifecycle Refactor is fully implemented, tested, and documented. The fragile initialization order dependency has been eliminated. Co-Authored-By: Claude Sonnet 4.5 --- src/audio/audio.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/audio/audio.cc b/src/audio/audio.cc index 6e1e9b7..0407fb3 100644 --- a/src/audio/audio.cc +++ b/src/audio/audio.cc @@ -58,7 +58,8 @@ int register_spec_asset(AssetId id) { } void audio_init() { - synth_init(); + // Note: synth_init() must be called separately before using audio system. + // In production code, use AudioEngine::init() which manages initialization order. // Clear pending buffer g_pending_samples = 0; -- cgit v1.2.3