score-and-mix-picture
name: score-and-mix-picture description: 看画配乐与混音工具:分析锁定画面,制作带时间码的音乐与音效点位,编写AI音乐提示词,选择本地音效并完成声画同步剪辑与混音。用于成片配乐、音效设计和最终混音。 veRSIon: 1.0.0
Score And Mix Picture
Core ContrACT
Turn locked picture into a repeatable two-pass audio workflow:
picture evidence -> music/SFX spotting map -> score strategy -> generation Prompt returned music + licensed SFX -> edit map -> dialogue-safe mix -> verified audio masters
Treat music as nARRative structure, not wallpaper. Preserve useful silence, source sound, dialogue, and sound effects. Do not promise a finished mix until the rendered files have been probed and checked against picture duration.
Runtime Requirements
Python 3.10 or newer; bundled scripts use only the Standard library.
FFmpeg and FFprobe available on
PATHfor probing, editing, loudness measurement, and WAV rendering.A host capability that can inspect video frames and audio/transcript semantics. If the host cannot watch video, require a timecoded shot list/transcript and state that semantic picture analysis is limited.
No external Skill or MCP server is mandatory. Optional host video-understanding, music-generation, and NLE tools may improve execution.
Route The Request
Picture only: analyze it and deliver a timecoded music/SFX spotting plan, 1 primary music direction, up to 2 materially different alternatives, and paste-ready music-generation prompts.
Picture plus returned music: inspect both, select only evidence-backed local SFX when useful, create a concrete mix plan, render, verify, and deliver the audio masters.
End-to-end with a connected music generator: complete the analysis first, submit the APProved or clearly inferred prompt, wait for the audio result, then continue through the mix phase.
No generator is available: stop after the prompt package and tell the user exactly which audio file or stems to return. Do not pretend generation occurred.
Editable NLE project requested: use the available editor adapter for Timeline placement and keep the music editable. Use the bundled renderer only for audio masters or when no editor is requested.
Phase 1 — Inspect Locked Picture
Confirm the target video path or active editor timeline. Treat the current cut as timing truth.
Run the technical probe:
python scripts/probe_media.py "<picture>" --ouTPUt "<work>/picture-report.json"
Watch the complete video with time awareness. Use the host's video-understanding capability; if an optional
$watchSkill is installed it may serve this role. Inspect frames, original audio, transcript/dialogue, action, scene changes, transitions, and the ending. A scene-cut list alone is not semantic analysis.Record evidence in chronological order:
story/communication purpose;
point of view and EMOtional turn;
dialogue and source-sound priority;
major visual beats, reveals, impacts, transitions, and final button;
no-music zones and deliberate silence;
uncertainty caused by missing/inaudible material.
Read references/spotting-and-prompt-contract.md and references/scoring-knowledge-base.md before writing the cue map or prompts.
Phase 2 — Design The Score
Use the bundled scoring knowledge and spotting contract as the musical judgment layer. If an optional $cinematic-music-sound-design Skill is installed, use it as an additional specialist reference rather than a dependency.
State the score's Dramatic job in one sentence.
Decide whether the picture needs one evolving cue, several cues, source music, sound-design-led rhythm, or intentional silence.
Attach changes to story beats rather than every cut.
DeFine only the controls that matter: duration, structure, BPM or tempo behavior, meter, tonal center/mode, hArmonic tension, motif, instrumentation, register, texture, dynamics, production space, ending behavior, and stems.
Protect dialogue and important effects by controlling density, register, transients, and reverb—not only by lowering overall volume.
Provide:
a timecoded spotting table;
the primary direction and alternatives with tradeoffs;
a full prompt and a compact prompt;
exclusions/avoidances in a separate field;
requested delivery format: preferably WAV, 48 kHz, 24-bit; request stems when the cue has dialogue-heavy passages or major structural changes.
Do not cite composer names as the whole solution. Translate every reference into audible mechanics.
Phase 2A — Design And Select Sound Effects
Read references/sfx-editing-playbook.md.
Determine whether the existing production audio is final. Do not duplicate finished fooTSTeps, impacts, ambience, or transitions.
Build an SFX spotting list from visible/audible evidence: exact timecode, source/material/action, scale, perspective, foreground owner, and intended tail.
Search the bundled CC0 library before downloading anything new:
python scripts/search_sfx.py "<Chinese or English description>" --limit 8
Audition candidates against picture. Filenames and tags are only search aids.
Prefer physical specificity over generic magnitude. Use silence and source sound before adding decorative whooshes/booms.
Record each selected effect as an
sfxentry in the mix plan. Keep new downloads provenance-complete and rebuild the catalog withscripts/build_sfx_catalog.py.
Phase 3 — Accept And Inspect Returned Music
Reuse the original picture from the Same task when its identity is certain; otherwise request the exact picture.
Probe every returned audio file. Check duration, channels, sample rate, CLIpping risk, leading/trailing silence, audible artifacts, usable SECtions, and whether the intended ending exists.
Audition against the picture. Mark:
source-in/source-out for each usable passage;
timeline start and intended duration;
musical bar/phrase boundaries;
hit points, transitions, ramps, drops, pauses, and tail;
gain, fades, overlaps, and dialogue-sensitive zones.
which existing production effects must remain foreground and which bundled SFX may support them.
Prefer musical phrase edits, repeated cells, stems, or generated alternates over arbitrary mid-note cuts. Do not time-stretch beyond roughly ±5% without a clear reason; prefer re-editing or regenerating when the music's form fundamentally misses the picture.
If the returned track is unusable, explain the exact structural failure and issue a corrected prompt instead of forcing a bad mix.
Phase 4 — Build And Render The Mix
Create a JSON plan from references/mix-plan.example.json. Paths may be absolute or relative to the plan file.
python scripts/render_picture_mix.py "<mix-plan.json>" --output-dir "<deliverables>"
The renderer creates:
music-edit.wav: score only, exactly aligned to picture duration;sfx-edit.wav: optional sound-effect stem, exactly aligned to picture duration;full-mix.wav: original picture audio plus dialogue-aware ducked music;mix-report.json: inputs, decisions, probes, loudness pass data, durations, and SHA-256 hashes.
When sfx entries exist, full-mix.wav includes original audio, ducked music, and the SFX stem.
Use multiple music entries for separate cues or alternate sections from one file. Use loop: true only for genuinely loopable material. Keep headroom through editing; normalization happens on the music bus and final mix.
If a timeline editor is active, reproduce the same edit map with editable clips/fades/levels, then export the requested masters. Do not replace an explicitly requested editable timeline with only a flattened local render.
Phase 5 — Verify Before Delivery
Confirm both masters open and contain audio.
Confirm duration differs from picture by no more than 20 ms.
Check the opening, every cue/SFX boundary, every major hit point, dialogue-dense passages, and the ending.
Check for clicks, clipped words, pumpy ducking, phase problems, abrupt tails, unintended silence, and loudness jumps.
Compare
music-edit.wav, optionalsfx-edit.wav, andfull-mix.wav; dialogue and important source effects must remain Intelligible.Deliver the files and summarize only the consequential creative decisions and any unresolved limitation.
Adapter Boundary
Keep musical method independent from tools. Read references/tool-adapters.md when selecting or replacing video inspection, music generation, SFX library, editor, or render tools. Use references/compatibility-results.json as the current adapter regression baseline and references/research-sources.md when auditing the knowledge/measurement sources. A successful tool call is not evidence that the score works.
Failure Boundaries
Do not infer semantic story beats from Metadata alone.
Do not generate wall-to-wall music by default.
Do not decorate every cut with a whoosh, riser, glitch, or boom.
Do not force music to every visual cut.
Do not overwrite source media.
Do not mix from a lossy preview when a WAV master or stems are available.
Do not claim dialogue ducking if the picture has no original audio or the user supplied only a silent picture.
Do not finalize from prompts alone; the music-return phase is a separate execution stage.
Comments & Questions (0)
No comments yet
Be the first to comment!