HOT-Step CPP: Generación local de música con IA mediante C++ y GGML
Genera música estéreo a 48 kHz localmente con HOT-Step CPP, una interfaz de C++/GGML repleta de funciones para ACE-Step, herramientas de audio, complementos y entrenamiento de modelos.
HOT-Step CPP: Generación local de música con IA mediante C++ y GGML
Los generadores de música en la nube son prácticos, pero implican costes recurrentes, suben tu material creativo a servicios externos y a menudo ocultan la configuración de generación subyacente. HOT-Step CPP adopta un enfoque diferente: integra la generación local de música con IA en una aplicación basada en navegador y respaldada por un motor nativo de C++/GGML.
Describe una canción con un texto descriptivo y una letra, selecciona tus parámetros de generación y produce audio estéreo a 48 kHz completamente en tu propio hardware. No necesitas claves de API, suscripciones ni inferencia en la nube.
El proyecto amplía acestep.cpp con más de 100 funciones que abarcan generación, procesamiento de audio, separación de pistas, transcripción MIDI, masterización, gestión de modelos y flujos de trabajo experimentales de entrenamiento.
Por qué HOT-Step CPP resulta interesante
HOT-Step CPP combina tres ventajas que rara vez están disponibles en una sola herramienta de generación musical:
- Inferencia local: tus letras, indicaciones y pistas generadas permanecen en tu equipo.
- Rendimiento nativo: el motor de inferencia está implementado en C++ y utiliza backends de GGML como CUDA, Vulkan, Metal o ejecución en CPU.
- Herramientas orientadas a la producción: la generación es solo el principio; la aplicación incluye versiones, pistas separadas, MIDI, masterización, procesamiento VST3, gestión de letras, repintado y evaluación de calidad.
La aplicación está basada en ACE-Step 1.5, y también ofrece un backend nativo experimental para MiniMax-Music3. Esto la hace útil tanto como estación de trabajo creativa como banco de pruebas para la ingeniería de audio generativo local.
Principales flujos de generación
Auto-Gen
Auto-Gen está diseñado para quienes quieren empezar con una idea en lugar de una especificación completa. Elige un género, proporciona opcionalmente un tema y un idioma, y el modelo de lenguaje integrado puede generar:
- Letras
- Un texto descriptivo del estilo
- Metadatos de la canción
- Un título
Puedes elegir letras generadas por completo, letras escritas a partir de un tema o un flujo instrumental. El modo de vista previa permite editar las letras generadas antes de convertirlas en audio. Una cola en serie procesa un trabajo cada vez y muestra el progreso en directo.
Custom-Gen
Custom-Gen proporciona acceso directo a los controles de generación. Puedes introducir tus propias letras y texto descriptivo, seleccionar el título y el artista, y configurar:
- BPM
- Duración
- Tonalidad
- Compás
- Solver y planificador
- Modo de guidance
- Escala CFG y controles latentes
- Opciones de posprocesamiento
Este es el flujo más adecuado cuando importan la reproducibilidad y la experimentación con parámetros. Las semillas y los metadatos de generación se conservan para que puedas comparar variaciones en lugar de depender de la memoria.
Un sistema flexible de muestreo y complementos
El motor incluye 17 solvers, 9 planificadores y 7 modos de guidance. Su arquitectura de complementos Lua permite añadir nuevos solvers ODE/SDE, planificadores de ruido, modos de guidance y cadenas de posprocesamiento sin recompilar el motor de C++.
Para crear un complemento, coloca un archivo .lua en:
engine/plugins/
El complemento estará disponible en la interfaz después del siguiente inicio. Los complementos pueden exponer sus propios controles deslizantes, interruptores y menús desplegables, lo que permite utilizar métodos de muestreo orientados a la investigación desde la interfaz habitual de la aplicación. Entre los ejemplos incluidos se encuentran CFG-MP, SMC-CFG y CFG-Zero⋆.
Este diseño resulta especialmente valioso para desarrolladores: los experimentos de muestreo pueden distribuirse como pequeños scripts, sin exigir que cada usuario compile un binario personalizado.
Funciones de producción de audio más allá de la generación
HOT-Step CPP trata la música generada como material que se puede editar y perfeccionar, no como un archivo final.
Matchering y posprocesamiento
El motor de masterización Matchering iguala el volumen, la ecualización y la dinámica con respecto a una pista de referencia. Un interruptor A/B instantáneo entre la versión masterizada y la no masterizada facilita determinar si el procesamiento ha mejorado el resultado. El procesamiento funciona a 48 kHz nativos, evitando un ciclo innecesario de remuestreo.
El procesamiento adicional incluye un reductor de ruido espectral basado en filtro de Wiener, un Spectral Lifter nativo de C++, pulido neuronal PP-VAE, Vocal Naturalizer DSP, almacenamiento temporal de duración, recorte automático y fundidos de salida configurables. La cadena interna se mantiene en WAV32, con exportación disponible en WAV, MP3 o FLAC.
StableStep
StableStep vuelve a renderizar la parte instrumental de una pista terminada mediante Stable Audio 3 usando reinyectado parcial de ruido. Su objetivo es sustituir el fizz del VAE y otros artefactos espectrales por detalles más convincentes, manteniendo intactas las letras y las voces.
El flujo separa las voces principales y de apoyo con BS-RoFormer, procesa el instrumental y remezcla el material vocal. Los usuarios pueden ajustar la intensidad del refinado y utilizar una indicación derivada del texto descriptivo original.
Hay dos backends disponibles:
- GGML: aproximadamente 5,8 GB de modelos
- ONNX/TensorRT: aproximadamente 12 GB de modelos
Los modelos de Stable Audio se distribuyen bajo la Stability AI Community License.
Versiones, pistas separadas y MIDI
Cover Studio
Cover Studio analiza una pista de referencia mediante Essentia y extrae información sobre BPM, tonalidad, energía y timbre. Puede generar una versión que coincida con el estilo, conservando o transformando determinados aspectos de la fuente.
Entre sus controles útiles se incluyen la fidelidad estructural, la preservación de la fuente, el desplazamiento de tono con vistas previas de transposición tonal, el escalado del tempo, la separación y recombinación de pistas, y preajustes de adaptadores por álbum.
Stem Studio y Stem Builder
Stem Studio utiliza una cadena de separación en cuatro etapas:
- BS-RoFormer para la separación primaria en seis pistas
- Mel-Band RoFormer para aislar las voces principales y de apoyo
- MDX23C para la separación adicional de la batería
- HTDemucs para refinar los instrumentos
La gestión secuencial de la VRAM mantiene el uso máximo por debajo de 3 GB durante la separación. El mezclador interactivo admite solo múltiple, controles de volumen por pista y exportación ZIP.
Stem Builder funciona en la dirección opuesta: proporciona una pista fuente y pide al motor DiT que genere pistas vocales, de batería, bajo, guitarra o piano complementarias. Puedes construir un arreglo de forma iterativa en lugar de regenerar la canción completa.
MIDI Studio
MIDI Studio es un port nativo de C++/GGML de MuScriptor, de Kyutai y Mirelo. El proyecto informa de una validación byte a byte frente a la implementación de referencia y de aceleración por GPU; una pista de 3,5 minutos puede transcribirse en menos de un minuto.
La herramienta produce MIDI multipista en 34 grupos de instrumentos, además de batería. Hay modelos pequeños, medianos y grandes, y la interfaz muestra un piano roll en directo mientras se ejecuta la transcripción. Los usuarios pueden comparar inmediatamente el audio original con la interpretación MIDI mediante un control deslizante de fundido cruzado y controles de silencio o solo por instrumento.
Los pesos del modelo están restringidos en Hugging Face y tienen licencia CC BY-NC 4.0, por lo que esta función está destinada a usos no comerciales.
Entrenamiento experimental de modelos
Training Studio permite entrenar adaptadores de estilo dentro de HOT-Step sin Python ni herramientas externas de preprocesamiento. Indica a la aplicación una carpeta de canciones y esta puede guiar el flujo mediante:
- Creación del conjunto de datos
- Análisis local de BPM y tonalidad
- Recuperación de letras desde Genius
- Textos descriptivos de IA conscientes del audio
- Preprocesamiento de tensores
- Entrenamiento LoRA del LM planificador
- Entrenamiento LoRA del DiT
Los modelos planificadores incluyen variantes de 0,6B, 1,7B y 4B. Un modo de audición basado exclusivamente en el LM permite comparar lo aprendido por el planificador con el modelo base sin influencia del DiT.
Esta función es explícitamente experimental. Se recomienda una GPU con al menos 16 GB de VRAM, mientras que el entrenamiento DiT a máxima profundidad es más adecuado para sistemas con 24 GB o más. Espera un uso elevado de memoria y un comportamiento sujeto a cambios.
Backend MiniMax-Music3
HOT-Step CPP también incluye un port nativo rudimentario de C++/GGML de MiniMax-Music3. El proyecto lo describe como una implementación temprana y, según su conocimiento, como la primera versión del modelo fuera de Python.
Después de instalar el paquete MiniMax-Music3 mediante Model Manager, aparece un selector de backend en la barra global. El paquete ocupa aproximadamente 24 GB y requiere alrededor de 24 GB de VRAM en f16.
La compatibilidad actual se limita a la generación de texto a música mediante:
- Texto descriptivo
- Letras
- Duración
- Semilla
Las versiones, el repintado, las pistas separadas, los adaptadores y el entrenamiento aún no son compatibles con este backend. La salida se almacena como WAV sin procesar a 44,1 kHz. Hay variantes cuantizadas que requieren menos VRAM previstas para el futuro.
Compatibilidad de hardware y plataformas
Hay versiones precompiladas disponibles para:
| Plataforma | Opciones de aceleración |
|---|---|
| Windows x64 | CUDA, Vulkan, CPU |
| Linux x64 | CUDA, Vulkan, CPU |
| macOS Apple Silicon | Metal |
Para usuarios de NVIDIA, CUDA ofrece el mejor rendimiento; se recomienda una RTX 2060 o posterior. Vulkan es compatible con hardware de AMD, Intel y NVIDIA antiguo. El modo CPU funciona en cualquier equipo compatible, pero es considerablemente más lento.
Los requisitos habituales de almacenamiento son de aproximadamente 10 GB para la aplicación y los modelos iniciales. El conjunto de modelos estándar de ACE-Step requiere aproximadamente 7 GB para descargarse desde la aplicación.
Inicio rápido con una versión portable
La instalación más sencilla consiste en descargar un archivo de versión, extraerlo y ejecutar el script específico de la plataforma.
Windows
- Descarga y extrae el archivo para CUDA, Vulkan o CPU.
- Ejecuta
HOT-Step.bat. - Abre
http://localhost:3001si el navegador no se abre automáticamente. - Ve a Models → Get More Models y descarga el conjunto de modelos iniciales de aproximadamente 7 GB.
Se requiere Windows 10 u 11 de 64 bits. La variante CUDA necesita controladores NVIDIA compatibles, mientras que la variante Vulkan requiere controladores Vulkan 1.1 o posteriores.
Linux
./HOT-Step.sh
Usa Ubuntu 22.04 o una distribución x86_64 equivalente. Los usuarios de CUDA necesitan controladores NVIDIA 525 o posteriores; los usuarios de Vulkan necesitan controladores compatibles con Vulkan 1.1 y libvulkan1.
macOS
En sistemas Apple Silicon con macOS 13 o posterior:
./HOT-Step.sh
La versión incluye Node.js, por lo que no es necesario instalarlo por separado. Si macOS bloquea los binarios sin firmar, elimina una vez el atributo de cuarentena:
xattr -cr /path/to/HOT-Step-CPP/
Compilación desde el código fuente
Clona el repositorio junto con sus submódulos:
git clone --recursive https://github.com/scragnog/HOT-Step-CPP.git
cd HOT-Step-CPP
Si clonaste el repositorio sin --recursive, inicializa manualmente las dependencias:
git submodule update --init --recursive
Windows con CUDA
Instala Visual Studio 2022 Build Tools con Desktop development with C++, CUDA Toolkit 12.x o posterior con integración para Visual Studio, CMake 3.14 o posterior, Git y Node.js 18–22 LTS. Node.js 24 no es compatible.
El comando de compilación práctico es:
engine\build.cmd
Para una compilación manual con CMake:
cd engine
mkdir build
cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native
cmake --build . --config Release -j %NUMBER_OF_PROCESSORS%
cd ..\..
macOS con Metal
Instala las herramientas de línea de comandos de Xcode, CMake, Node.js 18–22 LTS y Git. Después, compila con Metal activado:
cd engine
mkdir build && cd build
cmake .. -DGGML_METAL=ON -DGGML_METAL_EMBED_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j $(sysctl -n hw.ncpu)
cd ../..
Incrustar la biblioteca de shaders de Metal significa que no se necesita ningún archivo .metallib externo durante la ejecución.
Linux
Las compilaciones con CUDA utilizan:
cd engine
mkdir -p build && cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)
Para Vulkan:
cmake .. -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)
Para compilaciones exclusivas de CPU, omite la opción del backend:
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)
Instala las dependencias del servidor y de la interfaz antes de iniciar:
cd server && npm install && cd ..
cd ui && npm install && cd ..
En Windows, ejecuta LAUNCH.bat; en macOS y Linux, ejecuta ./launch.sh. El modo de producción escucha en el puerto 3001. El modo de desarrollo utiliza el frontend de Vite en el puerto 3000.
Organización de los modelos
Una compilación desde el código fuente espera los siguientes archivos dentro de models/:
models/
├── acestep-5Hz-lm-4B-Q8_0.gguf
├── Qwen3-Embedding-0.6B-Q8_0.gguf
├── acestep-v15-turbo-Q8_0.gguf
└── vae-BF16.gguf
Los archivos recomendados son aproximadamente:
| Componente | Archivo | Tamaño |
|---|---|---|
| Modelo de lenguaje | acestep-5Hz-lm-4B-Q8_0.gguf |
4,2 GB |
| Codificador de texto | Qwen3-Embedding-0.6B-Q8_0.gguf |
748 MB |
| DiT | acestep-v15-turbo-Q8_0.gguf |
2,4 GB |
| VAE | vae-BF16.gguf |
322 MB |
Hay disponibles variantes LM más pequeñas de 0,6B y 1,7B. Entre los modelos opcionales se incluyen ScragVAE, de 322 MB; PP-VAE, de 644 MB; recursos GGML de StableStep, de 5,8 GB; y recursos ONNX de StableStep, de 12 GB.
El Model Manager integrado suele ser más sencillo: proporciona paquetes iniciales seleccionados y acceso a más de 100 modelos GGUF en cinco repositorios de Hugging Face, con descargas simultáneas reanudables.
Arquitectura para desarrolladores
El sistema se divide en tres componentes cooperantes:
| Componente | Tecnología | Responsabilidad |
|---|---|---|
| Motor | C++, CUDA, GGML | Ejecuta la inferencia de modelos y las operaciones de audio nativas |
| Servidor | Node.js, TypeScript | Orquesta trabajos, gestiona canciones y sirve la aplicación |
| Interfaz | React, Vite, TypeScript | Proporciona la interfaz creativa basada en navegador |
Esta separación hace que el proyecto sea accesible desde varias áreas. Los desarrolladores de C++ pueden trabajar en la inferencia y el DSP, los desarrolladores de TypeScript pueden ampliar la orquestación y las API, y los desarrolladores frontend pueden añadir flujos creativos sin modificar el motor.
El motor admite GGUF y safetensors de Hugging Face. Las carpetas de safetensors pueden colocarse en el directorio de modelos y se identifican con una insignia de formato en la interfaz. Los safetensors BF16 producen una salida idéntica bit a bit a BF16 GGUF, y los adaptadores LoRA funcionan con ambos formatos.
Problemas habituales de compilación
Hay algunos problemas especialmente frecuentes:
- Fallos al instalar Node.js 24: cambia a Node.js 22 LTS con
nvm install 22ynvm use 22. - Errores
C2589de MSVC: defineNOMINMAXy, si es necesario, configura CMake con/DNOMINMAX /DWIN32_LEAN_AND_MEAN. - Directorio de CUDA Toolkit no encontrado: verifica
CUDA_PATH, instala la integración con Visual Studio y reinicia la terminal. - Errores de ubicación del binario Ninja: Ninja coloca los binarios directamente en
engine/build/, no enengine/build/Release/. - Configuración de CMake obsoleta: elimina
engine/build/y vuelve a configurar después de cambiar las versiones de CUDA o los ajustes del compilador. - Errores por longitud de rutas en Windows: abre una terminal nueva si las compilaciones repetidas han ampliado
PATHmediantevcvars64.bat. - Bloqueos de Gatekeeper en macOS: usa
xattr -cren el directorio de la versión extraída.
¿Quién debería probarlo?
HOT-Step CPP es una opción muy adecuada para desarrolladores, músicos y creadores con inclinación técnica que quieren mantener el control local sobre la generación musical con IA. Es más que una demostración de texto a audio: el proyecto ofrece un motor nativo extensible, una interfaz web completa, ports experimentales de modelos y una colección creciente de herramientas para llevar el audio generado hacia una producción terminada.
La contrapartida es la complejidad. Los modelos grandes pueden requerir mucho espacio en disco y VRAM, algunas funciones son experimentales y los flujos MiniMax-Music3 y Training Studio aún están evolucionando. Sin embargo, para quienes se sienten cómodos con las herramientas de IA local, esa misma apertura es el atractivo: puedes inspeccionar la configuración, cambiar de modelo, escribir complementos Lua, compilar desde el código fuente y mantener todo el flujo creativo en tu propio equipo.