Communitygithub.com

sfxwright

Planeje, crie, edite, verifique e documente efeitos sonoros para jogos, filmes, vídeos e aplicativos, mantendo a fonte e a licença de cada arquivo no disco.

O que é sfxwright?

sfxwright é uma skill para agentes de IA especializada na produção profissional de efeitos sonoros (SFX), com suporte a plataformas como Claude Code, Cursor e Codex. Ela transforma briefings, listas de cenas ou eventos de jogo em uma lista estruturada de sons, que podem ser gerados por receitas procedurais (sem necessidade de modelo), APIs de ComfyUI, serviços hospedados ou bibliotecas CC0. A skill automatiza a criação de variações, loops, camadas e sequências de passos via scripts, e realiza verificações rigorosas para detectar clipping, cliques, DC offset, cortes abruptos, padding e emendas problemáticas. Cada som é registrado em um arquivo `sounds.json` com metadados completos (fonte, modelo, prompt, semente, licença e edições), e o comando `ship` responde se o projeto está pronto para distribuição. É ideal para sound designers que precisam de um fluxo de trabalho auditável, rastreável e que respeite direitos autorais, desde a concepção até a entrega final.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que sfxwright faz?

Resultado: cada som é uma linha em uma lista sounds.json com seu evento, camadas, variações, duração, rota e status, e cada arquivo registra sua fonte, modelo, prompt, semente, licença e edições. Números detectam falhas; o ouvido humano decide. Informe quais sons ninguém ouviu.

SFX significa python scripts/sfx.py a partir desta pasta (execute, não leia; sfx_audio.py e sfx_synth.py são seus módulos). Leia uma referência quando a etapa exigir.

Etapa 0: atualização

Leia evergreen.json. Se contradiction estiver definido ou a data de hoje for igual ou posterior a next_due, informe em uma linha, execute a tarefa e então execute evergreen-refresh. Se verify_at_use for verdadeiro, verifique novamente as alegações de modelo e licença antes de confiar nelas. O everscout beat ai-sfx fornece atualizações quando presente.

Etapa 1: direitos primeiro

  • Um som de um filme ou programa nomeado, ou uma marca sonora famosa (sabre de luz, THX Deep Note, sinetas da NBC, bong da Intel, leão da MGM, ta-dum da Netflix): recuse a cópia em uma frase e ofereça um original construído a partir de características acústicas. Não coloque o título ou nome em um prompt ou arquivo: references/rights.md.
  • commercial na lista decide quais fontes são permitidas. Se o usuário não disse, defina --commercial yes, a leitura mais restritiva, e informe em uma linha; não pare para perguntar.
  • Um arquivo sem licença conhecida não entra em um projeto comercial. Encontre sua fonte ou substitua-o. Nunca adivinhe uma licença.
  • Nunca treine um modelo ou alimente um treinamento com arquivos Sonniss, BOOM ou A Sound Effect.

Etapa 2: planejar

SFX init sounds.json --project NOME --use game --commercial yes, depois SFX add por som. Um corte de filme, design de jogo ou descrição simples terminam aqui: references/plan.md. Para qualquer coisa com eixos (superfície, força, tamanho), execute SFX plan --axis surface=6 --axis force=3 --variations 4 --budget 100 antes de confirmar os arquivos. Formato: references/format.md.

Etapa 3: escolher a rota

Por trabalho, licença e hardware: references/routes.md. Execute SFX doctor uma vez. Informe a escolha e o motivo em uma linha. Instalar um nó, motor ou modelo grande, e qualquer chamada de API paga, precisa do sim do usuário primeiro; use o que estiver presente enquanto isso. Nada alcançável não é um erro: SFX synth não precisa de modelo, e SFX gen --workflow-out entrega um workflow.

Etapa 4: criar

SFX synth list                          # toda receita, seus parâmetros e materiais
SFX synth footstep --param surface=gravel --takes 6 --out takes/ --name step
SFX gen "caixa de madeira pesada derrubada em concreto, sala morta" --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 nomeiam fonte, material, espaço e tempo, não uma história. Um comprimento solicitado é um máximo, então espere padding. Pesquise sementes antes de mudar palavras. Nunca peça a um modelo um ciclo de caminhada: faça passos individuais, depois SFX sequence.

Etapa 5: editar

SFX edit (arrumar, cortar, fade, ganho, pico, pitch, esticar, inverter, convoluir, dc), layer, vary, sequence, loop, place, record-sheet (plano para sons com rota de gravação), tone (esticamento estável e silencioso, preenchimento opcional; compare com check --tone-match), pop (adicione ou --verify pops de cabeça e cauda 2 em uma stem). Receitas e o que cada edição custa: references/edit.md. Pitch é varispeed por padrão; um esticamento espalha um impacto. Edições carregam proveniência adiante, e uma fonte sem derivados recusa-as. Nunca copie ou renomeie um som manualmente: o sidecar fica para trás. Escreva no nome final com edit, finish ou synth --out.

Etapa 6: verificar cada lote

SFX check takes/*.flac --seconds 2     # leituras e bandeiras por arquivo
SFX set takes/step_*.wav               # quase duplicatas, outliers, spread de nível
SFX timing walk.wav                    # muito regular, ou uma amostra repetindo
SFX sheet takes/*.wav --out sheet.png  # veja as formas de onda

Qualquer conjunto de variações sempre recebe set. Uma bandeira significa ouvir; não é um veredito, e um resultado limpo não significa que o som é bom. Dispense o que o briefing quiser (--waive CLICK para estalo). O que cada número significa e em que foi calibrado: references/thresholds.md.

Etapa 7: ouvir

Números não podem dizer se um som se adequa à sua imagem ou se um conjunto se lê como um objeto. Coloque as escolhas em uma página askwright quando presente, com nível equalizado (SFX review --match) e às cegas, com imagem para filme. Caso contrário, dê uma lista de arquivos rotulada e perguntas simples. Registre o que foi ouvido no campo heard da gravação e marque a escolha como picked: true.

Etapa 8: finalizar e documentar

SFX finish in out --dest game-sfx: apenas ganho, depois codifique por último. Um destino desconhecido é um erro: pergunte. Use mw.py master quando musicwright estiver presente e uma mixagem inteira precisar de um alvo de loudness. Motores e destinos: references/finish.md.

SFX doc sounds.json --kind cue|impl|credits, depois SFX ship sounds.json. Relate BLOCKED, CHECK ou CLEAR com os motivos, atribuição devida e divulgação da loja. É um registro, não aconselhamento jurídico.

Saída

A rota, o caminho da lista, bandeiras por lote, o que foi ouvido e por quem, e a resposta ship quando algo está sendo enviado.

Regras

  • Nunca chame um som gerado de gravado ou livre de IA. ship lista o que precisa de divulgação.
  • Música com notas, tom e andamento vai para musicwright; diálogo e seu tom de ambiente vão para voicewright ou cinewright.
  • Amostras publicadas com o plugin devem ter direitos claros.

Enquanto trabalha: capture aprendizados

Se o usuário o corrigir, um erro se repetir ou uma solução alternativa aparecer, adicione-a a LEARNINGS.md. Se provar que uma regra está errada, corrija a regra, registre-a em CHANGELOG.md e defina contradiction em evergreen.json.

Manutenção

Unidade Evergreen, nível fast; estado em evergreen.json. Veja MAINTENANCE.md, RESEARCH.md, TESTS.md, evals/.

Habilidades Relacionadas