Choose how a speaking shot's sound is made

This commit is contained in:
gator 2026-09-20 14:05:34 +00:00
parent fdef88b1eb
commit 650a8d48bd

View file

@ -1098,7 +1098,16 @@
return '<div class="fnote"><label>A note to the camera for this shot (optional) \u2014 it changes how the '
+ 'shot is filmed, not the pictures. Press \u201cFilm\u201d again afterwards.</label>'
+ '<input type="text" maxlength="500" data-filmnote="' + esc(s.id) + '" value="' + esc(s.film_note || "")
+ '" placeholder="For example: his left hand stays in his jacket pocket the whole time."></div>';
+ '" placeholder="For example: his left hand stays in his jacket pocket the whole time.">'
+ ((s.audio || []).some(function (a) { return a.lip_sync; })
? '<label style="margin-top:6px">How this shot’s sound is made '
+ '<select data-audiomode="' + esc(s.id) + '">'
+ [["copy", "Our recording, exactly (words and timing guaranteed; no room sound)"],
["layer", "Our recording, and the camera adds the sounds of the place"],
["voice", "The camera performs the line in our actor’s voice, in the place"]].map(function (o) {
return '<option value="' + o[0] + '"' + ((s.audio_mode || "copy") === o[0] ? ' selected' : '') + '>' + o[1] + '</option>'; }).join("")
+ '</select></label>' : '')
+ '</div>';
}
// Several versions of one picture, best first, each with what the checker
@ -1759,6 +1768,16 @@
}, 700);
});
document.getElementById("pane").addEventListener("change", async function (e) {
var el = e.target;
var asid = el.getAttribute && el.getAttribute("data-audiomode");
if (!asid) return;
var inp = document.querySelector('[data-filmnote="' + asid + '"]');
var r = await api("set_film_note", { draft_id: CUR, shot_id: asid, note: inp ? inp.value : "", audio_mode: el.value });
if (r.ok) { (PKG.shots || []).forEach(function (x) { if (String(x.id) === asid) x.audio_mode = el.value; });
showMsg("msg", "Saved. Press “Film it again” to hear the difference.", "ok"); }
});
var noteTimers = {};
document.getElementById("pane").addEventListener("input", function (e) {
var ta = e.target;