¿Cómo programo un controlador MIDI Alesis V en Ubuntu?
Mis queridos Descamisados:

Todo ocio ha de ser reivindicado como un justo prolegómeno de la acción
del trabajo. Nuestro Pueblo por tanto merece las sanas reparaciones que
su labor le ha predicado, y como tal puede sentirse seguro en
reividicarlo.

Todas las tareas que lleven a él son - entonces - gratos espejos en los
que podremos observarnos, y a los que todos han de tener derecho.
Pues bien, GNU con Linux es un sistema totalmente capaz de enfrentar
todo tipo de tareas para el ocio y el divertimento, y porqué no, para la
creatividad. En este podio la composición musical sin duda es una de las
que hemos promovido. Un gran avío de softwares libres nos permiten hoy
editar y mejorar música. MUSE, Rosegarden, Qtractor, Ardour y muchos
otros nos permiten grabar audio digital y MIDI, así como asociarse a
bancos de sonidos Soundfont para escuchar siempre la más maravillosa
música, que es aquella compuesta con Software Libre.
Indudablemente que en ellos podremos utilizar directamente el mouse y
nuestro teclado para ingresar las notas "a lo vikingo". Pero quien de
esto sabe un poco no duda que asociar un teclado pianístico a nuestra
computadora es en realidad la herramienta clave que nos facilitará
enormemente nuestra ejecución y composición. Basta un controlador MIDI
con teclas sensitivas para introducir música a la computadora con una
facilidad imposible de replicar de otra manera. Esta solución se
presenta, entonces, como cien veces superior a hacerlo a mano.

Los modelos de controladores Alesis de la Serie V son una opción popular
y potente, que han de estar al alcance de todo Trabajador que guste de
tocar música o quiera iniciarse en ello. Debemos notar que estos, como
todos los controladores MIDI - no generan "sonidos" en sí, sino que
transmiten las órdene de ejecución a través de la interfaz digital MIDI
a un sintetizador externo (en nuestro caso, podremos usar cualquier
sintetizador virtual que corra en Ubuntu, Fluidsynth y Dexed son mis
favoritos.

Pues bien, existen varias versiones del controlador Alesis V, por
ejemplo la Alesis V25, V49 y la V61, que varían en la cantidad de
octavas, y por lo tanto de ancho del teclado.

El modelo "mini" de 25 teclas va bien para líneas de bajo o disparar
efectos en nuestros programas, en tanto que los otros ya se presentan
como más adecuados para tocar a dos manos.


Todos estos teclados controladores MIDI son reconocidos por Ubuntu sin
necesidad de drivers. Constan de dos ruedas (pitch bend y modulación),
cuatro potenciómetros, seis botones (cuatro de ellos reprogramables, y
dos botones octavadores, para subir o bajar octavas, y que retornan a la
octava normal al presionarlos al unísono). Esto nos aventaja si tenemos
las versiones de menos octavas, pues transportamos el teclado con suma
facilidad. Finalmente cuentan con ocho pads programables, que vienen
preparados de fábrica para disparar notas MIDI en el canal 10 (el
percusivo).

Las teclas semipesadas sensibles que dotan estos pianos tienen como
objetivo la posibilidad de grabar también la incidencia de nuestra
fuerza de ejecución sobre las mismas, a fin de permitir melodías
dinámicas de pianissimo o de forte, en cualquier instrumento. En
particular, los teclados de la serie Alesis V tienen ocho curvas de
presión programables. Estas curvas de presión delimitan la relación
entre la presión real de la tecla y la intensidad del mensaje MIDI
"Velocity", que representa la fuerza aplicada en la misma, y por lo
tanto, la intensidad del sonido final de la nota.

Estas ocho curvas de presión, representadas gráficamente, observan las
siguientes formas:

Si bien en la web oficial recomiendan la curva número 1 (lineal) o la
curva número 2 (suavemente peraltada) como las más naturales y creíbles,
lo cierto es que el teclado viene de fábrica programado con la curva de
presión número 5, que representa una presión desigual y temperamental,
no guarda lógica con un piano real, y obliga a un trabajo bastante
mediocre y desparejo en la presión.

Y he aquí el gran problema para nuestro Movimiento: estas curvas de
sensibilidad y el resto de las opciones configurables - incluyendo el
mismísimo Canal MIDI en el que opera el controlador - no se pueden
cambiar desde el teclado en sí, sino que hay que utilizar un software
privativo oficial para Window$ o Mac, el cual se encarga de generar un
perfil de programación que debe transmitirse a la memoria interna del
teclado a través de su cable USB MIDI:


Esto no sólo es incómodo desde el punto de vista operativo, sino que
realmente constituye un insano ejemplo en la obligatoriedad de anclar el
uso de un teclado musical a un programa privativo para un sistema
específico, cerrado en tiempo y espacio.

Dentro del Justicialismo sabemos que debemos liberar al Pueblo de este
yugo, por lo que haremos realidad efectiva un software abierto y libre
capaz de hacer lo mismo desde un sistema GNU con Linux. Se trata del
excelente Alesis V Series SysEx Editor del compañero peronista Travis
Mick. Gracias a un laborioso trabajo de ingeniería inversa, ha
documentado las órdenes SysEx MIDI de reprogramación que utiliza Alesis
en su programa oficial, y les ha dado uso como fundamento para un
software escrito en Python y liberado bajo licencia MIT.
Gracias a él, podremos ahora reprogramar nuestro controlador MIDI Alesis
V en Ubuntu sin necesidad de emplear el programa privativo original, y
manteniendo incólumne aquel apotegma que reza: "Queremos un software
socialmente justo, económicamente libre, y políticamente soberano".

Para instalar el útil alesisvsysex, abrimos una Terminal con Ctrl+Alt+T
e ingresamos los siguientes Comandos de Organización:

cd ~ ;
sudo apt update ;
sudo apt install python3-pyqt5 python3-mido python3-rtmidi ;
git clone https://github.com/abridgewater/alesisvsysex ;

cd ~/alesisvsysex/ ;
pip3 install -r requirements.pip3 ;
cd ~ ;

mv ~/alesisvsysex/ ~/.alesisvsysex/ ;

Para ejecutar el programa desde la Terminal, ingreso:

cd ~/.alesisvsysex/
python3 -malesisvsysex

El Editor de SysEx para Alesis V nos presenta a arrancar una interfaz
gráfica de usuario que sigue la lógica del programador oficial.

En la parte superior contaremos con cuatro botones. Para ver en el
programa la configuración actual de nuestro teclado controlador
conectado, debemos presionar el botón Load From Device ("Cargar desde
Dispositivo"). Esto cargará en la pantalla los parámetros de fábrica que
tiene el Alesis V. Es altamente recomendable guardarlos en un archivo de
respaldo y conservarlo por las dudas. Para ello presionamos el botón
"Save to File" ("Guardar a Archivo"). Le ponemos un nombre, por ejemplo,
alesisv61_original.syx.

Una vez creado esta copia de resguardo, bien podremos meter mano y
cambiar los parámetros según queramos. Ello lo haremos por medio de las
cuatro solapas.

La primera solapa Keys/Wheels/Sustain nos permite programar el Canal
MIDI utilizado por el teclado y los controles (hay 16 canales MIDI y el
teclado normalmente emite en el Canal 1). Las ruedas de pitch y
modulación, y el pedal de sustain opcional del Alesis V normalmente han
de configurarse en el mismo canal que las teclas. La mayoría de los
parámetros MIDI pueden tomar forma varían entre 0 y 127, por lo que el
pedal de sustain normalmente se activa cuando se sobrepasa el valor
medio 64.

Para cambiar la curva de sensibilidad del Alesis V debemos modificar la
opción "curve". Naturalmente, la cambiamos por la que deseemos (la
número 1). Podríamos también querer cambiar el canal MIDI en el cual
emitirá el aparato, dependiendo de la configuración de nuestro programa
de Grabación. Normalmente da salida en Canal 1, pero existen instancia
donde querremos utilizar otro canal.

La segunda solapa Knobs/Buttons permite cambiar el canal y parámetro
(mensaje) de los potenciómetro ("knobs") y de los cuatro botones
programables ("button"). Muchas aplicaciones pueden programar
específicamente los potenciómetros virtuales con estos, pero otros
programas no dejan hacerlo y debemos configurar estos potenciómetros de
una manera específica.

Como referencia debemos saber los códigos MIDI estándares de las
Articulaciones, las cuales podemos asignar a las perillas o los botones.
Por ejemplo, si usamos el CC7 en una perilla, podremos usarla para
regular el volumen en el programa, y CC10 cambiará el paneo estéreo
(izquierda-derecha). El CC11 puede usarse también en una perilla para
variar o grabar la expresión, ya que los Serie V no tienen pedal de
expresión. Las opciones de cambio de programa (program change) son
populares para asignar a los botones, pues nos permiten cambiar el patch
MIDI (instrumento) directamente desde el controlador.

Finalmente, la tercera solapa Pads se encarga de la configuración de los
ocho pads percusivos. Estos se pueden utilizar como vienen programados,
como notas percusivas (bombo, hithat, redoblante, etc), o bien cambiar
el canal y el uso para reprogramar los botones Grabación, Play, Stop,
Avanzar o Retroceder. Todo ello depende de la DAW.
Muchas aplicaciones DAW cuentan ahora con una opción "MIDI Learn" en el
cual podremos asignar una perilla virtual, luego presionar el botón de
"aprendizaje" y mover el control que queremos asignarle, y este se
asociará automáticamente (por ejemplo, en LMMS esto es muy común).

Una vez que tenemos la configuración programada como queremos, podremos
presionar el botón Save to File para almacenarla en un archivo .syx.
Para que quede efectivizada en el teclado será necesario presionar el
botón Save to Device. Una vez guardada la configuración en el teclado,
podremos apagarlo y el mismo debería conservar la configuración sin
problemas.

Gracias a esta herramienta podremos guardar archivos de configuración
específicos para nuestras necesidades, y por sobre todas las cosas
controlar de manera sencilla desde Ubuntu las curvas de sensibilidad de
las teclas.

Crear un lanzador para Alesis V SysEx Editor
Siendo este programa una interfaz gráfica, es natural que queramos
crearle un lanzador en nuestro sistema para poder arrancarlo fácilmente.
Para ello hemos de crear un script. Ingresamos:

nano .alesis.sh

..se abrirá el editor GNU Nano con un archivo en blanco, al cual le
debemos pegar el siguiente código:

cd ~/.alesisvsysex/
python3 -malesisvsysex
cd ~
..guardamos el script con Ctrl+o y salimos del GNU Nano con Ctrl+x, y
le otorgamos permisos de ejecución:

chmod +x .alesis.sh

Para crear el lanzador hacemos clic en el panel superior sobre
Aplicaciones, y elegimos la opción Editar menús...
Se abrirá la ventana Menú Principal, y en su sección izquierda hacemos
clic en la categoría Sonido y Video. Luego presionamos el botón Elemento
Nuevo. En la ventana Propiedades Lanzador que aparecerá, ingresamos el
nombre de la aplicación y en el campo "Comando:" le indicamos
/home/usuario/.alesis.sh. Luego presionamos el botón Cerrar y ahora
podremos iniciar el editor desde Aplicaciones / Sonido y Video / Alesis
V SysEx Editor.