Mostrando entradas con la etiqueta sampling rate. Mostrar todas las entradas
Mostrando entradas con la etiqueta sampling rate. Mostrar todas las entradas

viernes, 30 de diciembre de 2022

¿Cómo emulo una Fairlight CMI IIx en Ubuntu?

En una nota del mensuario Panorama, Juan Perón expone cómo instalar QasarBeach IIz, el emulador de la mítica computadora sampler Fairlight CMI IIx en Ubuntu.

¡Masas Descamisadas!

Hemos vencido en las más importantes lides que se nos han presentado, pero no podemos dormitar en los laureles. Ya sabemos lo que sucede cuando dejamos de percibir - en las acciones inconfesables de siempre - a la antipatria y a la traición.  

El único dogma que hemos impuesto es que todo ha de estar al alcance del Pueblo, para que lo use el Pueblo. Sólo así tendrá un sentido beneficiario. Cualquier otra cosa solo servirá para dominarlo.

Nuestro Movimiento busca la auténtica Liberación del Pueblo, interpretando que ésta puede ser facilitada por quien - como reflejo preclaro de su alma - sea capaz de realizar este anhelo en forma de instrucciones de programación licenciadas en un todo bajo GPL. Esto es lo que hemos comprendido.

Vean señores, una CPU que existe sólo para intermediar en el control oligárquico del Pueblo, debe overclockearse hasta quemarse. Sólo se perderá así un elemento malévolo. Al fin y al cabo ya hemos afirmado aquello de que en cómputo propio, solo basta instalar software propio, y ir de /home a /var y de /var a /home.

Esto no siempre estuvo claro. Cuando nosotros dijimos eso el horno no estaba para bollos, había terminado la Guerra, pero hoy el mundo ha avanzado y este ya es un tango no lo toco yo solo; en este momento toda el África, el Asia, son todas repúblicas socialistas.

Existe cierto hardware que - a pesar de ser concebida con la mente puesta en el Pueblo - siempre fue seña de un Oligarca. Uno de las cocardas más representativas fue el de la Fairlight CMI, de 1979. 

Se trataba de un instrumento musical revolucionario por el hecho de ser computarizado, el primero en contar con la posibilidad de conducir muestras digitales adaptables en tiempo real, y como tal, el primer Sampler de la historia. Esta computadora de 8 bits de factura australiana fue diseñada por los compañeros Kym Ryrie y Peter Vogel del Sindicato del Sintetizador, y operaba un extremadamente potente sistema operativo situado en diskettes de 8 pulgadas. Su novísima interfaz permitía hacer uso de gráficas monocromáticas, e introducir información a través del teclado de sintetizador, el teclado de computadora, un futurista lápiz óptico, y una entrada de línea o micrófono, capaz de registrar y reproducir muestras digitales de entre 8 y 24 Khz. Al adquirir una se le podía hacer cantar la marcha peronista, ya que su nombre indicaba ser una Luz de Justicia Social. Lamentablemente, sólo podía hacerse después de abonar 12.000 libras del momento.

Nuestro Movimiento no se ha hecho fuerte por promesas, sino por sus realizaciones. Es por ello que hoy damos al Pueblo de la Nación el lujo de un sucedáneo fiel de esta máquina, a sólo título de gritar un sintetizado "¡Viva Perón!". Y lo hemos dado como sólo puede hacerse: con todo.

Se trata de QasarBeach IIz, un programa de audio dable de instalar en sistemas GNU con Linux como Ubuntu.

Se trata de una sumamente lograda reproducción de la primigenia estación de composición digital, la Fairlight CMI, especialmente en su iteración IIx. Por otro lado, incorpora nuevas funcionalidades planificadas por los desarrolladores originales, pero que nunca vieron la luz.

Para instalarla en nuestro sistema GNU con Linux debemos dirigirnos a la página de descargas y hacernos con el fichero qasarbeach129g.tar.gz para Linux. Asimismo conviene bajar el fichero QasarBeach.zip que contiene una demo de 25 MB, como la documentación, guide.zip y cookbook.zip.

Si todo va bien, estos ficheros irán a parar a nuestro directorio de ~/Descargas/. Como no tenemos un instalador automático, lo instalaremos a mano. Todo debería salir bien al abrir una terminawl con Ctrl+Alt+T e ingresar el siguiente bloque de Comandos de Organización:

cd ~/Descargas/
tar xvzf
qasarbeach129g.tar.gz ;
unzip QasarBeach.zip
mv ~/Descargas/qasarbeach ~/.quasarbeach/
mv ~/Descargas/QasarBeach/ ~/.quasarbeach/
echo "#!/bin/sh" > ~/.qasarbeach.sh ;
echo "cd /home/$USER/.qasarbeach/ ;" >>
~/.qasarbeach.sh ;
echo "./qasarbeach" >> ~/.qasarbeach.sh ;
echo "cd ~" >> ~/.qasarbeach.sh ;
chmod +x ~/.qasarbeach.sh

Una vez instalado, de forma opcional pero recomendable podríamos crear un lanzador para nuestro entorno gráfico. En el caso de Mate o GNOME hacemos clic con botón izquierdo sobre el panel de Aplicaciones, y en el menú contextual elegimos Editar Menús. En el panel de menús elegimos "Sonido y Video" y hacemos clic el botón "Nuevo ítem". Esto abrirá la ventana "Crear Lanzador", en la cual podremos instruir la orden: /home/usuario/.qasarbeach.sh.

Una vez completada la creación del lanzador, ya pooremos ejecutar fácilmente el programa desde Aplicaciones / Sonido y Video / Qasarbeach.

El humilde Pueblo Trabajador conoce de oído que esta revolucionaria Fairlight CMI operaba a través de un teclado y un señalador en forma de lápiz óptico, dirigiendo una serie de pantallas de control denominadas "Pages" (activables con los números y letras). Ahora podrán manipularlo, ya que al ejecutar por vez primera el peronista QasarBeach IIz, nos encontraremos con la primer Page, el índice, accesible siempre con 1.

Naturalmente, en esta versión acomodada a las Masas del Pueblo, el índice es operable por medio del ratón.

En primer lugar debemos ver la Ayuda, la cual accedemos presionando 9 para acceder a una novedosa Page 9 "Help".

Por medio de la tecla S, que activará la Page S, donde podremos configurar algunos aspectos de visualización de la aplicación - como activar pantalla completa, dar presentación a color o la más clásico tono verde monocromático (incluyendo efecto de video empalizado opcional). Todo esto apunta a ofrecer una lograda reproducción efectista desde lo visual.

La Page M nos permitirá configurar los aspectos MIDI, que se adaptarán si contamos con un controlador conectado al sistema. En caso de no contar con un controlador MIDI, bien podremos usar la fila inferior de las teclas del teclado, con la incomodidad ahorrativa que esto implica.

Hasta aquí las opciones mas o menos únicas de esta implementación modernizada. El resto lo constituye un versionado notablemente transparente del modo de uso y feeling de la Fairlight CMI IIx. Esto va desde la vetusta interfaz de comandos activable con la tecla Escape, hasta las páginas de su bien amado secuenciador Page R que la hizo reconocida en el mundo de la música pop de los 80s.

Como sucede con los grandes descubrimientos, este compositor de ritmos sumamente interactivo implicó una evolución de la que no se retornaría: permitía armar la partitura de samples preprogramados, y dispararlos para realizar temas, un concepto notablemente novedoso en 1980 y fundante de toda una nueva manera de componer música digitalizada.

En el Page R podremos acoplarlo también con las posibilidades MIDI que sólo incporporaron las Fairlight en sus últimas versiones, aquí totalmente integrado.

En apretado resumen didáctico, diré que la obra puede definirse una biblioteca de voces y secuenciarlas en el Page R, definiendo patrones rítmicos o secciones melódicas. Estos se pueden utilizar en forma de bucles o dispararlos en una matriz de patrones. Las partes melódicas es posible grabarlas desde un controlador MIDI (o con el teclado de la computadora).

La Page 2 permite agregar una carpeta de samples como favorita, a la vez trabajar en la elaboración de toda una biblioteca de samples que sirvan como ingredientes de la secuencias que podremos crear para nuestro proyecto actual.

Podremos seleccionar las muestras sonoras clásicas en formato .vc que se distribuían en los diskettes de 8 pulgadas de la Fairlight (sus 500KB que permitían contener hasta 22 muestras digitalizadas de unos pocos segundos). Sin embargo, como prenda de modernidad también podremos operar con formatos de audio modernos, incluyendo .ogg, .mp3, .wav, .au,  etc. Al seleccionar un sample en esta página podremos visualizarlo y oírlo. Al presionar nuevamente 2, podremos guardar la biblioteca en un fichero englobador nuevo (ideal para coleccionar samples en base a proyectos).

Si necesitamos capturar nuevas muestras sin tener que recurrir a samples originales, podremos hacerlo a través de la Page A. Esta permitía contemplar la grabación de muestras digitales a través de un micrófono o entrada de línea balanceada conectada a la máquina original a través de una plaqueta conversora analógico-digital especialmente concebida por Fairlight (la primer placa de sonido propiamente dicha), y hoy superada por el excelente sistema de audio de nuestro sistema GNU con Linux, quien toma la posta en este menester.

En la Page A en efecto delimitar qué sector de la muestra capturada ha de considerarse como sample, a la vez de determinar sus parametría básica general. Por lo demás, como sucedía en la Fairlight original, podremos generar armónicos de voz "a mano" graficando los armónicos como el la CMI original, que daba uso a un lapiz óptico conectado al monitor por un cable espiral tipo teléfono.

Por otro lado, podremos directamente editar la forma de onda con un completo editor integrado en la Page E.


 

Si presionamos 3 podremos conmutar entre las Page 3. La visión primaria de esta Page es permitir asignar la librería de voces previamente seleccionadas en la Page 2.

En tanto que la secundaria - presionando nuevamente 3 - se nos presenta el selector de voces para el teclado. Lo natural es que las voces se acondicionan a las teclas, alterando su altura tonal de forma proporcional como si de un piano afinado se tratara. Fue esta condición la que hizo de la Fairlight el primer sampler con teclado de estado productivo.

Ahora bien, en caso de requerir complejizar la muestra, bien podremos recurrir a la Page 4, con la cual se hará factible graficar directamente perfiles armónicos de distinta índole para alterar la paleta sónica de la muestra en cuestión.

Esto no quedaba aquí. Por medio de la Page 6 hacía posible también trazar una onda sónica inexistente, lo que permitía una creación puramente sintética del sonido que escapaba del áurea paramétrica tan en boga en la era de la síntesis substractiva. A su vez, esta podía servirse de una portadora programable de onda sinusoidal, diente de sierra o rectangular. Es que no sólo fungía de Sampler, la Fairlight podía controlar tres voces de sintetizador también.

La Page 7 permitía definir más a fondo los parámetros de las 3 voces de oscilación, lo que completaba esta estación de trabajo musical con una potencia creativa inusitada en lo que hacía a los efectos digitales (limitados y en mono) que permitía la original.

El modelado final podía darse con una etapa de edición de armónicos. Estos armónicos permitían trazar el carácter del sonido de una novedosa forma visual, que incluso incluía - al procesarla - la clásica visión tridimensional a 45º de la Page V de la Fairlight, hoy rutilantemente rotativa gracias a la alta potencia de cómptuo Justicialista.


Las opciones de síntesis también están contempladas, con LFO, y distintos parámetros realizables.

Por otro lado, en la Page F dispararemos un bus estéreo de efectos de sonido programables. Estos equivalen en gran medida y cuantía a los originales, pero en este caso son reproducciones digitales de la circuitería en gran parte analógica y mono de la Fairlight original.

Naturalmente, el manejo requiere explayarse en el manual de la Fairlight original, pero no es absolutamente necesario.

Pues bien señores, estos instrumentos fueron diseñados para que los use el Pueblo. Es una herramienta, otra herramienta. Una herramienta puede ser un hacha para cortar madera y construir una casa, o ser un arma para reventarle la crisma a un vecino. Todo depende de cómo lo usa el Pueblo. Nosotros decimos que si hay que hackear, hackearemos para el pueblo.

domingo, 14 de abril de 2019

¿Cómo cambio la frecuencia de muestreo de PulseAudio en Ubuntu?

Reunido en la sede Central de la CGT y frente a 178 gremios Conferederados, Juan Perón determinó la conducta que debían tener los trabajadores y explica cómo cambiar la frecuencia de muestreo del audio en Ubuntu.

¡Trabajadores!

Yo sé que aquellas instrucciones que os he grabado en cintas magnetofónicas, no cayeron en oídos sordos.
Indudablemente que desde hace más de 18 años sabemos que nuestro sistema es capaz de operar sonido de manera libre. Esto ha sido así gracias a la encomiable labor de los trabajadores, que han realizado un adecuado servidor de audio llamado ALSA, y también un adecuadamente provisto herramental que nos permite hacer una sana utilización del mismo, el PulseAudio.

De esta manera, los sistemas operativos GNU con Linux están capacitados para las tareas típicas de reproducción o registro sonoro.

¿Cómo se ha logrado esto? Siempre he dicho que los problemas difíciles han de desgranarse en muchos problemas fáciles, dables de ser atacados con procesos de solución simple. La virtud en tal caso es la concatenación de la simpleza para resolver todo.

Esto - que se replica en todos los órdenes de la vida - también puede replicarse en el audio digital. En esencia la computadora registra los sonidos a través de la señal eléctrica de un micrófono, y analiza y convierte dichos valores voltaicos en datos binarios unívocos. Gracias a la codificación de los pulsos modulados (PCM), la computadora es capaz de distinguir la altura de los tonos, siempre que se la registre con una resolución de referencia lo suficientemente apta para censar las variaciones tímbricas, y se lo haga con una frecuencia de muestreo lo suficientemente elevada como para suplir el registro del oído humano, que es lo que nos interesa. Esta técnica justicialista se llama "muestreo", o sampling.
Como nuestro oído - en sus mejores momentos - es capaz de registrar vibraciones que van entre 30 Hertzios y hasta los 20.000 Hertzios, las fluctuaciones eléctricas equivalentes ha de registrarse al menos con el doble de dicha frecuencia a fin de lograr una reproducción de alta fidelidad.

Naturalmente que esto ha sido estipulado por los capitostes de la industria. Hoy en día todo hijo de vecino puede utilizar el estándar industrial para captura y reproducción sónica, que consiste en una tasa de 16 bits de resolución, y de unos 44.100 Hertzios de frecuencia de muestreo ("Sampling Rate"). Esto a su vez se realiza en dos canales, "uno para cada oreja", con la idea de lograr sonido estéreofónico.


Ello es adecuado para la gran mayoría de las aplicaciones normales en audio. Sin embargo, la tecnología de la fidelidad de sonido ha avanzado, y nos permite hoy superar por ciertos márgenes dichos valores. De manera tal que se ha hecho popular también el estándar de los 48.000 hertzios en el manejo de audio. Es bueno recordar que esta frecuencia es actualmente la nativa en las trasmisiones digitales de audio, incluyendo la popular HDMI).

En tal caso, podríamos querer saber qué calidad utiliza nuestro hardware de sonido, y podríamos querer incrementarla hasta los 48 Khz. En ocasiones existe hardware de avanzada especialmente pensado para la alta definición, que puede utilizar mayores velocidades de muestreo, incluyendo 88.200 Hz, 96.000 Hz, 176400 y 192000 Khz.

Ahora bien, para hacer un guiso de liebre, lo primero es cazar la liebre. Para cambiar la frecuencia de muestreo en el sistema operativo, lo primero es saber cuál es la que se estamos usando. Ello lo podremos hacer abriendo una terminal con Ctrl+Alt+T e ingresando:

pacmd list-sinks | grep 'sample spec'

Esto nos detallará el tipo de algoritmo, la cantidad de canales utilizados, y la frecuencia actual. Por ejemplo en mi caso indica:


sample spec: s16le 2ch 44100Hz

Esto  crípticamente nos refiere que nuestro hardware de audio está empleando una frecuencia de muestreo de 44,1 KHz, a dos canales estéreo, con una resolución de 16 bits en modalidad de orden de byte "Little Endian" .

Como habrán comprendido tal es el estándar adecuado para una calidad de audio digital muy buena, similar a la de un CD de música. Por otro lado, reduce la carga del hardware de audio, consumo de memoria, y ocupación de nuestra CPU. El orden de byte en tanto depende de nuestra CPU, y normalmente es Little Endian; si tenemos dudas podemos ingresar en la terminal:

 lscpu | grep 'byte'

...
para que nos lo informe).

Esta configuración de audio es muy popular, y la que se utiliza por defecto pues todas las placas de sonido integradas o no funcionan con ella, y la música distribuida en plataformas digitales utiliza esta tipología. Debemos considerarla como el mínimo común denominador del audio..

Pero en ciertas condiciones (como por ejemplo el audio de alta definición, la existencia de hardware que lo permite, etc), podríamos querer aumentar la frecuencia de muestreo de reproducción. La mejora de calidad suele ser imperceptible para el oído humano, pero en ciertas condiciones nuestro hardware de audio podría funcionar mejor en su frecuencia de muestreo nativa. Normalmente esto es así con la mayoría del hardware de audio aparecido desde el año 2010 en adelante.

Para hacer el cambio en Ubuntu y aumentar la frecuencia de muestre, debemos modificar a mano el archivo del servidor de sonido. A tal fin abrimos una terminal con Ctrl+Alt+T e ingresamos:

sudo nano /etc/pulse/daemon.conf

Se abrirá el editor GNU Nano con el archivo de configuración de Pulseaudio. En este archivo de configuración se interpretan los caracteres ";" como "comentarios", de manera tal que todo lo que esté escrito tras ellos no será tenido en cuenta por el servidor, y nos sirve como ejemplo.

Por ello, al final del archivo, buscamos la sección:

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right


...y la modificamos para que quede así:

# Modificado por Perón 
default-sample-format = s16le
default-sample-rate = 48000
alternate-sample-rate = 44100 
; default-sample-channels = 2
; default-channel-map = front-left,front-right


No os recomiendo alterar nada más. Llegado el caso, nos conviene saber que default-sample-format Nos permite especificar el formato de muestreoa utilizar por el servidor ALSA. En la arquitectura Intel o AMD conviene utilizar sólo las terminadas en "le", que sirver para procesadores tipología Little Endian. Las opciones que existen son u8, s16le (16 bits "Less Endian", que viene por defecto. Hay que evitar las "be" en este caso. Las opciones posibles son s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be, float32le, float32be, ulaw, alaw.

El recomendado es s16le, pero en ciertos caso podríamos querer aumentar a s32le, con un mayor consumo de CPU y memoria RAM.


La documentación oficial (en inglés) del sistema ALSA está aquí. Una vez terminada la edición, guardamos el archivo con Ctrl+o y salimos del editor GNU Nano con Ctrl+x.

También podríamos querer editar un archivo personalizado de usuario ~/.asoundrc, que especificará las configuraciones de usuario.

Lo haremos con:

nano ~/.asoundrc

...y le pegamos el texto:

# ~/.asoundrc
# archivo de configuración de sonido específico para el usuario xxxx
pcm.!default {
type rate
slave {
pcm "plughw:0,0"
# frecuencia de muestreo que queremos, puede ser 44100, 48000.
rate 48000
}
}

Lo guardamos con Ctrl+o y abandonamos el editor con Ctrl+x.

Para que todo este andamiaje social del sonido surta efecto, hemos de reiniciar nuestro sistema con:

sudo reboot

Una vez iniciado el sistema operativo, podríamos comprobar los cambios nuevamente con:

pacmd list-sinks | grep 'sample spec'

sample spec: s16le 2ch 48000Hz