• cottongin released this 2026-01-18 18:04:31 -06:00 | 4 commits to master since this release

    Branding tweaks (removal of old references and update to ECHO REALITY).

    Also,

    Completed Optimizations

    JavaScript (src/app.js)

    1. Title Scroll Animation - Replaced setInterval with requestAnimationFrame and cached container/text dimensions. Dimensions are now only recalculated on track change or window resize instead of every scroll tick.

    2. Throttled timeupdate Handler - Added 200ms throttling to reduce DOM updates from ~4Hz to ~5Hz, and skips updates when formatted time hasn't changed.

    3. Cached Noise Buffers - Pre-generates click noise buffer (20ms) and tape wind noise buffer (1 second) once on AudioContext initialization, then reuses them for all sound effects.

    4. Parallel Track Duration Loading - Track metadata now loads in parallel using Promise.all() for tracks 1-4 after track 0 loads, significantly reducing total loading time.

    CSS (assets/styles.css)

    1. will-change Optimizations:

      • Added will-change: opacity to .display::after (scanlines flicker animation)
      • Added will-change: transform, opacity to .vhs-tracking.active states
    2. Dim Spots Optimization:

      • Added contain: strict to .dim-spots-container to isolate paint scope
      • Reduced dim spots from 5 to 3 (removed spots 4 and 5 and their associated keyframe animations)

    HTML (index.html)

    1. Preconnect Hint - Added <link rel="preconnect" href="https://esm.sh"> for faster simple-boost script loading.

    2. Reduced DOM Elements - Removed 2 dim-spot elements from HTML (now 3 instead of 5).

    Downloads