Communitygithub.com

sfxwright

Soundeffekte für Spiele, Filme, Video und Apps planen, erstellen, bearbeiten, prüfen und dokumentieren – mit Quell- und Lizenznachweis für jede Datei.

Was ist sfxwright?

sfxwright ist ein KI-gestütztes Skill für die professionelle Soundeffekt-Produktion, das sich nahtlos in Agenten-Workflows (z. B. Claude Code) integriert. Es führt den Agenten durch einen strukturierten achtstufigen Prozess: Lizenzprüfung, Planung als JSON-Liste, Auswahl des Synthese- oder Sampling-Wegs, Erzeugung mittels ComfyUI, Hosted-APIs oder CC0-Bibliotheken, Bearbeitung mit präzisen Effekten, automatisierte Qualitätskontrolle (Clipping, Clicks, DC-Offset, Padding, Nahtstellen), Hörkontrolle durch den Menschen und abschließende Dokumentation mit dem Befehl `ship`. Jeder Sound wird mit Quelle, Modell, Prompt, Seed, Lizenz und Bearbeitungshistorie versehen – die Metadaten liegen als Sidecar-Dateien auf der Festplatte. Das Skill vermeidet Urheberrechtsverletzungen, indem es bekannte Markenklänge ablehnt und stattdessen akustisch ähnliche, originelle Alternativen erzeugt. Es unterstützt Variation Sets, Loops, Layer und Fußschritt-Sequenzen und prüft jede Charge auf Fehler, bevor der Mensch entscheidet. Zielgruppe sind Sounddesigner und Entwickler, die reproduzierbare, lizenzkonforme und messbar saubere Soundeffekte benötigen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/m4bwav/sfxwright/tree/HEAD/skills/sfxwright

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht sfxwright?

Ergebnis: Jeder Sound ist ein Eintrag in einer sounds.json-Liste mit seinem Event, Layern, Variationen, Länge, Route und Status, und jede Datei speichert ihre Quelle, Modell, Prompt, Seed, Lizenz und Bearbeitungen. Zahlen decken Fehler auf; das Ohr eines Menschen entscheidet. Nenne, welche Sounds niemand gehört hat.

SFX bedeutet python scripts/sfx.py aus diesem Ordner (führe es aus, lies es nicht; sfx_audio.py und sfx_synth.py sind seine Module). Lies eine Referenz, wenn der Schritt sie benötigt.

Schritt 0: Frische

Lies evergreen.json. Wenn contradiction gesetzt ist oder heute am oder nach next_due liegt, sag dies in einem Satz, führe die Aufgabe aus und führe dann evergreen-refresh aus. Wenn verify_at_use wahr ist, überprüfe Modell- und Lizenzangaben erneut, bevor du dich darauf verlässt. Der ai-sfx Everscout-Beat liefert Aktualisierungen, wenn vorhanden.

Schritt 1: Rechte zuerst

  • Ein Sound aus einem benannten Film oder einer Sendung, oder ein berühmtes Soundmark (Lichtschwert, THX Deep Note, NBC-Jingle, Intel-Bong, MGM-Löwe, Netflix-Ta-dum): Lehne die Kopie in einem Satz ab und biete ein Original an, das aus akustischen Eigenschaften aufgebaut ist. Setze den Titel oder Namen weder in einen Prompt noch in eine Datei: references/rights.md.
  • commercial in der Liste entscheidet, welche Quellen erlaubt sind. Wenn der Benutzer nichts gesagt hat, setze --commercial yes, die strengere Lesart, und sag dies in einem Satz; halte nicht an, um nachzufragen.
  • Eine Datei ohne bekannte Lizenz darf nicht in ein kommerzielles Projekt. Finde ihre Quelle oder ersetze sie. Schätze nie eine Lizenz.
  • Trainiere niemals ein Modell mit oder füttere in das Training ein: Sonniss-, BOOM- oder A Sound Effect-Dateien.

Schritt 2: Planen

SFX init sounds.json --project NAME --use game --commercial yes, dann SFX add pro Sound. Ein Filmschnitt, ein Game-Design oder eine einfache Beschreibung enden alle hier: references/plan.md. Bei allem mit Achsen (Oberfläche, Kraft, Größe) führe SFX plan --axis surface=6 --axis force=3 --variations 4 --budget 100 aus, bevor du dich auf Dateien festlegst. Format: references/format.md.

Schritt 3: Route wählen

Nach Auftrag, Lizenz und Hardware: references/routes.md. Führe einmal SFX doctor aus. Nenne die Wahl und den Grund in einem Satz. Die Installation eines Nodes, einer Engine oder eines großen Modells sowie jeder kostenpflichtige API-Aufruf benötigt zuerst das Ja des Benutzers; verwende in der Zwischenzeit das Vorhandene. Nichts Erreichbares ist kein Fehler: SFX synth benötigt kein Modell, und SFX gen --workflow-out übergibt einen Workflow.

Schritt 4: Erzeugen

SFX synth list                          # jedes Rezept, seine Parameter und Materialien
SFX synth footstep --param surface=gravel --takes 6 --out takes/ --name step
SFX gen "schwere Holzkiste auf Beton fallen gelassen, toter Raum" --seconds 2 --takes 4 --out takes/ --name crate
SFX library found.wav --licence cc0 --library Freesound --title "..." --url ...
SFX register sounds.json crate takes/crate_01.flac

Prompts benennen Quelle, Material, Raum und Zeit, nicht eine Geschichte. Eine angeforderte Länge ist ein Maximum, erwarte also Padding. Angle Seeds, bevor du Wörter änderst. Frage niemals ein Modell nach einem Gehzyklus: Mache einzelne Schritte, dann SFX sequence.

Schritt 5: Bearbeiten

SFX edit (aufräumen, trimmen, ein-/ausblenden, Verstärkung, Peak, Tonhöhe, Strecken, rückwärts, falten, DC), layer, vary, sequence, loop, place, record-sheet (Plan für Sounds mit einer Aufnahme-Route), tone (gleichmäßiger, ruhiger Streck-Abschnitt, optionales Füllen; vergleiche mit check --tone-match), pop (2 Pops an Kopf und Ende eines Stems hinzufügen oder --verify). Rezepte und was jede Bearbeitung kostet: references/edit.md. Tonhöhe ist standardmäßig Varispeed; ein Stretch verschmiert einen Aufprall. Bearbeitungen führen die Herkunft weiter, und eine Quelle ohne Ableitungen lehnt sie ab. Kopiere oder benenne niemals einen Sound von Hand um: Der Sidecar bleibt zurück. Schreibe mit edit, finish oder synth --out auf den endgültigen Namen.

Schritt 6: Jede Charge prüfen

SFX check takes/*.flac --seconds 2     # Messwerte und Flags pro Datei
SFX set takes/step_*.wav               # Nah-Duplikate, Ausreißer, Lautstärke-Spanne
SFX timing walk.wav                    # zu gleichmäßig, oder ein Sample wiederholt sich
SFX sheet takes/*.wav --out sheet.png  # sieh dir die Wellenformen an

Jedes Variations-Set bekommt immer set. Ein Flag bedeutet: Hinhören; es ist kein Urteil, und ein sauberes Ergebnis bedeutet nicht, dass ein Sound gut ist. Verwerfe, was das Briefing möchte (--waive CLICK für Knistern). Was jede Zahl bedeutet und woran sie kalibriert wurde: references/thresholds.md.

Schritt 7: Hören

Zahlen können nicht sagen, ob ein Sound zu seinem Bild passt oder ein Set wie ein Objekt klingt. Lege Picks, wenn vorhanden, auf einer Askwright-Seite ab, lautstärke-angepasst (SFX review --match) und verblindet, mit Bild für Film. Andernfalls gib eine beschriftete Dateiliste und einfache Fragen aus. Halte fest, was im heard-Feld des Takes gehört wurde, und markiere den Pick mit picked: true.

Schritt 8: Fertigstellen und dokumentieren

SFX finish in out --dest game-sfx: nur Verstärkung, dann zuletzt codieren. Ein unbekanntes Ziel ist ein Fehler: Frage nach. Verwende mw.py master, wenn musicwright vorhanden ist und ein ganzer Mix ein Lautstärke-Ziel benötigt. Engines und Ziele: references/finish.md.

SFX doc sounds.json --kind cue|impl|credits, dann SFX ship sounds.json. Melde BLOCKED, CHECK oder CLEAR mit den Gründen, geschuldete Namensnennung und Laden-Offenlegung. Es ist ein Protokoll, keine Rechtsberatung.

Ausgabe

Die Route, der Listenpfad, Flags pro Charge, was gehört wurde und von wem, und die ship-Antwort, wenn etwas rausgeht.

Regeln

  • Nenne einen generierten Sound niemals aufgenommen oder KI-frei. ship listet, was offengelegt werden muss.
  • Musik mit Noten, Tonart und Tempo geht an musicwright; Dialog und sein Raumton gehen an voicewright oder cinewright.
  • Mit dem Plugin veröffentlichte Samples müssen klare Rechte haben.

Während der Arbeit: Erkenntnisse festhalten

Wenn der Benutzer dich korrigiert, ein Fehler sich wiederholt oder ein Workaround auftaucht, füge es zu LEARNINGS.md hinzu. Wenn es eine Regel als falsch erweist, korrigiere die Regel, protokolliere es in CHANGELOG.md und setze contradiction in evergreen.json.

Wartung

Evergreen-Einheit, Stufe fast; Zustand in evergreen.json. Siehe MAINTENANCE.md, RESEARCH.md, TESTS.md, evals/.

Verwandte Skills