¿Qué hace sfxwright?
Resultado: cada sonido es una fila en una lista sounds.json con su evento, capas, variaciones, duración, ruta y estado, y cada archivo registra su origen, modelo, prompt, semilla, licencia y ediciones. Los números detectan fallos; el oído humano decide. Indica qué sonidos nadie ha escuchado.
SFX significa python scripts/sfx.py desde esta carpeta (ejecútalo, no lo leas; sfx_audio.py y sfx_synth.py son sus módulos). Lee una referencia cuando el paso lo necesite.
Paso 0: frescura
Lee evergreen.json. Si contradiction está establecido o la fecha de hoy es igual o posterior a next_due, dilo en una línea, realiza la tarea y luego ejecuta evergreen-refresh. Si verify_at_use es verdadero, vuelve a verificar las afirmaciones sobre el modelo y la licencia antes de confiar en ellas. El latido de exploración ai-sfx proporciona actualizaciones cuando está presente.
Paso 1: derechos primero
- Un sonido de una película o programa nombrado, o una marca sonora famosa (sable de luz, THX Deep Note, sintonía de NBC, Intel bong, león de MGM, ta-dum de Netflix): rechaza la copia en una oración y ofrece un original construido a partir de rasgos acústicos. No pongas el título o nombre en un prompt o archivo: references/rights.md.
commercialen la lista decide qué fuentes están permitidas. Si el usuario no lo ha dicho, establece--commercial yes, la lectura más estricta, y dilo en una línea; no te detengas a preguntar.- Un archivo sin licencia conocida no entra en un proyecto comercial. Encuentra su origen o reemplázalo. Nunca adivines una licencia.
- Nunca entrenes un modelo con, ni alimentes para entrenamiento, archivos de Sonniss, BOOM o A Sound Effect.
Paso 2: planificar
SFX init sounds.json --project NOMBRE --use game --commercial yes, luego SFX add por sonido. Un corte de película, un diseño de juego o una descripción sencilla terminan aquí: references/plan.md. Para cualquier cosa con ejes (superficie, fuerza, tamaño), ejecuta SFX plan --axis surface=6 --axis force=3 --variations 4 --budget 100 antes de confirmar los archivos. Formato: references/format.md.
Paso 3: elegir la ruta
Según el trabajo, la licencia y el hardware: references/routes.md. Ejecuta SFX doctor una vez. Di la elección y el motivo en una línea. Instalar un nodo, motor o modelo grande, y cualquier llamada a API de pago, necesita primero el sí del usuario; mientras tanto, usa lo que esté presente. Que nada sea accesible no es un error: SFX synth no necesita modelo, y SFX gen --workflow-out entrega un flujo de trabajo.
Paso 4: crear
SFX synth list # cada receta, sus parámetros y materiales
SFX synth footstep --param surface=gravel --takes 6 --out takes/ --name step
SFX gen "caja de madera pesada caída sobre concreto, sala muerta" --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
Los prompts nombran fuente, material, espacio y tiempo, no una historia. Una duración solicitada es un máximo, así que espera relleno. Prueba semillas antes de cambiar palabras. Nunca le pidas a un modelo un ciclo de caminata: crea pasos individuales, luego SFX sequence.
Paso 5: editar
SFX edit (ordenar, recortar, fundir, ganancia, pico, tono, estirar, invertir, convolucionar, dc), layer, vary, sequence, loop, place, record-sheet (plan para sonidos con ruta de grabación), tone (tramo estable y silencioso, relleno opcional; comparar con check --tone-match), pop (añadir o --verify 2 pops de cabeza y cola en una pista). Recetas y lo que cuesta cada edición: references/edit.md. El tono es por cambio de velocidad por defecto; un estiramiento mancha un impacto. Las ediciones llevan la procedencia hacia adelante, y una fuente sin derivados las rechaza. Nunca copies o renombres un sonido manualmente: el sidecar se queda atrás. Escribe en el nombre final con edit, finish o synth --out.
Paso 6: verificar cada lote
SFX check takes/*.flac --seconds 2 # lecturas y banderas por archivo
SFX set takes/step_*.wav # casi duplicados, valores atípicos, dispersión de nivel
SFX timing walk.wav # demasiado uniforme, o una muestra repetida
SFX sheet takes/*.wav --out sheet.png # mira las formas de onda
Cualquier conjunto de variaciones siempre recibe set. Una bandera significa escuchar; no es un veredicto, y un resultado limpio no significa que el sonido sea bueno. Exime lo que el brief quiera (--waive CLICK para el crujido). Qué significa cada número y con qué fue calibrado: references/thresholds.md.
Paso 7: escuchar
Los números no pueden decir si un sonido se adapta a su imagen o si un conjunto se lee como un objeto. Coloca las selecciones en una página askwright cuando esté presente, con nivel ajustado (SFX review --match) y a ciegas, con imagen para cine. De lo contrario, da una lista de archivos etiquetados y preguntas simples. Registra lo escuchado en el campo heard de la toma y marca la selección picked: true.
Paso 8: finalizar y documentar
SFX finish in out --dest game-sfx: solo ganancia, luego codifica al final. Un destino desconocido es un error: pregunta. Usa mw.py master cuando musicwright esté presente y toda la mezcla necesite un objetivo de sonoridad. Motores y destinos: references/finish.md.
SFX doc sounds.json --kind cue|impl|credits, luego SFX ship sounds.json. Reporta BLOQUEADO, VERIFICAR o LIMPIO con las razones, atribución debida y divulgación de la tienda. Es un registro, no un consejo legal.
Resultado
La ruta, la ruta de la lista, las banderas por lote, qué se escuchó y por quién, y la respuesta de ship cuando algo está saliendo.
Reglas
- Nunca llames a un sonido generado grabado o libre de IA.
shipenumera lo que necesita divulgación. - La música con notas, tonalidad y tempo va a musicwright; el diálogo y su tono de sala van a voicewright o cinewright.
- Las muestras publicadas con el plugin deben tener derechos claros.
Mientras trabajas: captura aprendizajes
Si el usuario te corrige, un error se repite o aparece una solución alternativa, agrégalo a LEARNINGS.md. Si demuestra que una regla es incorrecta, corrige la regla, regístralo en CHANGELOG.md y establece contradiction en evergreen.json.
Mantenimiento
Unidad Evergreen, nivel fast; estado en evergreen.json. Consulta MAINTENANCE.md, RESEARCH.md, TESTS.md, evals/.