MIDI en UBUNTU con SoundBlaster

Imagen de Lacasito

MIDI en UBUNTU con SoundBlaster

En primer lugar he de decir que esto lo he hecho con una Guadalinex, basada en Ubutu Breezy. me imagino que debe funcionar con la distribución madre, no veo yo por qué no.
lalo001 puso un post sobre como hacer esto, pero dependiendo de timidity:
http://www.ubuntu-es.org/node/21443#comment-49941

Esto fue lo que me llevó a hacer lo propio, pero de otra manera. Usando la memoria interna de la SoundBlaster. No sé si hay ya otros tutoriales que digan lo mismo que el mío, pero quizá este le sirva a más de uno. Llevo todo el día bregando con tutoriales, Jautus y demás docus y por fin he conseguido que mi Guadalinex, con una SoundBlaster instalada, suene con los MIDIS

El formato MIDI (Musical Interface for Digital Instruments) no es muy conocido para el gran público salvo en ciertos aspectos relacionados con la telefonía móvil. Sin embargo, casi toda las tarjetas de sonido ofrecen funciones midi. ALSA (Advanced Linux Sound Architecture) dispone de un secuenciador que puede reproducir ficheros midi si su tarjeta no lo soporta. También puede instalar y configurar Timidity, un sintetizador por software para aquellos que no tengan soportado el midi en su tarjeta de sonido.

Para poder escuchar ficheros midi necesita cargar antes las fuentes de sonido. Si posee una tarjeta SoundBlaster Live 5.1 o algo así, debe cargar las fuentes de sonido en ella para que la reproducción se haga por hardware (El de la tarjeta de sonido). En mi equipo tengo instalada una tarjeta de sonido Sound Blaster Live.

Copie las fuentes de sonido (Ficheros con la extensión .sf2) que vienen en el CD de instalación de la tarjeta, en concreto en el directorio /AUDIO/Common/SFBANK del disco, al directorio /etc/sound (Hay varios, pero el que mejor resultado parece dar es el fichero 8MBGMSFX.SF2).
Hay otros sitios en la red desde donde bajarse ficheros sf2. Busque quizás en http://www.personalcopy.com en la sección Soundfonts for Linux tiene uno que se llama Unison.sf2, de unos 23 MB y otro llamado PersonalCopy de casi 54MB. En http://www.hammersound.net también pude descargarse unos cuantos.

Ya tenemos las fuentes de sonido, ahora hay que cargarlas en la memoria de la tarjeta y para eso necesitamos instalar el paquete awesfx, que está en los repositorios, hágalo con Synaptic o con:
sudo apt-get install awesfx

A continuación ejecute este comando para descargar lo que hubiera en la memoria:
asfxload -i

Luego cargue las fuentes de sonido en la tarjeta con:
sfxload /etc/sound/8MBGMSFX.SF2

Obviamente, si usted tiene descargado el fichero Unison.sf2 ponga eso en lugar de 8MBGMSFX.SF2.

Para cargar las fuentes de sonido cada vez que entre en el sistema, ponga esos dos comandos al final del fichero /home/usuario/.bash_profile o en /home/usuario/.bashrc. Yo los he puesto en este último.

Kmid es un reproductor de midi y karaoke (Ficheros .mid y .kar) con ciertas características como el resaltado del texto del karaoke, entre otras. Kmid funciona en cualquier sistema donde funcione KDE y OSS y también en Gnome.

Kmid muestra las letras de las canciones en la pantalla cambiando su color al mismo tiempo que se reproduce la música. Instálelo con Synaptic.
En el menú Settings > MIDI Setup, seleccione como dispositivo midi a usar el Emu10k1 WaveTable Emu10k1 Port 0 – ALSA device y el mapa midi gm.map, que está guardado en el directorio /usr/share/apps/kmid/maps/ Los otros mapas midi también funcionan y le dan otra coloración al sonido, escoja la que más le guste. Pulse OK para que la configuracion tenga efecto.

Abra una canción desde el menú Archivo. Si lleva la extensión .kar (O sea, si se trata de un archivo de karaoke), enseguida verá la letra del tema en la pantalla inferior. Pulse el botón de Reproducción y comenzará a sonar la música mientras van moviéndose las barritas que señalan las partes del compás y la barra de progreso. Puede modificar la velocidad de reproducción (Tempo) y el volumen de la música. Si desea ver las pistas que suenan pulse el icono en forma de teclado y se abrirá una ventana con varios teclados de piano, uno por pista, y podrá observar, cual si fuera “Maese Pérez el organista”, como las teclas se mueven solas. También ahí podrá cambiar el instrumento que suena en cada pista para adaptar la canción a su gusto.

Si quiere reproducir midi en la línea de comandos, ejecute el comando pmidi de esta forma (Si no tiene pmidi instalado, instálelo con Synaptic):
usuario@linux:> pmidi -p 65:0 blanket.mid &

Para ver el puerto que usa la tarjeta utilice el comando pmidi -l
usuario@linux:~$ pmidi -l
Port Client name Port name
62:0 Midi Through Midi Through Port-0
64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3
72:0 MPU-401 UART MIDI MPU-401 UART MIDI

Tiene más información sobre el comando pmidi en la página del manual (man pmidi).

Resumiendo:
Instale Kmid, pmidi y awesfx
Copie los ficheros de fuentes de sonido en su disco duro.
Descargue la memoria de la tarjeta y cargue en ella los ficheros de fuentes de sonido.
Configure Kmid y reproduzca un fichero midi o .kar

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Lacasito

Por cierto, esta mañana he

Por cierto, esta mañana he tenido que cambiar algo lo de arriba porque poner las lineas
asfxload -i y
sfxload /etc/sound/8MBGMSFX.SF2

en .bashrc no cargaba las fuentes al iniciar el equipo. He creado este script que las carga y luego ejecuta Kmid. Así no es necesario hacerlo más que cuando quieres trabajar con midi, yo lo he llamado sfkload, vosotros lo llamáis como os dé la gana.

#!/bin/bash
#Este script sirve para cargar las fuentes de sonido de la SoundBlaster Live.
#A continuación carga el programa Kmid de reproducción de ficheros midi.
#Para ejecutar este script sólo tienes que escribir "sfkload.sh" (sin las comillas) en la línea de
#comandos de la consola y luego pulsar Enter o hacer un enlace

#Primero descargamos la memoria de restos de datos que pudieran quedar con sfxload -i.
#Luego cargamos la fuente de datos en la memoria de la tarjeta de sonido
echo "Carga de fuentes de sonido"
sfxload -i
sfxload /etc/sound/8MBGMSFX.SF2
echo "Carga de kmid"
kmid &

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.