sábado, 5 de noviembre de 2011

Alsamixer: No se pueden cargar los controles del mezclador

Situación:

Ordenador ajeno. Windows va un poco lento y tengo un DVD de Molinux 6.0 "Zoraida", la distro del Gobierno de la Comunidad de Castilla-La Mancha, basada en ubuntu 10.04.

Lo usaré en modo Live. Unos minutos después... Oh NOOO! ¡No funciona el sonido!

Abro una terminal y ejecuto:

$ alsamixer

Con la esperanza de que todo sea cosa de subir algún nivel o de activar algún canal. Pero aparece este mensaje:
no se pueden cargar los controles del mezclador: Argumento inválido

Lo primero que hago es mirar si realmente tengo una tarjeta de sonido:

$ lspci |grep -i audio

Que me devuelve:

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)

También echo un vistazo a /proc/asound/...

$ cat /proc/asound/cards /proc/asound/modules

0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xfdff8000 irq 16
0 snd_hda_intel

¿Entonces, qué es lo que falla? La verdad es que snd-hda-intel soporta muchas tarjetas de audio parecidas pero diferentes. Voy a buscar el codec:

$ cat /proc/asound/card0/codec* |grep -i codec

Que me da:

Codec: Realtek ALC887

Y encuentro dos sitios donde se da la solución:

https://answers.launchpad.net/ubuntu/+source/alsa-driver/+question/150750 (comentario #2)
https://lists.ubuntu.com/archives/ubuntu-es/2011-March/046654.html

que consiste en agregar la línea

options snd-hda-intel model=generic

en el archivo /etc/modprobe.d/alsa-base.conf

Genial, pero ¿Qué hago yo con un Live CD? No puedo guardar ese archivo. ¿Cómo pasar esa opción al módulo snd-hda-intel sin reiniciar?

Pues lo primero es descargarlo:

$ sudo rmmod snd-hda-intel

Y ahora lo volvemos a cargar con la opción añadida al final:

$ sudo modprobe snd-hda-intel model=generic

Pulseaudio se queda medio-atontado con la operación: Si vamos a las preferencias de sonido nos aparece un dispositivo de salida bobo ("dummy").

Debido a la característica de "autospawn" de pulseaudio, matarlo es como reiniciarlo. Con k de kill:

$ pulseaudio -k

Y ahora sí:

$ speaker-test -c 2 -t wav

front left... front right... front left... front right... música para mis oídos.

viernes, 8 de julio de 2011

Mis primeros pasos con Lilypond

(Dedicado a mi padre)

#########################
Notas de revisiones:
Rev 0: 19 julio 2011. Publicado.

#########################


Llevo un tiempo usando lilypond (página oficial, wikipedia, ambas en castellano) para escribir partituras, sobretodo para guitarra. El otro día, mi amigo y gran guitarrista Unai vio (y amablemente se animó a interpretar) alguna de ellas. Parece que le gustaron y me animó a mejorarlas.

Antes de nada, el "disclaimer" de rigor: Soy un guitarrista aficionado que disfruta con lilypond por la belleza de la impresión, para reflexionar sobre lo que toco, mejorar posturas, entender mejor la música... Y porque me resulta un pasatiempos divertido. Al mismo tiempo, creo que puede ser una buena herramienta para algunos músicos que quizás aún no lo hayan descubierto. Esta entrada habla de mi experiencia autodidacta, con algunos ejemplos de mi proceso de aprendizaje y un par de piezas de música antigua que suelo tocar desde hace muchos años. Hay una habitación muy grande y yo estoy mirando por el ojo de la cerradura pero está bien saber que se puede disfrutar desde el primer día. Además, es un buen ejercicio mental.

Contrariamente a algunos mitos que podemos encontrar en internet, ni hay que saber C++ ni hay que esperar (al menos no más de unos segundos) para ver el resultado impreso. Lilypond se escribe en texto plano con un lenguaje no excesivamente complicado y orientado a la expresión musical.

Cuando falla la compilación o hay avisos de incoherencias, es un pequeño triunfo encontrar el problema y solucionarlo (me he comido una llave, el compás no cuadra...). Cada vez son menos estos fallos pues ya tengo mis plantillas para no tener que empezar desde cero cada vez. Cuando quiero representar algo no tan frecuente investigo en el manual y en el repositorio de snippets (fragmentos de código lilypond). Ver estos fragmentos por primera vez asusta un poco pero empezar es muy fácil. Por ejemplo, esto:

\version "2.14.1"
\score {
\relative c' {c d e f g a b c}
}

Produce esto:



Lo podéis probar ahora mismo en omet.ca, una página web para edición de partituras "online" (en progreso), que sirve entre otras cosas para generar pdf's a partir de código lilypond (más abajo están las instrucciones para instalar lilypond localmente). Simplemente copiar el código de arriba en la pestaña "Sandbox" y pulsar la flecha para compilar y aparecerá una nueva pestaña "Rendered" con la impresión de la partitura, así como un enlace directo para descargarlo en formato pdf.

Por aquello de "divide y vencerás" y también para aprovechar bloques de texto que sirvan como plantilla para partituras similares, conviene separar la melodía en un bloque diferente, como en el siguiente ejemplo, donde definimos la palabra clave "voz" con la sucesión de notas relativas a do alto y la invocamos más abajo dentro del bloque \score.

Observad que las líneas que empiezan por el símbolo de porcentaje, "%", son comentarios, es decir, no son tenidos en cuenta por lilypond pero vienen muy bien para nuestras referencias y recordatorios, en este ejemplo para numerar los compases. Por otro lado, las "tuberías", "|" sirven como separadores de compás; no son estrictamente necesarias pues lilypond imprimirá las barras de acuerdo al compás y a las duraciones de notas indicadas, hayamos escrito o no las tuberías. Sin embargo, éstas no sólo ayudan a guiarnos en el archivo de texto, sino que además habilitan la comprobación de compases: Si un compás no cuadra lilypond nos lo chivará.

Para hacerlo más legible podemos dejar líneas en blanco.

Este código da el mismo resultado que hemos visto arriba:

\version "2.14.1"

voz = \relative c'{
%1
c d e f |
%2
g a b c |
}

\score {
\voz
}


Sin haberlo indicado expresamente, el compás es de 4/4, la tonalidad do mayor (no se imprimió ninguna armadura), la clave de sol y las notas negras. Creo que es mejor indicarlo, por claridad y para que sea fácil cambiarlo (¡Editar un plantilla es fácil!). Así que obtenemos el mismo resultado con este código:

\version "2.14.1"

voz = \relative c'{
\key c \major
\time 4/4
\clef treble
%1
c4 d e f |
%2
g a b c |
}

\score {
\voz
}

Fijémonos ahora en la duración de las notas. La primera es una negra (se indica con un 4) y todas las siguientes, como no decimos otra cosa, son negras también.

En cuanto a la altura tonal, la primera nota toma la octava de referencia indicada en la variable "\relative". El apóstrofe (rayita arriba) indica que partimos de una octava más alta que el do central. La coma (rayita abajo) indicaría una octava más baja.

Veis que estoy usando el estilo anglosajón para los nombres de las notas. Si os resulta más cómodo, podéis cambiar al más familiar do, re, mi... simplemente indicando \language "espanol" (sí, sin eñe). Este código genera el mismo resultado:

\version "2.14.1"
\language "espanol"

voz = \relative do'{
\key do \major
\time 4/4
\clef treble
%1
do4 re mi fa |
%2
sol la si do |
}

\score {
\voz
}



Veamos otro ejemplo:

\version "2.14.1"

voz = \relative c''{
\key d \minor
\time 4/4
\clef treble
%1
c4 d bes bes, |
%2
f'1 |
}

\score {
\voz
}

que una vez compilado aparece así:



Como veis, he modificado la tonalidad (re menor) y la octava de referencia para la primera nota (c''). bes es "si bemol" (para indicar sostenido usaríamos "is", por ejemplo, cis sería "do sostenido"). La cuarta nota es un "si bemol" una octava más baja que la anterior y la nota del segundo compás es un "fa" que dura una redonda (duración 1).

Como hemos señalado antes, gracias al comando \relative, la altura tonal de una nota siempre es relativa a la anterior. Cuando los intervalos entre notas consecutivas son pequeños no indicamos apóstrofe ni coma y la nota irá a su lugar. Cuando son grandes, hay unas reglas para establecer la altura tonal correcta escribiendo apóstrofe, coma, o nada. Estas reglas están explicadas en el manual (alternativamente, se puede usar el viejo método de "prueba y error").

Observamos que, habiendo indicado la tonalidad de re menor, aparece la armadura correspondiente en la impresión, "si bemol". Pero ojo, en las notas del código lilypond debemos indicar siempre la alteración. En este caso, si hubiéramos escrito b en lugar de bes, habría aparecido un becuadro delante de cada nota "si".

Veis que las líneas adicionales, así como las barras de separación de compás, son un poco más gruesas que las líneas del pentagrama pues Lilypond imita la escritura tradicional grabada a mano. Como tantos otros detalles, esto también se puede modificar.

Ahora un poco más complicado, con dos voces (melodía y bajo):

\version "2.14.1"

global = {
\key c \major
\time 4/4
\tempo 4 = 104
}

alto = \relative c'' {
\clef treble
\transposition c
\stemUp
%1
r8 e4 dis8 e d16 c~ c8. c16 |
%2
d8 c d c d c16 a~ a4 |
}

bajo = \relative c' {
\transposition c
\stemDown
%1
c4 g c c |
%2
f, c' f, f |
}

\score {
\new Staff
<<
\new Voice { \global \alto }
\new Voice { \global \bajo }
>>

\layout {}
}

\score {
\unfoldRepeats
\new Staff \with { midiInstrument = "Acoustic Guitar (nylon)" }
<<
\new Voice { \global \alto }
\new Voice { \global \bajo }
>>

\midi {}
}

Que da esta salida (clicar para verla bien):



Como veis, he introducido una nueva variable "global" que irá en todas las voces, con la tonalidad, la signatura de compás y el tempo. En la voz "alto" señalo la clave de sol, indico que todas las plicas vayan hacia arriba por defecto (\stemUp) e indico \transposition c, ya que la guitarra es un instrumento traspuesto por una octava. Es decir, se escribe en clave de sol sin indicaciones adicionales (sin un 8 abajo) pero las notas están realmente en una octava más baja.

En la voz "bajo" no hace falta volver a señalar la clave pero sí la trasposición, y además quiero que las plicas vayan hacia abajo (\stemDown).

Además, duplico el bloque \score; uno para la impresión (\layout {}) y otro para la salida MIDI. En este caso podría haberlo hecho en un solo bloque pero para el MIDI es necesario "desdoblar las repeticiones" (\unfoldRepeats) cuando éstas existen.

Podíamos haber indicado también digitaciones y cuerdas. Por ejemplo, para indicar un "do" negra con puntillo en la quinta cuerda con el tercer dedo, escribiríamos "c4.\4-3". Si no vemos necesario indicar la cuerda pero queremos indicar el dedo, bastará con "c4.-3".

En general, cuanto más común o habitual es lo que queremos indicar, más sencillo es el código. Como veis, lilypond tiene su curva de aprendizaje pero la pendiente, aunque larga (infinita nos parece), es bastante suave.

En la versión 2.14.1 se puede producir la salida en formato svg, además de pdf. Esto es genial, pues gracias a un editor de gráficos vectoriales como inkscape podremos corregir pequeños detalles (como colisiones o desplazamientos excesivos para evitar colisiones) que sólo con lilypond, a veces resulta complicado. Además nos ofrece una forma muy cómoda de personalizar las partituras (dibujitos, fotos, sellos... cualquier cosa imaginable puede ir en el mismo papel con un poco de arte e imaginación).

Instalación de lilypond

Es posible que tu distribución no tenga la última versión disponible en sus repositorios. Por ejemplo, para ubuntu lucid está la 2.12.3, pero en el momento de escribir esto la última estable es la 2.14.1. Por cierto, la 2.12.3 no permite exportar a svg.

Las instrucciones de instalación están en la propia página de descarga:

cd RUTA-DEL-DIRECTORIO-DE-DESCARGA
sh lilypond-2.14.1-SISTEMA-OPERATIVO.sh

Esto instala lilypond al directorio personal. Yo prefiero instalar al sistema, como el resto de programas. Yo hice:

cd Descargas
sudo sh lilypond-2.14.1-1.linux-x86.sh --prefix /usr


Entorno de trabajo


Existen algunos editores gráficos para Lilypond que facilitan la creación de plantillas, entradas de notas, etc. Yo de momento lo estoy usando con un simple editor de texto. A veces uso vim, a veces gedit.

Además, abro una ventanita de terminal (terminator), con dos subventanas; una para generar los ficheros de salida y otra para lanzar el lector de pdf's, evince. Uso Audacious para reproducir el MIDI. Está bien escucharlo para comprobar que el tempo es el correcto y que no hay fallos de tonos o duraciones.


"Compilación del código lilypond"


Para generar el archivo pdf (y el MIDI en su caso), basta con poner en la terminal:

lilypond miarchivo.ly

donde archivo.ly es el archivo de texto con el código de lilypond.

Para obtener la salida a svg, debemos indicar:

lilypond -dbackend=svg miarchivo.ly

Como siempre, podemos ver más opciones con:

lilypond --help

Piezas casi terminadas

Las piezas que incluyo en [1] y en [2] son bastante antiguas. Quizás fueron escritas para vihuela. Si alguien sabe su nombre original, o su autor, por favor indicármelo. Estaban en una cinta de casette de mi hermano hace más de 20 años y las aprendí "de oído" con su ayuda. Ahora estoy intentando transcribirlas.

La estructura del código es muy similar a la que he presentado antes, aunque algo más completa. Incluye un bloque para la cabecera, definición del papel, márgenes, tamaños, distancias... Algún que otro "override" para modificar la impresión por defecto (las notas y algunas líneas me parecen excesivamente gruesas comparadas con algunas partituras impresas que he visto). Es entretenido cambiar estos parámetros o eliminarlos (mejor "comentar" la línea antes que borrarla) y ver cómo queda. Hay una parte de código de "definición de cejillas" que es incomprensible para mí en un 80%. Lo saqué del repositorio de snippets. Es que así quedan mejor, me parece.

Sólo hay que copiar el texto a un archivo, darle un nombre con la extensión .ly y compilarlo con lilypond. O bien, utilizar omet.ca. ¡A ver qué os parecen!

[1]: Anónimo medieval http://paste.ubuntu.com/641524/
[2]: Danza medieval http://paste.ubuntu.com/641525/


Agradecimentos:

Francisco Vila y resto del equipo de desarrollo.
Unai y Juan por animarme a seguir con lilypond.

Otros recursos y direcciones de interés relacionadas con lilypond

Un manual de iniciación escrito en 2005
Proyecto mutopia donde su pueden encontrar un montón de partituras con su correspondiente código lilypond

sábado, 26 de marzo de 2011

Radio Tray

Pequeña aplicación, gran descubrimiento

Radio Tray

En gnome, cuando lanzamos el programa desde Aplicaciones -> Sonido y Vídeo su icono aparece en el Área de Notificación del panel. Desde ahí mismo, con botón 1 (normalmente izquierdo), podemos elegir la emisora. ¡Y yo usando VLC para escuchar la radio!


Instalación

En ubuntu lucid no está en los repositorios oficiales. Tampoco creo que esté en maverick y tampoco he encontrado ningún PPA que lo incluya. No hay problema en usar el método "windows". Lo podemos descargar o directamente instalar desde el link de descarga directa del archivo radiotray_0.6.3_all.deb en su sitio oficial de sourceforge. El sufijo _all sugiere que el paquete es compatible con sistemas de 32 y de 64 bits.

Supongo que resolverá directamente las dependencias, si nos falta alguna. A mí me ha funcionado a la primera.

Uso

Aquí no hay mucho más que explicar. Precisamente de eso se trata: Es _fácil_.

Radio Tray incluye varias emisoras de música. Si pulsamos el icono con botón 2 (normalmente derecho) podemos configurar las emisoras. Entre otras cosas, añadir una nueva.

Añadir una emisora

Para añadir una emisora, debemos conocer su dirección de streaming. La extensión UnPlug de firefox nos puede ayudar para ello.

Antes de añadir la nueva radio, si no entra dentro de las categorías existentes, podemos añadir un nuevo grupo, acordándonos de poner "root" como "parent group" para que aparezca en la raíz. También podemos crear subgrupos dentro de los grupos existentes.

He añadido una emisora y he estropeado el invento

Probablemente porque la dirección de streaming no es correcta o no funciona. Lo malo es que Radio Tray no responde (!). killall al rescate. Abrimos una línea de comandos con ALT+F2 (o una terminal) y escribimos:

killall radiotray

Quiero que suene a través de Jack

Por supuesto, somos amigos de Jack.

El motor de audio es gstreamer, por lo tanto tenemos que "jackificar" gstreamer. Hace tiempo explicamos cómo conseguirlo en unos cuantos reproductores, entre otros, rhythmbox, el reproductor de música de ubuntu. Rhytmhbox también usa gstreamer, así que, si ya lo hicimos antes, radio tray también sonara con jack. Y si no, aquí os recuerdo cómo:

Necesitamos el paquete gstreamer0.10-plugins-bad

Ejecutamos (alt + F2 o desde terminal) 'gconf-editor' y en el directorio .../system/gstreamer/0.10/default/ damos el valor 'jackaudiosink' a los nombres 'audiosink', 'chataudiosink' y 'musicaudiosink'. Si no queremos que se autoconecten las salidas del reproductor a los system:playbacks, pondremos: 'jackaudiosink connect=none'


Q: ¿Puedo hacer que rythmhbox vaya con pulseaudio, como lo tengo ahora, y Radio Tray con jack?
A: No (que yo sepa).


Quiero grabar la radio

Buena idea. Para esto, nada como la máquina del tiempo.

Ya hicimos una entrada dedicada a timemachine (y a jack_capture).

Es genial porque igual escuchamos algo tan interesante que nos gustaría haberlo grabado. De repente nos acordamos de que... ¡Podemos viajar en el tiempo y grabarlo!

Eso sí, conviene cambiar el comportamiento por defecto de timemachine como explicamos en su día.

¡Y también conviene convertir los wav a ogg o a mp3 de vez en cuando! (Si tenéis prisa a corto plazo o sois terminal-fóbicos, ir directamente a los comentarios de César e igny y usar Sound Converter o Mobile Media Converter).

sábado, 12 de febrero de 2011

¿Qué opináis de los nuevos Linux?

(Otra entrada de transición. Estoy empezando a dejar el blog. Lo siento de verdad por los que seguís el blog. Necesito aprender cosas nuevas y que me dé tiempo a ir a nadar).

Quizás no escriba la tercera parte de la configuración de jack porque es lo más fácil, los cuadros por periodo, periodos por búfer y la frecuencia. No volverse locos, los valores por defecto están bien para empezar. Por lo que he leído, periodos por búfer de 3 son aceptables ó necesarios (pero no creo que obligatorios) para tarjetas USB y Firewire. En general, los valores por defecto funcionan.

La cuarta parte iba a tratar sobre el resto de opciones. Algunas son innecesarias y hay otras que no conozco bien. Yo no marco ninguna casilla de la columna de la izquierda, aparte del modo realtime o "Tiempo Real", como indicamos en la primera parte.

¡Se me acaban las ideas, ahora que suene la música!

Si alguien tiene alguna duda o algo que no le funciona como quiere, lo podéis preguntar en hispasonic que os van a contestar amablemente.

)
__________________________________________________________
Fin de la introducción, ahora, a por la entrada de hoy:
*********************************************************

He leído en el blog de cristalinux, y después he comprobado, que hay un poyecto para portar Android a PC.

Por otro lado, también creo recordar que he leído en la página de linux foundation que WebOS (¿Quién tendrá la culpa de que se llame así?) también quiere asaltar el escritorio.

Y qué pasa con MeeGo? Parece que Nokia ha cambiado la estrategia y ha dejado de pensar a largo plazo para que vender sea más sencillo. Lo que es peor, Windows 7 en sus móviles no tiene soporte para qt. Supongo que esto habrá desanimado a un montón de desarrolladores que siempre han pensado que qt4 es multiplataforma. Así va el mundo, menos mal que BG pone un montón de pasta para combatir enfermedades, algo bueno tenía que tener.

Sobre los GNU/Linux, las distribuciones modernas son buenísimas. El instalador es tan sencillo que puedes hacerlo mientras escuchas música, y desayunas al mismo tiempo, mientras que hace unos años te obligaba a estar super-atento y a rascarte la cabeza de vez en cuando. El aspecto de gnome ha mejorado un montón y los trucos para trabajar con montones de ventanas a la vez sin que te vuelvas (más) loco son geniales.

Parece que cada vez habrá más pantallas touchscreen de todos los tamaños, lo cual nos obligará a llevar siempre las manos limpias y las uñas cortadas. Demasiado incómodo para un fontanero o para alguien que experimenta técnicas para tocar la guitarra... A mí me gusta pero por otro lado pienso que la tierra se está empezando a cansar de que le muevan las cosas de su sitio...

El software libre importa mucho. Son esfuerzos que ayudan a otros a llegar más alto y quedan grabados para siempre. Igual sueno un poco "linux fanboy" pero por eso creo que es importante que Linux avance, porque ayuda a popularizar el software libre. Y porque es más fácil para mí :)

Gracias a los desarrolladores. Tiene que ser increíble la sensación de una persona que ha hecho algo que todo el mundo a su alrededor utiliza a diario, y al mismo tiempo pasar completamente desapercibido. Supongo que te odiarán si empiezas a gritar, "Éste ha hecho que funcionen vuestros móviles". En las ocasiones familiares, ya habrá tenido que cambiar la hora a alguno.

Salud! Pablo

sábado, 8 de enero de 2011

Cómo convertir wav a mp3 o a ogg masivamente

En este tutorial explicaré cómo convertir de wav a formatos comprimidos como ogg y mp3 con un par de comandos inventados y muy fáciles de implementar. No me acuerdo de dónde saqué la idea o si simplemente lo copié de algún sitio, perdonar que no ponga las fuentes. He podido copiarlo de cualquier sitio que os aparezca en google usando las palabras clave.


1. Cómo generar tus propios comandos


Generar un nuevo comando basado en combinaciones de otros comandos y acaso con un poquito de programación básica en bash es divertido.

Primero tenemos que saber cuál es el contenido de la variable $PATH, con un comando como éste:

echo $PATH


Quizás encontréis algo parecido a esto:

/home/pablo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Supongo que no todo el mundo tendrá el directorio /home/su_nombre_de_usuario/bin en la variable $PATH y también es posible que alguien le quiera dar otro nombre a la carpeta que contiene los scripts de usuario. Por ejemplo, podría querer tener un directorio oculto llamado ".mis-scripts" (ojo al punto delante para que automáticamente se convierta en oculto).

En este caso, lo que queremos es añadir "/home/nombre_usuario/.mis-scritps" a la variable PATH. Esto lo podemos hacer de la siguiente forma:

gedit ~/.bashrc

La virguililla "~" es lo mismo que "/home/nombre_de_usuario_que_está_logeado". (Para saber qué usuario está logeado o bien si nos da un ataque de amnesia, podemos usar el comando whoami). Si no queréis copiar y pegar, en el teclado español podemos imprimir en pantalla la virguililla con la combinación [Alt Gr - Ñ] o con [Alt Gr - 4].

El caso es que al final del archivo .bashrc añadimos la siguiente línea:

PATH=/home/nombre_de_usuario/.mis-scripts:$PATH

Por supuesto, el directorio .mis-scripts deberá existir. Lo podemos crear con botón derecho dentro de nuestra carpeta personal. O bien con el comando:

mkdir ~/.mis-scripts

o el nombre que se os ocurra, u oculto o no oculto.

Adelántadome un poco para no perder más tiempo reiniciando cuando lleguemos al paso 4, si usamos gnome y nautilus (que traen por defecto las distros mayoritarias) vamos a instalar ahora el paquete "nautilus-open-terminal". Ya que tenemos la terminal abierta, sólo hay que copiar el comando:

sudo apt-get install nautilus-open-terminal

En el siguiente logueo del usuario (o arranque del ordenador) comprobamos otra vez con "echo $PATH" si el directorio elegido forma parte de PATH.

Bueno, pues ahora todos los scripts de bash ejecutables que estén en este directorio se pueden ejecutar simplemente invocando el nombre del archivo.

Yo tengo uno que se llama wav2mp3

2. Contenido de wav2mp3

Una vez que hemos comprobado que tenemos un directorio en "nuestro home" que forma parte de la variable PATH, podemos crear un archivo de texto dentro de dicho directorio, con el nombre wav2mp3 (o cualquier otro que se os ocurra siempre que sea coherente con el resto de explicaciones del tutorial) y con el siguiente contenido:

#!/bin/bash
#
# wav2mp3
#
for i in *.wav; do
lame -h -b 320 "$i" "${i%.wav}.mp3"
done


El comando que realmente hace la conversión es lame. En este caso, decimos que convierta a mp3 con buena calidad (opción -h) y a 320 kps (opción -b 320). Lo bueno de este script es que nos convierte de una vez todos los archivos wav que tengamos en el directorio donde lo apliquemos, como veremos en el punto 4.

3. Permiso de ejecución

Debemos dar a wav2mp3 permiso de ejecución. Botón derecho sobre el archivo, propiedades, permisos, permitir ejecutar el archivo como un programa. Desde la terminal lo podemos hacer con el comando:

chmod +x ~/.mis-scripts/*

4. Uso de wav2mp3


Para usar wav2mp3 abrimos una terminal en la localización donde tenemos los wav que queremos convertir a mp3. Para ello, si tenemos instalado nautilus-open-terminal, simplemente tendremos que navegar gráficamente hasta la carpeta que contiene los wavs, pulsar botón derecho dentro de la misma y "Abrir en un terminal".

Ahora escribimos:

wav2mp3

Y voilà, en un rato más o menos largo todos nuestros archivos de audio en wav serán convertidos a mp3 de alta calidad , en el mismo directorio, manteniendo su nombre y cambiando la extensión a mp3.

5. Y ogg?

Bueno, habrá que hacer otro comando wav2ogg. Para ello podemos usar este script:

#!/bin/bash
#
# wav2ogg
#
for i in *.wav; do
oggenc "$i" -q 6 -o "${i%.wav}.ogg"
done



Por supuesto, lame y oggenc pueden ser invocados con otras opciones. Siempre podemos echar un vistazo a sus manuales:

man lame

man oggenc