Skip to content

Engine v2.7

Latest

Choose a tag to compare

@DozenTwelve DozenTwelve released this 27 Oct 11:47
· 74 commits to main since this release
68e97b4

Engine v2.7

The engine keeps its internals to itself, beats can be silent or held to a minimum, and music can be set up before the beats. Books made with v2 need no change.

Private internals

  • The engine body runs in a closure. The 117 documented API names stay global; 67 internal names (clock, fit, frame, last, ui, segs, frameStep, …) are private, so a chapter can declare its own without "Identifier already declared" and a blank page. engine.md lists every global name.

Beats

  • Silent beats: { dur: s } on a beat with no clip and no TIMINGS entry (a series card without voice no longer needs a silent clip).
  • { minDur: s }: the least a beat lasts, for mirrored beats that must match.
  • ?lengths prints each beat's voice length against its real length, to find beats a tween past D lengthened.

Sound

  • music() and sfx() may be called before BEATS exists.

Checked

  • Full suite: 141 of 143 pass, plus the known, unrelated failure; after rebasing onto main, walk_pages walks all 118 pages with no errors.
  • Old against new engine: every beat of 125 chapters in 12 books seeked; every chapter's total length identical, no new page errors. SCORM still reports the finish.

Syncing

engine.py in the Skill syncs from the latest compatible release, now engine-v2.7.