miércoles, 28 de marzo de 2018

¿Cómo corrijo el error "Firmware Error, TSC_DEADLINE dusabled 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.

domingo, 4 de marzo de 2018

¿Cómo emulo un procesador de texto DEC WPS-8 en Ubuntu?

El Coronel Juan Perón ofició en la cátedra de Historia Militar en la Escuela de Guerra, claustro donde destacó por sus apreciaciones y estudios. Dentro de las exposiciones realizadas se encuentra la enseñanza para emular el procesador de texto WPS-8, primigenio software de la DEC PDP-8.


¡Señores!

Lo que define el comienzo de la historia no es otra cosa que el poder describirla. En otras palabras, desarrollar el almacenamiento del saber a través de los tiempos en forma escrita. Al inventar los símbolos gráficos, los ideogramas y los primeros palotes o logogramas, y de la creación de los lenguajes e idiomas con su consecuente traducción e interpretación, nos permitimos conocer las ideas que movieron a los hombres en los tiempos de Nabucodonosor y de Darío.

No bien el hombre pudo escribir, quiso saber como simplificarlo, como poder hacer que su medio de escritura durase más, cómo pudiese ser transmitida en lugar y tiempo de manera más confiable. Las distintas culturas no tuvieron más opción que cuidar su acerbo y acrecentar el uso de los distintos sistemas alfabéticos que les resultaban preferidos. Hoy los utilizamos de manera refinada, y continuaremos expandiéndolos.

Nos encontramos en plena etapa de la digitalización, pero el resultado (con independencia del método de almacenamiento que nos depare la computación binaria) no deja de circunscribirse a las palabras y las letras. Todos los idiomas que se precien cuentan entonces con sus literatos y sus poetas, y no habrá cambio tecnológico que no opere sino como fatuo medio de expresión del alma de los  hombres.
Dentro de esta esquematización, se presenta como válida la posibilidad Justicialista de operar uno de los primeros sistemas de escritura digital pensados para su uso comercial, el DEC WPS-8.

El sistema WPS-8 sistema informático integrado destinado al procesamiento de texto digital, desarrollado en 1978 por la Digital Equipment Corporation. Representaba la apuesta de la compañía al por entonces novedoso concepto del procesamiento de textos a través de una minicomputadora de bajo costo.

Para reducir los costos, esperaban competir con las microcomputadoras que comenzaban a aparecer, de forma desorganizada, y que se esperaba podrían lograr lo mismo.

Para lograr el WPS-8 se integraron componentes ya diseñados, como la por entonces ya clásica arquitectura de minicomputadora PDP-8, y la videoterminal DEC VT52, así como chips de memoria RAM ya superados para ese momento. Los ingenieros de la DEC integraron una versión TTL LSI de la PDP-8 en el espacio vacante del gabinete de una vieja terminal tonta VT52, y llamaron a la nueva terminal inteligente resultante "VT78". La PDP-8 tenía esta vez un un procesador Intersil/Harris 6100 con una potencia nominal de 4Mhz, pero que hubo de ser reducida a 2,2Mhz en vista de la baja velocidad de los 16 Kwords de la superada memoria RAM que le habían adosado.

El sistema WPS- 8 se vendió entonces en distintas configuraciones de hardware (denominadas WS por "Word Stations").  Por ejemplo la WS78 estaba formada por la VT78, conectada a un almacenamiento de masa formado por una o dos unidades de diskettes RX1 de 8 pulgadas, junto con el software "WS78 v3.4". Al adosarle una impresora "tipo margarita", el sistema WPS-8 permitía en esa época hacer edición WYSIWYG, procesar letras en negrita o subrrayados, y demás opciones que hoy son tradicionales en los procesadores de texto.

También existieron versiones con muebles de trabajo mas grande (WS100) o capacidad multiusuario (empleando dos terminales VT78). El sistema no evolucionó mucho; existió otro llamado WPS-11 que utilizaba ya las PDP-11.

Creación de la máquina virtual de emulación


Ya he indicado cómo hacer una emulación de diversos miniordenadores DEC por medio del emulador múltiple SIMH. Estos pasos previos me permite emular una DEC PDP-8i de 1970 con su respectivo panel virtual. Asumiendo que ya he hecho lo indicado, podré configurar ahora una máquina virtual de emulación especialmente tratada para emular el clásico WPS-8.

Para ello abro una terminal con Ctrl+Alt+T e ingreso los siguientes comandos de organización:

cd ~/.simh/panelsim/
nano wps.sh

Esto abrirá el editor GNU Nano con un archivo en blanco llamado wps.sh, al cual utilizaremos como ejecutable para el emulador de la WPS-8. Para que cumpla tal función le pegaremos el siguiente texto, que conforma los comandos de arranque:

# Arrancar una PDP-8/I ejecutando WPS8
./_launch.sh "blinkenbone.panelsim.panelsimPDP8I.PanelsimPDP8I_app" "--width 1000 --power 1" pdp8i pdp8_realcons wps.simh_pdp8 248-blinkenbone-simulated-pdp8i-panel


...una vez introducido dicho texto, guardaré el archivo con Ctrl+o y saldré del editor GNU Nano con Ctrl+x.

Como segundo paso descargaremos a nuestro sistema las imágenes de los diskettes del programa WPS, en su versión 3.4. Para ello introducimos en nuestra terminal los siguientes Comandos de Organización:

cd ~/.simh/panelsim/pdp8i/ ;
chmod -x *.pdf ;
wget https://raymii.org/s/inc/downloads/pdp/wps78v3.4.rx01 ;

wget  https://www.pdp8online.com/ftp/images/wps/wps-8-doc.rx01
chmod +x wps78v3.4.rx01 wps-8-doc.rx01

En tercer lugar crearemos la configuración para el emulador de WPS-8. Ello lo haremos ingresando los siguientes comandos de organización:

cd ~/.simh/panelsim/pdp8i/ ;
nano wps.simh_pdp8

...esto nos creará un archivo en blanco llamado wps.simh_pdp8. Al final del mismo le agrego:

echo on

set cpu 32K
set cpu  noidle
set throttle 1m
set tto 7b
set console telnet=23
attach rx0 wps78v3.4.rx01
attach rx1 wps-doc.rx01
boot rx0
exit

set realcons host=localhost panel=PDP8I
; Para operar la PiDP8 de Oscar Vermeulen en una RPi con el hostname "raspberrypi":
; set realcons host=raspberrypi panel=PiDP8

; Como usamos una PC de escritorio con conexión al localhost: velocidad maxima!
set realcons interval=1 connect

; mostrar realcons

; Esperar 2M ciclos luego de iniciar, 100k entre caracteres.
send after=2000000,delay=100000,"VERSION\rDIR ADVENT.*\rR FRTS\rADVENT.LD\r\e"

boot rk0


...Guardo los cambios con con Ctrl+o y cierro el editor GNU Nano con Ctrl+x. Finalmente le daremos permisos de ejecución con:

chmod +x wps.simh_pdp8

Ejecutar el emulador


Una vez que he realizado los procedimientos anteriores, ya habremos configurado todo lo necesario para poder iniciar la máquina virtual de emulación.

Para ejecutarla, en nuestra terminal ingresamos:

cd ~/.simh/panelsim/ ;
sudo ./wps.sh


El sistema nos solicitará nuestra contraseña de Conductor, y al ingresarla "a ciegas" ejecutará la máquina virtual, y el panel de la PDP-8i, quedando "a la escucha" de una llamada Telnet al puerto 23 de nuestro sistema.

Para arrancar el WPS-8 emulado abrimos una nueva terminal con Ctrl+Alt+T y ejecutaremos el emulador de terminal xterm con la vieja opción de compatibilidad retrógrada para terminal DEC VT52. Esto se logra con el siguiente Comando de Organización:

xterm -tn vt52 -ti vt52 -fs 16

...esto lanzará una nueva terminal de viejo aspecto (pues emula la antigua DEC VT52. En ella ingresamos simplemente:

telnet localhost

...y nos conectaremos a la máquina virtual, finalmente ejecutando el viejo y peludo WPS-8.


Lo primero que veremos será la pantalla inicial del WPS-8, en la cual habremos de configurar la fecha y la hora en formato mm/dd/aa hh/mm, pues la VT78 carecía de RTC (reloj de tiempo real).
Una vez que lo ingresemos, se nos presentará el menú principal del WPS-8. Sin embargo, antes de utilizar el procesador de texto, debemos dar formato al diskette virtual de documentos, instalado ya en la unidad de diskette número 2 de nuestro WPS-8.

Para ello presionamos m seguido de enter (RETURN en la VT78 original) para ver mas opciones de menú.
Una vez llegados a este menú, debemos ingresar al menú de Comandos de Mantenimiento para diskettes ("Maintenance commands for diskettes"). Para ello presionamos mc y Enter.
Una vez dentro del menú de mantenimiento de diskettes, debemos Inicializar un documento de diskettes (lo que formateará el diskette virtual en nuestro emulador de WPS-8). Para ello presionamos d y Enter.

El proceso de formateado virtual inicializará los bloques (cada diskette de datos cuenta con 615 bloques de datos). Luego debemos presionar Enter nuevamente para revisar la estructura del documento. El sistema debería indicar que todo está OK, y luego nos propondrá volver al menú presionando la "tecla DORADA" (GOLD) y Menú.

Esto es importante pues para ir al menú debíamos presionar la "tecla Dorada" del teclado de la terminal VT78, y luego la tecla M:

Naturalmente los teclados actuales carecen de esta "tecla Dorada". Para reemplazarla debemos presionar F1 dos veces. En consecuencia, para volver al menú principal, debemos presionar F1+F1+m.

 Esto nos permite volver al menú principal. Una vez que estemos en este y veamos estas opciones, indicaremos que queremos crear una nueva carta o documento ("create a new letter or document") por medio de la tecla c seguida de enter.

El WPS-8 nos solicitará a continuación que ingresemos el nombre que queremos darle al documento. Puede tener unas 8 letras como máximo. Lo ingresamos y presionamos Enter.
WPS-8 nos permitirá entonces empezar a escribir en el documento. El caracter L y R nos indican los márgenes izquierdo y derecho, y la línea TOP nos indica la parte inicial o superior del documento.

Al comenzar a escribir, el texto se desplazará de manera clásica como lo hacen los procesadores de texto actuales. Naturalmente, no necesitamos presionar Enter al finalizar cada línea, el WPS-8 las reorganizará automáticamente. Es importante saber que la terminal original no tenía las flechas del cursor, pero el sistema emulado permite simularlas para desplazarnos en el texto. Para borrar el texto debemos usar Esc+Backspace en el teclado actual, para simular la tecla rub chr out ("borrar caracter hacia afuera") de la videoterminal VT78. Para guardar un archivo, debíamos usar la "tecla Dorada"+f. Actualmente debemos usar F1+F1+f.

El sistema WPS-8 fue entonces una de las primeras opciones que llevaron al público comercial la opción de la edición computada de textos, antes de que aparecieran las microcomputadoras con paquetes para el sistema operativo CP/M como el clásico WordStar, que replicaron esta experiencia para los usuarios comunes.
Para salir del sistema emulado WPS-8 debemos utilizar el comando específico. Volvemos al menú principal con F1+F1+m, y buscamos la opción Finalizar el uso del sistema / "Finished using the System". La accedemos ingresando f y Enter. El WPS-8 nos mostrará el siguiente mensaje:
Tras esto podremos cerrar la ventana el WPS-8 y las distintas ventanas de las máquinas virtuales del emulador.

El manual oficial del sistema de procesamiento de texto DEC WPS-8 se encuentra aquí.