feat(remotion): audio layer — self-authored music bed + transition SFX in FlexStory
Adds audio to the scene engine without any third-party/geo-blocked sourcing: the beds + SFX are synthesized with ffmpeg, so they're license-free (CC0, self-authored) and need no acquisition — the same play as self-authoring Lottie. - public/audio/: music-ambient.mp3 (soft 3-tone pad, looped) + sfx-whoosh/pop/chime. - FlexStory: optional music/musicVolume/sfx props (optional so the existing render binding needs no change). Renders <Audio loop> for the bed + a whoosh at each scene start and a chime on the final scene, driven by precomputed scene starts. - check-assets: now also scans public/audio (+ lottie) with folder-prefixed keys; assets.json ledgers the 4 audio files (CC0 self-authored). Verified: tsc clean; a 6s FlexStory render produces an MP4 with a real audio stream (ffprobe: codec_type=audio). NOTE: these are placeholder/SFX-grade; a premium curated music library (by vibe) is a separate sourcing sweep, and the studio music picker → FlexStory `music` prop is a follow-up wiring. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -358,5 +358,45 @@
|
||||
"generator": "createAvatar(openPeeps,{seed:'flatrender-peep-30'})",
|
||||
"url": "https://www.dicebear.com/styles/open-peeps/",
|
||||
"vendored": "2026-06-22"
|
||||
},
|
||||
"audio/music-ambient.mp3": {
|
||||
"source": "FlatRender (self-authored, ffmpeg synthesis)",
|
||||
"license": "CC0-1.0",
|
||||
"license_class": "CC0",
|
||||
"commercial_ok": true,
|
||||
"attribution_required": false,
|
||||
"ai_training_allowed": true,
|
||||
"note": "ambient pad music bed (looped)",
|
||||
"vendored": "2026-06-23"
|
||||
},
|
||||
"audio/sfx-whoosh.mp3": {
|
||||
"source": "FlatRender (self-authored, ffmpeg synthesis)",
|
||||
"license": "CC0-1.0",
|
||||
"license_class": "CC0",
|
||||
"commercial_ok": true,
|
||||
"attribution_required": false,
|
||||
"ai_training_allowed": true,
|
||||
"note": "scene-transition whoosh",
|
||||
"vendored": "2026-06-23"
|
||||
},
|
||||
"audio/sfx-pop.mp3": {
|
||||
"source": "FlatRender (self-authored, ffmpeg synthesis)",
|
||||
"license": "CC0-1.0",
|
||||
"license_class": "CC0",
|
||||
"commercial_ok": true,
|
||||
"attribution_required": false,
|
||||
"ai_training_allowed": true,
|
||||
"note": "accent pop",
|
||||
"vendored": "2026-06-23"
|
||||
},
|
||||
"audio/sfx-chime.mp3": {
|
||||
"source": "FlatRender (self-authored, ffmpeg synthesis)",
|
||||
"license": "CC0-1.0",
|
||||
"license_class": "CC0",
|
||||
"commercial_ok": true,
|
||||
"attribution_required": false,
|
||||
"ai_training_allowed": true,
|
||||
"note": "outro chime",
|
||||
"vendored": "2026-06-23"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user