El sistema gestiona el flujo de información a través de dos conceptos principales: el ‘cooking’, que se refiere al procesamiento computacional ejecutado frame a frame para cada operador, y el ‘Data Flow’, que describe la trayectoria de los datos desde su origen hasta su salida. El flujo de datos se materializa mediante conexiones directas (cables) o a través de relaciones de operador, que permiten la vinculación de parámetros entre distintas familias de operadores (TOP, CHOP, SOP, etc.).
Cualquier parámetro numérico en la interfaz de un operador es susceptible de ser controlado por un canal de un operador CHOP. La vinculación se inicia activando la vista del operador CHOP de origen. Al arrastrar un canal específico (no el operador completo) hacia un campo de parámetro numérico de un operador destino, se presenta un menú contextual con opciones de vinculación.
Existen tres tipos principales de relaciones de operador para vincular canales CHOP a parámetros:
1. **Export CHOP (Exportación):** Establece una vinculación unidireccional directa. El parámetro de destino es resaltado con un indicador de color verde y su valor es continuamente sobreescrito por el valor muestreado del canal CHOP fuente. Este modo bloquea el campo del parámetro, impidiendo la edición manual o la adición de scripts, funcionando como una inyección de datos directa. Por ejemplo, al exportar un canal de un CHOP `Noise` al parámetro ‘Radius X’ de un TOP `Circle`, el radio del círculo es modulado en tiempo real por la señal pseudoaleatoria generada.
2. **CHOP Reference (Referencia):** Crea una vinculación unidireccional mediante una expresión de Python. El parámetro de destino es resaltado con un indicador azul y el campo contiene una expresión con la sintaxis `op(‘nombre_operador’)[‘nombre_canal’]`. Esta expresión es evaluada en cada frame para obtener el valor actualizado del canal. A diferencia de la exportación, la referencia es editable. Permite la manipulación matemática de los datos en tiempo real mediante la adición de operadores aritméticos de Python (`*`, `/`, `+`, `-`) directamente en la expresión. Por ejemplo, `op(‘noise13’)[‘chan1’] * 0.5` referenciará el valor del canal ‘chan1’ del operador ‘noise13’ y lo multiplicará por 0.5 antes de asignarlo al parámetro.
3. **Bind (Vinculación Bidireccional):** Establece una relación de sincronización bidireccional entre dos parámetros, típicamente dentro de operadores CHOP como un `Constant` CHOP. Cuando dos parámetros están vinculados con `bind`, la modificación de cualquiera de ellos actualiza instantáneamente al otro. Si el parámetro A se modifica, el parámetro B refleja el cambio, y viceversa. Esta relación es indicada por un resaltado de color morado y es fundamental para crear controles de interfaz de usuario o sistemas donde múltiples parámetros deben permanecer sincronizados en ambas direcciones. Esta opción no está disponible en todas las interacciones de parámetros, como al vincular un CHOP a un parámetro de un TOP, donde solo `export` y `reference` son aplicables.
Los estados de los parámetros se identifican visualmente: un cuadrado morado indica el estado por defecto (no modificado o vinculado con `bind`), un cuadrado verde indica una exportación activa, y un cuadrado azul indica una referencia de Python activa.