Every change to the path rewrites this script. Edit it by hand and apply only if you need something the path cannot say.
Everything editable — each clip's path, length and parts, the settings, the labels — as the rows of cardiac_player_clips, cardiac_player_settings and cardiac_player_labels (see supabase/migrations/20260909090000_cardiac_player.sql).
Every line is @time action options — the time is seconds from the start of the clip. Lines can be in any order; comments start with #.
Actions that move ions take dur= (how long the whole action takes) and ecg= (how many ECG-seconds pass during it — 0.14 over the L-type entry puts the QRS while the ball is in the channel; 0.2 during a release is the plateau; 0.35 during SERCA is the T wave). Between actions the strip runs at the last ecg speed=: real, slow, paused, or a number. A hold freezes it for its length; afterwards it goes on at that speed. The strip starts empty and is drawn as the clip plays — nothing from before its start is shown.
Keys: Space play / pause · R restart · ← → previous / next moment · H clean view · F fullscreen · Home start.
To record: press H then F so only the animation is on screen, start your screen recorder and press Space. Tick Stop at each moment first if you want the clip to wait at every caption while you talk.