Was macht Song-Edit-Analyse?
Überblick
Nutze dieses Skill, um einen Song in praktische Editing-Intelligenz zu verwandeln: Tempo, Beat-Raster, Abschnittskarte, Energiekurve, Schnittprioritäten, Footage-Fit-Notizen, Timeline-Marker und ein agentenorientiertes Footage-Selektions-Briefing.
Das gebündelte Script ist der Standardpfad, da es die Analyse reproduzierbar hält und sowohl menschen- als auch maschinenlesbare Ausgaben liefert.
Workflow
- Bestätige den Audiodateipfad und erstelle einen Ausgabeordner für die Ergebnisse.
- Stelle sicher, dass die Python-Abhängigkeiten verfügbar sind:
librosa,numpy,scipy,matplotlib,pandas,scikit-learnundsoundfile. - Führe
scripts/analyze_song_for_editing.py <audio-file> --out <output-folder>aus. - Untersuche das generierte Energie-Zeitliniendiagramm und die Abschnitts-CSV. Wenn die automatische Abschnittsbildung einen belebten Abschnitt übermäßig aufteilt, synthetisiere eine vereinfachte Makro-Abschnittskarte in der endgültigen Antwort oder einer separaten Markdown-Datei.
- Verwende das Agenten-Footage-Briefing, wenn ein anderer Agent Clips auswählt, einen Schnitt zusammenstellt oder Footage-Kandidaten bewertet.
- Für die weitere Produktion verwende
$footage-review-packzur Kuratierung der Quellen,$beat-synced-montage-builderzur Erstellung des Schnitts und$edit-delivery-qazur Überprüfung des endgültigen Renderings.
Script-Ausgaben
Für eine Eingabe namens my_song.mp3 schreibt das Script:
my_song_beats.csv: jeder erkannte Beat mit Zeit, geschätzter Takt/Beat-Position, Energie, Bass, Helligkeit, Transientenstärke und Schnittpriorität.my_song_cut_markers_30fps.csv: primäre und sekundäre Schnittmarker mit 30fps-Zeitcode und prägnanten Marker-Notizen.my_song_sections.csv: erkannte Strukturbereiche mit durchschnittlicher Energie, Klangcharakter, Footage-Fit und Schnittstrategie.my_song_phrases.csv: 8-Beat-Phrasen-Editiernotizen.my_song_energy_timeline.png: Wellenform, Energiekurve, Footage-Hinweise und erkannte Abschnitte.my_song_editing_guide.md: menschenlesbare Editier-Anleitung.my_song_agent_footage_brief.json: strukturierte Footage-Auswahlanweisungen für einen anderen Agenten.my_song_analysis.json: maschinenlesbare Gesamtzusammenfassung.
Onset-gebundene Schnittraster (v2-Engine, bevorzugt für dichten Schnitt)
Wenn der Schnitt auf jeden vom Song ermöglichten Moment (auch schnelle Ausbrüche) erfolgen soll, überspringe die Marker-Schwellenwerte und erstelle ein rohes Onset-Raster:
env = librosa.onset.onset_strength(y=y, sr=sr, hop_length=512)
onsets = librosa.onset.onset_detect(onset_envelope=env, sr=sr, hop_length=512,
backtrack=False, delta=0.02, units="time")
delta=0.02 erfasst alles (0.03-0.04 für sauberere Raster). Verschmelze Onsets, die näher als 0,13s beieinander liegen, und behalte den stärkeren; quantisiere auf Frames mit int(round((t-t0)*FPS)); erzwinge einen Schnitt bei Frame 0; lasse Schnitte innerhalb von 2 Frames vom Ende fallen. Halte bei spärlichen Stellen, burst bei belebten – füge niemals Off-Grid-Füllschnitte ein. Onsets im oberen Quartil der Stärke erhalten Akzente (Punch-In-Zooms). Raste jedes geschätzte Beat-Raster auf den nächsten echten Onset ein, wenn er innerhalb von 60ms liegt (Transienten liegen bis zu ~35ms von einem gleichmäßigen Temporaster entfernt); bei Transform-/Stilwechsel-Momenten quantisiere mit floor, nicht round, damit die Änderung auf dem Frame landet, das den Transienten enthält.
Auswahl des viralen Fensters (welche 15-30s geschnitten werden sollen)
Bewerte Kandidatenfenster anhand von fünf Signalen: Wiederholung/Chorus-Artigkeit (beat-syncronisierte Chroma-Selbstähnlichkeit, Diagonale + 8 Nebendiagonalen auf Null gesetzt, Zeilenmittelwert), Energieanstieg (post_mean(4s) - pre_mean(4s) – findet Aufbau→Drop), Loop-Naht (Kosinus-Ähnlichkeit von Chroma+MFCC kurz nach dem Fensterende vs. kurz nach dem Anfang – unsichtbare Loops), Lyrik-Platzierung (eine Phrase, die innerhalb von [start-0.5, start+3.0] beginnt, verstärkt durch emotionale Wörter) und den vom Künstler selbst veröffentlichten Startzeit-Priorität. Anker = höchste Wiederholungsspitzen + höchste Energieanstieg-Beats + der Priorität, jeweils auf den Taktschlag (Downbeat) genau davor oder gerade davor eingerastet, damit der Hook früh landet. Kombiniere ungefähr 0.26*Energie + 0.20*Wiederholung + 0.18*Anstieg*2 + 0.16*Lyrik + 0.12*Loop_Naht + 0.08*Priorität; behalte die besten Fenster mit <50% Überlappung.
Hüllkurven-Folger (für kontinuierliche Effekte)
Für audio-reaktive Effekte resample die Onset-Hüllkurve auf das Frame-Raster, normalisiere mit dem 95. Perzentil, dann eine Ein-Pol-Spitzen-Halte (sofortiger Angriff, exp(-1/(fps*0.22..0.25)) Abklingen). Beat-Pulse für Punch-Zoom/Bloom: pro Beat füge amp * exp(-(t-t_beat)/0.16) hinzu, amp energiegewichtet. Halte Bass / Energie / Höhen / Transienten als separate normalisierte Kanäle – niemals eine einzelne Lautstärke-Skalierung – und lasse Onset-Ereignis-Kanäle ungeglättet. Rendere Effekte gegen genau dasselbe Start-/Dauer-Fenster wie der Schnitt, sodass Pulse und Schnitte eine Hüllkurve teilen (Synchronisation durch Konstruktion).
Interpretationsregeln
Behandle Tempo, Beats und Takte als Schätzungen, bis sie gegen die Wellenform oder nach Gehör überprüft wurden. Beat-Raster sind normalerweise gut genug für grobe Schnitte, aber die Downbeat-Kennzeichnung kann um einen Beat oder eine Phrase versetzt sein.
Verwende diese Energie-Leiter für die Footage-Auswahl:
- Energie 1 / sehr niedrig: Atmosphäre, Titel, Detailaufnahmen, langsame Schwenks, ruhige Einstellungen.
- Energie 2 / niedrig: Vorbereitung, Erwartung, Kontext, Zeitlupe, Vor-Aktion.
- Energie 3 / mittel: sichtbare Bewegung, Reaktionen, rhythmisches B-Roll, 2-4 Beat-Schnitte.
- Energie 4 / hoch: aktive Bewegung, einflussnahe Aufnahmen, schnelles B-Roll, 1-2 Beat-Schnitte.
- Energie 5 / Spitze: stärkstes Footage, Kollisionen, Enthüllungen, schnelle Whips, VFX-Treffer, schneller Wechsel, 0.5-1 Beat-Schnitte.
Verwende primäre Schnittpunkte für wesentliche Subjektwechsel, Einschläge, harte Schnitte, Enthüllungen, Speed-Ramp-Landungen und Titel-Treffer. Verwende sekundäre Schnittpunkte für Kamerawinkelwechsel, Fortsetzungsschnitte, kleinere B-Roll-Wechsel und Speed-Ramp-Starts.
Agenten-Footage-Auswahl
Wenn ein Agent Footage auswählen soll, übergib ihm *_agent_footage_brief.json plus ein verfügbares Footage-Inventar. Weise den Agenten an:
- Markiere jeden Kandidatenclip mit
content_typeaus der Brief-Taxonomie. - Bewerte jeden Kandidatenclip mit
motion_intensityvon 1-5. - Passe die Clip-Intensität an das
energy_leveljedes Abschnitts an, mit einem Spielraum von plus/minus 1, es sei denn, der Schnitt benötigt bewussten Kontrast. - Reserviere
peak_impactund Bewegungsintensität 5 Clips für den energiegeladensten Abschnitt. - Setze Subjektwechsel, Einschläge und Enthüllungen auf primäre Schnittpunkte.
- Verwende kürzere Dauern, engere Zuschnitte, Speed Ramps oder wiederholte Einschlagdetails, wenn das verfügbare Footage weniger intensiv ist als die Musik.
Benutzerorientierte Anleitung
Gib immer eine präzise Makrokarte zusätzlich zu den Rohdaten an. Redakteure benötigen musikalisches Urteilsvermögen, nicht nur eine Liste von Beats. Hebe hervor:
- Wo Aufnahmen gehalten werden sollten.
- Wo die ersten bedeutenden rhythmischen Schnitte beginnen.
- Wo der Drop oder Höhepunkt beginnt.
- Welcher Abschnitt das beste Footage verdient.
- Die stärksten Schnittpunkte mit Zeitstempel.
- Eventuelle Unsicherheiten, insbesondere wenn die Abschnittserkennung übermäßig aufteilt oder der Downbeat versetzt sein könnte.
Nachgelagerte Skills
Dieses Skill produziert die musikalische Intelligenz. Verwende die Begleit-Skills für den restlichen wiederholbaren Workflow:
$footage-review-pack: Erstelle Shortlists, Review-Galerien, Manifeste und Quellenherkunft.$beat-synced-montage-builder: Ordne Footage den Schnittmarkern zu und rendere Social-Montage-Varianten.$edit-delivery-qa: Überprüfe endgültige Renderings, Kontaktbögen, Timeline-Dichte und Lieferbereitschaft.