Banda sonora chip programática
Separa la información de composición del motor de sonido: audio de referencia → stems reales bajo demanda → transcripción candidata y edición → partitura de eventos → síntesis de forma de onda → preescucha / master en bucle. Soporta música original sin referencia; en ese caso, se omite la transcripción.
Determinar primero el objetivo musical
Prioriza mantener la referencia, duración, estilo y pistas ya aprobadas por el usuario. Si faltan detalles no críticos, elige un borrador razonable sin volver a preguntar preferencias ya respondidas. Guarda cada nueva versión en un directorio de pista independiente, conservando el original aprobado. La creación en sí no autoriza la integración en sitios web, juegos o la publicación en npm.
Para adaptaciones basadas en referencia, lee primero Análisis y decisiones de referencia. Si es necesario conservar detalles de la línea principal / respuesta en la mezcla, lee entonces Stems reales y transcripción, usando Demucs + Basic Pitch ONNX / pYIN; el modo NumPy básico no descarga automáticamente estas dependencias pesadas. Al usar el banco de trabajo de Yakui Studio para editar e importar, lee el Yakui Studio instalado en el mismo nivel. Si solo se necesita conocer la fuente del método, lee Caso Yakui; la velocidad, acordes y longitud de los compases del caso no son reglas por defecto para una nueva pieza.
Análisis del audio de referencia
Solo cuando se tenga audio realmente decodificable se informarán los resultados del análisis. El BPM o la tabla de notas proporcionados por el usuario deben verificarse; las descripciones de páginas web, títulos de canciones o enlaces a videos en línea no son evidencia de haber escuchado el audio. Si solo hay una URL, utiliza los medios de obtención normales disponibles; si no se puede acceder, indica qué falta, no inventes resultados de transcripción. La grabación de referencia no se mezcla automáticamente en las pistas o en el paquete de código fuente.
Herramientas básicas:
python scripts/analyze_reference.py reference.wav --start 0 --seconds 30 --out analysis-intro.json
La ruta es relativa a este skill; se puede usar su ruta absoluta. Depende de Python 3.10+, NumPy, y para la decodificación de referencia y exportación a MP3 también se necesita FFmpeg (en PATH o variable FFMPEG).
- Compara al menos los candidatos de tempo del inicio y de las secciones principales, prestando atención a la mitad o el doble de velocidad; solo después de confirmar pasa
--bpmpara alinear los candidatos de nota. half_beat_candidateses la prominencia armónica en la mezcla, no una melodía independiente reconocida automáticamente. El pico más grande puede pertenecer a los armónicos del bajo, la batería u otra voz.- Anota observaciones, candidatos de baja confianza y decisiones de arreglo; cuando la respuesta aguda no se pueda extraer de forma fiable, mantén la ambigüedad; las respuestas originales se marcan explícitamente.
- Para adaptaciones que priorizan el detalle, primero separa stems reales, guarda las etiquetas del modelo según las
sourcesreales; luego usa la transcripción polifónica para retener las notas simultáneas, y la F0 monofónica como referencia para segmentos melódicos claros. La melodía principal / respuesta son roles musicales; no se debe renombrar automáticamente el filtrado de bandas de frecuencia o elotherde Demucs como pistas de rol independiente. - Los segundos de tiempo originales, pitch bends, valores de confianza/activación y las razones de edición permanecen en el archivo de análisis; la cuantización solo añade campos derivados. Usa el pentagrama y frases reales representativas para verificar octavas, adornos cortos, notas repetidas y simultaneidad; no tomes la salida del modelo directamente como la partitura exacta de la canción original.
Crear una pista editable
python scripts/init_track.py /absolute/new-track --title "Título de la pista" --bpm 95 --bars 24
Copia una plantilla de arreglo independiente, sintetizadores y entrada de construcción; no sobrescribe directorios existentes. La salida incluye track.json, arrange.py, render_score.py, build.py, y una lista de dependencias. La motivación de la plantilla es solo un ejemplo original; debe modificarse según el objetivo musical actual; no renderices cada pieza como la plantilla cambiando solo el BPM.
En el directorio de la pista, ejecuta:
python -m pip install -r requirements.txt
python build.py --mp3 --three-pass
Primero crea frases/secciones representativas, luego extiende a la longitud objetivo; cuando el usuario ya haya aprobado el arreglo detallado, hazlo directamente según ese arreglo, sin imponer un nuevo umbral de aprobación.
- La negra es la unidad de tiempo del evento; la duración se calcula a partir del BPM, número de compases y signatura de compás; cuando se acerque a una duración específica, explica las limitaciones rítmicas, no fuerces la longitud acelerando todo el audio.
- La melodía principal, respuesta, bajo, armonía, arpegios y batería se organizan por separado. El clímax aumenta el rango, la densidad rítmica y armónica, dejando espacio de imagen estéreo y nivel para la melodía principal.
- Los sintetizadores siguen ondas de pulso PolyBLEP probadas, ondas triangulares de armónicos limitados, ruido LFSR para percusión, envolventes cortas y delay rítmico. Ajusta el timbre según la pista; extender las voces chip no significa imitar estrictamente las limitaciones de canales FC/NES.
- El análisis de referencia y la transcripción pueden servir a otros estilos; cuando el usuario especifique estilos como post-rock, conserva la melodía ya verificada y elige instrumentos/renderizadores adecuados para ese estilo. La plantilla chip no se convierte automáticamente en guitarra real o sonido post-rock; no uses la plantilla con una etiqueta diferente para simular un nuevo estilo.
8-bitse refiere por defecto al timbre/arreglo; la salida conserva calidad 44.1 kHz, 16 bits estéreo, a menos que el usuario solicite explícitamente una reducción de profundidad de bits.
Para editar directamente la partitura o ajustar timbres, lee Formato de partitura de eventos. render_score.py score.json --out audio --mp3 --three-pass puede omitir el arreglador y renderizar cualquier partitura compatible.
Preescucha y entrega
La carpeta audio/ genera preview.wav, loop.wav, MP3 opcional, fragmento del clímax y render-report.json. La preescucha puede tener fade out; el master loop no tiene fade out completo, la cola de retardo se envuelve al inicio. --three-pass genera tres pasadas de preescucha de las uniones.
Verifica duración, valores finitos, clipping, niveles de sección y transiciones bruscas cerca del loop; las comprobaciones numéricas no sustituyen la audición. Cuando no sea posible escuchar realmente, entrega archivos reproducibles para que el usuario escuche, no afirmes que ya los has escuchado. Concéntrate en el tema, la respuesta, la densidad del clímax, la claridad de la melodía principal y las uniones del loop; no declares que el estilo coincide solo porque el archivo de música existe.
Incrusta audio con rutas absolutas para proporcionar una preescucha completa y fragmentos representativos del clímax; incluye el código fuente del arreglo/síntesis, la partitura y una breve descripción de las secciones. Cuando el usuario solicite una reproducción ligera en terminal, entonces transpórtalo al sintetizador local con la misma partitura de eventos y parámetros de timbre, evitando incrustar todo el PCM o pedir al usuario que instale Python; no modifiques automáticamente el visor o el flujo de publicación solo para hacer una preescucha.