12 · Sounddesign und Mix
Anweisung des Besitzers (Runde 1): „leichte Soundeffekte bei jeder Aktion, einfach alles.“ Das Effekt-Design folgt earshots dokumentierter Motion-Design-Praxis (github.com/Leonxlnx/earshot, MIT; docs/motion-sfx-techniques.md, docs/SFX.md); unser Code in recipe/tools/sound.py ist unser eigener und verwendet keine Samples.
Die Ebenen
| Ebene | Pegel | Notizen |
|---|---|---|
| Stimme | −16 LUFS (Sprachreferenz ≈ −19 dBFS, 400 ms RMS) | füllt 93–98 % der Laufzeit |
| Musikbett | 18 LU unter der Stimme, kein Ducking | original, in C-Dur (C–Am–F–G, 100 BPM): Marimba, gezupfter Bass, Pad, Kick, Shaker. Reduziert auf das Pad allein für den Re-Hook (musicDrop: [Start, Ende]) |
| Foley | ~15 dB unter der Stimme (Ticks ~21, Vögel ~22) | ein Geräusch bei jeder sichtbaren Aktion |
| Akzente | ~9 dB unter der Stimme | nur Handlungshöhepunkte, höchstens ~20 pro Minute, mit einem 7-dB-Musikabfall in den 0,35 s vor den größten (stop: true) |
| Master | −14 LUFS integriert, True-Peak −1,5 dBTP | zweistufige lineare Loudness-Normierung |
Die Effekte (24, in sound.py)
| Typ | Stufe | Verwendet für | Design |
|---|---|---|---|
whoosh (long: true für große Bewegungen) | Foley | Betreten eines neuen Ortes, große Kamerafahrten | Rosa Rauschen durch drei bewegte Bänder (1 : 1,6 : 2,5), die der Geschwindigkeit folgen; Pan-Sweep; Peak trifft auf das Cue |
swish | Foley | ein Arm, ein Buch, eine Geste, ein Wurf | dünner, heller Flick, 0,2 s |
pop | Foley | das Erscheinen des Titels, ein Gesichtswechsel auf einem Objekt, kleine Ankünfte | tonaler Blip, der nach oben in die Tonart aufsteigt, Tick, Tochter-Klingel |
tick | Foley | jeder Schritt eines Zählers | winziger, heller Klopfer mit variiertem Ping (Round Robin) |
tap | Foley | Landung kleiner Objekte, Beruhigung von Zählern | gedämpfter Holzblock |
flip | Foley | Kalenderblätter | Papierrascheln und -setzen |
slap | Foley | ein geklatschter Aushang oder Papier | breitbandiger Schlag und Flattern |
creak (dur) | Foley | Türen und Scharniere | Stick-Slip-Impulse durch Holzresonanzen |
click | Foley | Schalter, sich einschaltende Schilder | Drücken und Verriegeln im Abstand von 35 ms |
light | Foley | ein sich beleuchtendes Schild | sanftes Summen und eine kleine Glocke in der Tonart |
chirp | Foley | Außenleben (sparsam) | zwei kleine Vogelpfiffe |
rattle | Foley | Blätter, Schauder | gefilterte Rauschbursts mit einer Wobbelrate |
slide | Foley | ein Rutschen oder seitliches Gleiten | ein leises quietschendes Gleiten |
stretch (dur) | Foley | Gummi, eine sich spannende Schnur, eine sich biegende Oberfläche | ein steigendes, raues Knarren |
whir (dur) | Foley | ein ablaufendes Band, ein sich drehender Mechanismus | Ratschenklicks über Flattern |
chalk (dur) | Foley | Schreiben, Durchstreichen auf einer Tafel | ein kratziges Band, zerhackt durch den Strich |
roll (dur) | Foley | etwas, das rollt | tiefes Grollen mit der Rollrate plus Oberflächenticks |
thunk | Akzent | Landung eines weichen Objekts (der Apfel auf Gras) | ein dumpfer fallender Körper plus ein tiefpassgefilterter Transient |
thud | Akzent | ein schweres Setzen | Sub 90 → 42 Hz mit Körper und Transient |
slam | Akzent | sich schließende Türen | Holzkörper, Knacken, Verriegelung und ein Steinbogen-Raum-Hall |
snip | Akzent | Schneiden | zwei Klingenklicks und ein metallisches Sching |
boing | Akzent | Federn, Trampoline | ein wackelnder, fallender Ton |
twang | Akzent | eine gezupfte gespannte Saite | harmonische Teiltöne mit Tonhöhenwobbel |
ding | Akzent | eine landende Zahl, ein Erfolgserlebnis | eine C6-Glocke mit unharmonischen Teiltönen |
Um einen Effekt hinzuzufügen: schreibe fx_<Name>(rng, …), die ein Mono- oder Stereosignal mit Einheitsspitze zurückgibt (Ebenen, die gemeinsam eine Spitze erreichen, gebändert, damit sie nicht konkurrieren; ein beweglicher Filter bei allem, was sich bewegt; tonale Teile in C-Dur; keine führende Stille; eine kurze Ausblendung am Ende); füge sie zu FX, REL und entweder ACCENT oder dem Foley-Set hinzu, und zu SUSTAINED, wenn sie dur benötigt.
Cues (in film.mjs)
{ t: W(17) - LEAD, type: 'slam', gain: 1, stop: true } // ein Akzent mit einem Musikabfall davor
{ t: W(53) - 0.05, type: 'whir', gain: 0.8, dur: 1.4 } // ein anhaltender Foley-Sound
...changes(a, b, value, 0.06).map(t => ({ t, type: 'tick', gain: 0.7 })) // ein Tick bei jeder Zähleränderung
tist, wann der Angriff des Sounds auftrifft (Whooshes: wann ihr Peak liegt); der Mixer führt ihn um 10 ms vor, nie später als das Bild.gainpasst den Pegel innerhalb des Typs an (0,5 ≈ −6 dB). Jeder Cue erhält eine zufällige Variation von ±1,2 dB und ein eigenes Rauschsamen, sodass Wiederholungen nie identisch klingen.- Schreibe Cues Einstellung für Einstellung aus der Soundspalte des Storyboards. Jede sichtbare Aktion erhält einen; jeder Akzent sitzt auf einem Handlungshöhepunkt.
Pegel werden gemessen, nicht geschätzt
sound.py pegel die Stimme auf −16 LUFS, misst die Sprachreferenz (den medianen 400-ms-RMS während des Sprechens) und setzt jeden Effekt so, dass sein lautester 400-ms-Abschnitt REL[Typ] dB von dieser Referenz entfernt liegt. In Runde 1, Version 3 ergab dies für Akzente einen Median von −9 dB und für Foley −15 dB gegenüber der Stimme. Überprüfe jeden Mix mit:
python -I recipe/tools/sfx-levels.py <outDir> <outDir>/cue-sheet.txt
Ausgaben
stem-voice.wav, stem-music.wav, stem-sfx.wav, mix.wav (gemastert), cue-sheet.txt (jeder platzierte Effekt mit seiner Stufe und seinem Pegel) und das endgültige MP4 (H.264 kopiert aus dem stummen Render, AAC 192 kb/s).
Lizenzierung
Alles hier wird synthetisiert. Wenn der Besitzer einen Musiktrack bereitstellt, muss er die Lizenz dafür besitzen; setze ihn als Bettung auf −34 LUFS ohne Ducking und behalte die Effekte bei.