<feed xmlns='http://www.w3.org/2005/Atom'>
<title>demo.git/.gitignore, branch main</title>
<subtitle>Vide-coded 64k demo system</subtitle>
<id>https://git.taar-o.com/demo.git/atom?h=main</id>
<link rel='self' href='https://git.taar-o.com/demo.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/'/>
<updated>2026-02-15T17:58:18Z</updated>
<entry>
<title>chore: clean up timeline editor temp files and update gitignore</title>
<updated>2026-02-15T17:58:18Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-15T17:58:18Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=0b4a4df3073b2af96f87185b7b9c257abfe0ae08'/>
<id>urn:sha1:0b4a4df3073b2af96f87185b7b9c257abfe0ae08</id>
<content type='text'>
Removed temporary files:
- test_in.seq, test_out.seq
- timeline_save.seq
- tools/timeline_editor/timeline.seq

Added gitignore patterns for editor artifacts:
- test_*.seq
- *_save.seq
- tools/timeline_editor/timeline.seq
</content>
</entry>
<entry>
<title>refactor(build): granular asset tracking and CMake deduplication</title>
<updated>2026-02-15T17:05:22Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-15T17:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=d7ec4c61bd11c731d21e269c87bc446b13cbe5e7'/>
<id>urn:sha1:d7ec4c61bd11c731d21e269c87bc446b13cbe5e7</id>
<content type='text'>
Implements Phases 1 &amp; 2 of CMake consolidation plan to improve
incremental build performance and reduce code duplication.

Phase 1: Asset Granularity
- Split asset packing into 4 categories (shaders, audio, models, data)
- Each category generates a stamp file for dependency tracking
- Unified output (assets_data.cc) avoids duplicate symbols
- Changing a single asset category only rebuilds affected targets
- Added demo_add_asset_deps() macro for clean category dependencies

Phase 2: CMake Deduplication
- Extracted COMMON_GPU_EFFECTS (25 files) from duplicated GPU_SOURCES
- Extracted COMMON_3D_FILES (9 files) from duplicated 3D_SOURCES
- Removed library-level asset dependencies (DemoLibraries.cmake)
- Replaced 43 individual add_dependencies() with macro pattern

Impact:
- Incremental builds 3-5× faster for typical asset changes
- -30 lines GPU/3D source duplication
- -43 individual test dependency declarations
- 33/34 tests passing (1 pre-existing AudioEngineTest failure)

Phase 3 (Effect Decoupling): Deferred as TODO
- Would eliminate demo_effects.h hub pattern
- Requires dual-mode implementation (dynamic dev, flat production)
- Not blocking current workflow

Updated Documentation:
- doc/CMAKE_MODULES.md: Added demo_add_asset_deps() docs
- doc/BUILD.md: Documented asset category system

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>CNN v2: bilinear mip-level sampling and UI improvements</title>
<updated>2026-02-14T06:24:51Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-14T06:22:17Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=0f53ed1ed8ed7c07cd7ea8e88e21b5be5d5494e5'/>
<id>urn:sha1:0f53ed1ed8ed7c07cd7ea8e88e21b5be5d5494e5</id>
<content type='text'>
**CNN v2 Changes:**
- Replace point sampling with bilinear interpolation for mip-level features
- Add linear sampler (binding 6) to static features shader
- Update CNNv2Effect, cnn_test, and HTML tool

**HTML Tool UI:**
- Move controls to floating bottom bar in central view
- Consolidate video controls + Blend/Depth/Save PNG in single container
- Increase left panel width: 300px → 315px (+5%)
- Remove per-frame debug messages (visualization, rendering logs)

**Technical:**
- WGSL: textureSample() with linear_sampler vs textureLoad()
- C++: Create WGPUSampler with Linear filtering
- HTML: Change sampler from 'nearest' to 'linear'

handoff(Claude): CNN v2 now uses bilinear mip-level sampling across all tools
</content>
</entry>
<entry>
<title>ignore validation results</title>
<updated>2026-02-12T13:00:45Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-12T13:00:45Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=1effb125973ac0948de3015be1d53ae72463858b'/>
<id>urn:sha1:1effb125973ac0948de3015be1d53ae72463858b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Add checkpointing support to CNN training script</title>
<updated>2026-02-10T09:39:25Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-10T09:39:25Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=303286f34866a232bc18e2f2932ba57718fafbd5'/>
<id>urn:sha1:303286f34866a232bc18e2f2932ba57718fafbd5</id>
<content type='text'>
- Save checkpoints every N epochs (--checkpoint-every)
- Resume from checkpoint (--resume)
- Store model, optimizer, epoch, loss, and architecture info
- Auto-create checkpoint directory

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>don't ignore assets/final</title>
<updated>2026-02-08T21:46:09Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-08T21:46:09Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=ed6070f8a27eea800f75b3eeae4df2d782363076'/>
<id>urn:sha1:ed6070f8a27eea800f75b3eeae4df2d782363076</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: Clean up generated files and update project config</title>
<updated>2026-02-08T10:44:45Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-08T10:44:45Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=93f9fa15a7bb6a5f29d82fe7037aa0dfa7c88b55'/>
<id>urn:sha1:93f9fa15a7bb6a5f29d82fe7037aa0dfa7c88b55</id>
<content type='text'>
- Remove src/generated/ directory to avoid committing generated code.
- Update .gitignore to exclude src/generated/.
- Stage modifications made to audio tracker, main, and test demo files.
</content>
</entry>
<entry>
<title>refactor(3d): Split Renderer3D into modular files and fix compilation.</title>
<updated>2026-02-08T08:46:31Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-08T08:46:31Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=3252fff7aa131eaf826db19eede82ee9e70fecf5'/>
<id>urn:sha1:3252fff7aa131eaf826db19eede82ee9e70fecf5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(audio): Add RMS normalization to spectool for consistent sample loudness</title>
<updated>2026-02-06T17:31:14Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-06T17:31:14Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=69fd884aaec5523871696149cd39aff6b10c9397'/>
<id>urn:sha1:69fd884aaec5523871696149cd39aff6b10c9397</id>
<content type='text'>
IMPLEMENTATION:
- Added --normalize flag to spectool analyze command
- Default target RMS: 0.15 (customizable via --normalize [rms])
- Two-pass processing: load all PCM → calculate RMS/peak → normalize → DCT
- Peak-limiting safety: prevents clipping by limiting scale factor if peak &gt; 1.0
- Updated gen_spectrograms.sh to use --normalize by default

ALGORITHM:
1. Calculate original RMS and peak of input audio
2. Compute scale factor to reach target RMS (default 0.15)
3. Check if scaled peak would exceed 1.0 (after windowing + IDCT)
4. If yes, reduce scale factor to keep peak ≤ 1.0 (prevents clipping)
5. Apply scale factor to all PCM samples before windowing/DCT

RESULTS:
Before normalization:
  - RMS range: 0.054 - 0.248 (4.6x variation, ~13 dB)
  - Some peaks &gt; 1.0 (clipping)

After normalization:
  - RMS range: 0.049 - 0.097 (2.0x variation, ~6 dB)  ✅ 2.3x improvement
  - All peaks &lt; 1.0 (no clipping)  ✅

SAMPLES REGENERATED:
- All 14 .spec files regenerated with normalization
- High dynamic range samples (SNARE_808, CRASH_DMX, HIHAT_CLOSED_DMX)
  were peak-limited to prevent clipping
- Consistent loudness across all drum and bass samples

GITIGNORE CHANGE:
- Removed *.spec from .gitignore to track normalized spectrograms
- This ensures reproducibility and prevents drift from source files

handoff(Claude): RMS normalization implemented and working. All samples now have consistent loudness with no clipping.
</content>
</entry>
<entry>
<title>chore: Update HANDOFF.md with Phase 1 completion details</title>
<updated>2026-02-05T18:38:58Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-05T18:38:58Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=4fd55777eb8b678297fb2efd207dc8cd509a6919'/>
<id>urn:sha1:4fd55777eb8b678297fb2efd207dc8cd509a6919</id>
<content type='text'>
Documents the completion of Task #56 Phase 1 (Audio Lifecycle Refactor):
- New components: AudioEngine and SpectrogramResourceManager
- Test suite implementation and results
- Technical debt identified
- Next steps for Phase 2-4
- Binary size impact analysis

Also adds Testing/ directory to .gitignore to prevent committing
temporary CTest data.

Status: Phase 1 complete, all 20 tests passing (100%)

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
