Cómo funciona

Qué hay adentro

El núcleo del instrumento es una combinación de dos aplicaciones que se ejecutan simultáneamente en mi computadora: un workstation de audio digital (DAW) existente (comercial) como Ableton Live o Logic Pro, y mi propio software nuevo.

Mi software detecta movimiento u objetos en movimiento y puede convertir la información en mensajes MIDI que se envía a un dispositivo MIDI que sabe cómo manejar estos mensajes: convertirlos en sonidos perceptibles. Puede ser un sintetizador externo (“teclado”) o una DAW. Los sonidos generados pueden ser de cualquier tipo, como piano, batería, sintetizadores, pero también muestras de audio existentes. Para este instrumento prefiero usar Ableton Live porque es muy flexible en la manipulación de mis propias muestras de audio. Casi todos los controles (perillas, diales, etc.) en este DAW se pueden conectar a ‘MIDI control changes’ que genera mi software. Puedo generar notas (MIDI mensajes noteOn y noteOff), pero también manipular el panorama, la reverberación, el volumen o muchos otros efectos especiales en el DAW al mismo tiempo.

La pantalla de detección se puede dividir en varias regiones, cada una está acoplada a un canal MIDI. Los mensajes se envían de forma independiente a (máximo) 16 canales MIDI, que en el DAW tienen todos los ajustes y sonidos individuales.

Mi programa tiene muchos algoritmos de detección. Algunas se basan en detección de movimiento simple (resta de dos marcos de película sucesivos), detección de color (detectar objetos de un color ajustable) o seguimiento de objetos. Por lo tanto, los algoritmos de detección de objetos usan uno o más rectángulos en una imagen fija de la cámara y los siguen. Entonces puedo usar mi cabeza, nariz o un ojo para generar sonidos.

Debido a que la mayoría de las formas de algoritmos de detección pueden producir mucho ruido aleatorio y no tienen algo así como persistencia en el tiempo, implementé un mecanismo de promedio ajustable para suavizar los resultados, los movimientos detectados.

Cómo usarlo

Mi software requiere una computadora MacOS reciente con una cámara web y un dispositivo MIDI. Como cámara, se puede usar la cámara web incorporada o una cámara externa. También implementé funcionalidad para usar la cámara web de otra Mac en la misma red WiFi, con muy baja latencia.

Para el dispositivo MIDI, puede usar cualquier DAW, sintetizador de software o sintetizador externo que se conecte a la computadora a través del IAC Driver o que tenga su propio puerto MIDI. Además, la funcionalidad de red midi de Apple se puede usar para enviar la transmisión midi a otra computadora (incluso Windows) en la misma red WiFi.

Primero diríjase a su DAW y “arme” los canales de entrada, puertos, instrumentos, muestras, efectos, etc.

Después de iniciar mi software, busca cámaras web conectadas, resoluciones y puertos MIDI y selecciona los valores predeterminados. Presenta dos ventanas:
– un panel de control, y
– una ventana de video.

Con la configuración en el panel de control, puede ajustar muchas configuraciones (método de detección, configuración de detección, configuración de vista, configuración MIDI global y configuración de cada canal MIDI individual).

Una toma desde la pantalla de mi computadora: a la izquierda Ableton Live, a la derecha mi aplicación y al centro de la ventana de video.

La ventana de video brinda retroalimentación visual sobre sus movimientos y, por supuesto, sus dispositivos MIDI lo hacen con su audio. La ventana de video también se puede enviar (stream) a otra Mac en la misma red WiFi (por ejemplo, la misma que se usa como cámara).

Es posible grabar el video y el audio por el DAW, ambos activados por un solo mensaje CC emitido desde la interfaz de usuario. Esto da como resultado dos archivos separados, un archivo de video (.mp4 o .mov) de mi programa y un archivo de audio exportado desde el DAW. Construí un programa de software separado (basado en  ffmpeg) que hace posible combinarlos exactamente sincronizados para hacer un video de demostración.

Aquí pongo toda esta información en un esquema, para los técnicos…

descripción esquemática de mi aplicación de software

¿Cómo está construido?

Este instrumento creé por primera vez en MacOS 10.11.6 (El Capitan) en C++ con Qt versión 5.6.0., OpenCV 3.4.3 y RtMidi 3.0.0 como API para la funcionalidad MIDI.

En 2020 tuve que cambiarme a un MacBook Pro. Mi última versión está construida en MacOS 10.14.6 (Mojave), en C++ con Qt 5.12.9 , OpenCV 3.4.3 con FFmpeg , DLib 19-21 y RtMidi 3.0.0.

Contiene todas las bibliotecas necesarias y se ejecuta incluso en una máquina ‘limpia’.

El hecho de que se trate de una aplicación de MacOS podría limitar su aplicabilidad más amplia. Por lo tanto, invito a las personas que tienen una buena experiencia en la programación de C++ en Windows a ponerse en contacto conmigo para ver si podemos hacer una versión de Windows que funcione. Puede encontrar la página de contacto aquí o en el menú de arriba.

Considero mi software ahora como relativamente “final”. Esto significa que me concentraré en los sonidos y combinaciones de sonidos para los samplers de Ableton. Cuando tenga más resultados los mostraré en el Blog de este sitio.