¿Cómo puedo emular un sintetizador Yamaha DX7 en Ubuntu?
Pocos saben que en mis años de cadete, contaba con una amplia variedad 
de teclados sintetizadores clásicos, lo que me convirtieron en un ávido 
programador de música Pop. En aquellos años pocos eran quienes dominaban 
este arte, pero la libertad de la informática asociada a la música es 
hoy un logro que ha de otorgarse al Pueblo. Solo así éste podrá dar la 
lucha con el ritmo de la más maravillosa música que es para mi la 
programada digitalmente.

Vean señores, en los años que los aparatos musicodigitales aparecieron 
como alternativa fiable, sucedió lo que siempre pasa cuando se deja al 
Capital hacer de las suyas: se hicieron elitistas. Pero hubo uno que 
marcó diferencia por su popularidad y quedó entrañado en esa memoria ROM 
imborrable que se guarda en el corazón del Pueblo: Se trataba del Yamaha 
DX7 de 1983, el primer teclado con sintetizador digital programable que 
logró éxito entre la Masa Popular, que es el verdadero consumo.

Siendo monotímbrico de 76 teclas, su sonido dulzarrón y polifonía de 16 
voces se debía a sus seis operadores independientes en forma de de onda 
oscilada sinusoidal, manejables todos ellos de manera digital. Estos 
generadores empleaban la técnica de síntesis de frecuencia modulable 
según 32 "algoritmos" ofrecidos, los que resultaban - en colofón - una 
plétora de posibilidades armónicas o atonales según la habilidad del 
sonidista. El usuario podía programar 32 voces propias en memoria 
interna.

Estos patches "algorítmicos" , si bien se pueden modificar desde el 
propio teclado, son bastante complejos en sus resultados, poco 
intuitivos y difíciles de programar, lo que hacía que la mayoría de los 
músicos optaran simplemente por los sonidos de fábrica. 

Para facilitar las cosas, el aparato ofrecía ya 32 sonidos (patches) 
preprogramados que se hicieron clásicos, en tanto que Yamaha, ni lerda 
ni perezosa, se ocupó de vender aparte una colección de cartuchos ROM 
con nuevos sonidos ya hechos (se insertaban en el la parte trasera del 
teclado "a la Family Game").

Cada uno de estos cartuchos contaba con 2 bancos de memoria ("A" y "B") 
con 32 sonidos por banco. Esto significaba hasta unos 128 sonidos 
distintos que el teclado podía direccionar (32 internos de fábrica, 32 
programables de usuario, y 64 en el cartucho removible opcional).

Debemos tener en cuenta que el sintetizador original es una computadora 
de 1983, y como tal requiere avanzados conocimientos de direccionamiento 
de memoria y parametrización de envolventes sonoras, necesarios como 
para ser proficiente en la creación de sonidos. Pues bien, con el correr 
del tiempo se hizo evidente que - por medio de software especializado y 
la interfaz MIDI provista en el Yamaha DX7 - podrían hacerse mejores 
cosas desde una computadora. Hubo entonces mucho software para poder 
manejar el teclado de una forma más sencilla con los sistemas 
informáticos del momento.

Indudablemente que GNU con Linux no podía quedarse atrás. Gracias a 
ello, los técnicos de nuestro Movimiento se han abocado al desarrollo de 
un software libre que no sólo permitiera programar los patches a través 
de MIDI - como muchos ya lo hacían - sino que empleara sintetizadores 
virtuales para emular directamente el sonido del Yamaha DX7, en un 
sistema Linux.

Todo esto se ha logrado con el el excelente Dexed.

Dexed es un programa y un instrumento virtual multiformato (VST, LV2, 
AU) multiplataforma y modelado para parecerse al clásico sintetizador 
Yamaha DX7. Está liberado bajo licencia GPLv3. En GNU con Linux, 
podremos emplear Dexed solo o como plug-in dentro de cualquier programa 
que use instrumentos virtuales VST (como por ejemplo, Qtractor, Ardour, 
etc).

Para instalar Dexed en nuestro Ubuntu, habremos de descargar su código 
fuente y compilarlo. Esto normalmente sería una tarea imposible para el 
neófito, pero como Conductor del destino de los Argentinos y paternal 
asistente de Ubuntu, os indicaré como hacerlo.

En primer lugar abrimos una Terminal con Ctrl+Alt+T, y en ella pegamos y 
ejecutamos con Enter cada uno de los siguientes comandos de 
organización:

cd ~ ;
sudo apt update ;

Esto nos solicitará nuestra contraseña de Conductor de sistema. Tras 
ingresarla "a ciegas" y presionar Enter, continuará con el 
procedimiento. No bien termine, debemos ingresar el siguiente comando 
para descargar sus librerías:

sudo apt-get install git freeglut3-dev g++ libasound2-dev 
libcurl4-openssl-dev libfreetype6-dev libjack-jackd2-dev libx11-dev 
libxcomposite-dev libxcursor-dev libxinerama-dev libxrandr-dev 
mesa-common-dev ;

...y finalmente, descargamos el código fuente, lo compilamos e 
instalamos mediante los siguientes comandos de organización.

git clone https://github.com/asb2m10/dexed.git ;
cd ~/dexed/Builds/Linux ;
make CONFIG=Release ;
sudo install -Dm755 build/Dexed.so /usr/lib/vst/Dexed.so ;
sudo cp ~/dexed/Builds/Linux/build/Dexed /usr/local/bin/ ;


Dexed se compilará entonces en dos versiones similares: una consiste en 
un instrumento virtual VST (que requiere una aplicación de audio huésped 
para funcionar. La otra es una versión "stand-alone" que puede 
ejecutarse directamente

Si queremos borrar el directorio de compilación (ya no lo necesitamos), 
ingresamso:

cd ~ ;
rm -R ~/dexed/ ;

...y si nos preguntas si deseamos eliminar los archivos con protección 
de escritura, ingresamos "s" ("si"). 

Para la versión stand-alone, podremos ejecutarla directamente tipeando 
el comando "Dexed" en la terminal, pero es mucho más cómodo crearle a 
mano un Lanzador o acceso directo para este menester. Os lo explicaré. 
Hacemos clic con el botón derecho del mouse sobre nuestro el panel 
superior en el menú Aplicaciones y elegimos "Editar Menú". Al abrirse el 
cuadro de diálogo Menú Principal, en su sección izquierda hacemos clic 
en la categoría "Sonido y video". Luego presionamos el botón "+Elemento 
nuevo"
 ...esto abrirá la ventana Crear lanzador. En el campo "Comando:" 
Agregamos el comando "Dexed" (con D mayúsculas como se indica). También 
podremos indicar el nombre Dexed y un ícono y un comentario explicativo 
opcional. Finalmente presionamos el botón Aceptar.

Ahora podremos ejecutar Dexed desde Aplicaciones / Sonido y Video / 
Dexed. Naturalmente, también podríamos agregar el instrumento VST 
"Dexed" a una pista de nuestra DAW, podremos desplegar su panel de 
control para operarlo.

El amplio panel inicial presenta los controles detallados, con una buena 
reproducción gráfica que simula el esquema de color del Yamaha DX7. En 
su parte inferior nos da un teclado activable con el mouse, pero también 
podremos usar nuestro teclado para tocar líneas simples.

Gracias a ello Dexed puede sintetizar con muy buena fidelidad el sonido, 
lo suficientemente capaz como para considerarse profesional. El 
sintetizador integrado nos permite contar con los 144 parámetros del 
DX7, a los cuales es posible automatizar. En sí contamos con los 6 
operadores y los 4 parámetros de envolvente clásicos.

Naturalmente, si tenemos un un teclado controlador MIDI o incluso un 
Yamaha DX7 real, podremos configurarlo para poder asociarlo, via un 
adaptador MIDI-USB. Ello lo hacemos en el emulador mediante el botón 
Options.

En cuanto a la salida de sonido normalmente funciona con 
ALSA/Pulseaudio,  aunque puede hacerse por medio del servidor de audio 
JACK si está activo.

Podremos enviar los datos paramétricos y manejar desde la computadora al 
Yamaha DX7. En el caso de que no tengamos este sintetizador, bien 
podremos usar Dexed para que opere como un sintetizador paramétrico FM, 
con un resultado bastante similar al Yamaha DX7, aunque utilizando una 
emulación del chip sintetizador Yamaha OPL3.



Cada operador emulado presenta entonces un cuidado vúmetro que nos 
permite saber cuándo está activo.


Dexed puede ser configurado para usar algunas de las limitaciones del 
sintetizador DX7 original. Esto no solo aplica a su conversor digital 
analógico, sino que también hace a la resolución de bit de las ondas 
sinusoidales y la manera en la cual su control de amplitud se aplica a 
cada operador. Esta característica sonora supuestamente ofrece una 
rendición más auténtica, pero puede variar en el gusto del usuario, por 
lo cual se ofrecen tres "motores" o sintetizadores distintos que 
podremos elegir haciendo clic en PARM.

Podremos elegir entre:

    Modern: Se trata de una emulación del sintetizador de 24 bits.
    Mark I: Viene por defecto. Se basa en la serie Yamaha OPL pero 
emplea una resolución mayor (LDT de 10 bits). De esta manera puede ser 
más cercano al sonido del DX7 real.
    Serie OPL: Se basa en una experimentación del chip Yamaha OPL de 8 
bits.


Indudablemente, comparar el sonido entre de un Yamaha DX7 auténtico y 
Dexed puede sonar a comparar al Movimiento Peronista Auténtico con el 
auténtico peronismo. Pero no deja de ser algo útil en ciertos casos.



Gestión de patches

Como vimos, el Yamaha DX7 original cuenta con un banco de 32 memorias de 
usuario y adicionalmente, contaba con cartuchos. En Dexed estos se 
representan con volcados de memoria de estos mismos cartuchos 
(esencialmente, copias digitales de ellos). Son archivos de extensión 
.sys.

Cualquier archivo .syx que se encuentre en el directorio de cartuchos 
(normalmente 
/home/usuario/.local/share/DigitalSuburban/Dexed/Cartridges) estará 
disponible en la ventana CART del emulador. Podremos cambiar el 
directorio usando el botón CART del emulador Dexed, y luego presionando 
el botón SHOW DIR.

Podremos arrastrar y soltar cualquier parche o programa de DX7 que 
tengamos cargados en Dexed, y que tengamos cargado en el navegador de 
cartuchos. Al hacer doble clic en un patch, se cargará dicho programa 
actualmente elegido al emulador.
Dexed ya viene con 32 voces, y podremos agregarles muchas mas que vienen 
en el directorio SynprezFM. Podremos utilizar el botón derecho del mouse 
para enviar el programa/cartucho al DX7 o abrir el navegador de archivos 
para buscar el patch en el directorio de cartucho que deseemos.

Pero no solo eso, podremos encontrar un excelente compilado de programas 
de DX7 comprimidos en un archivo ZIP aquí. Si deseamos agregarlos desde 
la terminal hacemos:

cd ~/.local/share/DigitalSuburban/Dexed/Cartridges ;
wget http://hsjp.eu/downloads/Dexed/Dexed_cart_1.0.zip ;
unzip Dexed_cart_1.0.zip ;

...y reiniciamos el programa para poder verlos.




Dexed como un editor de parches para el Yamaha DX7
Si tenemos un Yamaha DX7 original conectado por la interfaz MIDI, bien 
podremos usar este programa como un editor de patches y administrador de 
mensajes MIDI extendidos de sistema (SysEx). Es mucho más cómodo que 
usar la incomodísima interfaz de usuario del DX7.

Ya que los mensajes MIDI extendidos de sistema (SysEx) que usa el Yamaha 
DX7 son algo problemáticos para enviar con las interfaces MIDI nativa 
Ubuntu, debemos enviarlos y recibirlos con una interfaz MIDI USB 
externa. Esto puede configurarse con el panel PARM.
Al configurar una interfaz MIDI "DX7 in / DX7 Out", Dexed recibirá los 
cambios de programa / cartucho específicos desde el teclado DX7 y los 
enviará al controlador/programa/cartucho que editemos.

Pre-requisitos
Antes de usar esta interfaz MIDI, el teclado Yamaha DX7 debe estar 
configurado para enviar y recibir mensajes SysEx. Esto se hace en el 
teclado Yamaha DX7, presionando FUNCTION y el botón 8
Debemos revisar el canal MIDI. La mayoría de los Yamaha DX7 sólo pueden 
enviar datos a través de su interfaz MIDI OUT en el canal 1 (si bien 
pueden recibir en cualquiera de los 16). Debemos presionar 8 nuevamente 
en el Yamaha DX7, y en su display podremos conmutar entre "SYS INFO 
AVAIL" (Información de sistema  disponible) o "SYS INFO UNAVAIL" 
(información de sistema no disponible). Debemos elegir SYS INFO AVAIL 
para que el Yamaha DX7 pueda transmitir mensajes extendidos de sistema.
También debemos remover la protección de memoria de la memoria interna o 
la memoria del cartucho para poder recibir un volcado de memoria de las 
32 voces disponibles en Dexed. Para ello en el teclado debemos presionar 
el botón MEMORY PROTECT y luego presionar el botón NO.

Para enviar datos al teclado Yamaha DX7 por MIDI.

Si el puerto MIDI está configurado, cualquier parámetro que cambiemos en 
el panel de control de Dexed será enviado al teclado DX7. Podremos 
enviar cualquier programa/cartucho en la ventana CART del emulador 
usando el menú contextual (haciendo clic con botón derecho sobre la 
ventana CART).

Para recibir parches desde nuestro teclado al emulador.
El puerto MIDI debe estar configurado.
Enviaremos un programa desde el teclado a Dexed usando el botón MEMORY 
SELECT del Yamaha DX7 y luego el número de programa que queremos 
enviarle al emulador Dexed (desde el 1 al 32).
Para recibir un cartucho instalado en el teclado, presionamos FUNCTION y 
luego presionamos tres veces 8, y debemos ver en el display "MIDI 
TRANSMIT ?". Si presionamos el botón YES, y el teclado enviará el 
volcado completo de la memoria del cartucho, el cual debería aparecer en 
el emulador Dexed.