dis145

clase-06

jueves 11 de abril 2024

hoy vamos a estudiar cómo lograr comunicación serial con Processing, y sobre los protocolos MIDI y OSC.

hoy bajamos la biblioteca MidiBus para hacer sonido con nuestros computadores.

referencia: mucho de este material ya fue desarrollado para un curso que dicté en sinestesia.cc, disponible en https://github.com/sinestesiacc/2023-2-programa-medios-interactivos/

instalación de bibliotecas

en esta clase usaremos estas dos bibliotecas:

las podemos instalar desde Processing -> Sketch -> Import Library -> Manage Libraries

opcionalmente, también podemos instalar el software Pd desde https://puredata.info/

implementación MIDI

la unidad fundamental de información en un computador es un bit (del inglés “pedacito” o también dígito binario, del inglés “binary digit”.

un bit es un componente eléctrico, que como un interruptor puede tener 2 estados, que son llamados de estas formas equivalentes:

un bit solamente nos permite contar desde 0 a 1.

con 7 bits podemos contar hasta 128, lo que es una buena resolución para definir eventos musicales en un piano.

necesitaremos especificar no solamente qué nota está siendo tocada, sino que también con qué volumen suena.

como 8 bits, también llamado 1 byte, es un múltiplo muy usado en computación para contar pedazos de información, se decidió usarlo para los mensajes musicales, y el bit extra se usa para hacer mensajes de este tipo:

1xxxxxxx 0xxxxxxx 0xxxxxxx

entonces en un mensaje MIDI, mandaremos mensajes de 3 bytes de largo = 24 bits.

pero cómo sabemos cuál es el primero? revisamos el primer bit de cada byte, y el que dice 1 es el primer byte, y los siguientes 2 que empiezan con cero son información adicional.

en general, los mensajes serán así:

1tttcccc 0ddddddd 0ddddddd

donde:

veamos 2 típicos mensajes MIDI y su composición.

mensajes de notas MIDI

los mensajes de notas MIDI, dicen toda esta información:

mensaje de nota encendida = 1001cccc 0nnnnnnn 0vvvvvvv

donde:

mensajes de control MIDI

los instrumentos MIDI también tienen perillas que cambian el valor interno de variables o parámetros, y esos mensajes los podemos recibir y enviar, y dicen toda esta información:

mensaje de control = 1011cccc 0nnnnnnn 0vvvvvvv

donde:

protocolo OSC

el protocolo OSC envía mensajes en una dirección, por ejemplo: “/prueba”

podemos subanidar mensajes como si fueran carpetas o páginas web, por ejemplo “/prueba/hoy” y “prueba/manana”.

esta estructura nos permite hacer árboles de decisión, donde por ejemplo solamente recibimos y reaccionamos a mensajes con cierta dirección o subdirección.

después de la dirección viene el mensaje, que puede ser un arreglo de distintas partículas de información. por ejemplo el mensaje que envía tres valores: un entero, un float, un string.

“/prueba/hoy 1 440.0 primero”

cada mensaje tiene que ser enviado y recibido desde un puerto.

en el computador o software que envía, tenemos que saber los siguientes parámetros:

en el computador o software que recibe, lo que hacemos es abrir un puerto y poner atención a lo que recibimos, entonces solamente necesitamos:

ventajas y desventajas de MIDI

MIDI sobresale cuando:

MIDI no es una buena opción si:

ventajas y desventajas de OSC

OSC sobresale cuando:

OSC no es una buena opción si:

estrategias MIDI

estrategias OSC

software adicional recomendado