diff --git a/skills-manifest.json b/skills-manifest.json index fb62ea64d..82e22e1c5 100644 --- a/skills-manifest.json +++ b/skills-manifest.json @@ -6,7 +6,7 @@ "files": 144 }, "faceless-explainer": { - "hash": "a8f964f864ee3a14", + "hash": "09bc257e79dabebc", "files": 18 }, "figma": { @@ -46,7 +46,7 @@ "files": 10 }, "media-use": { - "hash": "74d80350ba0bccd9", + "hash": "f6f3af6648b1bd81", "files": 122 }, "motion-graphics": { @@ -54,15 +54,15 @@ "files": 23 }, "music-to-video": { - "hash": "901a19d0680f8c1b", + "hash": "5bb405421a7e19ba", "files": 132 }, "pr-to-video": { - "hash": "da8e3cbebcd4b674", + "hash": "a93fde2b33b26e75", "files": 22 }, "product-launch-video": { - "hash": "a88df1784155ace4", + "hash": "14404973ef5d38a0", "files": 20 }, "remotion-to-hyperframes": { diff --git a/skills/faceless-explainer/scripts/assemble-index.mjs b/skills/faceless-explainer/scripts/assemble-index.mjs index 06b910b38..1bdfca1d1 100644 --- a/skills/faceless-explainer/scripts/assemble-index.mjs +++ b/skills/faceless-explainer/scripts/assemble-index.mjs @@ -55,6 +55,7 @@ import { parseStoryboard } from "./lib/storyboard.mjs"; import { parseFormat } from "./lib/dimensions.mjs"; import { stageAssets } from "./lib/assets.mjs"; import { parseColors, semanticColors } from "./lib/tokens.mjs"; +import { bgmDefaultVolume } from "../../media-use/audio/scripts/lib/bgm.mjs"; // ---------- argv ---------- const argv = process.argv.slice(2); @@ -388,9 +389,9 @@ if (audio.bgm?.path) { `bgm is ${cov.dur?.toFixed?.(1) ?? "?"}s (< ${TOTAL}s) and could not be extended (${cov.reason}) — the tail will be silent; install ffmpeg`, ); } - // An explicit volume from audio_meta always wins. Otherwise BGM under - // narration is a bed (0.12 ≈ -18 dB); a silent film sits it forward at 0.9. - const vol = audio.bgm.volume != null ? audio.bgm.volume : voiceCount > 0 ? 0.12 : 0.9; + // An explicit volume from audio_meta always wins; otherwise the shared + // media-use default (bed ~ -18 dB under narration, forward for a silent film). + const vol = audio.bgm.volume != null ? audio.bgm.volume : bgmDefaultVolume(voiceCount > 0); body.push( ` `, ` 0 ? 0.8 : 0.9; diff --git a/skills/pr-to-video/scripts/assemble-index.mjs b/skills/pr-to-video/scripts/assemble-index.mjs index 06b910b38..1bdfca1d1 100644 --- a/skills/pr-to-video/scripts/assemble-index.mjs +++ b/skills/pr-to-video/scripts/assemble-index.mjs @@ -55,6 +55,7 @@ import { parseStoryboard } from "./lib/storyboard.mjs"; import { parseFormat } from "./lib/dimensions.mjs"; import { stageAssets } from "./lib/assets.mjs"; import { parseColors, semanticColors } from "./lib/tokens.mjs"; +import { bgmDefaultVolume } from "../../media-use/audio/scripts/lib/bgm.mjs"; // ---------- argv ---------- const argv = process.argv.slice(2); @@ -388,9 +389,9 @@ if (audio.bgm?.path) { `bgm is ${cov.dur?.toFixed?.(1) ?? "?"}s (< ${TOTAL}s) and could not be extended (${cov.reason}) — the tail will be silent; install ffmpeg`, ); } - // An explicit volume from audio_meta always wins. Otherwise BGM under - // narration is a bed (0.12 ≈ -18 dB); a silent film sits it forward at 0.9. - const vol = audio.bgm.volume != null ? audio.bgm.volume : voiceCount > 0 ? 0.12 : 0.9; + // An explicit volume from audio_meta always wins; otherwise the shared + // media-use default (bed ~ -18 dB under narration, forward for a silent film). + const vol = audio.bgm.volume != null ? audio.bgm.volume : bgmDefaultVolume(voiceCount > 0); body.push( ` `, ` 0 ? 0.12 : 0.9; + // An explicit volume from audio_meta always wins; otherwise the shared + // media-use default (bed ~ -18 dB under narration, forward for a silent film). + const vol = audio.bgm.volume != null ? audio.bgm.volume : bgmDefaultVolume(voiceCount > 0); body.push( ` `, `