¿Cómo emulo un módulo Roland MT-32 para las aventuras gráficas que
corren bajo ScummVM en Ubuntu?

A través de sus famosas cintas magnetofónicas, Juan Perón exhortaba a la
resistencia contra una Dictadura cuyas pocas y malas ideas tendían a la
proscripción del Movimiento. En una de ellas de 1964, explica a la
Juventud cómo plantear la lucha emulando un módulo Roland MT-32 para los
juegos clásicos en Ubuntu.

¡Argentinos!

La canallesca maniobra de los traidores de siempre es la que han llevado
al Pueblo a sufrir una economía desmadreada, la ocupación de ideas
extrañas y sobre todo, la enajenación de los activos de la Patria.
Estos elementos no vienen solos, se han coaligado con el Impearialismo
Yanqui en pos de un destino inconfesable, que no es otro que el
sometimiento del Pueblo Argentino.

Por fortuna contamos con las mayores herramientas de lucha, que es la
conciencia Libre de los jóvenes. Y no solo la nuestra Juventud, sino la
del mundo entero es la que se ha unido a la Doctrina del Justicialismo.
Esto es así porque no sólo presentamos la Libertad como horizonte de
nuestro Movmiento, sino que además nos permitimos adornar nuestro
ludismo electrónico con la más maravillosa música. Como Conductor, ya he
explicado cómo instalar el emulador ScummVM a fin de simular el entorno
de programación para aventuras gráficas de Lucasfilm, y poder jugar así
los clásicos producidos por LucasFilm/LucasArts, Sierra entre otras
productoras que aprovecharon este versátil lenguaje de programación.

Ahora bien, el emulador ScummVM se ocupa en principio de realizar una
reproducción fiel y a través de software del chip de sonido por síntesis
FM OPL2 y su derivado, OPL3. Este se encontraba en la placa de sonido
AdLib, y naturalmente en las extendidas SoundBlaster, de Creative Labs.
Esto es así pues la mayoría de las piezas musicales de estos juegos
clásicos fueron compuestas en torno a estas populares placas de sonido,
destinadas a superar al estridente parlante integral de la PC, un
adminiculo de circunstancias, apenas monoaural monofónico y en
consecuencia monótono.

Sin embargo, también existió otro estándar que - por su elevado precio -
no logró la popularidad esperada, a pesar de que muchas de estos mismos
jueegos podían utilizarlo y de hecho, sonaban hermoseados con él. Se
trata del módulo de sonido MIDI Roland MT-32, y sus continuadores.
Vean señores, el Roland MT-32 era un módulo de sonido lanzado en 1987
por dicha fabricante de instrumentos musicales. Podía conectarse a
cualquier dispositivo electrónico que dispusiera de interfaz MIDI. El
sentido original de este módulo sin embargo era el de proveer el sonido
realista de instrumentos sintetizados polifónicamente a computadoras
personales y sintetizadores. Podía utilizar unos 5 canales
independientes MIDI programables en el mismo aparato, mas otros tres
controlables en forma indirecta a través de otro dispositivo. Asimismo
podía contar con un canal multitímbrico especial para la percusión
(usando entonces 9 canales de los 16 que llegaría a permitir la norma
serial General MIDI). A través de una interfaz MIDI  - como la plaqueta
MPU-401 de Roland, u otras genéricas como la salida de Joystick/UART
incluida en las SoundBlaster Pro y superiores - podía presentar 128
instrumentos a través de la síntesis PCM de aritmética lineal, mucho más
realistas y profundos que la síntesis FM original.

Nuestro Justicialismo se ha presentado como objetivo alcanzar a todos
los Argentinos con los beneficios que antes sólo podía permitirse una
minoría oligárquica sin patria ni bandera. Como Conductor, no he hecho
más que hacer realidad los anhelos de mi Pueblo, y uno de ellos es el de
contar con un Roland MT-32 para todos.

En vista de esto, os enseñaré cómo nutriros del sonido más avanzado
disponible en a principios de los 90s, gracias al software libre y sin
gastar una chirola. Tal es el quehacer de los verdaderos Apóstoles del
Software Libre.

Pues bien, para esta realización necesitaremos utilizar un emulador por
software, y que mejor que el Fluidsynth, el sintetizador virtual
capacitado para usar Soundfonts, librerías instrumentales propias. Nos
haremos también con alguna librería de instrumentos (Soundfont)
compatible con la norma Roland GS. Podremos utilizar también alguno con
la norma GM (General MIDI), aunque tengamos en cuenta que es preferible
para este caso uno que emplee el estándar Roland GS.

FluidSynth trae soundfonts libres llamados FluidR3_GS.sf2 y
FluidR3_GM.sf2, que serán adecuados y bastante fieles a los incorporados
en la memoria ROM histórica del módulo MT-32, pero para los juegos
Monkey Island y otros, podremos encontrar resultados sorprendentes
también a través del Soundfont "Timbres of Heaven" de Don Allen. Lo
encontamos aquí (252mb).

Una vez descargado el fichero comprimido en formato 7z del Soundfont,
podremos descomprimirlo e instalarlo desde nuestra terminal Linux. Para
ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente
bloque de comandos:

sudo apt update ;
sudo apt install dtrx rar scummvm fluidsynth fluid-soundfont-g* ;
cd ~/Descargas/ ;
dtrx Timbres\ Of\ Heaven\ GM_GS_XG_SFX\ V\ 3.4\ Final.7z ;
cd Timbres\ Of\ Heaven\ GM_GS_XG_SFX\ V\ 3.4\ Final/ ;
sudo mv 'Timbres Of Heaven GM_GS_XG_SFX V 3.4 Final.sf2'
/usr/share/sounds/sf2/ ;
cd~/Descargas/ ;
rm -r Timbres\ Of\ Heaven\ GM_GS_XG_SFX\ V\ 3.4\ Final/ ;

Lanzamos el emulador ScummVM desde Aplicaciones / Juegos / ScummVM. Como
ya he explicado, debemos cargarle los juegos que querramos utilizar.
Para configurar el módulo MT-32 virtual, debemos presionar el botón
"Opciones..."
..a continuación se nos presentarán una serie de solapas. Presionamos
la solapa Sonidos. Hacemos clic en el campo Dispositivo Preferido y se
desplegará una lista con varias opciones de sintetizadores. Elegimos el
sintetizador virtual FluidSynth. Finalmente hacemos clic sobre la solapà
MIDI.
En la solapa MIDI debemos indicarle cuál es el dispositivo que queremos
utilizar como sintetizador para la norma General MIDI. Para ello hacemos
clic en el campo "Dispositivo GM", y elegimos nuevamente al sintetizador
virtual FuidSynth. También podremos hacer clic en la opción "Modo
AdLib/MIDI", a fin de lograr un modo de audio combinado, en el cual los
efectos de sonido serán emitidos a través de una placa AdLib sintetizada
emulada, y la salida musical saldrá través de la Roland MT-32
virtualizada por medio de FluidSynth.

Acto seguido habremos de escoger qué Soundfont (biblioteca de
instrumentos), queremos que use nuestro sintetizador virtual FluidSynth.
Para ello presionamos el botón naranja Soundfont.

Presionamos varias veces el botón Arriba para ir a la raíz de nuestro
árbol de directorios. Luego debemos dirigirnos específicamente a la
carpeta de sistema que contiene los Soundfonts. Esta es
/usr/share/sounds/sf2/. Para ello, en la lista de directorios, hacemos
doble clic con el ratón sobre el directorio usr/, luego doble clic sobre
share/, luego doble clic en sounds/, y finalmente entramos con doble
clic en sf2/. Entonces se nos presentará una lista de los Soundfonts
instalados en nuestro sistema GNU con Linux. Para usar el excelente
Timbres of Heaven, seleccionamos "Timbres Of Heaven GM_GS_XG_SFX V3.4
final.sf2" y presionamos Aceptar. Opcionalmente podríamos usar el
soundfont libre "FluidR3_GM.sf2", que también funciona adecuadamente y
viene por defecto con el sintetizador virtual, aunque tiene menor
calidad que el Timbres of Heaven.

Para que ScummVM reciba el Soundfont debemos presionar Aceptar.

Finalmente en la solapa MT-32 nos aseguramos que el Dispositivo MT-32
esté configurado como FluidSynth. En el caso del sintetizador virtual
FluidSynth, que es compatible con la norma GS, debemos tildar la opción
Dispositivo Roland GS (activar la conversión MT-32). Esto convertirá los
canales percusivos en los enviados para la MT32 real en voces aceptables
para el sintetizador.
En el caso de no hacer esto de los Soundfonts puramente GM y el algunos
de los GS no compatibles, podríamos encontrarnos con diferencias en la
instrumentación del juego, especialmente cuando el mismo hace uso de
efectos de sonido a través del sintetizador MIDI (vientos, explosiones,
piñas, etc). Podrían sonar flautas en lugar de pianos, etc...

Ahora bien, para que ScummVM acepte todas las nuevas configuraciones que
le hicimos, y haga efectivo los cambios debemos presionar el botón
Aceptar y reiniciar ScummVM. Para ello presionamos el botón Salir. Una
vez que el emulador se apague, volvemos a ejecutarlo, y ya podremos
jugar un juego con el sintetizador virtual Fluidsynth cumpliendo el rol
de una Roland MT-32.

Conectar ScummVM a un módulo Roland MT-32 real

En el caso de contar con un módulo Roland MT-32 real, o alguna de sus
derivadas simplificadas como la CM-32L, o posteriores como la Roland
SC-55, SC-88, etc, el procedimiento de configuración será naturalmente
diferente al sintetizador emulado.

En primer lugar debemos conectar el módulo Roland MT-32 a nuestro
sistema GNU con Linux empleando un adaptador MIDI-USB. En mi caso empleo
uno genérico:
Para ello debemos conectar el cable MIDI-Out del adaptador USB-MIDI a la
entrada IN que se encuentra en la parte trasera del módulo Roland MT-32.
También debemos conectar el cable MIDI-In del adaptador USB-MIDI a la
salida OUT que se encuentra en la parte trasera de la Roland MT.-32.



Finalmente, conectamos las salidas de audio normalizadas de 6,35mm
Output R y Output L de la Roland MT-32 (una para cada canal) a dos
altavoces (derecho e Izquierdo respectivamente).

En revisiones más modernas del módulo MT-32 cuentan con una salida
estéreo adicional para auriculares de 6,35mm, denominada PHONO, que al
usarla enmudece las salidas individuales, pero la mía no dispone de la
misma. Acto seguido conectamos el transformador de 9v y 650 miliamperes
a la red eléctrica y encendemos el módulo MT-32 por medio del
interruptor trasero. Una vez que diga ON y *READY* en el display frontal
(tras unos 3 segundos), conectamos el cable USB del adaptador MIDI a un
puerto USB de nuestra PC.

Hasta aquí tendremos cumplidos los pasos obvios de puesta a punto, y
esto hará hará que nuestro sistema GNU con Linux pueda enviarle datos
MIDI a la MT-32 y podremos usarla, si lo deseamos, con cualquier
programa que haga uso de MIDI (como el LMSS, por ejemplo).

Para hacerla funcionar con el emulador ScummVM, lo abrimos, y nuevamente
presionamos el botón Opciones... En la solapa MIDI debemos elegir para
este caso, el dispositivo GM "MIDI Throug (ALSA)".
En la solapa MT-32 también debemos elegir el Dispositivo MT-32 "MIDI
Through (ALSA). En la parte inferior debemos tildar la opción "Roland
MT-32 Auténtica (desactivar emulación GM". Esto hará que el módulo MT-32
acepte los instrumentos del viejo estándar Roland MT-32, y no los
convertidos desde la norma General MIDI. Sólo de esta manera el módulo
Roland MT-32 real funcionará con los instrumentos musicales correctos,
caso contrario la percusión sonaría a través de un piano en el canal 9,
o el bajo sonarían erróneamente como como un piano o campanas...
Debemos tener en cuenta que si en lugar del MT-32 real, tenemos un
módulo de sonido más moderno que sigue la norma GS o XG (por ejemplo, el
módulo Roland SC-88, los modernos Edirol), o Soundfonts de tipo GS/XG en
el sintetizador virtual FuidSynth, debemos activar la opción
"Dispositivo Roland GS (activar la conversión MT-32)".

Nuevamente, para que los cambios surtan efecto en el hardware real,
debemos presionar el botón Aceptar, y finalmente reiniciar el emulador
ScummVM.

Una vez reiniciado y cargado un juego compatible con MT-32, el emulador
lo configurará de la manera correcta, y los datos MIDI de su música
serán enviados pos ScummVM al software servidor de sonido estándar de
Linux (el ALSA), y éste a su vez los reenvíe al adaptador USB-MIDI por
hardware.
Desde este adaptador llegarán las órdenes MIDI a la MT-32 a través de
los puertos MIDI universales. Será entonces la MT-32 la que genere el
sonido a través de su sintetizador multitímbrico y polifónico
incorporado, sonido que saldrá a través de los altavoces conectados.