sábado, 16 de febrero de 2019

¿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 merece por ello las sanas reparaciones que su labor le ha predicado.

Todas las tareas que lleven al esparcimiento 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 es una de las que hemos promovido. Un gran avío de software libre nos permite 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 la más maravillosa música, que es aquella compuesta con Software Libre.
Indudablemente que podremos utilizar directamente el mouse y nuestro teclado para ingresar las notas "a lo vikingo". Pero quien de esto sabe un poco no duda en asociar un teclado pianístico a nuestra computadora, ya que es en realidad la herramienta clave que nos facilitará enormemente nuestra ejecución y composición. Basta únicamente un controlador MIDI con teclas sensitivas para introducir música en 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 constituyen una opción popular y potente, que ha de estar al alcance de todo Trabajador que guste de tocar música o quiera iniciarse en ello. Debemos notar que estos controladores MIDI - no generan "sonidos" por si mismos, sino que transmiten las órdenes 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 señores, 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.

5 comentarios:

  1. excelente!! yo uso mucho lmms y estaba buscando data sobre controladores!

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Enorabuena. Podrá encontrar información sobre el tema MIDI haciendo clic en la etiqueta MIDI. https://ubuntuperonista.blogspot.com/search/label/midi

      Y también en Música: https://ubuntuperonista.blogspot.com/search/label/m%C3%BAsica

      Atte.

      Juan Perón

      Eliminar
  2. Señor Don Peron:

    Me ha causado mucha satisfacción y sorpresa conocer esta fuente de conocimiento, con ese toque tan peculiar con el que usted empapa los datos que aquí comparte.

    Yo, su humilde servidor, soy un usuario intermitente de Ubuntu/kubuntu desde hace muchos ayeres; sin llegar a ser un virtuoso de estos sistemas operativos.

    La razón del atrevimiento de este mensaje, es el consejo o instrucción que usted me pudiera brindar.

    Hace algún tiempo me logre hacer de un Korg Nanokey2, que llegue a usar un poco con su software oficial en Windows 7, ahora ya sin windows 7 y con kubuntu 19.04 me llevo la sorpresa que este controlador no es plug n play en este sistema.

    No tengo conocimiento en midi, ni en software de producción musical, teniendo en cuenta esto ¿que es lo que debo investigar para lograr mi objetivo? ¿Hay algún software que me realice alguna configuración por default? ¿Deberé abandonar este sueño del software libre? ¿En realidad Homero no le disparo al señor Burns?

    Le consulto todo esto por que al parecer es el único de habla hispana que la tiene muy clara.

    Me despido, no sin antes citarlo:

    "La unidad nos da la fuerza, la solidaridad la cohesión“

    Quedo en espera de su amable respuesta

    P.D. Saludos desde México
    P-D. No quiero chantagearlo, pero me lo debe, ya que por usted tuvimos que soportar a Libertad Lamarque aqui en México

    ResponderEliminar
    Respuestas
    1. Estimado Vlad:

      No lo hemos probado específicamente en Kubuntu, pero en Ubuntu 18.04 al menos, el KORG NanoKey 2 funciona fenómeno sin usar drivers.

      Simplemente debe conectarlo al puerto USB y configurarlo en la aplicación de forma manual, como es lo usual en los dispositivos MIDI genéricos en Ubuntu.

      Todo lo referente a producción de audio o música lo encontrarás en el blog bajo la etiqueta música (https://ubuntuperonista.blogspot.com/search/label/m%C3%BAsica).

      Siempre conviene revisar en la terminal que el dispositivo haya sido reconocido para descartar que no tenga un problema de rotura independiente de Linux. Para ello abra la terminal con Ctrl+Alt+t e ingresa el comando "lsusb". Te debería devolver todos los dispositivos USB identificados, y entre ellos el Korg NanoStation2. Si aparece, es una buena señal.

      Ahora bien, una vez reconocido, debes asignarlo en el software libre que desees utilizar como dispositivo de entrada MIDI. Recuerda que MIDI es una interfaz de órdenes digitales, no es "sonido" en sí. Lo que generará el sonido es un instrumento específico, que puede ser virtual (como los programas FluidSynth, Dexed, Helm, amSynth, qSynth en particular te permitirá crear un sintetizador basado en "samples" o SoundFonts (que son samples de música de instrumentos almacenados en un archivo SF2, y que puedes buscar de internet e incluso encontrarás algunos gratuitos en el blog).

      Vincular el controlador MIDI al programa que uses depende del programa, y del servidor de audio que emplee dicho programa, pero en todos suele ser más o menos parecido.

      Por ejemplo, en el programa MIDI Editor (
      https://ubuntuperonista.blogspot.com/2019/08/como-edito-archivos-midi-en-ubuntu.html) se hace a través de menú MIDI / Settings. Allí asignarás la entrada de datos MIDI IN a tu Korg NanoKeys2, y como salida de datos MIDI OUT podrías utilizar el sintetizador virtual de SoundFonts qSynth "FLUIDSYNTH". De esta manera, las órdenes MIDI se transmitirán desde tu controlador MIDI al programa FLUIDSYNTH y este las convertirá en sonido a través de un SoundFonts (que puede contener múltiples instrumentos). Por ejemplo, hay Soundfonts completos que tienen los 128 instrumentos General MIDI y otros que soundfonts gratuitos que traen instrumentos de orquesta, pianos eléctricos, etc etc. Otros programas directamente emulan sintetizadores conocidos como los Yamaha, los Casio, etc. Naturalmente, si tienes ya un sintetizador con MIDI, puedes utilizarlos conectándolo a la PC por medio de un cable USB (si es nuevo) o un adaptador MIDI/USB (si tiene los viejos conectores MIDI DIN).

      Si en cambio utilizas otros instrumentos virtuales (en el blog hemos explicado varios de estos instrumentos virtuales como el DEXED, HELM, y muchos más aquí https://ubuntuperonista.blogspot.com/2019/03/como-uso-instrumentos-virtuales-vst-en.html). También puedes utilizar programas de grabación como Ardour, qTractor, u otros).

      De esta manera reproduces el siguiente flujo de entrada: controlador MIDI --> programa de grabación --> instrumento virtual o sintetizador virtual.

      Atte.

      Juan Perón

      Eliminar
    2. Muchas gracias señor Don Juan Perón, buscare un tiempo para ponerme al ordenador y al korgcito, ahi le informare como va todo, por cierto, perdon por contestar hasta ahora!

      Eliminar