Escuchando y trabajando con la música y con el sonido desde GNULinux.
Bueno, tras tantas entregas de estos apuntes, supongo que ya os comenzabais a desesperar pensando que no podríais hacer las mismas cosas que en Windows desde las consolas. En cierto modo podría ser así, pero sólo en cierto modo. No se pueden hacer las cosas, como es lógico, de la misma manera, pero sí se pueden hacer casi todas las que tenemos en Windows.
Bien, el tema quizás resulte algo espeso ya que según he ido escribiéndolo y probando programas no me he dado cuenta de la extensión y me ha quedado posiblemente el capítulo más largo, de momento, de estos apuntes, pero creo que a poco que completéis estas notas podréis utilizar la consola de Linux para algo más que para trastear con las órdenes del sistema operativo. No obstante, tened en cuenta que hablaré de varios programas y que, por ello, no comentaré más que unas cuantas de las opciones que cada uno tiene, las que considero básicas para poder empezar a hacer algo con ellos sin excesivos problemas.
Escuchando audio comprimido; mp3 y ogg:
Para escuchar archivos en formato mp3, la aplicación más extendida, aunque no la única (si por algo se caracteriza GNULinux es por tener infinidad de programas), es mpg123.
Antes de nada deberemos tener en cuenta que, dado que el mp3 no es una tecnología de código abierto ni gratuita, es muy probable que nuestra distribución no lo traiga, por ejemplo mi ubuntu no la trae instalada. Así que, como siempre, desde el usuario root haremos:
Apt-get install mpg123
Para reproducir una canción o archivo en formato mp3 basta con escribir la línea de órdenes «mpg123 NombreArchivo», donde NombreArchivo es la canción que queremos escuchar.
Con este programa también podremos reproducir música siguiendo el patrón de una lista de reproducción o playlist a través de la orden «mpg123 -@ archivo», donde Archivo es la lista de reproducción. Estas listas de reproducción pueden ser generadas a través de varios programas reproductores de mp3, entre ellos el Winamp de Windows y el XMMS del entorno gráfico de Linux.
Si probamos a reproducir una de estas listas no tardaremos en advertir que la consola o terminal queda inutilizada para seguir trabajando. Si ponemos los conocimientos que ya hemos adquirido a lo largo de estos apuntes: ¡Nada más fácil!, ¡Utilizaremos la potencia de la multitarea de GNULinux!. Para hacer esto tenemos dos modos:
mpg123 -@ archivo &
Esto reproducirá la lista de música en segundo plano mientras nosotros podemos seguir trabajando normalmente con el sistema op’erativo en cualquier otra tarea que queramos. Y, en cuanto queramos volver a traer la reproducción al primer plano nada más sencillo que la utilización del comando fg, utilizando como modificador el número de tarea que tenga al haberlo enviado a segundo plano, posiblemente 1.
El otro modo de enviar el proceso a segundo plano es mientras el programa está en ejecución. Por ejemplo :
mpg123 -@ archivo
Con la línea de órdenes anterior ejecutamos de nuevo el programa mpg123 reproduciendo la playlist Archivo.
Esto nos deja el programa mpg123 en primer plano. Ahora si presionamos Control+z nos sacará por la pantalla algo similar a esto:
[1]+ Stopped mpg123 Archivo
Lo que sucede es que el programa mpg123 quedará en un estado de pausa regresando al prompt. Para seguir escuchando la lista de reproducción, pero esta vez en segundo plano, tecleamos en el terminal lo siguiente :
bg
[1]+ mpg123 -@ archivo
Como te darás cuenta el proceso en pausa ( o sea mpg123 ) continuará su funcionamiento, pero en segundo plano, dejándonos con el prompt libre.
Todo esto está muy bien, seguro que piensas ahora; pero: ¡en mi reproductor mp3 al uso puedo avanzar, retroceder, pausar!… ¿Es posible hacerlo aquí? La respuesta es sí, colocando en la línea de órdenes el modificador -C (¡ojo!, esa C va en mayúscula) tal como sigue el ejemplo:
mpg123 -C archivo
Por omisión puedes usar las siguientes teclas mientras se está reproduciendo: p = pausar; s = detener (en realidad la pausa hace que la música se detenga en un punto predeterminado por nosotros al pulsarla pero el sonido sigue repitiéndose de un modo parecido a cuando un cd está sucio, mientras que el parado hace una pausa efectiva y cuando se vuelve a pulsar, la reproducción comienza desde el punto en que pausamos; f = saltar a la siguiente canción (si es la última o si solamente hay una se detendrá el programa y nos retornará a la consola); b = retrocede canción (si solamente hay una se pone al principio y la reproducción comienza nuevamente); , (coma) = rebobinar; . (punto) = avanzar; q = abandonar el programa (detiene la reproducción y nos retorna al prompt).
ogg123:
Otro tipo de ficheros de audio comprimido que cada día es más utilizado es el OGG Vorbis. Posiblemente tiene una mejor ratio de compresión que el mp3 y mejor calidad de sonido. No obstante, la diferencia más grande es que los algoritmos de compresión de audio de este formato son libres de uso, distribución y modificación. Conocido es lo restrictivo de la tecnología mp3 y que la mayor parte de las veces en las que la usamos, estamos haciéndolo ilegalmente. Se supone que poco a poco se irá utilizando cada vez más y, posiblemente cuando aparezcan pen drives capaces de decodificarlo, su uso se hará más amplio.
Para instalarlo, si tu distribución no lo trae, deberás instalar las herramientas de Vorbis que, además de un reproductor, traen también codificadores y conversores de audio así como herramientas de partición de archivos y de edición de las tablas de propiedades, pero de ello hablaremos más adelante, ahora, simplemente, instalaremos el paquete desde el usuario root de la siguiente manera:
apt-get install vorbis-tools
Si tenemos archivos de audio comprimidos OGG, para reproducirlos lo haremos con la utilidad ogg123. Este pequeño programa nos permitirá reproducir archivos o listas de reproducción, cambiar de dispositivo de ejecución, pero es mucho más limitado que el mpg123.
ogg123 nombrearchivo.ogg reproducirá la canción llamada NombreArchivo.ogg
ogg123 /música/* reproducirá todos los archivos .ogg que existan en el directorio /música Si queremos ir pasando de canción en canción iremos pulsando control`c sucesivamente.
Mp3blaster
Este es un reproductor de música que no tiene que envidiar nada, funcionalmente hablando, a otros del tipo de winamp o xmms. Con el vamos a poder escuchar nuestras canciones favoritas así como crear listas y convertir los mp3 en archivos wav de una manera muy sencilla. Eso sí, tiene ciertas peculiaridades que pueden llegar a ser molestas al usarlo con un lector de pantallas como yasr; al estar basado en las librerías de control de pantalla ncurses, al pasar las flechas por las listas nos repetirá tal cual ocurría con otros menús. Asimismo tiene una peculiaridad molesta y es que continuamente nos lee los segundos que va contando al reproducir, con lo que si no tenemos un sintetizador externo para bajarle el volumen, podría dificultarnos el disfrute de la música.
Como siempre, para instalarlo, desde el súper usuario root haremos:
apt-get install mp3blaster
Para ejecutarlo, nada más fácil que escribir en el prompt la orden mp3blaster.
Se imprimirá entonces en la pantalla una interface de texto bastante amigable e intuitiva. En la parte izquierda se verá el listado de las canciones (la primera vez estará vacío), en la parte superior se podrá leer una breve ayuda de teclas rápidas que el lector de pantallas leerá cada vez que cambiemos entre el modo de selección de canciones y el modo normal. Tiene muchas capacidades y en estas notas me limitaré a las que considero más útiles.
Con F1 añadiremos ficheros a la lista Con F3 cargaremos listas de reproducción que tengamos y con F4 las crearemos.
Bien, vamos a cargar archivos en el programa pulsando F1. Como posiblemente no tengamos ninguna canción en el directorio, a no ser que le hubiésemos dado uno como parámetro al arrancarlo, tendremos que fijar uno donde tengamos canciones. Esto lo haremos pulsando F4. Nos aparecerá un diálogo con un área de edición para escribir la vía donde tengamos los mp3 y dos opciones para elegir con flechas arriba o abajo: replace para poner una vía nueva o insert para añadir a la que tengamos por omisión. En este caso dejaremos la primera y escribiremos toda la ruta, por ejemplo: /home/army/música y pulsaremos intro. Esto hará que aparezca la lista de canciones a la izquierda. Si queremos seleccionarlas todas pulsaremos F3, de lo contrario, navegaremos por la lista con las flechas e iremos marcando los que queramos con la tecla espaciadora. Ahora, si queremos que esta selección sea una playlist pulsaremos F4 y la siguiente vez que activemos el programa simplemente deberemos cargarla con F3. También podremos manejar los modos repetición y aleatorio con las teclas F6 y F7 respectivamente.
Cuando ya tengamos la lista hecha, ya sea para crear una playlist o para reproducirla en el momento o, por supuesto, también si se trata de una playlist hecha con antelación, el manejo de la reproducción es realmente sencillo:
Para comenzar la reproducción pulsaremos el cinco, si bloqueamos el numpad también servirá. Para pausar volveremos a pulsar el 5. El 2 hará la función de stop y provocará que el sistema vaya a la primera canción la siguiente vez que se arranque la reproducción.
El 6 irá a la siguiente canción y el 4 pasará a la anterior. Igualmente el 3 y el 1 sirven para avanzar y rebobinar rápido respectivamente.
Esto es todo, el funcionamiento resulta sencillo y eficaz, aunque posiblemente serán más rápidas otras aplicaciones del tipo de mpg123. Así que, finalmente, para abandonar el programa y regresar a la consola pulsaremos la letra q.
Por cierto, me olvidaba de comentaros que este programa también es capaz de reproducir archivos en formato OGG vorvis y onda wave. Sospecho que también leerá algunos más pero de momento no lo he probado.
Escuchando CDs:
Cómo no, desde la consola también podremos escuchar todos nuestros CDs con aplicaciones múltiples, intuitivas y fáciles de manejar. Una de éstas se llama cdcd y se puede controlar toda la reproducción con comandos relativamente obvios.
Para instalarla haremos lo de siempre, es decir, desde el root:
apt-get install cdcd
El programa se invocará escribiendo cdcd si queremos el modo interactivo o lanzando una línea de órdenes compuesta por cdcd -opciones órdenes. Las órdenes son prácticamente las mismas tanto en línea como en modo interactivo, y las opciones no son estrictamente necesarias.
¡Muy importante! ten en cuenta que para reproducir un cd NUNCA has de montar la unidad, principalmente porque lo más probable es que no puedas y, caso de haberte dejado montar, el reproductor no funcionará. Esta norma es válida para toda reproducción de audioCD, ya sea en consola o en modo gráfico. No ocurrirá lo mismo si fuesen archivos de audio comprimido tipo MP3 u OGG.
Cuando invoques a cdcd por primera vez preguntará si el dispositivo es /dev/cdrom, el cual suele ser así. Si fuera otro el caso deberás decírselo al programa, si no, pulsa intro. Luego te preguntará si tienes conexión a la Web para conectarse a las bases de datos de canciones. Haz lo que veas, nada es obligatorio aquí. Finalmente quedarás en el modo interactivo con el programa en espera de tus órdenes.
Escribe eject para expulsar la bandeja del cd, coloca un disco y pulsa el botón de recogida o escribe la orden close. Con las órdenes open también detendrás la reproducción y abrirás la bandeja del CD.
Con la orden help imprimirás en pantalla un listado de todas las que soporta el programa y, tecleando help NombreDeOrden imprimirás una breve explicación de la utilidad de dicho comando.
Si escribimos play haremos que el reproductor nos toque un cd desde la primera canción hasta el final o hasta que escribamos cualquier otro tipo de orden. Si tras el comando play separado por un espacio ponemos el número de una pista a escuchar, el cdcd irá directamente a ella y nos la reproducirá continuando con el resto del disco a partir de ahí.
Con pause haremos una pausa y el programa quedará en espera de una nueva orden. Si escribimos resume, el reproductor seguirá tocando la canción desde el lugar donde la habíamos pausado anteriormente. Con toggle conmutaremos entre estos dos estados, es decir, pausa y reproducción. Y con stop detendremos la reproducción.
Con la orden next avanzaremos a la siguiente canción y con el comando prev retrocederemos a la canción anterior. Igualmente con ff avanzaremos por la canción en pequeños tramos y con rew retrocederemos también por pequeños tramos en la canción donde estemos en ese momento.
Escribiendo la orden rndplay haremos que el cdcd reproduzca aleatoriamente canciones en el cd actualmente en ejecución.
Finalmente las órdenes quit o exit salen del programa este respecto tened en cuenta que, al contrario de lo que se pudiera pensar, si salimos con quit o con exit sin haber parado la reproducción del cd con stop, seguiremos escuchando la música, sólo que tendremos el control sobre la consola. Para retornarlo al programa simplemente hemos de invocarlo de nuevo.
Existen varias órdenes más, pero orientadas a recibir información de lo que está pasando en el programa y siempre podréis mirarlas con la ayuda pertinente.
Reproduciendo discos de audio con cdtool:
cdtool es un programa en modo texto para controlar y reproducir CDS de audio bajo el sistema de consolas de GNULinux. Tiene una sintaxis muy sencilla y es muy controlable desde el modo texto siendo casi transparente de cara al usuario.
Para instalarlo, si no lo estuviera ya, se hace como siempre, desde el root:
Apt-get install cdtool
Sus órdenes principales se dan escribiéndolas en el prompt y son las siguientes:
Cdplay o cdplay Start comienzan la reproducción del CD desde el inicio.
Cdplay stop o cdstop detienen la reproducción.
Cdplay + o cdplay – (signos más y guión)avanzan o retroceden pistas en el cd.
Cdplay resume vuelve a reproducir la pista actual.
Cdplay pause o Cdpause pausará la pista hasta que se vuelva a escribir la orden cdplay.
Cdplay x comienza a reproducir de nuevo desde la primera pista del disco.
Cdplay dir o Cdir muestra información disponible del cd en la pantalla.
Cdplay ejec. O cdeject expulsan la bandeja del cd.
Cdplay close o cdclose recoge la bandeja del cd.
Existen algunas otras órdenes interesantes que podéis, como siempre, estudiar mediante las manpages escribiendo man cdtool o man cdplay o leer la ayuda breve ejecutando cdplay con el modificador -h.
Reproducir CDS con cdp y workbone:
cdp es un programa interactivo en modo texto para reproducir CDS de audio bajo Linux. Se basa en WorkBone, que a su vez se basa en los módulos «hardware»,
«database.c» y «struct.c» del avanzado reproductor de CDS para X11 conocido como WorkMan. cdp muestra las bases de datos de CDS generadas por Workman. Permite también editar esta información. cdp espera encontrar el dispositivo /dev/cdrom. Si no tienes este dispositivo, cambia a /dev y haz un enlace simbólico entre tu dispositivo y ‘cdrom’. Por ejemplo, si tu dispositivo lector de CDS se llama ‘mcd0’, entonces haz lo siguiente:
cd /dev
ln -sf mcd0 cdrom
Otra alternativa sería editar el archivo ‘hardware’ para que figure el nombre de tu dispositivo lector de CDS y recompilar el programa. cdp usa el teclado
numérico como panel de control para permitirte cambiar de pista, reproducir, hacer pausa, parar y continuar reproduciendo CDS de audio.
No sé por qué pero yo he sido incapaz de localizar este programa y lo que os he escrito arriba es a base de lecturas en la Web, sin embargo sí conseguí encontrar el programa del que deriva que se llama workbone que funciona exactamente igual, pero que es un poco menos completo. Un problema por el cual no lo aconsejo es que, mientras reproduce la música con el entorno visible está todo el rato refrescando el sintetizador y haciéndolo hablar, ya que mientras se está ejecutando, el programa muestra el número de pista en reproducción y el tiempo total de duración del CD y de la pista actual reproducidos hasta ese momento. En mi caso tiene arreglo porque estoy utilizando como síntesis de voz para yasr un ciber232 p, pero los que vayáis a manejar esto con un sintetizador software podréis tener problemas.
Para instalarlo, desde el usuario root haremos el consabido apt-get install workbone
Ahora os pongo las teclas que comandan el programa, para usarlo tenéis que pulsar el blocnum para hacer que el teclado de la calculadora escriba números en lugar de ordenar acciones del teclado extendido. Seguidamente escribimos workbone y el reproductor de cd se activa en modo stop.
la tecla ‘9’ del teclado numérico es «reproducir»
la tecla ‘8’ del teclado numérico es «pausa/continuar»
la tecla ‘7’ del teclado numérico es «parar»
la tecla ‘6’ del teclado numérico es «pista siguiente»
la tecla ‘5’ del teclado numérico es «volver a reproducir»
la tecla ‘4’ del teclado numérico es «pista anterior»
la tecla ‘3’ del teclado numérico es «avanzar 15 segundos»
la tecla ‘2’ del teclado numérico es «parar en seco» (la música para)
la tecla ‘1’ del teclado numérico es «retroceder 15 segundos»
la tecla ‘0’ del teclado numérico es «salida suave» (la música continúa)
la tecla ‘.’ del teclado numérico es «ayuda»
Mezcladores en la consola.
Como en cualquier otro sistema, en la consola tenemos varios mezcladores que podemos utilizar para controlar el volumen de nuestra tarjeta de sonido. Podríamos hacerlo con el propio mezclador que traen las librerías de sonido alsa, pero bajo mi punto de vista es sensiblemente más sencillo el aumix, por lo que he optado por mostrároslo. Eso sí, es probable que vuestra distribución no lo traiga instalado, al menos mi ubuntu no lo traía, así que, si se diera ese caso ya sabéis, desde el root:
Apt-get install aumix
Este mezclador trae dos modalidades, una con una especie de interface que bajo mi punto de vista no resulta demasiado manejable o, al menos yo no me desenvuelvo bien con ella, y otra con línea de órdenes que es más llevadera.
La dinámica general de manejo es: aumix -opción +valor o -valor, donde valor es una cantidad de incremento o decremento. Los márgenes van desde el 0 que significa sin volumen hasta el 100 que significa volumen a tope (tened en cuenta que algunos de los controles pueden avanzar hasta el valor 255). Pongamos por ejemplo que el valor del volumen está fijado por omisión en 50, si ponemos un incremento +10 quedará fijado en 60; si seguidamente ponemos un decremento -5 quedaría fijado a 55; si ahora ponemos un incremento +100 pondríamos el valor a tope. Imaginaros que estáis moviendo una barra de desplazamiento en vuestro mezclador habitual, pero en lugar de mover el indicativo tendréis que escribir su valor a mano.
Aumix -v +100 subiría el volumen general del sistema a tope.
Con la opción -h podréis imprimir por pantalla una ayuda breve sobre el mezclador y con man aumix leeréis el manual en línea; no obstante, os pondré unas cuantas opciones aquí:
V = volumen general.
W = volumen de onda (posiblemente afecte a los sintetizadores software como festival).
S = volumen del sintetizador midi (no confundir con el sintetizador de voz software)
C = volumen del cd.
M = volumen del micrófono.
Como ya os dije tiene bastantes más opciones ya que es un mezclador muy completo, pero estas posiblemente sean las principales que nos puedan interesar en un primer momento.
Finalmente para terminar con este breve repaso del aumix os comentaré un comando muy útil: si utilizamos la opción -q sin ningún otro parámetro, el mezclador verificará todos los parámetros del audio y nos imprimirá su estado por pantalla mostrándonos la situación de cada uno de los canales y su valor actual.
Rippear CDs: cdparanoia
Con este palabro tan raro nos vamos a referir a la acción de extraer datos desde un CD o un DVD. Generalmente se refiere a tomar las pistas de audio o o vídeos de estos soportes. En este caso nos vamos a parar exclusivamente en los CDs de música.
Este programa se ha convertido prácticamente en el Standard para extraer audio en forma digital de un CD desde la plataforma GNULinux. Lo más importante de cdparanoia es que cuenta con unas librerías propias para desarrollar programas que tengan que extraer AUDIO de manera digital.
Para instalarla en tu sistema, caso que todavía no lo estuviera, haremos lo de siempre; desde el súper usuario root:
apt-get install cdparanoia
El manejo básico es sencillísimo y no tendrá dificultades para nadie. Con la siguiente línea de órdenes extraeremos del cd la pista número 7:
cdparanoia 7
Como resultado, tendremos un fichero con el nombre cdda.wav conteniendo toda la pista extraída en formato wav. También podríamos indicar en la orden el nombre de la pista que tendrá al ser extraída y su ubicación en el sistema de ficheros:
cdparanoia 7 /home/música/cancion.wav
Cdparanoia, con el modificador -Q, nos imprimirá por pantalla el número de pistas que tiene el CD y la duración de cada una de ellas. Esto podemos utilizarlo para información a la hora del rippeado de CDs cuando no queremos todas sus pistas o también para hacernos una idea de lo que van a ocupar en disco.
Con la opción -B, cdparanoia realiza un rippeo en modo BATCH. es decir, en lugar de extraer todo el cd en un solo archivo; cdda.wav, cosa que ocurre si lanzamos el programa sin ningún modificador, con esta opción se obtendrá un archivo bajo el nombre track0xcdda.wav, por cada uno de los temas que existan en el disco. Es una manera rápida de rippear «TODO» el cd pero obteniendo un archivo individual por cada pista del CD.
Ciertamente disponemos de bastantes más comandos que podremos usar, por lo que si quieres ir más allá siempre queda leer las man pages (man cdparanoia) o con la ayuda en línea del mismo programa que se obtiene con el modificador -h.
Comprimiendo audio:
Visto ya el rippeo, en esta sección dedicada al audio no puede faltarnos también el proceso de codificarlo a los formatos comprimidos mp3 y OGG, lo que los complementará en una gran medida.
lame
Lame es uno de los compresores de audio más conocidos, sobre todo por que tiene una calidad respetable y una buena velocidad de codificación. Se trata de una versión basada en la versión original, pero bajo una licencia GNU. Por supuesto que no puede competir con las versiones comerciales, pero tiene una calidad lo suficientemente buena para las expectativas del público en general.
Puedes descargarlo desde su Web original en http://www.mp3dev.org/mp3/, cosa que no te recomiendo ya que es un desastre. O también directamente desde sourceforge que es más sencillo; simplemente elige un mirror y descarga los fuentes para luego compilarlos en el sistema: http://prdownloads.sourceforge.net/lame/lame-3.97b2.tar.gz?download
Usando lame
El problema de los codificadores de mp3 es la patente tan restrictiva que tiene dicho formato, lo que causa que no se pueda distribuir empaquetado en .deb o .rpm, con lo que el proceso de instalación es más complejo. Debes descargarte el paquete de las direcciones de arriba, copiarlo en un directorio temporal que tengas para tal ocasión y descomprimirlo desde el usuario root del modo siguiente:
tar xvfz lame-3.97b2.tar.gzDonde lame-3.97b2.tar.gz es el nombre del paquete, pero podría ser diferente si estuvieras descargando una versión anterior o superior del programa.
Para Instalarlo dar los siguientes pasos:
1º. ./configure Esto lanza el script de configuración del sistema.
2º. make Esto hace la compilación del programa, tardará unos minutos y puede dar algún warning.
3º. make install Esto hace la instalación del programa en el sistema.
4º. make clean Esto limpia los archivos temporales de la compilación.
5º. Ahora, si lo deseas, puedes eliminar el directorio de los fuentes como sigue: rm -r NombreDirectorio. Recuerda que la opción -r en la orden rm fuerza al sistema a que borre recursivamente cargándose todo lo que haya dentro del directorio, ya sean archivos o directorios, así que sé cauto cuando borres de este modo.
la línea de órdenes para codificar un archivo que previamente hayamos extraído con un ripper como cdparanoia es:
lame -b 128 cancion.wav
la opción -b establece el bitrate; si se omite, 128Kb/s, que es el valor por omisión, será utilizado. Esto nos dará como resultado un archivo con el mismo nombre y la extensión .mp3 agregada al final
Si utilizamos la opción -f especificaremos un modo para que la codificación sea más rápida, pero perderemos cierto grado en la calidad en el resultado final.
Si, por el contrario, preferimos obtener una mayor calidad y sacrificar, en su lugar, un poco la velocidad, mediante la opción -h podremos hacerlo así.
Lame también soporta la posibilidad de tener un BitRate Variable, mediante la opción -v. De este modo el programa tratará de determinar en cada momento cuál es el bitrate mas aconsejable para cada parte de la pista de audio.
Con la opción -V n, dónde n será un numero del 0 al 9 nos permitirá seleccionar el nivel de calidad que deseemos en un Bitrate Variable, donde 0 es el valor que se corresponde con la mayor calidad. Por omisión vendrá ajustado en 4.
Aquí solamente he reflejado las órdenes básicas de este programa, pero lo que se puede hacer con él es muchísimo y tiene una amplia manpage en inglés que podéis revisar para más información. Asimismo puedes acceder a una breve ayuda si escribes la opción -h en la línea que invoca a lame.
notlame
notlame es otro codificador de mp3 basado en lame, es totalmente compatible con el anterior y tiene los mismos comandos, por lo que no necesita de ninguna otra explicación. Parece ser que este codificador es más rápido y tiene más calidad que el mismo lame, pero en realidad yo no le he hecho pruebas de medición, así que me creeré los comentarios que he leído.
Puedes descargarlo en http://users.rsise.anu.edu.au/~conrad/not_lame/ donde lo podrás encontrar empaquetado en diferentes tipos, incluyendo .deb y rpm, así que lo descargas como mejor te convenga y usas el método de instalación pertinente: tar, dpkg o rpm.
bladenc
http://bladeenc.mp3.no
bladeenc se publicita a si mismo como una versión GNU de la imagen ISO del algoritmo de codificación de Fraunhofer. En una época se podían bajar los binarios directamente, pero debido a problemas de patentes, hoy esto no es posible. Sin embargo se encuentran los paquetes para descargar en otros puntos ofrecidos por personas que viven o tienen sus servidores en países donde el no cumplimiento de la patente de mp3 no supone problemas. De todos modos, el programa ya no está en desarrollo y posiblemente no se continuará con él.
Bladeenc está optimizado para bitrates de más de 128Kb/s,es mas se recomienda 160Kb/s para obtener una buena calidad. Por ello resulta un programa lento pero da mucha calidad a los mp3, pero es mucho más limitado, ya que no tiene tantas opciones como lame y notlame; tampoco tiene modificadores para optimizar velocidad, o calidad.
una línea de órdenes para bladeenc es como sigue a continuación:
bladeenc -br 160 cancion.wav cancion.mp3
-br permite seleccionar el bitrate deseado para la codificación de los mp3; asimismo, existen algunas otras opciones, pero que realmente no son demasiado interesantes como podría ser codificar en mono, intercambiar canales, etc..
Crear mp3 rippeando en un solo paso:
En lo que hemos visto hasta el momento, obteníamos en primer lugar el archivo .wav con el cdparanoia, para después pasarlo por el codificador pertinente de mp3. Esto trae como consecuencia que sea necesario disponer de un promedio de unos 50 megas por canción extraída, o mucho más si estamos extrayendo un cd completo, y luego comprimirlo al archivo mp3 que ocupará una media de 3 megas. . Por ello, vamos a aprovechar las capacidades que nos ofrece GNULinux, y utilizaremos el sistema de redirección por tuberías que nos permitirá hacerlo todo de un tirón y con una sola línea de órdenes, enviando la salida Standard del ripper a la entrada Standard del codificador. Un modo de hacerlo sería como sigue:
cdparanoia – -Y -Z|lame – -f cancion.mp3
en cdparanoia el – (guión) especifica que se redirija todo a la salida Standard y el – (guión) en lame indica que los datos (.wav) serán obtenidos de la entrada Standard. Si utilizásemos notlame, las órdenes serían las mismas.
Si estuviésemos utilizando el codificador bladeenc, la línea de órdenes que deberíamos utilizar sería la siguiente:
cdparanoia – -Y -Z|bladeenc STDIN cancionn.mp3
STDIN indica a bladeenc que use la entrada Standard como archivo a codificar. Sin embargo bladeenc enlentece «el rippeo» por que va haciendo el proceso de codificación en pequeños tramos de tiempo.
Vorbis Tools
Como ya vimos con anterioridad, El paquete Vorbis Tools contiene herramientas de línea de comandos para ficheros de sonido OGG. Es útil para codificar, reproducir o editar ficheros usando el CODEC de Ogg. Para su instalación referiros más arriba cuando hablábamos de la reproducción de los archivos en formato .ogg.
El paquete Vorbis Tools contiene las utilidades oggdec, oggenc, ogg123 vcut y vorbiscomment.
oggdec
oggdec es un decodificador simple para convertir ficheros Ogg Vorbis en ficheros de sonido PCM (WAV o RAW). Para convertir un archivo .ogg a .wav, nada tan fácil como lo siguiente:
oggdec cancion.ogg lo que convertirá cancion.ogg en cancion.wav. Tiene algunas opciones más pero raramente las vas a usar. Si necesitas más ayuda ejecuta oggdec con el modificador -h o lee su manual con man oggdec.
oggenc
oggenc es el codificador que convierte ficheros RAW, WAV o AIFF en ficheros Ogg Vorbis. Escribe la orden oggenc NombreArchivo.wav para que cree otro con el mismo nombre pero codificado al formato .ogg.
La opción -b indica al codificador con que bitrate debe comprimir el archivo. No deberías ponerlo muy bajo si quieres que suene bien.
Con la opción -q definiremos la calidad que queremos que tenga el archivo .ogg. Se mide de 0 a 10, así que cuanto mayor sea la calidad más grande será el archivo resultante, con lo que en la mayor parte de los casos interesa una calidad intermedia.
Con la opción -o NombreArchivo.ogg podremos decirle al oggenc que el fichero resultante se llame NombreArchivo.ogg en lugar de tomar el nombre del fichero fuente.
También dispones del modificador -h para pedir ayuda en línea y de su correspondiente página man. Puedes mirar allí el resto de las opciones que soporta el codificador, entre las que podrás encontrar las que manejan las etiquetas tag de meta datos que controlan salidas como el título de la canción que mostrará el reproductor. Dispondrás también de un editor para poder modificarlas.
ogg123
Como ya vimos en estos apuntes, ogg123 es un reproductor de ficheros Ogg Vorbis para la línea de comandos.
ogginfo
ogginfo muestra toda la información almacenada en el fichero de sonido a la hora de haber sido codificado.
vcut
vcut es una herramienta que dividirá un fichero en dos a partir de un punto de corte definido por nosotros.
vorbiscomment
vorbiscomment es un editor para cambiar la información contenida en las etiquetas de meta datos de un fichero de sonido. No lo vamos a comentar en estos apuntes porque no nos parece relevante para nuestro propósito general, pero si quieres más información ya sabes que dispones de la ayuda en línea con el modificador -h en la orden, o leyendo su manpage.
El formato Ogg Vorbis, al igual que mp3, utiliza compresión con pérdida de información, es decir, que de la pista de audio digital original en .wav, .au o .cdr, al hacer la codificación se va a perder, en teoría, toda aquella información redundante e inaudible al oído humano. Cuanto más cuidadosamente se haya realizado el proceso de compresión, tanto mejor será la calidad del fichero comprimido. No obstante, si tratamos de pasar un archivo comprimido a .wav, .au
o .cdr, el resultado nunca será igual al original ya que esa información eliminada en el proceso de compresión nunca será posible recuperarla. Asimismo podrás convertir un archivo mp3 a ogg, pero, al ser mp3 una codificación con pérdida similar al ogg, lo más probable es que el resultado del cambio de uno a otro formato haga que sea todavía peor, por lo que es aconsejable codificar directamente desde formatos que no hayan sido creados con ningún sistema de codificación con pérdida.
Reproduciendo archivos en formato MIDI.
En GNULinux también es posible reproducir archivos en formato MIDI. Para este propósito, entre muchos otros, podremos utilizar una aplicación muy interesante llamada tiMidity. Su principal característica es que permite trabajar con tarjetas de sonido que no posean sintetizadores Midi dado que gestiona el sonido mediante una emulación software, cosa que los drivers de alsa, al menos que yo sepa, todavía no son capaces de hacer; lo cual nos lleva a otra ventaja, que no es más que su muy buena calidad de sonido por utilizar muestras pregrabadas. Esto nos lleva también a su gran inconveniente, es decir, debido al tipo de tareas que lleva a cabo, el microprocesador se recarga bastante de trabajo, pero puede ser utilizado perfectamente en la mayor parte de los ordenadores de la actualidad, al menos yo hago las pruebas en un pentium III a 450 mhz y no tengo problemas.., conozco a gente que lo hizo correr en un 486 y ciertamente allí si tenía ciertas dificultades y el programa se comía notas o tramos de la canción.
Para instalar el timidity haremos lo de siempre, desde el usuario root escribiremos:
apt-get install timidity lo cual nos sugiere también la instalación de pmidi y recomienda la instalación jackd y freepats. Es recomendable instalar, al menos, el freepats para obtener los patches de sonido para el timidity y el pmidi como un reproductor midi más ligero.
¿Cómo funciona el midi por software?
El proceso se lleva a cabo de una manera idéntica al midi por hardware. Un fichero midi solamente contiene las notas musicales que se han de interpretar, todos los eventos que afectan a esas notas y los nombres de los instrumentos que se deben usar y son independientes a cualquier dispositivo o aparato en el que se vayan a reproducir. El dispositivo midi dispone de una lista de samples de sonido real grabado con cada uno de los instrumentos y al pasarle un fichero midi, se interpretará en tiempo real la partitura que va en el fichero. Timidity hace lo mismo, pero para ello necesita un conjunto de samples o patches. En la calidad que tengan estos patches va a residir la calidad del sonido final obtenido. Existen conjuntos de patches gratuitos e incluso libres (en Debian, Ubuntu y derivados está el paquete freepats), que es el que vamos a usar en nuestro caso, también existen conjuntos de patches comerciales de una calidad altísima, pero que no son necesarios para un uso cotidiano.
Pues bien, una vez instalados los paquetes timidity y freepats, solo tienes que hacer lo siguiente:
Timidity NombreArchivo.mid
Esto hará que comencemos a escuchar la composición llamada NombreArchivo.mid con una muy buena calidad de audio.
Reproduciendo con pmidi.
Para utilizar el secuenciador interno de la tarjeta a través de los dispositivos ALSA la cuestión se nos dificulta un poquito dado que es necesario tocar archivos y cambiar la configuración y, aun así, yo no he obtenido buenos resultados, el midi me suena algo distorsionado y da saltos. En las siguientes líneas os comento como se hace, es material que he encontrado por Internet, y luego vosotros, si lo queréis así, hacéis las pruebas, a lo mejor, con un poco de suerte y una tarjeta de sonido mejor que la mía lográis algo. De todos modos, si lo que queréis es simplemente escuchar archivos midi sin complicaros la vida podéis hacerlo tal cual lo que os expliqué hasta aquí e ignorar el resto.
Vamos a revisar ahora cierta configuración y a realizar algunas modificaciones.
Lo primero es cargar ciertos módulos del sonido. Entra en el usuario root si no estuvieras ya. Esto puede hacerse de dos maneras:
1. Edita el archivo /etc/modules con tu editor de texto favorito y añade las siguientes líneas:
snd-seq-device
snd-seq-midi
snd-seq-oss
snd-seq-midi-event
snd-seq
Sé cuidadoso y no toques ningún otro texto que haya en el archivo o correrás el riesgo de desestabilizar el sistema o, incluso, hacerlo inservible.
2. La otra manera de cargar los módulos es más segura ya que evitas tocar lo que no debes, pero se pierde el automatismo del caso anterior. También desde el root se ponen las siguientes órdenes:
modprobe snd-seq-device
modprobe snd-seq-midi
modprobe snd-seq-oss
modprobe snd-seq-midi-event
modprobe snd-seq
Archivos de configuración
En el archivo /etc/timidity/timidity.cfg es donde se declara el set de samples que vas a utilizar en la emulación software del sonido para los midis que reproduzcas, a no ser que instales otros patches diferentes no vas a necesitar tocarlo.
Seguidamente edita El fichero /etc/init.d/timidity. Ahí debes buscar una línea que comienza con lo siguiente: TIM_ALSASEQPARAMS= la cual debes modificar para que quede de este modo:
TIM_ALSASEQPARAMS=»-iA -B2,8 -Os1l -s 44100″
Nota: tened mucho cuidado con respetar las mayúsculas ya que Linux es sensible al caso y, si no se ponen tal cual, la línea no es válida.
Ahora editaremos el fichero /etc/default/timidity en el cual tendremos que hacer un par de modificaciones:
En primer lugar buscaremos una línea comentada idéntica a la siguiente:
#TIM_ALSASEQ=true
y la descomentaremos, si me permitís el palabro, eliminando el # (signo de número o almohadilla), que precede a toda la línea.
En segundo lugar buscamos una línea que comienza por TIM_ALSASEQPARAMS= y hacemos que quede del siguiente modo:
TIM_ALSASEQPARAMS=»-iA -B2,8 -Os1l -s 44100″
Si en vuestro caso tuvierais una CPU limitada o por cualquier cuestión particular quisierais reducir la carga de la tarea podéis probar a modificar la línea anterior de la siguiente manera:
TIM_ALSASEQPARAMS=»-B2,8 -Os -EFreverb=0 -EFresamp=1 -EFchorus=0″
De esta forma se desactivará el efecto Reverb y Chorus y el resampleado de los patches se hace con un algoritmo lineal en vez del gaussiano que utiliza por omisión. Al parecer
esto hace descender en gran medida el uso de CPU al tiempo que apenas se nota un descenso en la calidad del sonido. Digo al parecer, porque en mi caso no lo he probado, esto lo encontré en algún sitio por Internet y, dado que no me apetece ponerme a medir tiempos de proceso y de sobrecarga del microprocesador, opto por creérmelo.
Por último, editando el fichero ~/.bashrc añadiremos la siguiente línea:
export ALSA_OUTPUT_PORTS=»128:0″
También es posible ponerla como línea de órdenes en el prompt del sistema, ya que simplemente es la importación de las variables.
Una vez hecho esto, basta con arrancar el servicio timidity.
/etc/init.d/timidity start
Nos debería sacar por pantalla un texsto similar al siguiente:
Starting TiMidity++ ALSA midi emulation: timidity.
Emulating midi on ports: 128:0 128:1 128:2 128:3
Si nos dice en la salida que el servicio timidity ya está arrancado podremos poner la siguiente orden para rearrancarlo:
/etc/init.d/timidity restart
Para probar que el emulador midi está funcionando podemos utilizar el reproductor pmidi de esta forma:
pmidi -p 128:0 fichero.mid
Si suena es que está funcionando correctamente. De todos modos, en mi caso he obtenido unos resultados muy anómalos de esta segunda manera con el pmidi cuando, por lo contrario, con timidity NombreArchivo.mid sin haber tocado la configuración funcionó a la primera y con muy buena calidad de sonido. Podría ocurrir, asimismo, que fuera necesario reiniciar el sistema tras la carga de los módulos, si no funcionase el comando pmid que hemos puesto antes haced un reboot desde root y volved a probar.
Supongo que os habréis dado cuenta que no he hablado en estos apuntes y en esta subsección nada acerca de los secuenciadores de midi. Ciertamente no lo he hecho intencionadamente, sino por la sencilla razón de que no existen para la consola, o al menos que yo sepa. Si los hay para el entorno gráfico, el más usado de ellos es el rosegarden, pero de momento queda fuera de nuestro ámbito porque en estos momentos hablamos del modo texto y porque, hoy por hoy, el acceso al entorno x window no se puede hacer con suficientes garantías, aunque no pierdo la esperanza que antes de la finalización de esta serie de apuntes podamos entrar a manejar un poco el escritorio gnome.
Grabación de audio desde la tarjeta de sonido:
Para grabar desde un dispositivo externo a través de la tarjeta de sonido, desde la línea de órdenes se puede hacer con la orden rec perteneciente al paquete sox (Sound eXchange) que es un paquete de programas comunmente utilizado para convertir entre diferentes formatos y para dar ciertos efectos a los archivos de audio, que de momento vamos a dejar apartado en estos apuntes, no obstante, si tenéis interés siempre podréis leeros su manpage (en inglés) e intentar dar efectos a vuestros archivos de audio. Con su misma sintaxis pueden reproducirse sonidos con la orden play, aunque éste último posiblemente sea capaz de detectar y reproducir automáticamente los diferentes archivos sin la necesidad de tener que teclear la ristra de comandos que soporta.
El modificador -c especifica el número de canales a utilizar, normalmente serán 2, aunque hay tarjetas y sistemas de sonido, como es bien conocido, que soportan más, pero desde luego eso me supera bastante…, ciertamente todo el paquete sox me supera porque a penas si lo he usado, pero me interesa mencionarlo para que sepáis que existe la posibilidad de grabar desde la consola.
Con el modificador -d podemos especificar un dispositivo diferente por el que grabar o reproducir el sonido.
Con -f se especifica el bit format de la muestra. Sus opciones son: s, u, U, A, a, o g.
El modificador -r especifica el ratio de codificación de los datos de audio, es decir, las muestras (o samples) por segundo que se toman al grabar y reproducir. por ejemplo, si quisiéramos un sonido tipo CD la ratio a usar debería de ser 44100.
La opción -s especifica el tamaño de cada una de las muestras. Son: b, w, l, f, d, o D, donde b es la más grande y D la más pequeña. Ello influye en la calidad del sonido y en su tamaño resultante.
Con el modificador -t podemos especificar el formato del fichero de audio a utilizar.
Con -v podremos cambiar el volumen del audio.
Un ejemplo de grabación sería el que sigue:
rec -c 2 -r 44100 -s w ArchivoDeSonido.wav
Bien, de momento, esto es todo; no son todos los programas, ¡ni mucho menos! en linux hay muchos más, incluso muchos que no conocerá la mayoría del común de los mortales. De hecho se me quedan algunas cosas que de momento no os comento porque, o yo no he sido capaz de manejar todavía, o he tenido problemas para instalar…, no obstante, es posible que en entregas futuras podamos volver sobre el sonido y las podamos ver. Ahora os toca probar a vosotros y, si queréis, a seguir investigando y buscando a lo largo de internet otro tipo de aplicaciones que os puedan ayudar.