Hier mal ein kleines HOwTo für die Einrichtung von Midi und Soundfonts für Soundkarten mit den Emu10k1 Chip

Da hier immer wieder Fragen darüber kommen versuche ich es mal einfach und kurz zu beschreiben wie
man das mit diesen Karten erledigt.

Zuerst einmal schauen wir ob die Karte richtig erkannt und eingerichtet worden ist und ob Midi und die
Wavetables erkannt worden sind, dazu gehen wir in eine Konsole und führen mal ein

/sbin/lspci | grep Creative
02:0e.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 04)
02:0e.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 01)
Ebenso schauen wir ob die WaveTables vorhanden sind und machen das mit einen

pmidi -l
Port Client name Port name
64:0 EMU10K1 MPU-401 (UART) - Rawmi 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

Jetzt schauen wir noch ob die Treiber geladen sind.

/sbin/lsmod | grep emu10k1
emu10k1_gp 3649 0
gameport 4801 1 emu10k1_gp
snd_emu10k1_synth 7873 0
snd_emux_synth 38977 1 snd_emu10k1_synth
snd_emu10k1 93769 3 snd_emu10k1_synth
snd_rawmidi 26725 3 snd_seq_midi,snd_seq_virmidi,snd_emu10k1
snd_pcm 97993 2 snd_emu10k1,snd_pcm_oss
snd_seq_device 8137 7 snd_seq_oss,snd_seq_midi,snd_emu10k1_synth,snd_emu x_synth,snd_seq,
snd_emu10k1,snd_rawmidi
snd_ac97_codec 64401 1 snd_emu10k1
snd_page_alloc 9673 2 snd_emu10k1,snd_pcm
snd_util_mem 4801 2 snd_emux_synth,snd_emu10k1
snd_hwdep 9413 2 snd_emux_synth,snd_emu10k1
snd 54053 13 snd_seq_oss,snd_emux_synth,snd_seq_virmidi,snd_seq ,snd_emu10k1,
snd_rawmidi,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_ timer,snd_seq_device,
snd_ac97_codec,snd_hwdep

Falls das alles so ist können wir jetzt Soundfonts in die Bänke laden, das sind die Ports 0-3. Soundfonts
sind falls eine cd Live Demo Tour vorhanden ist dort zu finden, wenn nicht muss man mal Google anwerfen.

Wir brauchen für die Wiedergabe von Midi keinen Synthesizer ala timidity, fluidsyth etc. Das wird hier
über die Karte erledigt mittels den Wavetables.

Zum laden der Soundfonts brauchen wir ein Programm das diese auf die Wavetables schiebt, dazu können wir
sfxload od asfxload nehmen.

Als Beispiel nehme ich hier die Standardfonts die immer bei den cd dabei sind und lade die mal mittels

sfxload -b0 /usr/local/soundfonts/8MBGMSFX.SF2

Soundfontpfad muss hier an den eigenen Pfad angepasst werden.
Wenn das ohne Fehlermeldung abläuft können wir nun schon Midi benutzen.

Kurze Anmerkung mit den Schalter -b0 bis -b3 können wir verschiedene Fonts auf die einzelnen Ports laden.

So zum Schluss noch eine Anmerkung für Rosegarden,das ja oft für Midisachen genommen wird.
Um Rosegarden sofort zu benutzen zu können stellen wir dort unter Einrichten/Rosegarden einrichten/
Sequenzer/start mal ein das Jackd mitgestartet wird das machen wir mal mit den Standardeinstellungen
unter jack mit rosegarden starten

/usr/bin/jackd -d alsa -d hw -r 44100 -p 2048 -n 2

Jetzt lassen wir auch die Fonts laden das machen wir unter Einrichten/Rosegarden einrichten/Sequenzer/
Allgemein unter Load Soundfonts to SoundBlaster at startup setzen wir das Hakerl.

Bei Path to asfxload or sfxload geben wir den Pfad an /usr/bin/sfxload gegebenfalls anpassen
bei Soundfonts geben wir den Pfad zu den Fonts an zB /usr/local/soundfonts/8MBGMSFX.SF2
hier ebenfalls Pfad und Fontname anpassen.

Ich würde hier auf der 1. Bank immer den Standardfont lassen (da dieser alle Instrumente hat und damit
alle Midis problemlos abspielt und keine Instrumente somit fehlen) und dann bei der 2, 3 und 4. spezielle
für Keyboard, Gitarre etc. nehmen, die klingen dann auch besser, ausserdem kann man bei Rosegarden
sowieso auswählen welche Bank man für welche Spur verwenden möchte.

Jetzt sollte Rosegarden bei jeden Start einwandfrei funktionieren und wir brauchen uns weder um Fonts
noch um jackd mehr kümmern.

PS noch ein Nachtrag falls eine Meldung wie die System-Timer Auflösung ist zu niedrig etc. kommt machen wir mal ein

cat /proc/sys/dev/rtc/max-user-freq
1024

sollte hier 32,64 etc. sein können wir das ändern mittels root in einer Konsole

echo 1024 > /proc/sys/dev/rtc/max-user-freq

und um das fix einzustellen tragen wir jetzt in die/etc/sysctl.conf folgende Zeilen ein

dev.rtc.max-user-freq = 1024

Ich hoffe das hilft jetzt einigen weiter.

Tschau aus Wien
Gerhard