Desarrollando SongSplit AI
Ojala pudiera decir que desarrollar esta app fue sencillo. De verdad, de verdad que me gustaria.
Pero no tuve tanta suerte.
Encontrando el Modelo Correcto
Despues de probar diferentes opciones para separar audio, me decidi por Demucs por la calidad. HTDemucs usa una arquitectura hibrida de transformer—procesa el audio a traves de ramas de dominio temporal y frecuencial simultaneamente, luego las combina con cross-attention. El resultado es una separacion notablemente limpia.
Realmente queria que la app funcionara en mi iPad, asi que abri Xcode y comence.
El Problema de Python
Demucs corre en Python. No puedes publicar apps de Python en la App Store.
Asi que busque formas de ejecutar Demucs nativamente en iPad.
No pude hacerlo funcionar.
El Desvio por la Nube
Construi un servicio web que recibia una solicitud del iPad, procesaba el archivo en una instancia GPU de Google Cloud Run, y devolvia las pistas separadas. Funcionaba bien, pero me dejaba con tres preocupaciones:
Privacidad. Respeto tu privacidad. No pongo anuncios ni analiticas en mis apps. No quiero copias de tus archivos en mis servidores, aunque solo esten ahi temporalmente.
Costo. No queria requerir una suscripcion para este producto. Odio pagar suscripciones por cosas que, bien disenadas, realmente no las necesitan. No podia cobrar una tarifa unica mientras ejecutaba GPUs en la nube para el procesamiento. Se habria vuelto demasiado caro.
Disponibilidad. Esta no es una app que deberia necesitar conexion a internet. Si eres un cliente que pago, deberias poder usar tu software funcione o no tu internet. Funcionen o no los servicios en la nube. Es molesto cuando AWS se cae y de repente las aplicaciones de escritorio dejan de funcionar.
De Vuelta al Inicio
Volvi a buscar una forma de hacer que Demucs funcionara nativamente en iPad.
Despues de semanas de frustracion, me di por vencido.
El Avance
Entonces Anthropic lanzo Claude Opus 4.5.
Con su ayuda, pude convertir Demucs para que funcionara con el framework MLX de Apple. El modelo tiene mas de 500 tensores y una arquitectura compleja de doble rama con manejo personalizado de STFT—no exactamente un port simple. Pero lo logramos.
Eso significa que la aplicacion ahora corre nativamente en todos los dispositivos con Apple Silicon. Los chips M1, M2, M3 y M4 en Macs, iPads y iPhones pueden ejecutar la red neuronal directamente en el GPU.
Deja fuera a algunos usuarios. Pero resuelve los tres problemas que me impedian lanzar:
- Tu audio nunca sale de tu dispositivo
- Sin costos recurrentes, sin suscripcion necesaria
- Funciona offline, para siempre
Ahora tengo Demucs funcionando en MLX, y mi app funcionando en macOS e iOS. Los tres modos de calidad—Mas Rapido, Equilibrado y Mejor—te dan control sobre el balance entre velocidad y calidad de separacion.
Fue el camino que esperaba? Para nada. Pero a veces el camino dificil resulta ser el correcto.