INSTALACIÓN DEL ENTORNO MIDI

Objetivos

 

  • Establecer un entorno básico que nos permita jugar con MIDI y sintetizadores físicos o virtuales.
  • Descargar e instalar todos los programas que vamos utilizar.
  • Entender cómo se conectan todos los dispositivos y programas entre sí.
  • Preparar el entorno de trabajo para poder afrontar el curso con garantías.
  •  

    ENTORNO DE TRABAJO

     

    Para seguir este curso necesitaremos conectar un teclado y un sintetizador MIDI (ya sean físicos o virtuales corriendo en el PC), el propio Arduino y un PC.

    Independientemente de que el teclado, el sintetizador o ambas cosas sean físicas o virtuales el esquema de conexión es el mismo. Pero en el caso de que alguna de ellas virtual tendremos también que crear los puertos virtuales para conectarlos internamente en el PC. Explicaremos un poco más adelante cómo hacerlo.

    esquema conexiones midi

    Si tenéis un teclado MIDI y un sintetizador podéis conectarlo a Arduino directamente con un shield MIDI o haciendo vuestro propio montaje, pero para seguir el curso recomendamos pasar por el PC para poder leer en tiempo real los mensajes que estemos enviando y poder asegurarnos de que lo que programemos esté bien.

     

  • Recordad que si vuestro teclado o sintetizador sólo tiene tomas MIDI, podéis usar un adaptador de MIDI a USB para conectarlo al PC.
  •  

    INSTALANDO EL IDE Y LA LIBRERÍA MIDI

     

    Aunque es bastante probable que los que vayan a empezar este curso ya habrán utilizado Arduino antes, si alguien va a utilizar uno por primera vez debería empezar por instalar el IDE de Arduino.  Podéis ir a su respectiva sesión en este enlace.

    Siguiendo la filosofía de esta página, vamos a servirnos del trabajo de la inmensa comunidad de Arduino y a utilizar una librería que nos va a facilitar muchísimo la programación. De hecho, ni si quiera tendríamos que conocer la estructura de los mensajes para utilizarla, pero siempre es bueno saber, aunque sea un poco por encima, cómo funciona el MIDI en realidad.

    Podéis descargar la librería aquí Arduino_MIDI_Library_v4.2 e incluirla en el IDE como hacemos normalmente.

     

    CREANDO CONEXIONES MIDI VIRTUALES

     

    Para poder mandar mensajes MIDI entre diferentes aplicaciones de nuestro PC vamos a necesitar crear puertos MIDI virtuales. Por decirlo de alguna manera es la forma en la que vamos a crear los puertos y los cables virtuales que unirán el teclado al  Arduino y el Arduino al sintetizador en el interior de nuestro PC.

    Tendremos que crear un puerto por cada dispositivo virtual que vayamos a utilizar y después en los programas que usaremos como teclado y sintetizador les diremos a qué puerto se tienen que conectar.

    Para Windows vamos a descargar el programa LoopMIDI que podéis encontrar aquí. Una vez descargado lo instalamos siguiendo el asistente de instalación y lo ejecutamos.

    Para añadir un puerto MIDI virtual simplemente damos al botón “+” y veremos cómo van a apareciendo en la lista. Podéis darle el nombre que queráis en la parte inferior. Para borrar un puerto es tan sencillo como seleccionarlo y darle al “-“.

    Vamos a crear dos, uno para el teclado y otro para el sintetizador.

    crear puertos midi virtuales

  • Tendremos que tener este programa siempre arrancado para que estén disponibles esos puertos virtuales que hemos creado.
  •  

    Si utilizáis MAC  OS X no tendréis que descargar nada porque viene con los drivers IAC para crear puertos MIDI virtuales. Para crear un bus hay que ir a «Aplicattions -> Utilities -> Audio Midi Setup».

    abrir setup midi mac

    En la pestaña Window seleccionamos “Show MIDI Window”, hacemos click en “IAC Driver” y marcamos la casilla “Device is online”. Se pueden renombrar los puertos como queramos en esta misma ventana, añadir más puertos o borrar alguno de los que hayamos creado y no vayamos a utilizar.

    IAC drivers

    En Linux podemos crear puertos MIDI virtuales abriendo el terminal de comandos y escribiendo:

    sudo modprobe snd-virmidi.

     

    TECLADO MIDI VIRTUAL

     

    Si no tenemos un teclado MIDI, el siguiente programa que vamos a necesitar es un teclado MIDI virtual que podamos tocar en nuestro PC. Nosotros vamos a utilizar uno muy sencillito y de código abierto que se llama Virtual MIDI Piano Keyboard (vmpk) y que podéis descargar, por ejemplo, aquí e instalarlo siguiendo los pasos que indica. Está disponible para Windows, Linux y Mac.

    Lo utilizaremos como MIDI IN en nuestro Arduino y leeremos los mensajes que nos envíe y jugaremos con ellos.

    Por supuesto podéis usar otro si no os gusta este y si buscáis “teclados midi virtuales” en Google encontraréis multitud de ellos.

    Si ejecutáis el programa veréis que es muy sencillito, tenemos el teclado y una serie de parámetros que podemos ir cambiando: canal, velocidad, programa… Y que si tocáis alguna tecla sonará, pero no es eso lo que queremos.

     

  • En caso de que tengáis un teclado MIDI, simplemente conectarlo al PC y lo reconocerá como un dispositivo MIDI.
  •  

    vmpk

    Para conectarlo a uno de los puertos virtuales hay que seleccionar “Edición”->”Conexiones MIDI” y en «Controlador MIDI Out» seleccionar «Windows MM» y en “Conexión de salida MIDI” un puerto que hayamos creado.

    seleccionar salida puerto midi virtual

    Si hemos hecho bien este paso, el teclado no debería sonar cuando lo toquemos, ya que no está conectado a ningún sintetizador.

    SINTETIZADOR VIRTUAL

     

    El tema de los sintetizadores es un mundo por sí mismo, y si buscáis un poco de información por ahí, veréis que es un tema recurrente en todos los foros de música que hay por la red.

    Si ya estáis familiarizados con este tema, sólo tenéis que configurar las conexiones del sintetizador para conectarlo a un puerto virtual de los que hemos creado. Debería ser algo parecido a lo que hemos hecho con el teclado.

  • Más adelante trataremos de hacer una sesión (o más) tratando un poco en profundidad el tema de los sintetizadores.
  • Al igual que con los teclados, si tenéis un sintetizador simplemente conectarlo al PC.
  •  

    Así que de momento vamos a dar dos opciones muy fáciles de utilizar, que en cuanto a calidad de sonido pueden ser un poco flojillos, pero serán suficiente para empezar.

    La primera opción es utilizar el sintetizador que viene instalado por defecto en los sistemas operativos. En este caso no tenemos que configurar nada de momento, y si no queréis más lío de momento, es la opción más recomendable.

    La segunda opción es utilizar el que se descarga junto al teclado que hemos descargado y que se llama FluidSynth, y que a mi parecer suena mejor que el que viene preinstalado en Windows.

    Para poder utilizarlo vamos a tener que abrir otro vmpk y así usaremos uno como teclado y otro como un sintetizador. En el que vamos a usar como sintetizador tendremos que conectarlo de la siguiente forma:

    conexion midi vmpk sintetizador

    Lo malo es que si lo usamos así, tanto de teclado como de sintetizador, tendremos que configurarlo cada vez que vayamos a trabajar con él, porque no podemos guardar dos configuraciones distintas. Pero bueno, no se tarda ni un minuto y siempre está la opción de usar los sintetizadores preinstalados.

     

    CONVERTIDOR SERIE A MIDI

     

    Como nuestro PC no detecta a los Arduino como un dispositivo MIDI vamos a necesitar un programilla que convierta los datos serie a MIDI, y que además nos los presente de una forma aceptable para que los podamos interpretar.

    Yo recomiendo usar el Hairless, que es gratis y muy fácil de usar. Además funciona con la librería que vamos a usar y sirve para Windows, Linux y Mac. Basta con descargarlo y ejecutarlo, no necesita instalarse. Lo podéis descargar aquí.

    convertidor serie a midi

    Pero si no os gusta y preferís usar otro podéis buscar en Google “convertidor serie midi” y os aparecerán otras opciones.

  • Hay un método para hacer que nuestro PC se comporte como un controlador MIDI nativo. Trataremos de explicarlo más adelante, pero si tenéis prisa buscad “Hiduino” en Google.
  • Al ejecutarlo veréis que hay una especie de esquemita con las conexiones entre el MIDI In, el MIDI Out y el Serial Port o Puerto Serie.

     

  • En el Serial Port seleccionaremos el puerto al que esté conectado Arduino.
  • En el MIDI In tendremos que seleccionar el teclado MIDI o el puerto virtual al que hayamos conectado el teclado virtual.
  • En el MIDI Out seleccionaremos el sintetizador o el puerto virtual en el que hayamos conectado el sintetizador virtual. Si usamos el sintetizador que viene preinstalado podemos seleccionarlo directamente sin pasar por un puerto virtual.
  • Si ahora mismo no entendéis muy bien qué son estos tres tipos de conexión, no os preocupéis que las explicaremos en la siguiente sesión.
  •  

    sintetizador por defecto hairless

    Para que esas conexiones estén activas tendremos que marcar la casilla “Serial<-> MIDI Bridge On”, pero mientras este activada no podremos cargar programas en el Arduino, ya que tendremos el puerto serie ocupado. O sea que tendremos que desactivarlo cada vez que queramos cargar un programa nuevo.

  • Si usáis un shield Midi, tendréis que desconectarlo también cuando carguéis el programa con el IDE o no funcionará.
  • Existen shields con los que puedes activar y desactivar las conexiones Midi con un interruptor para cargar el programa sin necesidad de desmontarlo de la placa Arduino.
  • No os preocupéis que lo iremos recordando en las siguientes sesiones.
  •  

    También veréis que hay otra casilla “Debug MIDI Messages” que tendremos que marcar si queremos que nos muestre los mensajes que está enviando y recibiendo Arduino en modo texto. Si ahora tocáis un poco el teclado veréis los mensajes MIDI que está mandando.

    hairless midi in midi out

    En este punto, aunque toquemos notas en el teclado, no debería sonar nada. Los mensajes MIDI  le están llegando a nuestro Arduino, pero no les hace ni caso. Y claro, el sintetizador no emite ningún sonido porque de momento no se entera de la fiesta, cosa que iremos solucionando de aquí en adelante.

     


    Deja una respuesta