Introducción

Ingeniería de experiencias de audio para creadores

Gracias por tu interés, éste documento está pensado para acompañarte paso a paso en la comprensión y el uso de nuestro entorno de desarrollo multiplataforma.

Por su naturaleza, I/O proporciona un conjunto completo de herramientas para insertar fuentes de audio, aplicar efectos, generar visualizaciones y más, todas éstas operaciones se ejecutan dentro de un contexto, concebido para permitir un enrutamiento dinámico y modular.

Las operaciones se realizan mediante nodos, que se enlazan para conformar un grafo de procesamiento. Estos nodos se organizan en cadenas simples o redes complejas, conectando sus entradas y salidas para establecer flujos personalizados.

El procesamiento comienza con una fuente que entrega muestras en intervalos de tiempo extremadamente pequeños —a menudo decenas de miles por segundo—. La salida de cada nodo puede enviarse a otros que procesan la señal, permitiendo rutas sofisticadas.

Comenzando con I/O

Accede rápidamente a los contenidos esenciales para dar tus primeros pasos.

Introducción a la arquitectura y el flujo de procesamiento.

Comparativa

La plataforma está disponible en dos ediciones:

La versión comunitaria está orientada a la exploración, aprendizaje y prototipado, ofreciendo un conjunto reducido de capacidades que permiten experimentar con audio binaural.

Por su parte, la versión profesional incorpora todo el potencial: enrutamiento avanzado, nodos ilimitados y especializados, herramientas de análisis, soporte y mas.

Plan
Comunidad
Profesional

Reproducción de fuentes

✔️

✔️

Enrutamiento basado en nodos

✔️

✔️

Límite de nodos

✔️ Máx. 10 nodos

✔️ Nodos ilimitados

Motor modular de grafo

✔️

✔️

Procesamiento de baja latencia

✔️

✔️

Renderizado en tiempo real

✔️

✔️

Audio binaural

✔️

✔️

Soporte Multiplataforma

✔️

✔️

Nodos de FX (EQ, Reverb, Delay)

✔️

Visualización de señales

✔️

Cadenas complejas y subgrafos

✔️

Soporte técnico

Comunidad

✔️

Introducción a la guía

Esta guía describe el propósito, las capacidades y los componentes fundamentales.

Asimismo, examina su arquitectura y el flujo interno de procesamiento de señal, explicando cómo cada subsistema —desde las fuentes y nodos hasta el contexto de ejecución— colabora de manera sincronizada para garantizar un comportamiento determinista, preciso y estable en entornos de procesamiento de audio en tiempo real.

I/O está construido íntegramente en Swift, un lenguaje multiplataforma que combina rendimiento con sintaxis moderna. Ofreciendo un modelo de ejecución optimizado gracias a su compilador LLVM, capaz de generar código tan rápido como C, pero con las ventajas de seguridad de memoria y gestión automática de recursos.

Visita el sitio oficial para más información: https://www.swift.org

Como encaja I/O arquitectonicamente

Comprender el papel de I/O dentro del ecosistema, implica situarlo en el contexto de las capas tecnológicas que componen una arquitectura de procesamiento moderna.

I/O se ubica en el punto intermedio entre las APIs de bajo nivel —como CoreAudio, WASAPI o ALSA— y las capas de alto nivel dedicadas a la composición o renderizado de audio. Esto le permite actuar como un motor, capaz de orquestar el flujo de señal y ejecutar bloques DSP con precisión temporal, manteniendo independencia del sistema operativo.

A diferencia de las librerías DSP puras, I/O no se limita sólo a funciones de procesamiento: implementa un sistema completo de enrutamiento, sincronización y ejecución determinista, gestionando de forma autónoma los nodos, búferes y dependencias del grafo.

Su diseño modular permite extender o sustituir componentes, y su integración el hardware garantiza una comunicación directa con los dispositivos de entrada y salida. De esta manera, I/O actúa como el núcleo operativo: traduce las señales provenientes del hardware, organiza el procesamiento interno y entrega resultados con latencia mínima.

En la jerarquía del ecosistema, I/O proporciona la infraestructura sobre la cual pueden construirse sistemas de producción, análisis y renderizado profesional.

I/O combina diseño y rendimiento, garantizando precisión y baja latencia.

Un DAG (Directed Acyclic Graph) es una estructura que organiza el flujo de procesamiento como una red de nodos conectados, donde la señal siempre avanza hacia adelante sin retroalimentaciones. Cada nodo representa una operación y las conexiones determinan cómo fluye la señal.

Infraestructura

Como se mencionó, en la base de la jerarquía se encuentran las APIs de bajo nivel y los drivers del sistema operativo. CoreAudio, WASAPI, ASIO o ALSA manejan el acceso directo a los dispositivos de entrada/salida, los buffers y la sincronización con el hardware.

Sobre ellas se ubica I/O, que abstrae esas diferencias y permiten una implementación multiplataforma, en conjunto operan las librerías DSP, diseñadas para proporcionar bloques funcionales, como filtros, osciladores, FFTs o generadores de envolvente.

I/O representa la primera capa en el flujo de procesamiento.

Implementación

I/O adopta una filosofía de diseño modular, declarativa y extensible.

El audio puede describirse como un conjunto de nodos interconectados, cada uno responsable de una tarea de procesamiento DSP específica. Estas conexiones forman un grafo dinámico que define el flujo de señal, permitiendo reconfiguración en tiempo real sin interrupciones.

Cada componente del sistema es autocontenible, lo que facilita tanto la construcción de cadenas simples como la de sistemas complejos de mezcla, análisis o renderizado. La comunicación entre nodos sigue un modelo pull-based determinista, asegurando que cada bloque procese solo los datos necesarios, optimizando el rendimiento y la latencia.

Los nodos procesan y el contexto coordina el flujo del audio. Esta organización promueve una arquitectura donde las operaciones son reproducibles a nivel de muestra.

I/O prioriza la transparencia del procesamiento y la extensibilidad.

Filosofía de diseño (Manifiesto)

I/O fue concebido como un motor en tiempo real que debía cumplir con cuatro principios: precisión, rendimiento, funcionalidad y estabilidad. Estos representan los fundamentos que orientan cada decisión arquitectónica del framework.

Precisión

El procesamiento se realiza en punto flotante Float64 para mantener la integridad numérica y evitar la acumulación de error. Los parámetros se interpolan de forma continua para eliminar artefactos y garantizar transiciones suaves. Los módulos DSP integran algoritmos de alta fidelidad con gestión de aliasing y oversampling.

Rendimiento

El tiempo real impone una exigencia de eficiencia y determinismo. I/O adopta un modelo de procesamiento por bloques que reduce la sobrecarga y optimiza el uso del procesador. En el hilo de audio, el motor opera bajo una política estricta de cero asignaciones dinámicas, asegurando latencia mínima y estabilidad constante bajo cargas variables.

Funcionalidad

Cada nodo del grafo funciona como una unidad autónoma que puede integrarse, reemplazarse o combinarse sin afectar la estructura del sistema. Esta composición facilita la creación de flujos complejos manteniendo claridad y previsibilidad. La API ofrece un sistema de parámetros flexible para control externo, automatización y modulación.

Estabilidad

Incorporar un modo de ejecución offline que permita validar el comportamiento del grafo y realizar pruebas automatizadas sin depender del tiempo real. Incluye herramientas visuales —como FFTs, espectrogramas y medidores— junto con un sistema de registro y diagnóstico continuo que garantiza trazabilidad y detección temprana de anomalías.

Arquitectura de Grafo

La arquitectura permite modelar el flujo como una red de operaciones, donde los nodos pueden conectarse o desconectarse dinámicamente sin interrumpir la ejecución.

Esta flexibilidad se combina con una planificación de eventos sample-accurate, ideal para automatización o reproducción sincronizada. El enfoque pull-based asegura eficiencia, y el soporte para subgrafos permite construir bloques reutilizables.

Conceptos fundamentales

  • Grafo dirigido: operaciones y conexiones que definen el flujo de audio.

  • Nodos conectables dinámicamente permite agregar/quitar nodos sin interrumpir el audio.

  • Sample-accurate scheduling: ejecución precisa de eventos en el timeline de audio.

  • Procesamiento pull-based: datos fluyen desde outputs hacia inputs sin cómputo innecesario.

  • Soporte para subgrafos/modularidad: encapsulación de secciones reutilizables.

Cada elemento conforma un flujo de procesamiento flexible y estable. El resultado es un sistema modular capaz de adaptarse a cualquier escenario de audio.

Última actualización