Saltar al contenido
Volver a proyectos
Discontinuado

CoProduce

Co-producción musical remota sobre Ableton Live.

  • TypeScript
  • Electron
  • WebRTC
  • Node.js
  • pnpm workspaces

El problema que solucionamos

Dos productores que trabajan a distancia hoy usan Zoom: uno comparte pantalla, el otro mira y describe con palabras lo que quiere cambiar. El audio de la videollamada está procesado para voz —cancelación de eco, supresión de ruido, control de ganancia— así que la música llega irreconocible.

Qué hace

Una aplicación de escritorio que conecta las dos máquinas con un código de sala: uno ve, escucha y opera la sesión de Ableton del otro como si el proyecto estuviera abierto en su propia computadora.

El desafío

Transmitir música, no voz

Todo el stack de audio en tiempo real de la web está afinado para llamadas: asume que lo que viaja es una persona hablando y aplica procesamiento que destruye una mezcla. Hay que desactivar explícitamente el control automático de ganancia, la cancelación de eco y la supresión de ruido, y forzar el códec a modo música con bitrate alto. Del otro lado, capturar la salida de Ableton en macOS necesita un driver de audio virtual que el sistema no trae, así que la app tiene que detectar si falta y guiar la instalación en vez de fallar sin explicación.

Decisiones técnicas

  • Conexión directa entre pares, con relay de reservaen vez depasar siempre por un servidor

    Porque La latencia es el único requisito que importa acá. Un salto extra por un servidor intermedio agrega retardo justo donde se nota. El relay existe solo para cuando la conexión directa no se puede establecer.

Por qué lo di de baja

Lo di de baja funcionando, y ese fue el punto

Llegué a tener un instalador funcionando: control remoto de la máquina del otro y audio en tiempo real con calidad de música, las dos cosas resueltas. Investigando el mercado encontré Muse, que hace exactamente esto y lleva años de desarrollo. Seguir habría sido construir una versión peor de algo que ya existe, para un problema que ya estaba resuelto. Frené ahí. La parte difícil —entender por qué el audio de las videollamadas destruye una mezcla, y cómo evitarlo— la aprendí igual, y me la llevo.

Qué aprendí

Dos cosas. La técnica: que los valores por defecto de una plataforma codifican un caso de uso, y salirse de ese caso implica desactivar a mano cada cosa que fue pensada para ayudar. La otra, más incómoda y más útil: que investigar el mercado antes de escribir código habría ahorrado semanas, y que reconocerlo tarde igual es mejor que no reconocerlo.

Qué sigue

Nada. Está cerrado a propósito.

En resumen

  • Llegó a instalador funcionando en Windows y macOS
  • Control remoto y audio en tiempo real, ambos resueltos
  • Dado de baja por decisión de producto, no por problemas técnicos