El MIDI en Windows 95 [ 15.MIDIenWindows.pdf ]
Sergi Jordà 1997 midi, secuenciador, tecnología


www.iua.upf.es/~sergi/   -   sergi.jorda@iua.upf.es
Publicado en Resonancias con permiso del autor - (c) 1997-2003 Sergi Jordà Puig

 

15.1. Introducción
Una vez vistas las especificaciones, posibilidades y usos más frecuentes del protocolo MIDI, en este capítulo veremos cómo organiza y gestiona el MIDI Windows 95, aunque la mayoría de lo indicado sería fácilmente extrapolable a Windows 3.1. Esperamos que esta información le sea de utilidad para comprender y configurar su sistema de forma óptima. Este capítulo, es asimismo imprescindible para los que deseen abordar la programación MIDI que se estudia en los dos próximos capítulos.

 

15.2. Dispositivos MIDI en Windows 95
En este apartado volveremos a hurgar en el panel de control y otras utilidades de Windows 95; si es necesario, repase lo mencionado en los apartados 4.5 a 4.8.

Para comenzar, nada nuevo hay que añadir a lo comentado en el apartado 4.5, sobre la información referente a los dispositivos de sonido accesibles desde la opción Controladores de sonido, vídeo y juegos del icono de sistema en el panel de control, ya que en él, Windows no distingue entre los dispositivos MIDI y los de audio digital. Esta información tan sólo le será de utilidad si su sistema presenta alguna incompatibilidad o conflicto a nivel de IRQs o direcciones de memoria. Suponiendo que todas las tarjetas hayan instalado correctamente sus drivers, la información realmente útil es accesible desde el icono multimedia.

15.2.1. Información MIDI en el icono multimedia - multiplicidad de los dispositivos MIDI internos
Si en el apartado 4.5, estudiamos ya los componentes de audio digital y del CD Audio incluidos en esta caja de dialogo, ahora le toca el turno al MIDI. La novedad, es que aunque sólo disponga de una tarjeta de sonido, es posible que al seleccionar la pestaña correspondiente, le aparezcan varios dispositivos MIDI. La comprensión de este punto es fundamental para entender la gestión que hace Windows de los dispositivos MIDI internos. Cada uno de estos dispositivos está asociado a un driver diferente. Un driver no es más que un programa que no se ejecuta directamente, sino que se activa de forma automática y responde a peticiones formuladas por el sistema u otros programas. En el caso del MIDI, cada uno de estos drivers corresponde a un puerto MIDI independiente.

Supongamos que disponemos de una tarjeta con tecnología de tablas de onda, que incluye además síntesis FM para compatibilidad con modelos anteriores. Dicha tarjeta incorpora en realidad dos sintetizadores en uno, y si cada uno de ellos posee su propio driver, ambos podrán ser accesibles de forma simultánea. En la figura 15.1, que muestra esta ventana para un ordenador equipado con una Sound Blaster AWE32, se observa que los dispositivos son en realidad tres.

 

 
Figura 15.1. Ventana de dispositivos MIDI

 

El MIDI de Creative Advanced Wave Effects Synthesis para AWE 32 es un nombre muy largo para designar al sintetizador de tabla de ondas, el Sintetizador FM interno OPL2/OPL3 corresponde lógicamente al chip FM, y el MIDI de puerto MIDI externo al MIDI OUT. Dado que cada uno es capaz de direccionar 16 canales, un sistema de estas características podrá reproducir 16 canales con sonidos de tabla de ondas, 16 canales FM y podrá gestionar también, a través del conector de MIDI OUT, 16 canales más para controlar sintetizadores externos.

15.2.2. Elección del dispositivo MIDI por defecto - el mapeador MIDI
En algunas aplicaciones MIDI sencillas, como el reproductor de multimedia (y la gran mayoría de programas reproductores de ficheros MIDI), no es posible seleccionar entre los diversos puertos MIDI de salida. Estos programas envían toda la información a un único un puerto defecto, denominado mapeador MIDI (o MIDI mapper) que se configura en la ventana que nos ocupa. Si dispone de varios dispositivos MIDI, lo normal será asignar el valor defecto a aquél que mejor suene, pero no está obligado a elegir uno en su totalidad, ya que el dispositivo defecto puede ser una combinación de todos los disponibles.

Configuración personalizada

Supongamos que dispone de dos sintetizadores internos A y B. El A suena mejor, pero siente cierta debilidad por los sonidos de percusión del B. En este caso, tal vez le interese configurar el dispositivo defecto, de forma que utilice el sintetizador A en todos los canales, salvo en el 10 (reservado para la percusión en General MIDI), que se asignará al sintetizador B. El proceso a seguir es el siguiente:

  1. Seleccione Configuración personalizada (A) y pulse el botón Configurar (B) en la ventana de Propiedades Multimedia de la figura 15.2. Aparecerá una nueva ventana con el instrumento asociado a cada uno de los dieciséis canales (C ).
  2. Sitúese en el instrumento del canal 10 (D), y pulse Cambiar (E). Se activará una lista desplegable con los dispositivos disponibles en el sistema (F).
  3. Seleccione el sintetizador B y pulse Aceptar (G). El cambio aparecerá reflejado en la lista de canales de la ventana anterior (C ).
  4. Pulse de nuevo Aceptar (H), si desea guardar esta configuración como la Predeterminada, o bien escriba un nuevo nombre en la parte superior de la ventana (I) y pulse Guardar Como (J).
  5. La nueva configuración estará siempre accesible desde la lista de Configuración personalizada (A).

Repitiendo este proceso, podrá cuando lo desee, añadir una nueva configuración, y modificar o eliminar una ya existente.

 

 
Figura 15.2. Configuración de un dispositivo MIDI personalizado

 

Selección de un instrumento único

En el caso de que desee utilizar un solo dispositivo como sintetizador defecto, tan sólo tendrá que seleccionarlo en la ventana principal y activar la opción instrumento único.De todas formas, tenga en cuenta que la definición de este mapeado tan solo es útil para aplicaciones sencillas, normalmente reproductores (players). Los secuenciadores permiten, como se vio en el capítulo 13,"El secuenciador" y volveremos a tratar en el apartado 15.4, un control individual sobre cada uno de los dispositivos.

 

15.3. El mapeador MIDI en Windows 3.1
Incluimos este apartado, porque el mapeador MIDI de Windows 3.1 era paradójicamente bastante más versátil que el de Windows 95. La justificación puede radicar en el hecho de que, hace unos años, las tarjetas de sonido estaban mucho menos estandarizadas, y presentaban frecuentemente capacidades multitímbricas muy restringidas.

Tal como se indicaba en el apartado 11.6.2, a las tarjetas compatibles con la especificación MPC1, tan solo se les exigía que respondieran a los canales 13, 14, 15 y 16. ¿Qué sucedía cuando intentábamos reproducir con una de estas tarjetas, un fichero MIDI estándar (standard MIDI file) que sólo contuviese información en los diez primeros canales? Sencillamente, nada sonaba. Y aun en el caso de que el tema utilizase los 16 canales, nuestra antigua tarjeta sólo estaría reproduciendo una cuarta parte de la música y, para colmo, posiblemente de forma incorrecta. Para paliar esta y otras deficiencias, el mapeador permitía configurar los tres niveles de corrección, que aparecen en la figura 15.3.

15.3.1. Mapa de canales
El General MIDI establece que el canal 10 se reserva para la percusión, mientras que en los sintetizadores MIDI básicos (así se denominan los que sólo son compatibles con la especificación MPC1), el canal de percusión es el 16. En este caso, la solución pasa por establecer un mapa de canales, que asigne a cada uno de los dieciséis posibles canales de entrada, alguno de los canales realmente disponibles. Si queremos que una tarjeta básica reproduzca correctamente las pistas de percusión de un fichero MIDI estándar, el canal 10 deberá estar asignado al 16, mientras que los 15 restantes deberán distribuirse de alguna forma entre los canales 11 a 15 de la tarjeta. Este primer nivel de corrección, correspondiente a la ventana Configuración MIDI de la figura 15.3, es el único que permanece en Windows 95.

15.3.2. Mapa de instrumentos
En muchas tarjetas de sonido antiguas, el mapa de instrumentos no era compatible General MIDI (el programa 1 podía corresponder a una flauta, en lugar de a un piano). En este caso, el proceso de mapeo necesario es bastante más tedioso, ya que consiste en establecer una correspondencia entre los 128 programas General MIDI (véase la tabla 7.1) y los programas asignados en la tarjeta, intentando buscar los sonidos más equivalentes. Corresponde a la ventana Mapa de sonidos MIDI, en la figura 15.3. Afortunadamente, la casi totalidad de tarjetas actuales es compatible GM, por lo que este mapeo ya no es necesario.

15.3.3. Mapa de sonidos de percusión
Otra de las especificaciones que establece el General MIDI es un mapa de sonidos de percusión (véase la tabla 10.1). Si una tarjeta no fuera compatible con este mapa, Windows 3.1 ofrece la posibilidad de establecer una nueva correspondencia entre notas. Esta es la ventana Mapa de claves de la figura 15.3.

 

 
Figura 15.3. Configuración del mapeador MIDI en Windows 3.1

 

15.4. Acceso a los diferentes puertos desde un secuenciador
Indicábamos en el apartado 15.2.2 que la correcta configuración del mapeador MIDI sólo es útil para aquellos programas que no admiten un control superior sobre todos los dispositivos instalados. Afortunadamente, los secuenciadores para Windows (incluso los más sencillos), así como otros tipos de programas (composición algorítmica, etc.), permiten acceder a cada uno de los puertos. La figura 15.4 muestra la ventana de dispositivos en los programas Cakewalk y MIDI Orchestrator Plus (suele activarse con una opción de menú denominada MIDI devices).

 

 
 
Figura 15.4. Ventanas de dispositivos en Cakewalk y MIDI Orchestrator Plus

 

La primera figura (Cakewalk) corresponde a un ordenador que solo posee una AWE32, mientras que el ordenador de la segunda figura (Orchestrator) incorpora muchos más dispositivos. En ambos casos, la información aparece dividida en dos secciones, MIDI IN y MIDI OUT. Observe que en ambas, la sección MIDI OUT incluye el dispositivo MIDI mapper, que corresponde al dispositivo por defecto.

Los dispositivos que aparecen en oscuro son aquellos que el usuario ha decidido seleccionar para la sesión con el secuenciador. Si selecciona el MIDI mapper, el programa no le dejará seleccionar ninguno que esté incluido total o parcialmente en el mapeador. Si lo intenta le aparecerá un mensaje de conflicto de puertos abiertos, por lo que siempre es preferible no seleccionar el MIDI mapper.

Dado que cada pista del secuenciador presenta, tal como se aprecia en la figura 15.5, una columna denominada port, el usuario puede indicar para cada una de ellas el puerto o dispositivo, de entre los seleccionados, al que se dirigirán sus mensajes MIDI. De esta forma se supera fácilmente la barrera de los dieciséis canales, ya que el número de canales disponibles podrá ser de 16 x número de dispositivos.

 

 
Figura 15.5. Asignación de puertos en las pistas de un secuenciador

 

15.5. Dispositivos MIDI virtuales
Uno de los sistemas de la figura 15.4 presentaba seis dispositivos de entrada (de los cuales sólo se aprecian cuatro) y ocho de salida. Aunque en varias ocasiones hemos puntualizado que es posible disponer de varias tarjetas de sonido en un único ordenador, es obvio que pocas placas base permitirían la inclusión de semejante número de tarjetas. El ordenador del que hemos capturado la imagen tiene en realidad instaladas dos tarjetas de sonido: una Sound Blaster AWE 32 (que añade los mismos drivers de la figura anterior) y una Roland RAP10. Los restantes corresponden todos a dispositivos MIDI virtuales, o drivers MIDI no vinculados a ninguna tarjeta en particular. ¿Cual puede ser la utilidad de un dispositivo de estas características? Observemos de nuevo los nombres de los dispositivos de esa figura.

15.5.1. El teclado virtual
Entre los de entrada, figura el TTS Virtual Piano IN, un driver asociado a un pequeño programa que emula gráficamente a un teclado MIDI (véase figura 15.6). Su función consiste en permitir la entrada de notas sin la necesidad de un teclado externo. Aunque sus prestaciones no pueden compararse a las de un dispositivo real (por ejemplo sólo permite introducir una nota a la vez), puede ser útil en determinadas circunstancias, como en un ordenador portátil. Es importante constatar de que al ser un driver, y no una mera extensión del software secuenciador, este tecladito puede ser utilizado con cualquier programa MIDI que admita la elección de los dispositivos de entrada.

 

 
Figura 15.6. Aspecto del teclado virtual TTS

 

15.5.2. El sintetizador virtual
Entre los dispositivos de salida figura el Roland VSC-55. Este driver corresponde al sintetizador virtual Virtual Sound Canvas mencionado en el apartado 12.9. Este dispositivo no está relacionado con ninguna tarjeta MIDI (debe asignarse eso sí, al dispositivo de audio digital de alguna tarjeta, que será la que emita el sonido, pero esta es otra historia), pero al disponer de su driver particular, para el usuario esto no presenta ninguna diferencia. Desde el secuenciador o cualquier otro programa, podrá activar este puerto en algunas pistas, como si de un sintetizador más se tratara.

Los restantes dispositivos que aparecen en la figura merecen una explicación más detallada.

15.5.3. La matriz MIDI virtual
En el capítulo 10,"El hardware MIDI", comentábamos la existencia de los patchbays, dispositivos externos que incluyen varias entradas y varias salidas MIDI y que permiten redireccionar cómodamente las conexiones entre varios dispositivos externos, sin tener que estar enchufando y desenchufando cables. La matriz MIDI por software que aparece en la figura 15.7 puede realizar una función similar, pero a nivel interno, conectando entre si diversas aplicaciones MIDI.

 

 
Figura 15.7. Hubi's Loopback: Una matriz virtual MIDI

 

La figura, que corresponde al programa shareware Hubi's Loopback, muestra una matriz cuadrada de 4x4, ya que la aplicación dispone de cuatro entradas (LB1-LB4) y cuatro salidas (LBA-LBD). Si consideramos que cada una de estas entradas y salidas corresponde a un puerto MIDI, es fácil deducir que la instalación de este pequeña aplicación, añadirá al sistema cuatro drivers MIDI de entrada, y cuatro de salida. Estos se corresponden con los restantes drivers que completan la lista.

En la figura se aprecian cruces en algunas casillas; su función es la de interconectar entradas y salidas. Una cruz en la posición A1 significa que toda información MIDI recibida en el puerto de salida A será redireccionada al puerto de entrada 1 (tal vez creque nos hemos confundido utilizando los términos entrada y salida, en el siguiente apartado comprenderá su utilización).

15.5.4. Aplicaciones de las matrices virtuales
Supongamos que hemos escrito (o encontrado en Internet) un pequeño programa que realiza un arpegio cada vez que recibe una nota MIDI. Una aplicación de estas características puede tenernos un rato distraídos haciendo "new age de pacotilla", pero si no incorpora un secuenciador, pocas aplicaciones reales le podremos sacar. La solución la brinda nuestra matriz virtual.

  1. En el arpegiador seleccionamos el puerto estándar MIDI IN como dispositivo de entrada. Esto nos permitirá tocar desde el teclado externo conectado a este puerto.
  2. En el arpegiador, seleccionamos también el puerto A de la matriz como puerto de salida.
  3. En la matriz, activamos la posición A1 (por ejemplo), de forma que todos los mensajes recibidos en el puerto A serán enviados al puerto 1.
  4. En nuestro secuenciador, seleccionamos el puerto 3 de la matriz como puerto de entrada.

A partir de ahora, las notas generadas por nuestro arpegiador serán automáticamente enviadas a la entrada del secuenciador. Veamos algunas otras posibilidades de esta mágica matriz.

  • Sound Forge, el editor gráfico de audio estudiado en el capítulo 5, puede activar la reproducción de ficheros de tipo .wav, a partir de la recepción de diversos mensajes MIDI. Para sincronizar Sound Forge con un secuenciador como Cakewalk, basta con direccionar una pista del secuenciador (será la pista encargada de disparar los ficheros de onda) a la entrada MIDI de Sound Forge.
  • MIDI Joystick es un pequeño programa de dominio público que permite generar mensajes MIDI, totalmente configurables, con el simple movimiento de un joystick. La gracia de este "instrumento" es que, a diferencia de las ruedas de modulación que incorporan los teclados MIDI que son normalmente unidimensionales (véase apartado 8.5.5), con el joystick es posible controlar dos parámetros MIDI de forma simultánea. Podemos asignar por ejemplo, el volumen (CC7) al desplazamiento en el eje Y, y la panorámica (CC10) al desplazamiento en el eje X. Nuevamente, bastará con conectar virtualmente la salida de este programa a la entrada del secuenciador, para disponer de un expresivo y económico controlador.

15.5.5. Instalación de los dispositivos virtuales
Aunque la instalación de estos dispositivos puede variar ligeramente (especialmente si no están preparados para Windows 95), lo normal es instalarlos con la opción añadir nuevo hardware accesible desde el panel de control de Windows 95 (aunque no estén vinculados a ningún hardware real, se comportan como si lo estuvieran).

 

15.6. Conclusión
Tras esta información sobre la configuración MIDI en Windows 95, sin duda podrán, los más atrevidos, adentrarse en el estimulante terreno de la programación MIDI bajo Windows, a la cual dedicamos los dos próximos capítulos.

 

[...] Índice     [<<] Capítulo anterior     [>>] Capítulo siguiente     [+] Anexos