Was macht soundtrack?
Schreiben Sie den Ton für diesen Film
Der Ton eines Films wird für diesen Film geschrieben: seine eigenen Instrumente, Rhythmus und Harmonie in Web Audio, aus dem Nichts, in window.SCORE = ac => { … } (Oszillatoren, Rauschen, Filter, Hüllkurven, Verzögerungen: was immer das Stück verlangt). Drums, ein Groove oder ein Musikbett werden auf die gleiche Weise für diesen Film geschrieben: keine zwei Filme sollten gleich klingen, weil sie eine Vorlage teilen. templates/groove.js und templates/score.js sind zwei vorgefertigte Scores, die nur verwendet werden, wenn der Benutzer danach fragt; jede Datei dokumentiert ihre Optionen.
render.mjs (aus dem javascript-animation Skill) rendert window.SCORE offline mit OfflineAudioContext, schreibt <out>.wav und muxt es in das MP4; die Live-Vorschau der Seite spielt denselben Score ab, wenn darauf geklickt wird.
Bitten Sie den Benutzer nicht, von vornherein eine Musikquelle auszuwählen. Erwähnen Sie bei der Auslieferung in einem Satz, dass auch KI-generierte Musik oder ein eigener Track funktionieren.
Wie die Musik dem Bild folgt
- Tempokarte. Jede Szene erhält eine ganze Anzahl von Takten (das Tempo kann pro Szene flexibel sein), sodass jeder Schnitt auf einem Downbeat landet.
- Markieren Sie Schnitte mit Harmonie, nicht mit Lautstärke. Jede Szene geht zur Dominante zurück, und der Schnitt kommt auf dem Tonika an. Ein lauter Akzent auf einem Schnitt (Bass + heller Glockenton gleichzeitig) wirkt wie ein Jump Scare: Benutzer meldeten einen Sprung von +7 bis +10 dB als erschreckend; +3 bis +5 dB mit einem Akkordwechsel wirken wie ein sauberer Schnitt.
- Verdünnen Sie den ersten Takt nicht, wenn es der einzige Takt vor dem ersten Schnitt ist; ein spärliches Intro, gefolgt von der vollen Textur, ist selbst ein Schreck.
- Kein zusätzlicher Akzent auf dem Downbeat des Schnitts. Selbst der normale Downbeat-Akzent (lauterer Bass + erste Note) ließ kurze Stücke über +6 dB kippen, weil der Takt davor abklingt. Der Akkordwechsel reicht aus.
- Zählen Sie auch harte Schnitte innerhalb einer Szene. Fügen Sie sie in
window.CUESein, damit sie denselben Downbeat erhalten. - Geben Sie dem Auge etwas, woran es sich festhalten kann. Legato-Musik ohne Percussion hat keine Akzente, auf denen Schnitte landen können. Bei einem gleichmäßigen Groove sind Akzente Teil des Rhythmus und erschrecken nicht (der Check vergleicht mit den letzten Sekunden, nicht mit einem isolierten leisen Moment).
- Führen Sie Schichten ein, ein oder zwei pro Takt. Kick und Bass, die nach einem leisen Intro zusammen einsetzen, maßen +11 dB (erschreckend); um einen Takt versetzt, +3,5 dB.
- Verwenden Sie eine Pause. Alles für einen Takt auf Stille zu schneiden, bevor der Höhepunkt kommt, ist der stärkste Beat in einem Kurzfilm.
sync-checkakzeptiert einen Schnitt in die Stille als auf dem Beat.
Andere Quellen (nur auf Anfrage)
- KI-generierte Musik (z. B. Lyria via OpenRouter): siehe
references/ai-music.md. - Der eigene Track des Benutzers: muxen Sie ihn mit ffmpeg.
Bei Musik, die Sie nicht kontrollieren, kehren Sie die Richtung um: das Bild folgt der Musik. Rendern, muxen, den Check durchführen, dann die Szenengrenzen in der SCENES-Tabelle der Seite um die gemeldeten Versätze verschieben und erneut rendern. Dies ist kostengünstig, da jede Szenenfunktion die lokale Zeit (0 an ihrem eigenen Start) erhält, wie der Starter geschrieben ist: Das Verschieben einer Grenze berührt nie den Szenencode.
Immer: Überprüfen
node scripts/sync-check.mjs piece.mp4 --cues-file piece.cues.json # überprüft die deklarierten CUES (bevorzugt)
node scripts/sync-check.mjs piece.mp4 # Fallback: erkennt Schnitte im Bild (schnelle Kamerabewegungen können als Schnitte gelesen werden)
Für jedes Ereignis gibt es den Versatz zum nächsten starken Audio-Onset und den Lautstärkesprung hinein aus. Es schlägt fehl bei OFF-BEAT (mehr als ±100 ms, ~3 Frames) oder STARTLE (mehr als +6 dB gegenüber der Sekunde davor). Die erste Sekunde und das letzte Fade werden übersprungen (kein "davor" zum Vergleich; ein Fade-Out ist kein Schnitt). "Stark" bedeutet prominent unter den Onsets innerhalb von ±2 s, sodass Akzente in leisen Passagen immer noch zählen; ein Schnitt in die Stille zählt als Landung; Musik, die nach einer Pause zurückkehrt, wird mit dem typischen Pegel der letzten 4 s verglichen. Ein Video ohne Audiostream wird als solches gemeldet. Fügen Sie in window.CUES jeden Schnitt plus jeden In-Szene-Treffer ein, den Sie überprüft haben möchten (ein harter Schnitt innerhalb einer Einstellung, der Einschlag eines Gags). Korrigieren und erneut ausführen, bis es bestanden wird, oder bis jeder verbleibende STARTLE ein bewusster Stinger ist, den Sie benennen können (ein Comedy-Einschlag soll herausstechen; ein Wiegenlied-Schnitt nicht).
Grenzen
Code-synthetisiert: Spieluhren, klavierartige Zupfer, Pads, Glocken, sanfte Percussion sind in Ordnung. Realistische Stimmen, Orchester und Genre-Produktion sind nicht möglich; verwenden Sie dafür KI-Musik oder einen echten Track.