Conversor PureData de OSC a MIDI y viceversa para un espacio de mensajes determinado.
Este patch espera recibir mensajes OSC de terminales por el puerto 9889 y rutea 12 terminales (arduinos y/o computadoras) y sus sensores (6 para cada terminal).
Los mensajes OSC se formulan /terminalX/sensorY valor con X=[1..12], Y=[1..6], valor =[0..1023].
Estos se convierten a MIDI según la convención: número de control = X, número de canal = Y, valor del control = valor y se envían al puerto MIDI.
Para ello debemos seleccionar por el menú de Pure Data Media > ALSA-MIDI
También recibe mensajes de control MIDI para recuperar el mensaje OSC y enviar de nuevo a los terminales de su propia red por el puerto 8998.
El caso práctico son 2 estaciones conectadas por Scenic, que permite la comunicación mediante MIDI.
Cada estación cuenta con 6 terminales y una máquina con Scenic en una misma red local.
A cada terminal se le asigna un identificador X diferente para todas las estaciones.
En este caso la estación A tendrá 6 terminales del 1 al 6, y la B otros 6 terminales del 7 al 12.
Los terminales se conectan a la máquina de Scenic y le envía mensajes OSC por el puerto 9889 indicando los valores de sus sensores.
A su vez esperan recibir mensajes OSC por el puerto 8998, que son filtrados para obtener los valores de cada sensor para cada terminal.
Para que Scenic envíe y reciba los mensajes MIDI hay que activar y seleccionar la entrada y salida por las de Pure Data, en la pestaña MIDI de Scenic.
El código base se compone de 4 patches:
osc2midi2osc.pd - es el servidor ruteador que debe correr en la maquina de Scenic
oscTerminal_A.pd y oscTerminal_B.pd representan terminales y la idea es que cada uno corran un espacio distinto y acordado, dentro de la misma red de la máquina Scenic respectivamente.
routeSensor.pd es una abstracción que se utliza en los patchs anteriores y debe estar fisicamente en el mismo directorio.
Se puede ejecutar con Pure Data sin la interfaz de usuario por consola y leer el log de mensajes
$ pdextended -rt -alsamidi -nogui /mnt/codis/oscScenic/osc2midi2osc.pd
y también con la interfaz.
Se utilizó Pure Data extended (0.42.5) ya que integra la librería de externals mrpeach utilizada. También es posible usar Pure Data vanilla, instalando la biblioteca mrpeach.
En la primera versión:
osc2midi2osc.pd - es el servidor ruteador que debe correr en la maquina de Scenic
oscTerminal_A.pd y oscTerminal_B.pd representan terminales y la idea es que cada uno corran un espacio distinto y acordado, dentro de la misma red de la máquina Scenic respectivamente.
routeSensor.pd es una abstracción que se utlizan en los patchs anteriores y debe estar fisicamente en el mismo directorio.
Se utilizó Pure Data extended (0.42.5) ya que integra la librería de externals oscx utilizada. También es posible usar Pure Data vanilla, instalando la biblioteca oscx.