Dazu muss eine Soundausgabe von ALSA auf den MIDI-Devices erreicht werden. Gelistet werden sowohl in kmid als auch in noteedit folgende Devices:

  • External MIDI 0 MIDI 0-0
  • SiS 7018 SiS 7018 port 0
  • SiS 7018 SiS 7018 port 1
  • SiS 7018 SiS 7018 port 2
  • SiS 7018 SiS 7018 port 3

In kmid wird parallel auf Konsole ausgegeben, dass all diese Devices geöffnet und initialisiert wurden. Allein, es wird kein Sound gespielt. Eine Änderung der Lautstärke in kmid scheint korrekt zu funktionieren, denn es wird auf der Konsole jeweils »Position reached!« ausgegeben. Es liegt nicht daran, dass keine Lautstärke eingestellt ist (vgl. z.B. die Ausgabe von amix für Kanal »Music«). Da sonst wirklich alles fuktioniert, scheint es eher so, als sei in diesem Notebook nicht nur die MIDI-Schnittstelle nicht eingebaut, sondern auch die interne MIDI-Synthese zumindest nicht mit der Lautsprecher-Ausgabe verbunden worden. Sie ist als Device vorhanden, läuft sich aber irgendwie tot. So als habe das Notebook gar keine MIDI-Unterstützung. Zwar sagt noteedit beim Start »TSE3 ALSA MIDI Scheduler created«, aber dieses Gerät kann hardwaremäßig gar keinen Sound ausgeben!

Den Symptomen nach (erkannte MIDI-Devices, Abspielen funktioniert, nur der Sound fehlt; Abspielen unter Windows funktioniert) besteht das Problem darin, dass die interne MIDI-Synthese der SiS 7018 mit Wavetable funktioniert und deshalb zuerst ein Soundfont geladen werden muss. Wie geschieht das? Bei normaler AWE32/64-Synthese verwendet man dazu sfxtest und sfxload. Der Treiber für normale AWE32/64-Synthese funktioniert nach /usr/src/linux/Documentation/sound/AWE32 aber nur mit ORIGINAL SoundBlaster-Wavetable-Soundkarten.

Das Device zur Wiedergabe durch interne MIDI-Synthese ist /dev/music (noch zu überprüfen).

General MIDI Sound font: http://members.xoom.com/yar/synthgm.sbk.gz . Einträge am Ende von /etc/modules.conf zur Verqwendung von AWE32/64:

alias sound-slot-0 sb alias sound-service-0-1 awe_wave
post-install awe_wave /usr/local/bin/sfxload PATH_TO_SOUND_BANK_FILE

Benötigt wird Information, um die Wavetable-Funktionalität beim Treiber snd-card-trident.o nutzen zu können. Nach Informtionen aus dem Sourcecode des ALSA-Treibers (/usr/src/packages/SOURCES/alsa-driver-0.5.10b/cards/card-trident.c) hat dieser Treiber nur ein RawMidi-Device, aber keines, das interne Synthese beherrscht. Die Wavetable-Funktionalität kann also mit diesem Treiber nicht genutzt werden. Anscheinend sind die 4 in kmidi angezeigten Ports alles externe MIDI-Devices (die aber hardwaremäßig nicht implementiert sind: keine MIDI-Schnittstelle), die Devices für interne Synthese existieren nicht.

Besteht eine Möglichkeit, die MIDI-Ereignisse auf /dev/midi mit aconnect / alsaseq abzufangen und per Streaming an eine Software-Synthese mit timidity weiterzuleiten?

Neuere Version des ALSA-Treibers verwenden oder OSS-Treiber oder Kerneltreiber?

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>