--
I have been working on and off for sometime trying to get OPL3 FM
Synth (NOT the WaveTable Synth) to work under ALSA with a AOpen
(I'm fairly sure) Ymf744B Card. I have even gone as far as writing
some simple code to communicate directly with the /dev/dmfm
(/dev/sound/dmfm) device and thus at least verify that the OPL3 was
reachable.
My basic setup is the default asound startup script, modified to
modprobe oss modules and snd-opl3-synth. The kernel driver is the
latest CVS as of The End of August, and the sbiload is the latest
cvs version. When I am trying to get the OPL3 FM Synth to work,
I use a simple script to run sbiload with the std and drum patches
as follows:
/usr/bin/sbiload -p65:0 -v $1 --opl3 \
/usr/share/alsa/banks/opl3/drums.o3 \
/usr/share/alsa/banks/opl3/std.o3
Once the Patches are loaded, then I try to run pmidi and playmidi
to see if ALSA and OSS midi is now working.
pmidi -p 65:0 W2Humans.mid
and
playmidi [-r] W2Humans.mid
Both seem to hang for 3 minutes(the length of the clip) and
playmidi -r seems to indicate that indeed the player thinks
the midi file is playing. No sound. :(
It seemed like the midi channel might be muted. So I have double
checked to make sure all the mixer controls were turned on and up,
just in case. I recall some previous post mentioning a synth, midi,
or a FM mixer control; none of which I can manage to find, and the
ones I have found (master*,wave,pcm,external,cd,etc) are unmuted and
have been tested turned all the way up.
If anyone can help/share experiences it would be appreciated.
It seems that there is at least one person out there on this list
with a similar problem with the same card(first appearing in April),
and I was curious how far he had managed to get with the OPL3.
I have tried to include text/links of various pieces of information,
which might help in a diagnosis. And a Test program for accessing
the direct FM device, in a last ditch attempt to make sure I could
talk to the OPL3 at least. The error output I get is included.
Thanks
Philip Thiem
Loaded Modules
--
snd-seq-midi
snd-seq-oss
snd-seq-midi-event
snd-pcm-oss
snd-mixer-oss
snd-opl3-synth
snd-seq-instr
snd-seq-midi-emul
snd-seq
snd-ainstr-fm
snd-ymfpci
snd-pcm
snd-mpu401-uart
snd-rawmidi
snd-opl3-lib
snd-hwdep
snd-seq-device
snd-timer
snd-ac97-codec
snd
soundcore
/etc/modutils.conf(relavent)
--
###
#ALSA Core
###
# ALSA portion
alias char-major-116 snd
options snd snd_cards_limit=1 snd_device_mode=660 snd_device_gid=29
# OSS/Free portion
alias char-major-14 soundcore
###
#ALSA Drivers
###
# ALSA portion
alias snd-card-0 snd-ymfpci
# OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
pmidi -l gives
--
Port Client name Port name
64:0 External MIDI 0 MIDI 0-0
65:0 OPL3 FM synth OPL3 Port
/proc/pci and /proc/ioports output
--
Bus 0, device 9, function 0:
Multimedia audio controller: Yamaha Corporation YMF-744B [DS-1S Audio
Controller] (rev 2).
IRQ 5.
Master Capable. Latency=32. Min Gnt=5.Max Lat=25.
Non-prefetchable 32 bit memory at 0xdb00 [0xdb007fff].
I/O at 0xdc00 [0xdc3f].
I/O at 0xe000 [0xe003].
dc00-dc3f : Yamaha Corporation YMF-744B [DS-1S Audio Controller]
dc00-dc01 : OPL2/3 (left)
dc02-dc03 : OPL2/3 (right)
dc20-dc21 : MPU401 UART
e000-e003 : Yamaha Corporation YMF-744B [DS-1S Audio Controller]
e400-e43f : 3Com Corporation 3c905 100BaseTX [Boomerang]
e400-e43f : 00:0a.0
/proc/asound/version
--
Advanced Linux Sound Architecture Driver Version 0.9.0rc3.
Compiled on Sep 4 2002 for kernel 2.4.19-xfs with versioned symbols.
/prov/asound/seq/clients
--
Client info
cur clients : 4
peak clients : 5
max clients : 192
Client 0 : System [Kernel]
Port 0 : Timer (Rwe-)
Port 1 : Announce (R-e-)
Connecting To: 63:0
Client 63 : OSS sequencer [Kernel]
Port 0 : Receiver (-we-)
Connected From: 0:1
Client 64 : External MIDI 0 [Kernel]
Port 0 : MIDI 0-0 (RWeX)
Client 65 : OPL3 FM synth [Kernel]
Port 0 : OPL3 Port (-We-)
Port 1 : OPL3 OSS Port (-we-)