[laneB] M4-B model: audio mutators, morphs track eval, importRhubarb
- timeline.js: morphs track kind evaluated via stage.setMorph (lerp per viseme
name), audio mutators addAudio/moveAudio/setAudioGain/removeAudio (undo-able),
importRhubarb(id, json, t0) mapping mouthCues → morph keys (per-cue ramp),
load() ensures scene.audio[], addKey keyed by (t,name) for morphs too.
- stagestub.js: setMorph (records) + visemeTargets seam.
- timeline_test.mjs: morph lerp, rhubarb keys, audio mutators + undo round-trip.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>