Was macht Music Generator?
Ein System zur prozeduralen Musikgenerierung, das durch eine strenge, messbare Pipeline originale Musik erzeugt. Alle Entscheidungen werden vom Agenten getroffen; Skripte führen sie aus. Die Pipeline verwendet objektive Messungen und Qualitätsgates anstelle von subjektivem Raten.
Verwendungszweck
Verwende diesen Skill, wenn:
- Originalmusik für Video, Spiele, Werbung, Podcasts oder Voice-Overs erstellt werden soll
- Soundtracks aus Stimmungsbeschreibungen generiert werden sollen (z.B. "spannungsgeladener cinemascher Aufbau", "ruhiges Lo-Fi")
- Instrumente aus Aufnahmen geklont werden sollen
- Vorhandene Stems gemixt oder gemastert werden sollen
- Musik zu Videos mit Schnitten/Dialog vertont werden soll
- Robotenhafte, flache oder unausgewogene Musik korrigiert werden soll
- Mit spezifischen kulturellen Stilen gearbeitet werden soll (karnatisch, arabisch, afrikanisch, ostasiatisch usw.)
Schnellstart
Führe die Skripte aus dem Skill-Verzeichnis mit seiner virtuellen Umgebung aus:
- Windows:
.venv/Scripts/python.exe - Unix:
.venv/bin/python
Erstmalige Einrichtung: siehe references/setup.md.
Arbeitsablauf
Folge diesen Schritten in der angegebenen Reihenfolge. Überspringe keine Schritte.
| Schritt | Aktion | Ausgabe | Prüfung |
|---|---|---|---|
| 1 | Projekt erstellen | python scripts/setup_project.py --new-project <verz> --title "<Titel>" (füge --ambience nur hinzu, wenn gewünscht) | Projektstruktur mit direction/, presets/, scores/, out/, reports/, STATUS.md |
| 2 | Recherche | python scripts/research_kb.py <verz> --topic "<Thema>" --tags <tags>. Füge Webquellen über TinyFish hinzu. Für Atmosphäre/Effekte verwende --sounds und dokumentiere echte Referenzen mit Lizenzen/Messungen. | reports/research_<thema>.md mit KB-Zitaten und Quellen |
| 3 | Richtungsblatt | Kopiere templates/direction_sheet.json nach <verz>/direction/direction_<titel>.json. Fülle alle Felder gemäß references/music-direction.md. Für Video führe zuerst scripts/video_score.py aus. | Vollständiges Blatt mit job, feel, sections, motifs, hits, mix_intent, spatial_staging |
| 4 | Presets erstellen | python scripts/presets.py scaffold instruments/vocals/environments/sfx <name> --project <verz>. Jedes benötigt eine eindeutige räumliche Platzierung. | Presets im Projekt mit Charakter, spatial.azimuth/distance |
| 5 | Partitur schreiben | Erstelle <verz>/scores/<titel>_score.json (deklarativ, verweist auf Presets). Verwende templates/custom_score_template.py für genaue Kontrolle. | Gültiges JSON mit Spuren, die auf Presets verweisen |
| 6 | Rendern & prüfen | python scripts/pipeline.py <verz>/scores/<titel>_score.json --project <verz> | out/master.wav (eine Kopie der neuesten Version), out/master_vNN.wav, out/versions.json, <master>.json Tags, stems/, midi/, reports/ci_report.json mit 0 FAIL |
| 7 | Überarbeiten | Ändere GENAU EINEN Hebel nach dem anderen (references/music-direction.md §6). Wiederhole Schritt 6, bis alle Prüfungen grün sind (maximal 5 Versuche). | Alle Gates bestanden |
| 8 | Anhören & ausliefern | python scripts/listen.py out/master.wav --direction direction/<blatt>.json | Überprüfen und Ergebnisse melden |
Auslieferungsmetadaten und Versionen
Die Zertifizierung schreibt nach Bestehen des musikalischen Gates automatisch drei Dinge:
out/master_vNN.wav– jede zertifizierte Wiedergabe erhält eine eigene Versionsdatei. Ältere Versionen bleiben erhalten; ein erneutes Rendern überschreibt niemals eine.out/master.wav– eine Kopie der neuesten Version, für Werkzeuge, die eine einzelne Master-Datei erwarten.out/versions.json– jede Version mit Zeitstempel, Messungen und der Änderung, die sie eingebracht hat (die behobenen Gate-Fehler odererste zertifizierte Wiedergabe).out/master.json– die standardmäßigen Tags neben der Master-Datei.
Woher die Tags kommen: Standardwerte in presets/metatdats/metadata.json (Künstler, Album, Urheberrecht, Lizenz, Verlag, ISRC, Sprache), dann vom Partitur abgeleitete Werte (Titel, Genre von piece_type, Jahr, ein sachlicher Kommentar Tonart · BPM · piece_type), dann überschreiben die eigenen <projekt>/metadata.json-Werte. Schreibe echte Werte in <projekt>/metadata.json und nicht in Skripte.
Regeln für einen Agenten:
- Lösche oder überschreibe niemals eine
master_vNN.wavoder einenversions.json-Eintrag. Wenn eine Auslieferung einen sauberen Take benötigt, wird daraus eine neue Version. - Überprüfe den Eintrag nach einem Rendervorgang:
python scripts/helpers/version_manager.py list --project <verz>. - MP3-Kompression ist manuell, niemals Teil der Pipeline:
python scripts/helpers/compress_mp3.py out/master_vNN.wav -o <datei>.mp3 -b 320k. Die Sidecar-Tags werden in die MP3 übernommen. - Die Gate-Zeilen
meta.tagsundmeta.versionprotokollieren nur diesen Eintrag. Sie warnen, schlagen nie fehl und sind beim ersten Rendern eines StücksINFO.
Grundprinzipien
- Modular: Klang/Raum in
presets/, Noten inscores/, Absicht indirection/. Keine monolithischen Skripte. - Recherchegetrieben: Jedes benutzerdefinierte Instrument/Gesang/Kultur benötigt KB-Recherchezitate.
- Daten vor Code: Neue Klänge verwenden Szenendaten (
"scene"/"scene_layers"), keine Python-Generatoren. - Eine Änderung nach der anderen: Beim Beheben von Gate-Fehlern genau einen Parameter ändern und erneut messen.
- Messen, nicht raten: Pipeline-Metriken und Diagnosen verwenden. Geschmack wird nicht gemessen.
- Jedes Stück bekommt ein Mix-Preset: Steuert Gain-Staging, Dynamik, Sidechain, Mastering.
Routen nach Aufgabe
| Aufgabe | Wichtige Referenzen |
|---|---|
| Videoscoring/Schnitte | references/video-scoring.md, scripts/video_score.py |
| Gesang/Chöre/Hums | references/vocals-and-choirs.md, references/vocal-engine.md |
| Kulturelle Stile/Fusion | knowledgebase/README.md, references/cultural-soul.md, references/genre-fusion.md |
| SFX/Atmosphäre/Foley | references/sound-effects.md, references/physical-scene.md, references/environments-as-presets.md |
| SFZ-Orchester | references/sfz-libraries.md, scripts/sfz_libs.py |
| Instrumentenklonen/Extraktion | references/instrument-cloning.md, references/extraction.md |
| Mixing/Mastering | references/mixing-and-mastering.md, scripts/mixer.py, scripts/mix_diagnostics.py |
| Gate-Fehler | references/quality-gate.md, scripts/gate_profiles.py |
Ausgabevorlage
Fertig: out/master.wav (Xs, -X.X LUFS, -X.X dBTP), midi/<titel>_score.mid, stems/ (N), reports/ci_report.json.
Was es ist: <Stimmung, Tonart, BPM, Instrumente, Presets>.
Gates: <N bestanden, 0 fehlgeschlagen nach K Versuchen>; anhören: <Messwerte>.
Nicht geprüft: Geschmack, Realismus echter Instrumente, Passung im endgültigen Video.
Nächstes: <eine vorgeschlagene Änderung>.
Hinweise & Grenzen
- Standardmäßig wird GM SoundFont verwendet; SFZ-Bibliotheken sind optional. Keine gesungenen Wörter in der Standardsynthese (Chöre/Hums sind Texturen).
listen.pybenötigt das earshot-Modell (python scripts/setup_project.py --earszum Installieren).- Kopfhörer-Spatialisierung nur für Presets mit
spatial.binaural: true. - Mix-Diagnosen berichten, blockieren aber keine Gates (blockierende Gates sind im Qualitätsgate).
- Siehe
AGENTS.mdfür vollständige Regeln undreferences/troubleshooting-and-limits.mdfür alle Einschränkungen.