martes, 31 de mayo de 2016

Entendiendo el MIDI


    
    Antes de abordar un proyecto como este hay una cantidad de conceptos que tenemos que definir y estar mínimamente familiarizados con ellos pues, de otro modo, nos volveremos un "ocho". 

    Me pareció que sería lo mejor centrarme primero en la parte no tangible del proyecto, es decir, lo que tiene que ver con toda la parte informática o lógica, por 2 motivos:

1) Porque es mi punto débil (sé configurar software pero entender cómo funcionan a nivel de código pues... ahí estoy en pañales).  

2) Podríamos construir la batería mas bonita de todos los tiempos, pero si no logramos que se comunique efectivamente con la PC, sería un trasto inservible. (Bueno casi inservible, al menos serviría como pad de practicas XD, pero no es la idea, verdad? )

   Por estas razones dejaré para luego todo lo referente al diseño de los tambores, platos, estructura, caja para el módulo, pedales, etc... y me enfocaré en asimilar primero el funcionamiento a nivel electrónico.

    El primer concepto que hay que tener presente, es el concepto de MIDI, ya que sin el no funciona casi ningun instrumento electrónico moderno. ¿Que rayos es MIDI?

    En su página oficial encontramos esta definición:

 "MIDI es un estándar tecnológico que describe un protocolo utilizado para conectar productos de muchas compañías diferentes, incluyendo instrumentos musicales digitales, computadoras, tablets y smartphones". 

    Y eso con qué se come?


Logo de MIDI


    
    Bueno, primero que nada, MIDI es el acrónimo de Musical Instrument Digital Interface, o lo que es lo mismo "interfaz digital de instrumentos musicales". Podemos pensar en el MIDI como un lenguaje. Vamos a hacer un poco de historia: 

    Todo se remonta a la época cuando se inventaron los primeros instrumentos que usaban electricidad para emitir sonidos. Al principio estos eran analógicos, y tenían muy pocas posibilidades de interconectarse entre sí. Si uno estaba tocando un sintetizador que producía determinado tipo de sonidos, digamos de órgano, tenía que pasar a otro aparato diferente si quería cambiar a un sonido de piano, y así por el estilo. Por lo tanto un tecladista que quisiera disponer de muchos sonidos en vivo tenía que subirse a la tarima con muchos aparatos y andar saltando de uno para otro.

    Pero a finales de los 70 y principios de los 80 todo empezó a cambiar con la masificación de la tecnología digital y la informática. Ya era factible por ejemplo, que un solo sintetizador fuese capaz de generar sonidos muy variados y acceder a ellos por medio de un botón. Lo que es más, era posible interconectar varios sintetizadores y disponer de todos sus sonidos desde un único teclado. Pero pronto los músicos se toparon con un gran problema: cada fabricante tenía sus propios protocolos de interconectividad, y productos de marcas diferentes no eran compatibles entre si. Asi que si yo tenía un teclado Roland, no lo podía conectar de un Yamaha o con los de ninguna otra marca. Esto como es obvio, resultaba muy limitante. 

   Para remediarlo, representantes de las principales compañías fabricantes de instrumentos se reunieron a mediados de los 80 para ponerse de acuerdo y definieron unas reglas de fabricación, que todos tendrían que seguir de ahí en adelante, para asegurar la compatibilidad entre sus equipos en cualquier parte del mundo. Y no solo entre instrumentos, esta tecnología iba a permitir la conexión con computadoras, que empezaban a masificarse en aquella época y que pronto demostraron lo que eran capaces de hacer. Esta nueva especificación englobaba tanto lo concerniente a la estructura de los datos como el hardware, la forma de los conectores, etc.

Nota: Podemos pensar en otros estándares de comunicación con los que estamos más familiarizados. Por ejemplo el USB, el Bluetooth, el WiFi, todos ellos son estándares de comunicación que surgen de convenios entre fabricantes, y que garantizan que dos aparatos que soporten estas tecnologías se puedan comunicar satisfactoriamente sin importar en que parte del mundo fueron fabricados. Si yo me compro un pendrive made in China y lo conecto en una MAC made in USA, lo mas probable es que funcione, verdad? por que ambos fueron fabricados bajo la misma normativa. El MIDI es lo mismo pero orientado a la música y los instrumentos.



Cables MIDI


    Todas estas nuevas posibilidades revolucionaron por completo la forma en que se componía, editaba, grababa y producía la música. El MIDI hizo posible que una sola persona con un mínimo de equipo y una computadora, fuese capaz de producir un álbum entero con calidad profesional. Aún era muy caro, (no cualquiera tenía siquiera una PC...) pero seguía siendo mas barato (y sobre todo más práctico) que contratar músicos, movilizar instrumentos reales, etc.



Ejemplo de comunicacion entre equipos MIDI


      A través de los años se han hecho algunas modificaciones, o actualizaciones al protocolo MIDI, pero su estructura básica sigue siendo prácticamente la misma. Hoy día se utiliza no solo para controlar sonidos, sino también iluminación, video, efectos especiales, etc.
        
        Podemos imaginar el MIDI como unas reglas que especifican en que orden se tienen que agrupar los datos para que conformen mensajes que sean entendidos por los instrumetos o por software musical.

         Ok, ok, todo bien, pero y como se relaciona todo este rollo con la batería que vamos a armar?

        Bueno, nuestra batería forzosamente estará mandando mensajes en formato MIDI a la PC, uno tras otro. Cada golpe dado con la baqueta se traducirá, con la ayuda del Arduino, en órdenes MIDI que irán al Superior Drummer 2.0 (ver entrada anterior) que este tendrá que interpretar. No es necesario volverse un experto en todo lo que concierne al MIDI (es un tema un poco extenso) pero sí conviene comprender al menos su funcionamiento básico.

      Un mensaje MIDI, tal como una oración de palabras, tiene que llevar un orden lógico para que tenga sentido. No es lo mismo decir:

          -Hola como estás? 

          que:

          -Estás hola como

       
     De igual forma, los mensajes MIDI tienen su propia sintaxis, en donde cada parte significa algo en un orden concreto.

    Hay varios tipos de mensajes MIDI que activan funciones distintas. El que mas compete a nuestro proyecto es NoteOn. 

    NoteOn, como su nombre lo indica, es un mensaje que ordena la activación de una nota. Está compuesto por 3 bytes, y cada uno contiene información especifica. El primero de ellos se llama byte de estado: es el que identifica que tipo de acción conlleva el mensaje, en este caso, un NoteOn, es decir, que le dice a la PC "preparate para que actives una nota". El segundo y tercer bytes contienen los datos concernientes a la nota: el segundo especifica cual es la nota en cuestión, ya sea Re, Do, Fa sostenido, o en el caso de la batería, un platillo, un redoblante, etc. y el tercero indica el velocity, que pudiera parecer que significa la velocidad en que llega el fin de la nota, pero en relidad se refiere a la intensidad o cantidad de volumen de la misma. 

    Un diálogo entre PC y batería sonaría algo asi traducido al español:

PC: Estoy lista y a la espera de nuevas instrucciones.

BATERÍA: Quiero que me actives un golpe (1er byte), en el bombo (2do byte), a todo el volumen disponible (3er byte).

PC: Como usted ordene.

    Y seguidamente ejecutará la nota según esos parámetros. Todo en cuestión de milisegundos.

    Nota: Como ya hemos visto hasta aquí, el MIDI NO transporta audio digital como tal, sino instrucciones codificadas que cada módulo generador de sonidos es capaz de entender.

   Otros tipos de mensajes pueden ser por ejemplo: NoteOff, para apagar una nota,  o ProgramChange, para cambiar de sonidos, etc..

    Toda esa información está codificada en lenguaje binario que se compone de unos y ceros. Grupos de unos y ceros en un orden especifico forman bytes, y grupos de bytes conforman mensajes MIDI. Pero ya nos estamos metiendo en el reino de la informática pura, y me saldría demasiado de lo que pretendo abarcar con este blog. De todos modos invito a quien quisiera ampliar sus conocimientos a leer artículos como este donde se trata a fondo el tema. 

    Dijimos que los datos viajarán del Arduino a la PC, pero como hacemos las conexiones? La inmensa mayoría de las PC's actuales no vienen con conectividad MIDI de fábrica, por lo tanto, debemos recurrir a una de estas opciones:

1) Instalar una tarjeta de sonido o una interface con entradas MIDI. Esta sería la opcion más profesional, pero tambien la más cara, y como la que la idea aquí es mantener bajos los costos, la descartaremos por ahora.


2) Utilizar un conversor MIDI to USB. Esta opción es mucho más económica e igualmente dotará a la PC de las conexiones necesarias.


3) Usar software. Esta opción es gratis. Se trata de unas aplicaciones que crean unos puertos MIDI virtuales, internamente. Asi, podemos conectar el Arduino a un puerto USB cualquiera, y los programitas harán de intermediarios con el software musical. Mas adelante dedicaré una entrada a estas últimas opciones.






    Hasta aqui creo que vamos bien. Seguro que dejé mucho por fuera, como el tema de los canales, pero mejor no abrumarnos con tanta información, lo mencionado es lo que más relevante para el proyecto. Espero que esta entrada haya servido de introducción amena al tema del MIDI para quien no estuviera familiarizado. En mi caso, con la investigación que estoy haciendo he aprendido muchísimo mas. Es probable que tenga que ahondar en detalles específicos mas adelante, pero de momento creo que esta bien para dar una idea. 

     ¡¡Hasta la próxima entrada!! Saludos!








1 comentario:

  1. The Best Live Dealer Casinos in 2021 - DRM CD
    There 경산 출장안마 are many great 하남 출장안마 live casino options, from poker to blackjack, and there's plenty to choose from. Here 안양 출장마사지 are the 10 best 안양 출장샵 live casinos in 안동 출장마사지 2021

    ResponderBorrar