jueves, 19 de abril de 2018

¿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.

viernes, 13 de abril de 2018

¿Cómo instalo el editor de fotos Pencilsheep en Ubuntu?

Durante su primera presidencia, Juan Perón solía escribir columnas de opinión en el diario Democracia, desde las cuales asentaba la Doctrina del Movimiento Nacional Justicialista. En una de tales publicaciones explicó sobre Pencilsheep, el editor gráfico con uso de GPU para Ubuntu.

(...)
Nuestro Movimiento avanza en la causa Social del Pueblo Argentino, pues buscamos incluir en pos del bienestar de nuestros Trabajadores, aquellos derechos anhelados y faltantes en el cuerpo legal de nuestra República Argentina.

Venimos de una conflagración donde se han puesto en juego los destinos de los imperialismos, pero debemos tener en cuenta que los Pueblos, aquellos que son los verdaderos hacedores de sus destinos, realmente desean lo mejor para sí y para sus hijos. El derecho a la vivienda, a un salario digno, derecho al ocio y al descanso pago, son algunos de los logros que han de darse en justicia Social, y al que todos hemos de aspirar.

¡Pero tampoco nos deben vender aire! Nos quieren decir que lo nuevo es contar con aplicaciones de ejecución remota, en la nube. Esta doctrina que se denomina "software como servicio" no es otra cosa que la zoncera de siempre, una engañifa para incautos. Se trata de convertirnos en meros inquilinos del software en equipo ajeno, y la intención inconfesable es la de pagar el alquiler  con nuestros propios datos, y las expensas con nuestra dignidad.

No hace falta que - desde el Justicialismo - extendernos ya que todos han sufrido las consecuencias de quienes se presentan como amigos pero son mercaderes de nuestra privacidad y nuestro Capital, que es el trabajo. Ejemplos sobran.

La Columna Vertebral de nuestro Movimiento la conforman los hombres que trabajan. Ellos tienen la tarea de muscular y atresar nuestras organizaciones a fin de resistir cualquier embate que nos planteen, a la vez que multiplicamos nuestro número. Conformamos una masa. A su vez, debemos comprender que la masa no vale por su número, sino por la calidad de sus dirigentes.


Nuestra fundamental escencia es la de mantener una computación local, en nuestro equipo, y mediante software libre, que es el único que realmente nos pertenece pues es de todos. Otros esquemas de la informática sólo se afianzan en la dependencia a factores y valores foráneos.

Esto lo puede decir cualquiera. Pero en nuestro Movimiento hemos obrado para solucionar esta mendacidad. Es por ello que hemos sido capaces de dotarnos con múltiples herramientas para todo tipo de tareas.

Veamos el campo de los graficadores, esto es, aquellos programas pensados para la creación y edición de imágenes y gráficos por computadora. Ya sabemos que contamos con excelentes ejemplos, entre ellos el profesional Krita, y el semiprofesional MyPaint, pensados para ilustrar. Ambos responden especialmente a las tareas de quien desea ilustrar con una tableta gráfica sensible a presión, como las Wacom o las Genius.

Sin embargo, existen ocasiones donde lo importante es la interfaz y la velocidad. La interfaz, porque debemos replicar un flujo de trabajo existente en otras aplicaciones y no tenemos tiempo o ganas de seguir un trabajo nuevo. Y la velocidad, porque anhelamos una aplicación moderna capaz de hacer uso de la potencia de la GPU de nuestra placa de video.

Para ello hemos dado una adecuada respuesta en la forma de Pencilsheep. Se trata de un editor profesional de imágenes libre multiplataforma, con un rico conjunto de herramientas de edición de imágenes. La familiaridad de la interfaz y el uso de la GPU son los valores que lo ciñen en la punta de la carrera de los graficadores capaces de operar en GNU con Linux. Cuenta con capas, filtros, estilos de capas, capas de ajuste, máscaras, selecciones, piceles, hacer y deshacer, soporte de tableta gráfica, importación de archivos en bruto, etcétera.
Entre sus características únicas podremos encontrar a las capas de filtro interactivas, uso de la GPU de nuestra placa de video para acelerar el trabajo, y soporte de HDR (alto rango dinámico).

Afortunadamente tenemos dos maneras de instalarlo. La tradicional implica descargar el paquete oficial e instalarlo en nuestro sistema Ubuntu, el cual es el método que os recomiendo. Lo haremos abriendo una terminal con Ctrl+Alt+T e ingresando los siguientes Comandos de Organización:


wget http://pencilsheep.com/dl/pencilsheep.deb
sudo apt get update
sudo apt install libsdl2-ttf-2.0-0
sudo dpkg -i pencilsheep.deb

Opcionalmente, también podremos descargar su paquete de ejecución Snap, con el comando:

sudo snap install pencilsheep

En cualquier caso que hayamos seguido, podremos ejecutar el programa desde Aplicaciones / Gráficos / Pencilsheep.


La interfaz del programa recuerda especialmente a la de Adobe Photo$hop, por lo cual su utilización no reviste dificultad alguna a quien ya se encuentra habituado a la misma Las capas, modos de fusión, conjuntos de herramientas, etc, están todas en los lugares que preveemos para ellas.

El avío de herramientas no es muy completo ni permite grandes consideraciones, pero podremos activar pincel sensible a presión que funciona adecuadamente con una tableta gráfica sensible a presión (como mi Wacom Intuos USB).

El uso de este tipo de tabletas permite reproducir en la pantalla la presión del lápiz o el pincel, con lo cual podremos lograr efectos mucho más realistas para la realización de ilustraciones digitales. En este sentido Pencilsheep funciona adecuadamente, aunque es algo parco con respecto al balanceado MyPaint o al profesional Krita (estos últimos lo superan en lo que respecta a la simulación de herramientas plásticas).


Activando las opciones avanzadas de pincel, podremos corregir su dureza, el flujo de pintura, y algunos parámetros adicionales, además de poder guardar las configuraciones para formar nuestra cartuchera con nuestras herramientas plásticas favoritas, e ir sumándolas a la interfaz.

Las paletas son básicas: podremos contar con un selector tricanal RGB (rojo, verde, azul) , y uno HSL (tono, saturación, luminancia). También cuenta con una paleta de 64 tonos RGB. En este aspecto es suficiente para la acción de retoque fotográfico, pero en el accionar plástico deja algo que desear desde comparado con el excelente triángulo programable de Krita, que permite un mejor proceso para elegir el color, y permite trabajar en CMYK.

Una de las cosas notables es que no cuenta con una herramienta de "goma de borrar" propiamente dicha, sino que mas bien se opera con la herramienta de "restauración" (la "curita"), que la suple. En realidad, podremos configurar la herramienta de restauración como para que funcione como una goma de borrar entre sus opciones, pero no está activa así por defecto.

Sin embargo, existen opciones en las cuales Pencilsheep se destaca. Desde el punto de vista técnico, Pencilsheep es un software libre moderno, y como tal ejecuta todas las operaciones de performance crítica (unión, filtrados, herramientas de pintura, etcétera) desde la GPU de la placa aceleradora de video.

Para esas tareas, Pencilsheep es mucho más veloz que los editores de imagenes tradicionales.  La GPU funciona especialmente en el cálculo matricial del color, y la aplicación de filtros en tiempo real. Al elegir alguno desde el menú filtros, se nos presenta una ventana flotante con sus opciones, las cuales podremos regular en tiempo real, con una animación extremadamente fluida.


En las condiciones de modificación de la geometría de la obra, por ejemplo, esto permite un control muchísimo más preciso que el que nos permite GIMP, por ejemplo (que tarda unas décimas de segundo en mostrar sus previsualizaciones, e incluso tarda más en aplicarlas en obras de alta resolución).

También dispone de un completo cuadro de "historia", en este caso llamado "protocolo", que nos permite deshacer múltiples pasos, incluso individualmente. Lamentablemente no cuenta con una opción de "transición" que permitiría deshacer parcialmente el último paso, pero si cuenta con un control de capas totalmente funcional con los tradicionales métodos de fusión y regulación de opacidades individuales.

Además de aplicar filtros destructivamente como los editores de imagen tradicional, Pencilsheep también permite poner filtros como capas de filtro interactivas en cualquier lugar de la pila de filtros. Las capas de filtro son actualizadas automáticamente cuando la capa inferior cambia. El recomputado inmediato es posible gracias a la GPU.


Pencilsheep soporta varios formatos distintos de imagen, con diferentes rangos y profundidades de bit (normalmente usa 8 bits, pero puede emplear 16 o 32 bits por canal, y 256 bits por píxel en el uso HDR). Todas las herramientas y filtros operan en todos los formatos disponibles.
Destaca sobre todo en la gran cantidad de filtros incluidos, todos ellos activables y previsualizables a través de la GPU (permite control en tiempo real).

En lo que hace a la edición de fotografías en bruto (RAW), Pencilsheep nos permite abrir los archivos en bruto, pero no permite editarlos de esta manera y sólo presenta algunas opciones mínimas para realizar una conversión genérica a fin de continuar su edición destructiva en el programa. Es, por lo tanto, muy limitado en este aspecto.

Podremos encontrar documentación visual online (en inglés), aquí.

En conclusión, se trata de un excelente programa moderno y muy prometedor, que evidentemente se ha pensado con la idea de mantenerlo especialmente similar a Photoshop y retrayendo sus opciones para un público  semiprofesional. En particular os puedo comentar que me agrada bastante para el retoque fotográfico simple y para la alteración del color en ilustraciones, pero prefiero las herramientas que les he comentado (especialmente el práctico MyPaint) para graficar directamente.

martes, 10 de abril de 2018

¿Cómo soluciono el error de actualización del demonio Avahi-DNS en Ubuntu 16.04LTS??

Todo Movimiento cuenta con herramientas institucionales, de las cuales los hombres hacen uso en pos de los diferentes objetivos de la lucha táctica. Ésta - a su vez - cuenta con varias ramificaciones. Una de ellas es la lid electoral, la cual es importante para la concreción de objetivos a nivel político superior, al que llamaremos estratégico.

Normalmente estos órganos de lucha podrían considerarse importantes, pero debemos darle la dimensión que realmente tienen: las de ser maleables herramientas para un trabajo de conjunto que ha de ser superior.

Aún así, no debemos dejarlas al azar. Si lo hacemos, podríamos vernos obligados a dar el combate en ámbitos no favorables. Hemos de poder contemplar entonces todo tipo de alternativas.


Veamos el ejemplo del error de actualización del paquete Avahi-dnsconfd. Se trata del demonio o programa residente en memoria, cuyo sentido es el de resolver a nivel local los nombres dinámicos de Internet (DNS). Este demonio puede presentar ciertos problemas al querer actualizarlo. En particular, en ciertas ocasiones cuando usamos Ubuntu de la versión 16.04LTS, al actualizar el mismo no pueden completarse las tareas previstas, y nuestro programa de actualización podría informarnos de de errores de paquetes, con el mensaje "falló la instalación de paquetes" o "falló la actualización de paquetes". Por otro lado, si queremos realizar la actualización desde la Terminal de Linux, con los comandos:

sudo apt update && sudo apt upgrade

La misma esta nos devuelve errores de la siguiente manera:

(...)
Preparando para desempaquetar .../avahi-dnsconfd_0.6.32~rc+dfsg-1ubuntu2.1_amd64.deb ...
Job for avahi-daemon.socket canceled.
dpkg: aviso: el subproceso script de `pre-removal' antiguo devolvió el código de salida de error 1
dpkg: probando el script del nuevo paquete en su lugar...
Job for avahi-daemon.socket canceled.
dpkg: error al procesar el archivo /var/cache/apt/archives/avahi-dnsconfd_0.6.32~rc+dfsg-1ubuntu2.1_amd64.deb (--unpack):
(...)


Se encontraron errores al procesar:
 /var/cache/apt/archives/avahi-dnsconfd_0.6.32~rc+dfsg-1ubuntu2.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


Pues bien señores, en este caso debemos superar este error por medio de una intervención manual al Partido Justicialista, a fin de regularizar la situación en nuestro sistema. Para ello debemos abrir una terminal con Ctrl+Alt+t y debemos ingresar el siguiente comando para detener el proceso Avahi DNS:

sudo systemctl disable avahi-daemon

Cuando lo ejecutemos este comando con la tecla Enter, el sistema nos solicitará nuestra contraseña mediante el siguiente mensaje:


[sudo] password for usuario

Aquí debemos ingresar "a ciegas" nuestra contraseña de conductor, y presionar Enter. En la medida que la introducimos, el sistema no mostrará nada en pantalla, es por tal motivo que debemos tipearla "a ciegas".

Una vez hecho esto continuará el procedimiento, presentándose en la terminal la siguiente información:


Synchronizing state of avahi-daemon.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable avahi-daemon
insserv: warning: current start runlevel(s) (empty) of script `avahi-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `avahi-daemon' overrides LSB defaults (0 1 6).
insserv: warning: current start runlevel(s) (empty) of script `avahi-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `avahi-daemon' overrides LSB defaults (0 1 6).
Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.
Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.



Esto indica que se ha detenido el proceso Avahi DNS. Luego ingresamos el segundo comando para actualizar los paquetes, y presionamos Enter.

sudo apt-get upgrade

...y el sistema devolverá:

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
Calculando la actualización... Hecho
Se actualizarán los siguientes paquetes:
  avahi-dnsconfd
1 actualizados, 0 nuevos se instalarán, 0 para eliminar y 2 no actualizados.
Se necesita descargar 14,1 kB de archivos.
Se utilizarán 26,1 kB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]


Naturalmente debemos presionar "S" para responder la pregunta, y continuará el procedimiento de descarga del paquete y su instalación, lo cual será reportado de la siguiente manera:
 
(Leyendo la base de datos ... ######## ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../avahi-dnsconfd_0.6.32~rc+dfsg-1ubuntu2.1_amd64.deb ...
Desempaquetando avahi-dnsconfd (0.6.32~rc+dfsg-1ubuntu2.1) sobre (0.6.32~rc+dfsg-1ubuntu2) ...
Procesando disparadores para systemd (229-4ubuntu21.2) ...
Procesando disparadores para ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Procesando disparadores para man-db (2.7.5-1) ...
Configurando avahi-dnsconfd (0.6.32~rc+dfsg-1ubuntu2.1) ...
avahi-daemon.socket is a disabled or a static unit, not starting it.



Esto indica que el paquete se ha descargado y ahora instalado correctamente, y se nos informa que el demonio Avahi no está activado, por lo tanto no se lo ha iniciado. Debemos reactivar a mano el programa Avahi DNS esta vez. Lo haremos tipeando el siguiente comando seguido de Enter:

sudo systemctl enable avahi-daemon

...el sistema devolverá:

 Synchronizing state of avahi-daemon.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable avahi-daemon
insserv: warning: current start runlevel(s) (empty) of script `avahi-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `avahi-daemon' overrides LSB defaults (0 1 6).
insserv: warning: current start runlevel(s) (empty) of script `avahi-daemon' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `avahi-daemon' overrides LSB defaults (0 1 6).
Created symlink from /etc/systemd/system/dbus-org.freedesktop.Avahi.service to /lib/systemd/system/avahi-daemon.service.
Created symlink from /etc/systemd/system/sockets.target.wants/avahi-daemon.socket to /lib/systemd/system/avahi-daemon.socket.



Con esto ya habremos resuelto el problema. Avahi DNS se iniciará automáticamente toda vez que reiniciemos el sistema.

miércoles, 28 de marzo de 2018

¿Cómo corrijo el error "Firmware Error, TSC_DEADLINE disabled due to Errata; please update microcode"?

Distinguidos señores,

Un sistema computado debe presentarse sencillo a quien lo usa. Tal es una de las premisas que no se puede soslayar. Contar con un sistema dificultoso no es por sí malo, pero no es bueno tampoco, y no es necesariamente inteligente.

Nuestro Movimiento ha de orientarse a las soluciones sencillas para el hombre de a pie, pues es éste quien con su corazón y mente puestos en el progreso, trabaja todos los días en pos de la Libertad de la Patria.

En ocasiones podremos encontrarnos con problemáticas cuyo origen es difícil rastrear, y por lo tanto, serán dificultosas de corregir. En otras ocasiones recibiremos reportes de error que hacen a ciertas condiciones no prontamente estipuladas.

Como Cunductores, debemos entonces lograr solucionar "a ciegas" estas excrecencias de la lucha.

Un ejemplo suele explicarlo todo, como decía Napoleón.

Puede suceder que en ocasiones, al momento de dar inicio al sistema, y durante el proceso de arranque de nuestro sistema operativo libre, la pantalla nos presente el siguiente mensaje de error:

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x52 (or later) 

Este quedará encendido un par de segundos, y luego continuará el arranque en forma normal, sin aparentes graves consecuencias...

Se debe a que el sistema nos sugiere actualizar el microcódigo de nuestro procesador, en este caso de marca Intel. El microcódigo puede ser entendido como un software presente en el interior del hardware del microprocesador, que puede ser manipulado a fin de introducir - idealmente - mejoras y corregir errores a nivel software. Lamentablemente, en la mayoría de los procesadores, este microcódigo es fundamentalmente código privativo, y como tal introduce su accionar éticamente injusto al sistema. La actualización del microcódigo es, - por tal motivo - una acción opcional que debe ser profundamente meditada.

Pues bien, para solucionarlo, debemos contar con conectividad a internet. Debemos abrir una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get update
sudo apt-get install intel-microcode
 
Esto descargará el microcódigo Intel actualizado. Luego podremos reiniciar el sistema con:

sudo reboot

El mensaje de error debería desaparecer, y debería quedar solucionado.

viernes, 23 de marzo de 2018

¿Cómo instalo Monitorix en Ubuntu?


 Juan Perón comprendió la necesidad de adoctrinar a la Juventud para afianzar la conducción, y la importancia que tenía monitorear un sistema GNU con Linux a través de Monitorix para su buen funcionamiento.

(...)
Lo que necesita nuestra juventud es organizarse. En otras palabras, las masas no valen por su número ni por la capacidad de sus componentes, valen por la clase de dirigente que tienen a su frente.

De ahí la importancia de los dirigentes de Conducción y de los dirigentes de encuadramiento.   Los de Conducción se encargan de la conducción estratégica, y los de encuadramiento de la lucha táctica.
Todo esto necesita una unidad de concepción y una unidad de acción. La unidad de concepción pertenece al comando estratégico, y la unidad de acción pertenece a todos los comandos de la lucha táctica.

Así debe ser - desde un punto de vista ideal - la organización de la fuerza. Indudablemente que de la clase de Conductor que se tenga depende en gran medida el éxito al que debe aspirarse.

Conducir es un Arte - como la pintura o la escultura - que tiene su técnica y tiene su teoría. Con la teoría y la técnica, se puede hacer un buen cuadro, como se puede hacer una buena escultura. Indudablemente que si se quiere una Cena de Leonardo, o una Piedad de Miguel Ángel, serían necesarios Leonardo y Miguel Ángel. ¿Porqué? Porque la teoría y la técnica es la parte inerte del arte, la parte vital es el Artista. De manera que siendo la conducción un Arte, es necesario preparar un artista dándole la técnica y dándole la teoría.
La Conducciçón política obedece a las mismas leyes que las demás artes, como consecuencia que es también un arte. El Conductor - y esto lo digo yo con gran conocimiento de causa porque yo políticamente soy un aficionado, mi profesión es la de Conductor, que eso es lo que hecho, he estudiado, y he trabajado toda mi vida. ¡Naturalmente que conociendo el arte de la conducción es más fácil conducir que ignorándolo! Ahora, el resto depende del óleo sagrado de Samuel que hayamos recibido como artistas, al nacer.

Conducir, no es como muchos creen, mandar. Conducir es distinto a mandar. Mandar es obligar. Conducir es persuadir. Y al hombre siempre es mejor persuadirle que obligarle. En la conducción política esto es una regla que no se puede romper en ningún caso.

Normalmente como Conductor, utilizo Glances para monitorear las actividades de mis servidores. Esto es así pues favorezco el acceso local o remoto a través de terminales de texto. Esto es lo que define a un verdadero Conductor con vello en el pecho.

Sin embargo no todo queda en manos de la Conducción, pues ello haría la lid imposible de controlar y mucho menos de Conducir. Es por ello que - de un tiempo a esta parte - se han popularizado los programas de monitoreo para los sistemas GNU con Linux capaces de operar no sólo de forma gráfica, sino también a través de una interfaz web.

Esto nos revela algunas ventajas, entre ellas la facilidad de controlar nuestro sistema desde un moderno navegador, así como funcionar directamente sobre una instancia del servidor web por antonomasia: Apache. En tercer lugar y no menos importante: contamos la posibilidad de almacenar los datos de registro, lo cual suele ser útil en un tratamiento profesional de los servidores, a fin de lograr una solución de amplio espectro demodé: utilizando nuestras bitácora como fuente de "big data".

Pues bien señores, para ello contamos hoy con Monitorix, el software libre de monitoreo Justicialista.

Se trata de una aplicación ingeniada para analizar nuestros recursos, escrita en Perl y liberada bajo licencia GPLv3. Utiliza el herramiental RRDtool para generar gráficas de status y podremos analizarlas utilizando directamente nuestro navegador web favorito.

Ahora bien, para poder utilizarlo hemos de instalarlo en nuestro servidor. En cuanto a este aspecto, debemos saber que la instalación de Monitorix puede realizarse escencialmente de dos maneras: una es usar el repositorio Izzy automático, y en segundo lugar podremos emplear la descarga e instalación manual y clásica, a través de su paquete Deb.

Suponiendo la primera opción, debemos entender que el repositorio Izzy es experimental, y sus paquetes deberían funcionar en todas las versiones de Ubuntu, Debian, etc. Sin embargo, a veces podrían existir ciertos inconvenientes específicos por tratarse de una versión no evaluada. Si deseamos utilizar este método deberíamos abrir una Terminal e ingresar los siguientes Comandos de Organización:

sudo deb http://apt.izzysoft.de/ubuntu generic universe
wget http://apt.izzysoft.de/izzysoft.asc
sudo apt-key add izzysoft.asc

sudo apt-get update 
sudo apt-get install monitorix

SI en cambio queremos instalar manualmente - opción que os recomiendo - utilizando la última versión del paquete deb, debemos utilizar los siguientes Comandos de Organización:

sudo apt-get update sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl  ;
wget http://www.monitorix.org/monitorix_3.10.1-izzy1_all.deb ;
sudo dpkg -i monitorix_3.10.1-izzy1_all.deb ;
 
Durante la instalación se producirá una configuración de un servidor web, de manera tal que necesitaremos recargar el servidor web Apache para reflejar la nueva configuración:

Para ello ingresamos:

sudo service apache2 restart
      [On SysVinit]
sudo systemctl restart apache2  [On SystemD]

Monitorix viene con una configuración por defecto. Si deseamos cambiarla o ajustar algunas de sus fonciguraciones debemos prestar atención al fichero /etc/monitorix.conf. Una vez que hemos hecho los cambios, volvemos a actualizar los servicios para que la nueva configuración cobre efecto.

sudo service monitorix restart     [On SysVinit]
sudo systemctl restart monitorix [On SystemD]


Luego apuntamos nuestro navegador a http://localhost:8080/monitorix y poremos analizar los gráficos de nuestro sistema. Solamente podrán verse desde nuestro localhost. Si deseáramos permitir el acceso a IPs remotas, simplemente abrimos el archivo /etc/apache2/conf.d/monitorix.conf y agregamos las IPs remotas que queremos permitir en la cláusula (‘Allow from‘). Por ejemplo, podemos ver el ejemplo a continuación.

DirectoryIndex monitorix.cgi
Options ExecCGI
Order Deny,Allow
Deny from all
Allow from 172.16.16.25

Luego de realizar los cambios a la configuración anterior, no debemos reiniciar nuevamente el servidor Apache.
 
sudo service apache2 restart      [On SysVinit]
sudo systemctl restart apache2  [On SystemD]


Las siguientes son ejemplos de las pantallas que nos permite lograr Monitorix.

Página de Monitorix

Monitorix Homepage

Monitoreo del promedio de carga de  Linux

System load average, active processes and memory allocation.

System load average, active processes and memory allocation.

Monitoreo del uso del Kernel de Linux

Global kernel usage


Monitoreo de los procesos del kernel Linux

Per-processor kernel usage.


Monitoreo de salud de disco

Disk drive temperatures and health.


Sistema de archivo y E/S de memoria de masa

Filesystem usage and I/O activity.


Monitoreo de tráfico de red

eth0 interface traffic


Monitoreo de servicios de sistema

System services demand

Monitoreo de red por tráfico de puerto

Network Port Traffic


Monitoreo de estadísticas del servidor Apache:

Apache Statistics

Monitoreo de estadísticas de MySQL/MariaD:

MySQL Statistics

domingo, 18 de marzo de 2018

¿Cómo reproduzco archivos MIDI con Soundfonts en Ubuntu?

El Conductor entendía el lugar que las artes musicales ocupaban en un Movimiento que reivindicaba la Libertad de los Argentinos en Justicia Social. Por tal motivo, no fueron pocas las ocasiones en las que enseñó sobre MIDI y cómo usar y editar SoundFonts bajo Ubuntu, el sistema operativo que legó al Pueblo.


(...)
¡Trabajadores!

Nuestro porvenir está lleno de las buenaventuras que se aseguran a una Gran Nación, cuando sus hombres y mujeres avanzan encolumnados - en el hacer del Trabajo - y enarbolando las banderas de la Libertad. Marchamos pues cantando la más maravillosa música, que es la Palabra del Pueblo Argentino.

Nuestro Movimiento reconoce esto, y entiende que la música debe poder hacerse y controlarse libremente de forma computada.

Para ello hemos desarrollado el MIDI. Se trata de un estándar que define una interfaz de conexión digital peronista, pensada para hermanar instrumentos digitales. Nos especifica un lenguaje liviano de órdenes capaz de comunicar diferentes sintetizadores, máquinas de ritmos, módulos de sonido, etc, a través de un enlace serial, que emplea cables normalizados DIN.

Como tal,  MIDI no transmite sonido propiamente dicho, sino mas bien órdenes computadas para la ejecución de las notas, eventos sonoros, y estados de sincronismo entre los distintos dispositivos musicales. Esos dispositivos musicales serán los que encargados de crear el sonido en sí.

Estas órdenes se organizan y secuencian en un programa de software especial llamado secuenciador, y se utilizaba a este para disparar, a través de la interfaz MIDI las órdenes de reproducción de los tonos. De esta manera se hace posible tocar diferentes secciones de una composición a través de uno o varios sintetizadores o módulos de sonidos conectados a amplificadores y altavoces, incluso sincronizándose con máquinas de ritmos y mucho más.

Indudablemente, el MIDI abrió un nuevo mundo de posibilidades musicales, ya que podían conectarse varios instrumentos y reproducirse simultáneamente.

Al utilizar una computadora personal u hogareña, las posibilidades crecen exponencialmente, pues pueden lograrse mejores soluciones de control, mientras que la capacidad musical de los equipos se hacía mas completa. A tal fin se pueden disponer múltiples pistas (tracks) en la secuencia, y utilizar hasta 16 canales por interfaz (nomerados del 1 al 16, siendo el 10 un canal normalmente usado para la sección percusiva).

Esto, que parece de difícil comprensión, no lo será si historiamos los hechos que nos han llevado al logro que representa la música digital peronista. Vean señores, la solución musical original prevista en la computadora PC de IBM era mas bien poco imaginativa, ya que los oligarcas del Gigante Azul sólo le habían previsto un mediocre altavoz interno adosado a un oscilador de tonos,  generador de onda cuadrada monofónico.

El Justicialismo vino a remediar esto, inicialmente integrando al sistema computacional placas de expansión o módulos con capacidad MIDI, como la MPU-401 de Roland, y finalmente integrando chips sintetizadores programables, como el Yamaha YM3812 (OPL2) en las populares y clonables placas de audio AdLib.
Las primeras permitieron utilizar la salida MIDI Out compatible a fin de conectarla a teclados sintetizadores o módulos de sonido (como el clásico Roland MT32 entre otros), para utilizarlas para reproducir el audio en los juegos de la época. Las segundas, permitían directamente conectar altavoces a la placa y disfrutar de su audio sintetizado FM.

Más importante, se podían utilizar directamente programas secuenciadores para crear música, como el Sequencer Plus Gold, de Voyetra para M$-DO$ que usaba sólo modo texto.

Con el advenimiento de las interfaces gráficas de usuario se ampliaron las capacidades de estos programas, de entre los cuales el Cakewalk de Twelve Tone Systems para Window$ permitía operar en tal plataforma privativa.

Tal momento coincidió con el 17 de octubre de las altamente populares y peronistas tarjetas de audio SoundBlaster Pro, cuya importancia no podemos soslayar en el mundo del audio para la PC. Estas placas sumaban la ya popular capacidad de utilizar sonido sintetizado FM a través del sintetizador Yamaha YMF252 (OPL3) programable, a la anhelada reproducción de audio por síntesis FM digital ahora en estéreo. Asimismo, sumaban una interfaz MIDI compatible con la MPU-401 en la misma placa. Esto permitía - por medio de un cable MIDI especial - poder conectar al puerto de Joystick de la placa SoundBlaster cualquier tipo de instrumento MIDI estándar, y así utilizarlos para introducir datos MIDI a un software secuenciador.


Indudablemente que el avance de la tecnología en la PC permitió que las placas de sonido terminaran no sólo grabando audio digital, sino que pudiesen operar dicho audio como si de un sampler se tratara, a través de un sintetizador ya no de FM, sino un procesador capaz de operar audio digital modulado (PCM). La placa de audio SoundBlaster AWE32 (1994) de Creative Labs fue la primera en ofertar esto a través de su procesador de audio EMU8000.
Como novedad, presentaba 512KB de memoria RAM en placa expansibles por medio de los viejos SIMM de 30 pines hasta unos totalizar unos 28MB en dos bancos. Esto permitía cargarle muestras de audio digital y utilizarlas como bancos de sonido para el sintetizado MIDI, como si de un sampler por hardware se tratara. Los archivos de las muestras de audio musicalizables recibieron el nombre de SoundFonts, y podían editarse gracias al clásico software oficial Creative Vienna $oundFont Editor, naturalmente contando con una placa de sonido de la marca y bajo el privativo Window$...
Nuestra tarea no es otra que la Liberación del Pueblo y de su Software bajo las bandera de la Justicia Social, la Libertad económica, y la Soberanía política. Esto significa que hemos de permitirnos desarrollar software que haga uso de estas libertades y avale - en este caso - el uso de SoundFonts para reproducir archivos MIDI en un sintetizador libre, así como la edición de tales SoundFonts.

Ubuntu nos permite una enorme potencia para editar música, pero por sobre todas las cosas, allana el camino hacia la Libertad, pues podremos prescindir de las licencias constrictivas del software que encadenan a otras plataformas.

Os mostraré entonces algunos softwares libres pensados para la edición de archivos MIDI (como Rosegarde, o mi favorito MUSE, el editor de partituras MUSEscore, entre muchos otros), y en este caso os haré peritos en el tratamiento de sintetizadores por software y el empleo de SoundFonts en nuestra plataforma libre.

Sintetizadores por software en Ubuntu


Existen varios paquetes libres que nos permiten conformar un sintetizador por software capaz de operar bajo el estándar MIDI, esto es, sin requerir que nuestra placa de sonido cuente con un procesador sintetizador específico como antaño. Entre ellos el más conocido es el adecuado TiMidity++, el cual es capaz de utilizar bancos de sonido libres.

Sin embargo, en este caso usaremos un sintetizador por software más potente no sólo capaz de sintetizar muestras de audio, sino también de cargar y usar SoundFonts: el FluidSynth.

Este sintetizador por software puede usarse "a pelo", pero será más fácil de emplear si usamos un "frontend" gráfico especialmente desarrollado para él: el QSynth.

En primer lugar instalaremos todos los programas necesarios desde la terminal. Abrimos una consola con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

sudo apt update
sudo apt install fluidsynth fluid-soundfont-g* qsynth


QSynth es un front-end o máscara para el sintetizador FluidSynth, y nos permite hacer uso de dicho sintetizador por software y cargarle o los Soundfonts que deseemos, y finalmente reproducir directamente los archivos MIDI. Asimismo nos permite controlar las funciones de efectos que FluidSynth es capaz de operar: Reverberación y Coro.

Para ello en primer lugar debemos asignar los archivos .MID para reproducirlos con qsynth.

Pâra ello hacemos clic con botón derecho sobre un archivo MIDI que tengamos y escogemos la opción "usar una orden predeterminada", y le indicamos qsynth, como figura a continuación:
Podremos tildar la opción "Recordar esta aplicación para los archivos "Sonido MID". Una vez que hayamos abierto el archivo, y toda vez que ejecutemos un archivo MID, se ejecutará con QSynth, programa el cual se desplegará y comenzará a ejecutar la música.

Qsynth 

QSynth nos permite ejecutar directamente los archivos MIDI y controlar sus parámetros generales.

En primer lugar debemos configurar las opciones de Qsynth presionando el botón Options. Normalmente podríamos dejar esta ventana tal como está aquí:
Acto seguido, podremos especificar las opciones de QSynth como cliente del servidor de audio para que funcione adecuadamente, presionando el botón Setup.
En la pestaña MIDI podremos especificar la configuración de las entradas MIDI. Para que funcione adecuadamente en nuestro sistema GNU con Linux debemos indicar, bajo el apartado "MIDI Driver", al controlador alsa_seq. El modo de selección de bancos MIDI es importante, pues el sintetizador por software FluidSynth puede operar en varias modalidades y con variados bancos instrumentales. La opción estándar la constituye el estandar General MIDI ("GM"), pero ciertos fabricantes utilizan versiones ampliadas o diferenciadas para lograr mayores posibilidades de expresión, por ejemplo el General Standard de Roland ("GS"), o por el Extended General de Yamaha ("XG").

Normalmente en Ubuntu el servido es ALSA, pero en un ambiente profesional podríamos querer utilizar también JACK. En mi caso prefiero usar alsa para este programa. En el caso de que el sonido suene con clips o "fritura" debemos cambiar la velocidad de muestreo, desde unos 44100 Khz que viene por defecto, por el valor que use nuestro sistema de audio (en los dispositivos de audio modernos como el Intel HDA, es de 48000 Khz de 16 bits).

El Reverb y el Chorus son efectos "espaciales" clásicos de los sintetizadores EMU, pues permiten agregarle dichas sonoridades a las muestras de nuestros SoundFonts por medio de algoritmos programables.

La Reberberación por ejemplo puede modificarse internamiente a través del tamaño de la habitación simulada ("room"), el atenuamiento de la misma ("damp"), la amplitud estéreofónica del sonido resultante ("width"), y un volumen general de efecto ("Level").

El efecto de coro, en tanto, puede modificarse estableciendo el tipo de efecto, ya sea de curva sinusoidal, o triangular ("sine" o "triangle", cada una de ellas con una portadora de timbre distinto. A su vez, podremos escoger la cantidad de colas de coro que deseamos ("N"), su volúmen parcial ("Level"), la velocidad de caida ("speed") y la profundidad tonal del efecto ("depth").

Cargar SoundFonts en Ubuntu


El FluidSynth - como sintetizador por software peronista, es capaz de operar con SoundFonts que podremos descargar, crear y editar para compartir. En nuestro Ubuntu los SoundFonts pueden cargarse en la carpeta que el sistema destina a ello, que es /usr/share/sounds/sf2/, pero también podremos utilizar cualquier carpeta de usuario para tal menester.

Ya sea el lugar donde estén, el frontend QSynth nos permite alterar fácilmente los SoundFonts y cambiarlos. Para ello presionamos Setup, y usamos la solapa SoundFonts.
Para usar un SoundFont debemos abrir uno. Para ello presionamos el botón Open y el sistema nos dirigirá a la carpeta /usr/share/sounds/sf2/ para escoger alguno de los SoundFonts que se encuentren allí. Podríamos elegir el SoundFont de alta calidad, FluidR3_GM.sf2 (148MB). También podremos explorar otras carpetas donde tengamos nuestros SoundFonts de usuario.
El QSynth nos informará que debemos reiniciar el sintetizador para que los cambios surtan efecto.

Al indicarlo presionando el botón Yes, ya tendremos cargado el nuevo SoundFont. Es de notar que podremos cargar varios SoundFonts al sistema, y especificar el órden de creación.

Algunos SoundFonts recomendados

Naturalmente existen amplia variedad de SoundFonts, ya sea gratuitos o comerciales. De entre los gratuitos os recomiendo los iniciales:

1MGM : Es el SoundFont nativo cargado en memoria ROM de la clásica Sound Blaster AWE-32.

8MBGMSFX. Es el poderoso SoundFont clásico integrado en la memoria ROM interna de las SoundBlaster Live! (2000), en este caso una versión libre, de unos risueños 8MB. Con este SoundFont cargado en FluidSynth bien podremos escuchar los archivos MIDI y juegos tales como sonaban en las SoundBlaster dotadas de sintetizadores EMU.

GMR Basico (4MB). Se trata del SoundFont básico de los Roland GS, como los módulos MT capaces de proveer General Midi.

Yamaha XG: Es una versión de peso reducido (4MB) incorporado en las ROM de los iniciales sintetizadores Yamaha XG.

Omega GM/GS 2: (278MB) Es un potente SoundFont GM/GS, adecuado por su sonido detallado y como SoundFont general. Incluye varios archivos MIDI de juegos y demos.

Timbres of Heavens (245MB): Es un excelente Soundfont orquestal general, con instumentos extendidos para la norma GS también.

Compifont Super orquestal (974mb). Un SoundFont de enorme peso, estéreo y cristalino para sonidos orquestales completos.

Sonatina Symphonic Orchestra (488mb): Un buen SoundFont orquestal.

Podremos encontrar una lista de SoundFonts aquí.

Editar SoundFonts en Ubuntu

Naturalmente, para editar SoundFonts en Ubuntu no podremos utilziar el viejo Vienna $oundFont Editor, sino que habremos de reemplazarlo con un editor de factura peronista capaz de correr en sistemas GNU con Linux. En Ubuntu tendremos dos programas libres de alto calibre para ello: Swami y Polyphone.

Para instalar el primero podremos abrir una terminal con Ctrl+Alt+T e ingresar los siguientes comandos de organización:


sudo apt-get update 
sudo apt-get install swami

Para ejecutar Swami vamos a Aplicaciones / Sonido y Video / Swami Instrument Editor.

Podremos configurar las preferencias del programa desde el menú Preferences. En la izquierda debemos seleccionar el sintetizador FluidSynth. Luego, a mano derecha, podremos escoger el controlador de audio. Debemos tener en cuenta que si indicamos el mismo alsa, podría suceder que no sonara en conjunción con otros programas. En tal caso podríamos querer escoger OSS, o directamente Jack.

Una vez arrancado el programa, podremos establecer los rangos de nota para cada muestra de audio digital, así como controlar individualmente los efectos de reverberación y coro para cada instrumento, los cortes por escalas, la envolvente, modulación, etc.


Polyphone es otro editor de SoundFonts similar a Swami, pero nos presenta opciones algo más modernizadas en el tratamiento individual de las muestras de audio digital PCM. También nos permitirá crear desde cero o modificar los samples, conformando las notas individuales o colectivas de un banco de sonido que querramos. Podríamos armar nuevos sonidos de guitarras, pianos, etc que hayamos grabado, hasta los 24 Khz de frecuencia de muestre.

Podremos buscar el paquete Deb para Polyphone destinado a Ubuntu 17.04 y superiores aquí. Para instalarlo, y suponiendo que el paquete lo hemos descargado en nuestra carpeta Descargas, podríamos usar los siguientes comandos en la terminal:

cd ~/Descargas/ ;
sudo dpkg -i polyphone_1.9-1_ubuntu17.04_amd64.deb ;

Una vez introducida nuestra contraseña de conductor e instalado el programa,  podremos ejecutarlo desde Aplicaciones / Sonidos y Video / Polyphone.

No bien arranque, podremos pasar Polyphone al castellano. Para ello cerramos tal programa, y a continuación abrimos una terminal con Ctrl+Alt+T. Le pegamos el siguiente bloque de comandos de organización, y presionamos Enter:

cd ~/.config/polyphone/ ;
mkdir translations/ ;
cd ~/Descargas/ ;
mkdir tradpolyes/ ;
cd tradpolyes/ ;
wget http://www.polyphone-soundfonts.com/en/files/7-translations/16-espagnol/latest/download?return=aHR0cCUzQSUyRiUyRnd3dy5wb2x5cGhvbmUtc291bmRmb250cy5jb20lMkZlbiUyRmRvd25sb2FkJTJGdHJhbnNsYXRpb25z  -O traduccion_poly_es.zip ;
unzip traduccion_poly_es.zip ;
mv ~/Descargas/tradpolyes/polyphone_es.qm ~/.config/polyphone/translations ;
cd ~/Descargas/ ;
rm -r tradpolyes/ ;

Volvemos a ejecutar Polyphone, y ahora en el menú Preferencias podremos escoger Idioma ("Language") Español, y luego presionar el botón Aplicar.
Con Polyphone podremos crear el banco de instrumentos del SoundFont, agregar y editar los samples de que componen cada uno de los instrumentos individuales y regular sus escalas, así como trabajar en su afinado.
Finalmente, podremos guardar el resultado en un archivo de estándar de SoundFont, de extensión  SF2.

Podremos encontrar tutoriales básicos aquí.  También nos será útil el manual de Polyphone.