Communitygithub.com

Song-Edit-Analyse

Analysiere Songs und Audiodateien für beat-synchronen Videoschnitt, Clip-Timing, Energie-Mapping, Auswahl viraler Fenster, onset-gebundene Schnittraster, Footage-Auswahl und agentenlesbare Edit-Briefings.

Was ist Song-Edit-Analyse?

Dieses Skill verwandelt einen Audiotrack in praktische Editing-Intelligenz: Tempo, Beat-Raster, Abschnitts-Karte, Energie-Kurve, Schnittprioritäten, Footage-Fit-Notizen, Timeline-Marker und ein agentenlesbares Footage-Selektions-Briefing. Es unterstützt MP3/WAV/M4A-Dateien und erzeugt strukturierte Ausgaben wie Beat-CSV, Schnittmarker, Abschnittsübersichten, Energie-Zeitliniendiagramme und maschinenlesbare JSON-Zusammenfassungen. Der integrierte Python-Script (`scripts/analyze_song_for_editing.py`) führt die Analyse mit Bibliotheken wie librosa, numpy, scipy, matplotlib, pandas, scikit-learn und soundfile durch. Die Version 2 (Onset-Locked Cut Grids) ermöglicht dichten Schnitt auf jedem transienten Ereignis, während die virale Fensterauswahl die besten 15-30 Sekunden für Kurzformate ermittelt. Das Skill ist ideal für Entwickler und KI-Agenten, die automatisiert Videoschnitt-Workflows steuern oder mit anderen Skills wie `$footage-review-pack` und `$beat-synced-montage-builder` kombinieren möchten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BusyBee3333/viral-video-edit-skills/tree/main/skills/song-edit-analysis

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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

  1. Bestätige den Audiodateipfad und erstelle einen Ausgabeordner für die Ergebnisse.
  2. Stelle sicher, dass die Python-Abhängigkeiten verfügbar sind: librosa, numpy, scipy, matplotlib, pandas, scikit-learn und soundfile.
  3. Führe scripts/analyze_song_for_editing.py <audio-file> --out <output-folder> aus.
  4. 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.
  5. Verwende das Agenten-Footage-Briefing, wenn ein anderer Agent Clips auswählt, einen Schnitt zusammenstellt oder Footage-Kandidaten bewertet.
  6. Für die weitere Produktion verwende $footage-review-pack zur Kuratierung der Quellen, $beat-synced-montage-builder zur Erstellung des Schnitts und $edit-delivery-qa zur Ü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:

  1. Markiere jeden Kandidatenclip mit content_type aus der Brief-Taxonomie.
  2. Bewerte jeden Kandidatenclip mit motion_intensity von 1-5.
  3. Passe die Clip-Intensität an das energy_level jedes Abschnitts an, mit einem Spielraum von plus/minus 1, es sei denn, der Schnitt benötigt bewussten Kontrast.
  4. Reserviere peak_impact und Bewegungsintensität 5 Clips für den energiegeladensten Abschnitt.
  5. Setze Subjektwechsel, Einschläge und Enthüllungen auf primäre Schnittpunkte.
  6. 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.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

beat-synced-montage-builder

Build beat-synced social video montages from song-analysis outputs and source footage. Use when an agent needs to assemble, plan, or revise a music-timed edit; map footage to beats/onsets/cut markers; create vertical or landscape montage timelines; integrate audio-reactive FX into shots; mix gameplay, crowd, concert, nature, menu, or other accent footage; generate timeline CSVs, contact sheets, and edit briefs; or adapt the Conteto Machino / Smash Mash workflow for another song or footage library.

edit-delivery-qa

Verify final video edits before delivery. Use when an agent needs to inspect a rendered MP4/MOV/WebM, confirm duration/resolution/frame rate/audio, generate or review contact sheets, analyze timeline CSVs, check cut density/source mix, check FX integration and cohesion, verify text-to-beat sync, catch weak frames or accidental placeholders, and decide whether a beat-synced social edit is ready to show.

generated-media-sourcing

Generate or plan media assets for beat-synced edits when real footage is missing or the user asks for generated visuals - AI video (Gemini/Veo/Flow), AI images, or procedural audio-reactive GPU renders (tunnels, portals, kaleidoscopes, starbursts, mandalas, title pieces via Python+moderngl GLSL). Use with beat-synced-montage-builder when a montage needs generated clips, stills, or procedural audio-reactive elements instead of, or alongside, sourced footage.

viral-video-edits

End-to-end system for making S-tier beat-synced short-form music video edits — song analysis, viral window selection, footage sourcing with shot-level QA, hook writing, onset-locked cutting, integrated audio-reactive FX (person mattes, procedural GLSL renderers, cinematic grade), and delivery QA. Use this whenever the user asks to make a video edit, music video, reel, TikTok/Shorts/vertical video, beat-synced montage, lyric/hook video, audio-reactive visual, tunnel/portal/kaleidoscope render, or to promote a song with video content — even if they don

Verwandte Skills