El problema: tenía canciones, necesitaba trozos
Hago beats. Hago sampling. Y en algún momento te encuentras con esto: tienes una canción entera, pero solo quieres la voz. O solo la batería. O quieres quitar la voz y quedarte con todo lo demás para meter encima otra cosa. Antiguamente esto era casi imposible sin las pistas originales. Ahora, gracias a modelos de IA entrenados para esto, se puede hacer con bastante calidad desde un archivo de audio normal, el que sea.
El problema es que las herramientas que hacen esto bien, o son de pago, o tienen límites raros, o directamente no existen en una versión simple que puedas usar desde el navegador sin instalar nada. Así que construí la mía. La llamé Destripa, porque eso es literalmente lo que hace: le abre las tripas a una canción y te entrega las piezas por separado.
Cómo funciona por dentro
Destripa no inventa nada nuevo a nivel de tecnología de separación de audio — usa Demucs, un modelo de IA de código abierto entrenado específicamente para separar pistas musicales. Lo que sí construí yo es todo lo de alrededor:
- Backend en Flask que recibe el archivo de audio, lo manda a Demucs para procesar, y gestiona la cola de trabajos.
- Alojado en Hugging Face Spaces, en la capa gratuita de CPU. Esto tiene una pega importante que cuento más abajo.
- Frontend en JavaScript puro, con una interfaz tipo DAW (como un editor de audio profesional) para que el resultado se vea y se use bien, no como una web cualquiera de subir-y-descargar.
- Un minijuego de cassette mientras esperas a que termine el proceso. Porque separar pistas con un modelo de IA en una CPU gratuita tarda, y prefería darte algo que hacer en vez de un spinner girando sin sentido.
Lo que no salió bien a la primera (y sigue dando guerra)
Voy a ser honesto, porque esto no es un comunicado de prensa: usar la capa gratuita de Hugging Face Spaces (CPU Basic) significa que el contenedor se puede reiniciar solo, sin avisar. Y cuando eso pasa a mitad de un trabajo de separación, el estado del proceso se puede perder. Lo resolví guardando el estado del trabajo en disco, en un archivo status.json, para poder recuperarlo si el contenedor se reinicia. Funciona, pero no es perfecto — sigue siendo algo que estoy vigilando y mejorando.
Esto es lo de siempre con herramientas gratuitas montadas sobre infraestructura gratuita: hay que aceptar limitaciones técnicas a cambio de que cualquiera lo pueda usar sin pagar nada. Prefiero esa relación de compromiso que cerrarlo todo detrás de un muro de pago.
Para qué la uso yo (y para qué la puedes usar tú)
- Sacar acapellas de canciones para sampling, sin tener que buscar versiones “clean” que casi nunca existen.
- Quitar la voz de una canción para quedarte con la instrumental y meter algo encima.
- Aislar la batería para estudiar un patrón rítmico nota a nota.
- Aislar el bajo cuando quieres entender una línea concreta sin que el resto te distraiga.
Si haces beats, haces remixes, o simplemente tienes curiosidad por escuchar una canción “destripada” en sus partes, esta herramienta está pensada justo para eso.
Qué viene después
Sigo trabajando en la estabilidad del backend (lo del reinicio del contenedor es la prioridad ahora mismo) y en mejorar los tiempos de espera. Si quieres entender exactamente cómo funciona el proceso de separación y, sobre todo, cómo puedes hacerlo tú mismo en tu propio ordenador sin depender de mi servidor gratuito (que a veces se cae, ya lo sabes), tengo otro artículo justo para eso, con los pasos y los archivos que necesitas.
Destripa es un proyecto en marcha, no un producto cerrado. Si te falla algo o tienes una idea, dímelo — así es como ha mejorado hasta ahora.
