Contenido del curso
MARATON – DIA 1
La maraton tiene como objetivo incentivar el uso de TouchDesigner como plataforma de desarrollo, partiendo de las facilidades que nos brinde en el proceso de apredizaje de PROGRAMACIXN, gracias a su interfas visual, sus multiples campos de aplicación y su capacidad de integración con demas softwares, protocolos y dispositivos perifericos.
0/1
MARATON – DIA 2
La segunda sesión de la Maratón NTRCTV dará una introducción al vasto campo de la edición de video en tiempo-real. A partir de ejemplos presentes en los operator snippets compondremos nuestra biblioteca de efectos, asociado a un mezclador de video básico que permita integrar contenido de video pre-producido. Como parte del desarrollo de un sistema, la estructuración de la de la red lógica es solo ⅓ de la gestión necesario para completarlo. La infraestructura de cómputo, comunicación y control son elementos fundamentales para el funcionamiento de la solución a desarrollar. Como parte de aplicación práctica, integramos dispositivos de uso cotidiano como un smartphone android con dos aplicaciones que hacen uso del protocolo OSC. OSCHOOK y LittleOSC, ambas de descarga gratuita. Estas aplicaciones nos permitirán integrar nuestro sistema vía wifi, vinculando TouchDesigner con el smartphone, obteniendo los datos de los sensores del dispositivo y los datos acciones obtenidas por un pad touch al ser accionadas por el usuario.
0/1
MARATON – DIA 3
en esta sesión de nuestra MARATON NTRCTV con Touchdesigner abordaremos una de las tecnicas mas simples utilizadas en la creacion de videomapping interactivo dentro de nuestra plataforma de programación.
0/1
MARATON – DIA 4
En esta sesión abordaremos tecnicas basicas para capturar video en tiempo-real, aprovechando recursos de internet y dispositivos de captura de vide. Ademas integraremos un dispositivo MIDI a nuestro sistema de control de video.
0/1
MARATON – DIA 5
Como ya lo hemos abordado en las sesiones pasadas de la maraton, la familia de OPeradores de Canal (CHOPs) es encarga de vincular y reinterpretar las distintas clases de informacion que podemos llegar a utilizar, siendo los valores numericos la base para la integración de las distintas familias.
0/1
MARATON – DIA 6
En el dia 6 de la maraton de NTRCTV abarcaremos la tematíca GEOMETRIAS + MATERIALES. Vincularemos un tableta WACOM Intous 5 y el sistema de emisón de contenido en tiempo-real de Photoshop para realizar un simulador de la tableta gráfica.
0/1
MARATON – DIA 7
Esta septima sesión de la MARATON NTRCTV traer como tema principal el acercamiento a el desarrollo de interfaces visuales responsive, transladando el concepto desde las practicas del diseño web. Incursionando en temas de nivel medio, abordamos las BUENAS PRACTICAS, haciendo enfasis en la importancia de la nomenclatura en los procesos de desarrollo.
0/1
MARATON – DIA 8
En esta la penultima sesión de la Maraton NTRCTV con TouchDesigner, estaremos abordando una de las maneras que tenemos de vincular la plataforma de prototipado ARDUINO con nuestro sistema en TouchDesigner de manera bidireccional, recibiendo señales via PUERTO SERIAL de dos sensores, 1 fotocelda y 1 potenciomentro, junto con el envio de señal desde TD a un LED en la tarjeta arduino Mega.
0/1
MARATON – DIA 9
Esta es la novena y ultima sesión de la MARATON NTRCTV con TouchDesigner, la cual tuvo lugar el año 2020 durante 3 semanas del mes de marzo y abril. En esta sesión cerramos con broche de oro incursionando en el mundo del KINECT, una poderosa herramienta capaz de vincularse de manera nativa con nuestro sistema en TouchDesigner. Desarrollaremos un ejercicio simple de BodyTracking haciendo uso del Player Index de nuestro OPerador de KinectTOP, junto con los valores de Canal que obtenemos de nuestras manos junto con sus interacciones.
0/1
MARATON – NTRCTV – PROGRAMACIXN PARA HUMANXS

El sistema se fundamenta en la construcción de una interfaz de usuario (UI) modular y responsiva, utilizando exclusivamente operadores de la familia de Componentes (COMP). El concepto de diseño responsivo, extraído del desarrollo web, se implementa para que la interfaz se adapte a diversas resoluciones de salida. Esto se logra estableciendo las dimensiones del `Container` COMP raíz (ej., 1920×1080) y utilizando expresiones de Python para que los componentes hijos calculen sus dimensiones de forma porcentual o fraccional respecto a su contenedor padre. La expresión fundamental empleada es `me.parent().par.parameter_name`, que accede a los parámetros del operador padre.

 

Se enfatizan dos buenas prácticas de desarrollo: primero, la aplicación de una nomenclatura única y descriptiva a todos los operadores para evitar conflictos de direccionamiento en expresiones (`op(‘name’)`) y mejorar la mantenibilidad de la red, especialmente en arquitecturas con múltiples niveles de anidamiento. Segundo, el uso de `Text` DATs para la documentación interna del patch, permitiendo la inserción de anotaciones explicativas que no afectan el rendimiento del sistema.

 

La arquitectura de la interfaz se basa en una jerarquía de `Containers`. El `Container` principal se subdivide horizontalmente en tres columnas mediante `Container` hijos. El ancho (`width`) de cada columna se define programáticamente como `me.parent().par.width / 3`, asegurando una distribución equitativa. La alineación de estos componentes se gestiona en la página `Children` del `Container` padre, configurando el parámetro `Align` a `Left to Right`. A su vez, cada columna se subdivide verticalmente en filas, utilizando `Containers` anidados cuya altura se calcula con `me.parent().par.height / N` (siendo N el número de filas) y cuya alineación se configura como `Top to Bottom`.

 

Los módulos de control individuales, como los decks de un VJ set, se construyen dentro de esta estructura. La previsualización de vídeo en cada módulo se implementa asignando un `Null` TOP al parámetro `BG TOP` de la página `Look` de un `Container`. La ruta al `Null` TOP se especifica de forma relativa (`./null_name`) para mantener la encapsulación del módulo. Los controles de interfaz, como `Slider` COMPs y `Button` COMPs, también se dimensionan y posicionan utilizando expresiones relativas al padre. Los valores de salida de múltiples controles se agregan mediante un `Merge` CHOP para su posterior procesamiento.

 

El flujo de señales y el procesamiento se gestionan de forma modular. La comunicación entre los `Containers` principales (columnas) se realiza a través de operadores `In` y `Out` (tanto para TOPs como para CHOPs), manteniendo un diseño limpio y encapsulado. Los canales de control provenientes de los `Sliders` y `Buttons` se mapean a parámetros de operadores de efectos, como un `Level` TOP, para manipular en tiempo real propiedades como `Brightness`, `Invert` y `Opacity`. Para la gestión de canales, se utiliza el `Select` CHOP o el parámetro `Rename To` del `Math` CHOP para asignar nombres significativos a los flujos de datos, por ejemplo, renombrando `v1` a `strobe` para mayor claridad.

 

Se implementa un efecto de strobe donde un `Button` de tipo `Momentary` controla la frecuencia de un `LFO` CHOP. Un `Math` CHOP intermedia para reescalar el rango del botón (0-1) a un rango de frecuencia apropiado para el `LFO` (ej. 0-10 Hz). La salida del `LFO` (configurado a `Gaussian` para obtener un rango 0-1) modula el parámetro `alpha` de un `Constant` TOP, que posteriormente se compone sobre la señal de vídeo principal. La columna central actúa como un mezclador, recibiendo las señales de vídeo procesadas de las columnas laterales. Utiliza un `Cross` TOP controlado por un slider para la transición lineal entre las fuentes A y B, y un `Composite` TOP para aplicar modos de mezcla aditivos o sustractivos. Un segundo `Cross` TOP permite al usuario seleccionar entre los dos tipos de transición. Una capa de superposición, como un logo, se gestiona con un `Over` TOP, cuya visibilidad es controlada por un `Button` que modula la opacidad de la capa a través de un `Level` TOP. El resultado final del pipeline de mezcla se visualiza en un panel dentro de la misma columna central, utilizando la técnica `BG TOP`.