| Age | Commit message (Collapse) | Author |
|
- Updated CMakeLists.txt to generate assets.h and assets_data.cc in src/generated/.
- Updated scripts/gen_assets.sh to reflect the new output location.
- Modified asset_packer.cc to generate correct include paths in assets_data.cc.
- Updated source files (main.cc, asset_manager.cc, test_assets.cc) to include headers from the 'generated/' subdirectory.
- Ensured all targets have correct include paths to find generated headers.
- Removed stale generated files from src/.
|
|
- Fixed 'Invalid sample count 0' and 'Invalid anisotropic clamp: 0' by ensuring explicit pipeline and sampler states.
- Resolved WGSL parsing errors by replacing swizzle assignments in compute shaders.
- Fixed 'Texture destroyed' error in render_frame by reordering command submission and resource presentation/release.
- Added WGPU_DEPTH_SLICE_UNDEFINED for Windows compatibility and ensured consistent resolveTarget initialization.
- Cleaned up PassthroughEffect bind group layout mismatch and redundant string helper definitions.
- Verified all tests pass and applied consistent formatting.
|
|
Refines tests for the sequence and effect system to focus on logic (init, start, end calls) rather than GPU output, as full GPU mocking is complex. Updates HOWTO.md to reflect this.
|
|
|
|
|
|
|
|
Renamed demo assets to 'demo_assets.txt' and created 'test_assets_list.txt' for AssetManagerTest to prevent interference.
- Updated CMakeLists.txt to generate separate headers for demo and test.
- Updated test_assets.cc to conditionally include the test-specific header.
- Incorporated gen_assets.sh into the 'final' target.
|
|
This commit applies a new project-wide rule that every source file must begin with a concise 3-line comment header describing its purpose.
- Updated CONTRIBUTING.md with the new rule.
- Applied headers to all .cc and .h files in src/ and tools/.
- Fixed various minor compilation errors and missing includes discovered during the header update process.
|
|
This commit makes the asset packer fully functional and adds an end-to-end test suite.
- Updated asset_packer.cc to read file contents and embed them as hex arrays.
- Added actual asset files (null.bin, test_asset.txt) for testing.
- Implemented src/tests/test_assets.cc to verify data integrity at runtime.
- Refactored CMakeLists.txt to handle generated file dependencies correctly.
|
|
This commit introduces new tools for spectrogram manipulation and visualization, establishes a consistent coding style, and updates project documentation.
Key changes include:
- **Spectrogram Tools:
- : A command-line utility for analyzing WAV/MP3 files into custom spectrogram format and playing back these spectrograms via the synth engine.
- : A command-line tool for visualizing spectrogram files as ASCII art in the console.
- **Coding Style Enforcement:
- Added a configuration file enforcing LLVM-based style with 2-space indentation, no tabs, and an 80-column line limit.
- Renamed all C++ source files from to for project consistency.
- Applied automatic formatting using
exit across the entire codebase.
- **Documentation & Workflow:
- Created to define a commit policy requiring tests to pass before committing.
- Updated with instructions for building and using and , and referenced .
- Updated and to reflect the new tools, audio architecture decisions (real-time additive synthesis, double-buffering for dynamic updates, WAV/MP3 support), coding style, and development workflow.
- **Build System:
- Modified to:
- Include new targets for and under the option.
- Update source file extensions to .
- Add a new end-to-end test for to the suite.
|
|
Adds a new CTest unit test that performs a full, end-to-end verification of the 'spectool analyze' command.
The test programmatically generates a sine wave, saves it as a .wav file, executes the spectool executable as a subprocess to analyze the wave, and then verifies the integrity of the resulting .spec file.
This ensures the analysis pipeline (WAV decoding, windowing, FDCT, and file I/O) works correctly.
|
|
Adds a multi-voice, real-time audio synthesis engine that generates sound from spectrogram data using an Inverse Discrete Cosine Transform (IDCT).
Key features:
- A thread-safe, double-buffered system for dynamically updating spectrograms in real-time without interrupting audio playback.
- Core DSP components: FDCT, IDCT, and Hamming window functions.
- A simple sequencer in the main loop to demonstrate scripted audio events and dynamic updates.
- Unit tests for the new synth engine and Hamming window, integrated with CTest.
- A file documenting the build process, features, and how to run tests.
|