sábado, 24 de abril de 2010

Grabadores sencillos. JACK Timemachine y jack_capture

###################################
Notas de revisiones:
Revisión 0: 25 abril 2010. Publicado.
###################################

JACK Timemachine y jack_capture son sencillos grabadores de audio clientes de jack. Cada uno tiene una característica que lo hace especial y atractivo a su manera.

Timemachine


Con Timemachine podemos grabar el pasado. Muy útil si, por ejemplo estamos improvisando y nos sale algo bonito que nos gustaría haber grabado. Pues no se ha perdido. Si pulsamos el botón nos habrá grabado desde (por defecto) 10 segundos antes, hasta que volvemos a pulsarlo.

Otra utilidad que le podemos dar es grabar la radio. Uso VLC para escuchar la radio a través de internet. Si empiezan a hablar de algo que me interesa viajo en el tiempo con timemachine para no perderme el principio.

Podemos ver las opciones que tiene con
timemachine -h

Por defecto graba en formato w64 (que no es reconocido por la mayoría de reproductores)
y desde 10 segundos antes de pulsar el botón de grabación.

Si por ejemplo, queremos grabar desde 15 segundos antes y en formato wav, debemos dar el comando:
timemachine -t 15 -f wav

Está en los repositorios de ubuntu, así que instalarlo es muy fácil. Si lo arrastramos al panel y editamos sus propiedades podemos lanzarlo con el comando de arriba
(o precedido por /usr/bin/ como está por defecto).

Eso sí, timemachine no se autoconecta a ningún puerto, por lo que antes de nada, debemos conectar la fuente de audio que tengamos previsto grabar a sus entradas. Por defecto, los archivos se crean en /home/usuario/ con el nombre tm- seguido de la fecha y la hora del comienzo de la grabación.


Timemachine conectado a una fuente de audio, en espera.

Jack_capture

Lo más atractivo de Jack_capture es que autoconecta a sus entradas de captura todo lo que esté conectado a las salidas de la tarjeta de sonido (system:playbacks), de forma que graba todo lo que sale por los altavoces sin tener que preocuparnos de hacer ninguna conexión manualmente. Se puede configurar de otra forma, pero esta es la opción por defecto. Además, el audio de salida puede estar en wav, flac, ogg o mp3.

Jack_capture no está en los repositorios de ubuntu pero lo podemos instalar desde synaptic o apt-get si añadimos un repositorio adecuado, Por ejemplo, para karmic está en el de Philip Johnson

También lo podemos compilar si descargamos las fuentes desde aquí

En linux AV se hizo una presentación de este programa, con sus características completas aunque no se hizo referencia a la interfaz gráfica que facilita mucho las cosas. Ésta se invoca con el comando "jack_capture_gui2". Grabar es tan simple como apretar el botón rojo. Las opciones se despliegan clicando en la flechita de settings.


Jack_capture_gui2

sábado, 17 de abril de 2010

Tuneit, afinando la guitarra con la terminal de comandos

###################################
Notas de revisiones:
Revisión 0: 16 abril 2010. Publicado.
Revisión 1: 22 abril 2010. Completado.
###################################

Tuneit es un fabuloso afinador de línea de comandos. Preciso, estable y sencillo a más no poder.

Compilarlo es muy sencillo. Ya que hablamos de la terminal, lo haremos todo desde terminal. Estos son los pasos.

Instalamos las herramientas básicas de compilación y las bibliotecas de desarrollo necesarias. En ubuntu:
$sudo apt-get install build-essential libasound2-dev libfftw3-dev libjack-dev

Si no lo tenemos ya, recomiendo crear un directorio para el código fuente de los programas que instalemos al margen del sistema de paquetes. Yo le llamo "fuentes".
&mkdir fuentes

Nos situamos en este directorio
$cd fuentes

Obtenemos el archivo comprimido con las fuentes desde internet
$wget -c http://delysid.org/tuneit-0.3.tar.gz

Descomprimimos
$tar xf tuneit-0.3.tar.gz

Ingresamos a la carpeta creada
$cd tuneit-0.3

Configurar, compilar e instalar
$./configure
$make
$sudo make install

Un vistazo al manual
$man tuneit

video
tuneit en acción

Si preferimos que las notas salgan con la nomenclatura Do-Re-Mi...tenemos que modificar el código y volver a compilar ya que es opción no está expuesta al usuario, o al menos no aparece en el manual.

Editamos el archivo ~/fuentes/tuneit-03/src/tuneit.c

Más o menos en la línea 32, podemos cambiar:

static const char **notes = englishNotes;

por:

static const char **notes = frenchNotes;

Y también quitamos la tilde de Rè y Rè#

Borramos los archivos binarios con
$make clean

Y volvemos a compilar e instalar:
$make
$sudo make install

Créditos:


Gracias a Mario Lang por este fantástico y práctico afinador.
http://delysid.org/tuneit.html

lunes, 5 de abril de 2010

GNU Solfege y TuxGuitar (con sonido a través de Jack)

###################################
Notas de revisiones:
Revisión 0: 16 abril 2010. Publicado.
###################################

Sinceramente, no suelo utilizar ninguno de estos programas pero quería escribir esto pensando en Unai y en otros guitarristas interesados en la didáctica. Con una tarjeta de audio firewire, jack es imprescindible para tener sonido en Linux y en cualquier caso es bueno por la flexibilidad y las posibilidades que permite.

Contenido

Breve presentación de GNU/Solfege
Breve presentación de TuxGuitar
Estos programas no suenan
Una opción: Timidity
Nuestra propuesta: pmidi, qsynth, jack
El sintetizador
Obtener un archivo soundfont
Primero Jack, luego qsynth
El reproductor de midi
GNU/Solfege, ahora sí suena :)
Tuxguitar, ahora sí suena :)
Otra vez la flexibilidad
Créditos



Breve presentación de GNU/Solfege


GNU Solfege es un programa de educación musical. Entre otras cosas, se puede utilizar para entrenar el oído en ritmos, intervalos, escalas y acordes.

Es una aplicación libre, licenciada bajo la GPL y también funciona en otros sistemas operativos.

En su página oficial podéis ver algunos pantallazos con algunos de los ejercicios que se pueden hacer. En cualquier caso, la interfaz gráfica es sencilla e intuitiva.

Está en el repositorio universe de ubuntu, así que los ubunteros lo podemos instalar desde synaptic, apt-get, aptitude o el centro de software. El paquete se llama "solfege". En gnome, aparece en el menú Aplicaciones -> Educación.


Breve presentación de TuxGuitar


TuxGuitar es un programa educativo para guitarra, con edición de partitura y tablatura. Puede importar archivos de guitar-pro (GP3, GP4 y GP5, de momento)

Como GNU/Solfege, es una aplicación libre, licenciada bajo la LGPL y también funciona en otros sistemas operativos.

También está en universe. Aquí instalaremos dos paquetes, tuxguitar y tuxguitar-alsa. En gnome, aparece en el menú Aplicaciones -> Sonido y Video.

Estos programas no suenan

Pues es verdad, no suenan porque no manejan audio digital sino MIDI. En el caso de GNU/Solfege ni siquiera eso, pues necesita un programa externo para reproducir el MIDI. Y éste necesita "algo" que interprete los mensajes MIDI y los convierta immediatamente a audio digital, que es lo que entiende la tarjeta de sonido. Este "algo" es un sintetizador, sea software o hardware. Además debemos saber qué sistema de audio utiliza este sintetizador. El camino será, para GNU/Solfege:

Solfege -> Reproductor de midi (conectado al puerto de entrada alsa midi del) -> sintetizador (cuya salida de audio digital va a) -> manejador de audio (cuya salida de audio digital va a) -> Tarjeta de audio (cuya salida de audio analógico va a) -> Altavoces

Para tuxguitar será similar, pero en este caso no hace falta un reproductor de midi externo; la conexión al sintetizador es más directa.

Una opción: Timidity

GNU/Solfege nos obliga a instalar timidity (al menos, en ubuntu 9.10 es una dependencia) un reproductor MIDI-sintetizador cuyo audio puede salir directamente hacia la tarjeta. Dicho así, parece que sería lo más directo y fácil. Sin embargo, en esta guía, timidity es como si no existiera. Lo comento sólo para que conste.

Nuestra propuesta: pmidi, qsynth, jack

Para el caso de esta guía y de forma simplificada, el camino a seguir será:

Solfege -> pmidi -> qsynth -> Jack -> Tarjeta audio-> Altavoces

o

Tuxguitar -> qsynth -> Jack -> Tarjeta audio -> Altavoces


El sintetizador

Necesitamos un sintetizador con salidas de audio a través de jack. Hay muchas posibilidades. Para simplificar y por ser quizás el más conocido y muy sencillo de configurar, voy a centrarme en qsynth como ya he adelantado.

Qsynth es un front-end gráfico para fluidsynth, que a su vez es un sintetizador basado en la especificación soundfont. Lo podemos instalar desde synaptic si no lo tenemos ya.

Lo primero será cargar una soundfont. Para ello lo lanzamos desde las aplicaciones de Sonido y Video y vamos a la configuración o setup. Pulsamos la pestaña Soundfonts y le damos a Abrir para cargar un archivo de soundfont (extensión sf2 o SF2). Podemos cargar cualquier archivo sf2 pero sólo los "General Midi" tendrán un mapeado de instrumentos estándar, de forma que podamos elegir el instrumento desde el propio Solfege. Si no tenemos ninguno disponible en el disco duro, lo tendremos que conseguir...

Obtener un archivo soundfont


Por ejemplo, en esta página tenemos cientos de archivos sf2 gratuitos. Os propongo la mítica Fluid Release 3 que se puede descargar desde este enlace. Suena muy bien y es General Midi. El "problemilla" es que viene comprimida con sfark y en los repos no tenemos un programa que nos sirva para descomprimir este formato. En este caso debemos ir a melodymachine para descargar el programa sfArk. Ahorramos tiempo si bajamos el programa para Windows, ya que el de Linux funciona con una librería que se ha quedado obsoleta. De alguna forma se puede atajar (ver entrada en hispasonic en los créditos) pero quizás sea más sencillo descargar el programa para Windows e instalarlo con wine (botón derecho). Wine está en los repos y se instala fácilmente con apt-get o Synaptic.

Primero Jack, luego qsynth

Iniciamos nuestro amigo Jack y después qsynth. Con éste no hemos terminado. En la configuración MIDI debemos tener habilitada la entrada MIDI con el controlador alsa-seq y en la pestaña Audio elegir Jack. También es importante que la frecuencia de muestreo coincida con la que hemos configurado en Jack.

En la ventana de conexiones debemos ver las salidas de qsynth en la pestaña audio y la entrada de
Fluid Synth en la pestaña ALSA (alsa midi).

El reproductor de MIDI

Es necesario para GNU/Solfege. Usaremos pmidi. Lo instalamos con apt-get o synaptic. Ahora vamos a ver qué puertos midi hay disponibles. En una terminal, podemos hacer:

$pmidi -l

En una de las líneas veremos algo similar a:

129:0 FLUID Synth ...

En este caso, el puerto alsa midi es el 129:0

(esto también se puede ver en la ventana de conexiones de Jack Control)

GNU/Solfege, ahora sí suena

Abrimos GNU/Solfege y vamos a Archivo -> Preferencias -> External Programs y en Audio File Players, MIDI ponemos en el campo de la izquierda:

/usr/bin/pmidi

Y en el de la derecha:

-p 129:0

o el número de puerto que tome Fluid Synth.

Damos al botón de prueba y... tirirín tintintín. Y si no, comprobar que las salidas de audio de qsynth estén conectadas a los system:playbacks.

Es posible que cada vez que lanzemos GNU/Solfege (por supuesto después de haber iniciado jack y qsynth) debamos volver a escribir el puerto.

Tux Guitar, ahora sí suena

Llegados hasta aquí, ya tenemos todo para disfrutar también de TuxGuitar a través de Jack.
Lo lanzamos desde Aplicaciones -> Sonido y Video. Vamos a Herramientas -> Preferencias -> Sonido y elegimos "Synth input port" como puerto MIDI.

Otra vez la flexibilidad


Como veis, el disgusto inicial de no escuchar sonido se debe a que estos programas siguen la filosofía Linux de "una tarea, una aplicación". Como tantas otras cosas en nuestro SO favorito y como las buenas amistades, se empiezan a disfrutar más a medida que se conocen mejor. Este enfoque modular nos ofrece una gran flexibilidad y podremos sacar cualquier sonido de estos programas, bien cambiando el archivo soundfont de qsynth o bien utilizando otro sintetizador completamente diferente que tenga entradas de alsa midi y salidas de jack audio. Esto nos permitirá grabar el audio directamente a cualquier grabador jackificado o hacer cualquier otra conexión que se nos ocurra a través de jack, incluyendo varios ordenadores en red como vimos en la entrada sobre netjack2.

Créditos

http://www.solfege.org/
http://www.solfege.org/Solfege/SoundSetup
http://tuxguitar.herac.com.ar/
http://www.hammersound.net/
http://www.melodymachine.com
http://www.hispasonic.com/comunidad/soundfonts-formatos-sfark-sfpack-t301964.html#p2362239