summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-03 09:19:16 +0100
committerskal <pascal.massimino@gmail.com>2026-02-03 09:19:16 +0100
commit04e1c8800f81d7f01e7f52546c75fc39779f72ae (patch)
treee3a6adc0e5b647f636d99312ff24f0cb58eed9d4
parent249ee6e8de55b2313c86299d66b1d51abcaec130 (diff)
refactor(build): Modularize build system with static libraries
Completed the first part of Task #25. Created static libraries for each subsystem (audio, gpu, 3d, util, procedural) and refactored all executables to link against them. This improves modularity and simplifies the build process. Also fixed linker errors related to glfw, wgpu, and miniaudio.
-rw-r--r--.gitignore2
-rw-r--r--CMakeLists.txt92
-rw-r--r--PROJECT_CONTEXT.md21
-rw-r--r--TODO.md25
-rw-r--r--src/audio/audio.cc6
5 files changed, 77 insertions, 69 deletions
diff --git a/.gitignore b/.gitignore
index 32f1095..90ae97e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,7 @@ src/generated/test_assets.h
src/generated/test_assets_data.cc
src/generated/
-assets/wav/
+assets/originals/
build_native/
build_win/
third_party/windows/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 16f6451..e7de30d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ project(demo64k LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-#-- - Configuration Options -- -
+#-- - Configuration Options -- -
option(DEMO_SIZE_OPT "Enable size optimization flags" OFF)
option(DEMO_STRIP_ALL "Strip all unnecessary code for final build" OFF)
option(DEMO_BUILD_TESTS "Build tests" OFF)
@@ -23,7 +23,7 @@ if (DEMO_STRIP_ALL)
set(DEMO_SIZE_OPT ON)
endif()
-#-- - Platform Detection and Core Setup -- -
+#-- - Platform Detection and Core Setup -- -
if(APPLE)
add_definitions(-DGLFW_EXPOSE_NATIVE_COCOA)
elseif(WIN32)
@@ -36,7 +36,7 @@ elseif(UNIX)
endif()
endif()
-#-- - Dependencies & Includes -- -
+#-- - Dependencies & Includes -- -
set(CORE_INCLUDES src third_party)
if (DEMO_CROSS_COMPILE_WIN32)
@@ -68,7 +68,7 @@ elseif (NOT DEMO_CROSS_COMPILE_WIN32)
list(APPEND DEMO_LIBS pthread m dl)
endif()
-#-- - Source Groups -- -
+#-- - Source Groups -- -
set(AUDIO_SOURCES src/audio/audio.cc src/audio/gen.cc src/audio/fdct.cc src/audio/idct.cc src/audio/window.cc src/audio/synth.cc src/audio/tracker.cc)
set(PROCEDURAL_SOURCES src/procedural/generator.cc)
set(GPU_SOURCES
@@ -88,17 +88,34 @@ set(GPU_SOURCES
src/gpu/effects/hybrid_3d_effect.cc
src/gpu/effects/shader_composer.cc
src/gpu/texture_manager.cc
+)
+set(3D_SOURCES
src/3d/renderer.cc
src/3d/visual_debug.cc
)
set(PLATFORM_SOURCES src/platform.cc third_party/glfw3webgpu/glfw3webgpu.c)
+set(UTIL_SOURCES src/util/asset_manager.cc)
+
+#-- - Subsystem Libraries -- -
+add_library(util STATIC ${UTIL_SOURCES})
+add_library(procedural STATIC ${PROCEDURAL_SOURCES})
+add_library(audio STATIC ${AUDIO_SOURCES})
+add_library(3d STATIC ${3D_SOURCES})
+add_library(gpu STATIC ${GPU_SOURCES})
+
+target_include_directories(util PUBLIC ${CORE_INCLUDES})
+target_include_directories(procedural PUBLIC ${CORE_INCLUDES})
+target_include_directories(audio PUBLIC ${CORE_INCLUDES})
+target_include_directories(3d PUBLIC ${CORE_INCLUDES})
+target_include_directories(gpu PUBLIC ${CORE_INCLUDES})
-#-- - Tools Setup -- -
+#-- - Tools Setup -- -
if (DEFINED ASSET_PACKER_PATH)
set(ASSET_PACKER_CMD ${ASSET_PACKER_PATH})
set(ASSET_PACKER_DEPENDS ${ASSET_PACKER_PATH})
else()
- add_executable(asset_packer tools/asset_packer.cc ${PROCEDURAL_SOURCES})
+ add_executable(asset_packer tools/asset_packer.cc)
+ target_link_libraries(asset_packer PRIVATE procedural)
set(ASSET_PACKER_CMD $<TARGET_FILE:asset_packer>)
set(ASSET_PACKER_DEPENDS asset_packer)
endif()
@@ -135,7 +152,7 @@ else()
set(TRACKER_COMPILER_FINAL_DEPENDS ${TRACKER_COMPILER_DEPENDS})
endif()
-#-- - Code Generation Helpers -- -
+#-- - Code Generation Helpers -- -
function(pack_assets NAME INPUT_TXT HEADER_VAR DATA_CC_VAR TARGET_NAME)
set(OUT_H ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/${NAME}.h)
set(OUT_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/${NAME}_data.cc)
@@ -167,7 +184,7 @@ function(pack_test_assets NAME INPUT_TXT HEADER_VAR DATA_CC_VAR TARGET_NAME)
add_custom_target(${TARGET_NAME} DEPENDS ${OUT_H} ${OUT_CC})
endfunction()
-#-- - Generation Targets -- -
+#-- - Generation Targets -- -
set(DEMO_SEQ_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/demo.seq)
set(GENERATED_TIMELINE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/timeline.cc)
add_custom_command(
@@ -176,7 +193,7 @@ add_custom_command(
COMMAND ${SEQ_COMPILER_CMD} ${DEMO_SEQ_PATH} ${GENERATED_TIMELINE_CC}
DEPENDS ${SEQ_COMPILER_DEPENDS} ${DEMO_SEQ_PATH}
src/gpu/demo_effects.h
- COMMENT \"Compiling demo sequence...\"
+ COMMENT "Compiling demo sequence..."
)
add_custom_target(generate_timeline ALL DEPENDS ${GENERATED_TIMELINE_CC})
@@ -194,12 +211,10 @@ add_custom_target(generate_tracker_music ALL DEPENDS ${GENERATED_MUSIC_DATA_CC})
pack_assets(assets ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/demo_assets.txt GEN_DEMO_H GEN_DEMO_CC generate_demo_assets)
pack_test_assets(test_assets ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/test_assets_list.txt GEN_TEST_H GEN_TEST_CC generate_test_assets)
-set(UTIL_SOURCES src/util/asset_manager.cc)
-
-#-- - Main Demo -- -
-add_executable(demo64k src/main.cc ${PLATFORM_SOURCES} ${GPU_SOURCES} ${AUDIO_SOURCES} ${PROCEDURAL_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC} ${GENERATED_MUSIC_DATA_CC})
+#-- - Main Demo -- -
+add_executable(demo64k src/main.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC} ${GENERATED_MUSIC_DATA_CC})
add_dependencies(demo64k generate_demo_assets generate_timeline generate_tracker_music)
-target_link_libraries(demo64k PRIVATE ${DEMO_LIBS})
+target_link_libraries(demo64k PRIVATE gpu 3d audio procedural util ${DEMO_LIBS})
#Size optimizations
if (DEMO_SIZE_OPT)
@@ -209,75 +224,80 @@ if (DEMO_SIZE_OPT)
elseif (APPLE)
target_compile_options(demo64k PRIVATE -Os)
target_link_options(demo64k PRIVATE -Wl,-dead_strip)
- else()
+ else ()
target_compile_options(demo64k PRIVATE -Os -ffunction-sections -fdata-sections)
target_link_options(demo64k PRIVATE -Wl,--gc-sections -s)
endif()
endif()
-#-- - Tests -- -
+#-- - Tests -- -
enable_testing()
if(DEMO_BUILD_TESTS)
- add_executable(test_window src/tests/test_window.cc src/audio/window.cc)
+ add_executable(test_window src/tests/test_window.cc)
+ target_link_libraries(test_window PRIVATE audio)
add_test(NAME HammingWindowTest COMMAND test_window)
add_executable(test_maths src/tests/test_maths.cc)
add_test(NAME MathUtilsTest COMMAND test_maths)
- add_executable(test_synth src/tests/test_synth.cc src/audio/synth.cc src/audio/idct.cc src/audio/window.cc)
+ add_executable(test_synth src/tests/test_synth.cc)
+ target_link_libraries(test_synth PRIVATE audio)
add_test(NAME SynthEngineTest COMMAND test_synth)
- add_executable(test_tracker src/tests/test_tracker.cc ${AUDIO_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC} ${PROCEDURAL_SOURCES})
- target_link_libraries(test_tracker PRIVATE ${DEMO_LIBS})
+ add_executable(test_tracker src/tests/test_tracker.cc ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
+ target_link_libraries(test_tracker PRIVATE audio util procedural ${DEMO_LIBS})
add_dependencies(test_tracker generate_tracker_music)
add_test(NAME TrackerSystemTest COMMAND test_tracker)
- add_executable(test_spectool src/tests/test_spectool.cc ${AUDIO_SOURCES} ${PLATFORM_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC} ${PROCEDURAL_SOURCES})
+ add_executable(test_spectool src/tests/test_spectool.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
target_compile_definitions(test_spectool PRIVATE DEMO_BUILD_TOOLS)
- target_link_libraries(test_spectool PRIVATE ${DEMO_LIBS})
+ target_link_libraries(test_spectool PRIVATE audio util procedural ${DEMO_LIBS})
add_dependencies(test_spectool generate_tracker_music generate_demo_assets)
- add_executable(test_assets src/tests/test_assets.cc ${UTIL_SOURCES} ${PROCEDURAL_SOURCES} ${GEN_TEST_CC})
+ add_executable(test_assets src/tests/test_assets.cc ${GEN_TEST_CC})
+ target_link_libraries(test_assets PRIVATE util procedural)
target_include_directories(test_assets PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/generated_test)
target_compile_definitions(test_assets PRIVATE USE_TEST_ASSETS)
add_dependencies(test_assets generate_test_assets)
set_source_files_properties(src/tests/test_assets.cc PROPERTIES COMPILE_DEFINITIONS "USE_TEST_ASSETS")
add_test(NAME AssetManagerTest COMMAND test_assets)
- add_executable(test_sequence src/tests/test_sequence.cc ${GPU_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${PROCEDURAL_SOURCES} ${GENERATED_TIMELINE_CC} ${PLATFORM_SOURCES})
- target_link_libraries(test_sequence PRIVATE ${DEMO_LIBS})
+ add_executable(test_sequence src/tests/test_sequence.cc ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC} ${PLATFORM_SOURCES})
+ target_link_libraries(test_sequence PRIVATE gpu 3d util procedural ${DEMO_LIBS})
add_dependencies(test_sequence generate_timeline generate_demo_assets)
add_test(NAME SequenceSystemTest COMMAND test_sequence)
- add_executable(test_procedural src/tests/test_procedural.cc ${PROCEDURAL_SOURCES})
+ add_executable(test_procedural src/tests/test_procedural.cc)
+ target_link_libraries(test_procedural PRIVATE procedural)
add_test(NAME ProceduralGenTest COMMAND test_procedural)
add_executable(test_3d src/tests/test_3d.cc)
add_test(NAME ThreeDSystemTest COMMAND test_3d)
- add_executable(test_shader_composer src/tests/test_shader_composer.cc src/gpu/effects/shader_composer.cc)
+ add_executable(test_shader_composer src/tests/test_shader_composer.cc)
+ target_link_libraries(test_shader_composer PRIVATE gpu)
add_test(NAME ShaderComposerTest COMMAND test_shader_composer)
- add_executable(test_texture_manager src/tests/test_texture_manager.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
- target_link_libraries(test_texture_manager PRIVATE ${DEMO_LIBS})
+ add_executable(test_texture_manager src/tests/test_texture_manager.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
+ target_link_libraries(test_texture_manager PRIVATE gpu 3d audio procedural util ${DEMO_LIBS})
add_dependencies(test_texture_manager generate_timeline generate_demo_assets generate_tracker_music)
- add_executable(test_3d_render src/tests/test_3d_render.cc src/3d/renderer.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
- target_link_libraries(test_3d_render PRIVATE ${DEMO_LIBS})
+ add_executable(test_3d_render src/tests/test_3d_render.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
+ target_link_libraries(test_3d_render PRIVATE gpu 3d audio procedural util ${DEMO_LIBS})
add_dependencies(test_3d_render generate_timeline generate_demo_assets generate_tracker_music)
endif()
-#-- - Extra Tools -- -
+#-- - Extra Tools -- -
if(DEMO_BUILD_TOOLS OR DEMO_BUILD_TESTS)
- add_executable(spectool tools/spectool.cc ${PLATFORM_SOURCES} ${AUDIO_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC} ${PROCEDURAL_SOURCES})
+ add_executable(spectool tools/spectool.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
target_compile_definitions(spectool PRIVATE DEMO_BUILD_TOOLS)
- target_link_libraries(spectool PRIVATE ${DEMO_LIBS})
+ target_link_libraries(spectool PRIVATE audio util procedural ${DEMO_LIBS})
add_dependencies(spectool generate_tracker_music generate_demo_assets)
add_executable(specview tools/specview.cc)
endif()
-#-- - Global Target Configuration -- -
+#-- - Global Target Configuration -- -
add_custom_target(final
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/gen_assets.sh
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/crunch_demo.sh
@@ -288,4 +308,4 @@ add_custom_target(final
add_custom_target(pack_source
COMMAND tar -czf demo_all.tgz --exclude=.git --exclude=build* --exclude=.gemini* --exclude=*.tgz --exclude=*.zip --exclude=.DS_Store .
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-) \ No newline at end of file
+)
diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md
index 2f1333b..27b7ed9 100644
--- a/PROJECT_CONTEXT.md
+++ b/PROJECT_CONTEXT.md
@@ -28,36 +28,35 @@ Style:
## Project Roadmap
### Next Up
-- ** Task #?: Build system
- - [ ] collect the sub-system code under (static and dynamic) libraries
- - [ ] consolidate CMakeList.txt content to use more macro for declaration, to avoid long repetitives lines and clauses
+- **Task #25: Build System Consolidation**:
+ - [ ] Create static/dynamic libraries for subsystems (audio, gpu, 3d, util) to improve modularity.
+ - [ ] Refactor `CMakeLists.txt` using macros to reduce boilerplate and repetitive clauses.
+ - [ ] Consolidate host-tool build logic (asset_packer, etc.) into a unified helper.
- **Task #20: Code & Platform Hygiene**
- [ ] Gather all cross-compile and platform-specific conditional code into `platform.h`.
- [ ] Refactor `platform_init()` and `platform_poll()` for cleaner abstraction.
- [ ] Consolidate WebGPU header inclusions.
- - [ ] Remove `std::map`/`std::vector` from hot paths.
+ - [ ] Remove `std::map`/`std::vector` from hot paths to prepare for CRT replacement.
- **Task #18: 3D System Enhancements**
- [ ] **Blender Exporter**: Create script to export scenes to internal binary format.
- [ ] **Asset Pipeline**: Update `asset_packer` and runtime loader for 3D scenes.
-- **Task #21: Shader Optimization**
- - [ ] Use macros or code generation to factorize common WGSL code (normals, bump, lighting).
- - [ ] Implement Tri-planar mapping for better procedural textures.
-
### Future Goals
- **Task #5: Implement Spectrogram Editor**
- [ ] Develop a web-based tool (`tools/editor`) for creating and editing `.spec` files visually.
-- **Task #18: 3D System Enhancements**
- - [ ] **Blender Exporter**: Convert Blender scenes to internal asset format.
- - [ ] **GPU BVH & Shadows**: Optimize scene queries with a GPU-based BVH.
+- **Task #21: Shader Optimization**
+ - [ ] Use macros or code generation to factorize common WGSL code (normals, bump, lighting).
+ - [ ] Implement Tri-planar mapping for better procedural textures.
+- **Task #18-B: GPU BVH & Shadows**: Optimize scene queries with a GPU-based BVH.
- **Phase 2: Advanced Size Optimization**
- [ ] Replace GLFW with minimal native Windows API.
- [ ] Quantize spectrograms to logarithmic frequency and uint16_t.
- [ ] CRT replacement investigation.
### Recently Completed
+- **Asset System Robustness**: Resolved "static initialization order fiasco" by wrapping the asset table in a "Construct On First Use" getter (`GetAssetRecordTable()`), ensuring assets are available during dynamic global initialization (e.g., shader strings).
- **Shader Asset Integration (Task #24)**: Extracted all hardcoded WGSL strings into `.wgsl` assets, registered them in `demo_assets.txt`, and updated `Renderer3D`, `VisualDebug`, and `Effects` to use `GetAsset` and `ShaderComposer`.
- **WebGPU Stabilization**: Resolved `WGPUSurface` creation failures on macOS by adding platform-specific `GLFW_EXPOSE_NATIVE_COCOA` definitions and fixed validation errors in the render pass configuration.
- **Final Build Stripping (Task #8)**: Implemented the `STRIP_ALL` macro to remove non-essential code (CLI parsing, debug labels, iostream) and refined size optimization flags (`-dead_strip`) for macOS.
diff --git a/TODO.md b/TODO.md
index 5ecd4bf..10e9394 100644
--- a/TODO.md
+++ b/TODO.md
@@ -2,37 +2,32 @@
This file tracks prioritized tasks with detailed attack plans.
-## Priority 1: Platform & Code Hygiene (Task #20)
+## Priority 1: Build System Consolidation (Task #25)
+**Goal:** Modularize the project and simplify CMake maintenance.
+- [ ] **Attack Plan - Subsystem Libraries:** Group source files into static libraries (`audio`, `gpu`, `3d`, `util`) to reduce link line complexity.
+- [ ] **Attack Plan - CMake Macros:** Implement `add_demo_library` and `add_demo_executable` macros to handle platform-specific definitions and warnings uniformly.
+- [ ] **Attack Plan - Host Tool Helpers:** Consolidate code generation targets into a single CMake helper.
+
+## Priority 2: Platform & Code Hygiene (Task #20)
**Goal:** Clean up the codebase for easier cross-platform maintenance and CRT replacement.
- [ ] **Attack Plan - Header Consolidation:** Move all `#ifdef` logic for WebGPU headers and platform-specific shims into `src/platform.h`.
- [ ] **Attack Plan - Refactor platform_init:** Change `void platform_init(PlatformState* state, ...)` to `PlatformState platform_init(...)`.
- [ ] **Attack Plan - Unified Poll:** Incorporate `platform_get_time()` and `platform_get_aspect_ratio()` updates into `platform_poll()`.
- [ ] **Attack Plan - Standard Container Removal:** Replace `std::map`, `std::string`, and `std::vector` in performance-critical or size-sensitive paths with simpler C-style alternatives.
-## Priority 2: 3D System Enhancements (Task #18)
+## Priority 3: 3D System Enhancements (Task #18)
**Goal:** Establish a pipeline for importing complex 3D scenes to replace hardcoded geometry.
- [ ] **Attack Plan - Blender Exporter:** Create a Python script (`tools/blender_export.py`) to export meshes/cameras/lights to a binary asset format.
- [ ] **Attack Plan - Asset Ingestion:** Update `asset_packer` to handle the new 3D binary format.
- [ ] **Attack Plan - Runtime Loader:** Implement a minimal C++ parser to load the scene data into the ECS/Renderer.
-## Priority 3: Shader Optimization (Task #21)
-**Goal:** Improve GPU performance and reduce shader source bloat.
-- [ ] **Attack Plan - Normal Factorization:** Create a standard WGSL helper for normal calculation to avoid duplicate code in every effect.
-- [ ] **Attack Plan - Tri-planar Mapping:** Implement bi/tri-planar mapping for procedural textures to improve visual quality on complex SDFs.
-
## Future Goals
+- [ ] **Task #21: Shader Optimization**: Normal factorization and Tri-planar mapping.
- [ ] **Task #5: Spectrogram Editor**: Web-based visual tool for extreme audio compression.
-- [ ] **Task #18-B: GPU BVH**: Optimize scene queries with a GPU-based BVH for the new 3D system.
- [ ] **Task #22: Windows Native Platform**: Replace GLFW with direct Win32 API calls for the final 64k push.
- [ ] **Task #23: Shader Performance Analysis**: Analyze shader performance using Xcode Metal debugger on macOS.
-## Phase 2: Advanced Size Optimization
-- [ ] **Task #22**: Windows Native Platform (Win32 API)
-
## Recently Completed
+- [x] **Asset System Robustness**: Fixed static initialization order issues by wrapping the asset table in a singleton-style getter (`GetAssetRecordTable()`).
- [x] **Shader Asset Integration (Task #24)**: Extracted hardcoded shaders to `.wgsl` assets, updated `asset_packer` for string safety, and refactored C++ code to use `GetAsset`.
- [x] **WebGPU Stability & macOS Fixes**: Resolved surface creation failures by adding `GLFW_EXPOSE_NATIVE_COCOA` and fixed validation errors in surface configuration and render pass attachments.
-- [x] **Final Build Stripping (Task #8)**: Implemented `STRIP_ALL` macro to remove CLI parsing and debug info. Optimized macOS linker flags (`-dead_strip`).
-- [x] **Tracker Asset Sample Integration**: Modified `assets/music.track` for `SAMPLE ASSET_NAME` syntax, updated `tools/tracker_compiler.cc` for parsing and code generation, and finalized `src/audio/tracker.cc` for unified asset sample pasting.
-- [x] **Minimal Audio Tracker**: Implemented a pattern and score-based audio tracker system. Details in `doc/TRACKER.md`.
-- [x] **WGSL Library (Task 21.1)**: Implemented ShaderComposer for modular WGSL snippet management.
diff --git a/src/audio/audio.cc b/src/audio/audio.cc
index ad324c0..d08a2fa 100644
--- a/src/audio/audio.cc
+++ b/src/audio/audio.cc
@@ -5,12 +5,6 @@
#include "audio.h"
#include "util/asset_manager.h"
-#if !defined(DEMO_BUILD_TOOLS)
-#define MA_NO_FLAC
-#define MA_NO_ENCODING
-#define MA_NO_MP3
-#define MA_NO_WAV
-#endif /* !defined(DEMO_BUILD_TOOLS) */
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h"
#include "synth.h"