Feat: really good lookahead mechanism for scheduling

This commit is contained in:
2026-02-04 20:28:42 +01:00
parent 467c504071
commit a943d9622e
5 changed files with 128 additions and 122 deletions

View File

@@ -8,10 +8,10 @@ All notable changes to this project will be documented in this file.
- TachyonFX based animations
### Removed
- Removed lookahead from sequencer; event timing now uses `engine_time + time_delta` directly.
### Changed
- Sequencer rewritten with prospective lookahead scheduling. Instead of sleeping until a substep, waking late, and detecting past events, the sequencer now pre-computes all events within a ~20ms forward window. Events arrive at doux with positive time deltas, scheduled before they need to fire. Sleep+spin-wait replaced by `recv_timeout(3ms)` on the command channel. Timing no longer depends on OS sleep precision.
- `audio_sample_pos` updated at buffer start instead of end, so `engine_time` reflects current playback position.
- Doux grace period increased from 1ms to 50ms as a safety net (events should never be late with lookahead).
- Flattened model re-export indirection; `script.rs` now exports only `ScriptEngine`.
- Hue rotation step size increased from 1° to 5° for faster adjustment.
- Moved catalog data (DOCS, CATEGORIES) from views to `src/model/`, eliminating state-to-view layer inversion.