total playback length in seconds, from the last scheduled note's own end
stops and rewinds to the beginning
StaticcreateHumanizes first, then schedules: the one call a game needs when a file should sound played rather than played back. The constructor stays synchronous, so the async work of resolving an engine happens here instead of inside frame-time code.
Plays a parsed
MidiFileback throughmwg/audio's waveform synth, one tone per note, driven byupdate(dt)like every other dt-driven piece ofmwg/core.