Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ALSA midi SBLive - sfxload?

0 views
Skip to first unread message

Rick Macdonald

unread,
Feb 9, 2004, 5:10:16 PM2/9/04
to

In order to get MIDI going I upgraded to sid, updated kernel 2.4.19 to
2.4.24 and switched form the kernel sound driver to ALSA. Everything still
works (xmms can play mp3 to ALSA output, for example), but still no MIDI
sound.

lsmod shows all the modules as shown below. Playing a midi file goes
through the motions (no errors) but no sound. I unmuted and turned up the
volume on every device in alsamixer.

Searching the web and Debian site uncovered that I may need to load "sound
fonts" with sfxload, but it's not clear to me if this is still required or
not. Also, the awesfx package no longer exists.

What do I need to do next?


rickm@timshel:~$ lsmod
Module Size Used by Tainted: P
snd-pcm-oss 39172 0
snd-seq-midi 4032 0 (autoclean)
snd-seq-oss 29600 0 (autoclean)
snd-mixer-oss 13392 0 (autoclean) [snd-pcm-oss]
snd-emu10k1-synth 4636 0
snd-emu10k1 74532 7 [snd-emu10k1-synth]
snd-pcm 60068 0 [snd-pcm-oss snd-emu10k1]
snd-hwdep 5280 0 [snd-emu10k1]
snd-page-alloc 6452 0 [snd-emu10k1 snd-pcm]
snd-ac97-codec 47532 0 [snd-emu10k1]
snd-emux-synth 28156 0 [snd-emu10k1-synth]
snd-util-mem 1264 0 [snd-emu10k1 snd-emux-synth]
snd-seq-midi-emul 5008 0 [snd-emux-synth]
snd-seq-virmidi 3288 0 [snd-emux-synth]
snd-seq-midi-event 3264 0 [snd-seq-midi snd-seq-oss snd-seq-virmidi]
snd-seq 36784 2 [snd-seq-midi snd-seq-oss snd-emux-synth
snd-se
q-midi-emul snd-seq-virmidi snd-seq-midi-event]
snd-timer 14724 0 [snd-pcm snd-seq]
snd-rawmidi 13504 0 [snd-seq-midi snd-emu10k1 snd-seq-virmidi]
snd-seq-device 4304 0 [snd-seq-midi snd-seq-oss
snd-emu10k1-synth snd
-emu10k1 snd-emux-synth snd-seq snd-rawmidi]
snd 32004 7 [snd-pcm-oss snd-seq-midi snd-seq-oss
snd-mixer
-oss snd-emu10k1 snd-pcm snd-hwdep snd-ac97-codec snd-emux-synth
snd-util-mem sn
d-seq-virmidi snd-seq-midi-event snd-seq snd-timer snd-rawmidi
snd-seq-device]
nvidia 1962496 6 (autoclean)

...RickM...


--
To UNSUBSCRIBE, email to debian-us...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Henrique de Moraes Holschuh

unread,
Feb 9, 2004, 7:10:08 PM2/9/04
to
On Mon, 09 Feb 2004, Rick Macdonald wrote:
> Searching the web and Debian site uncovered that I may need to load "sound
> fonts" with sfxload, but it's not clear to me if this is still required or
> not. Also, the awesfx package no longer exists.
>
> What do I need to do next?

You can either use timidity (software synthesis), or you need to find
something to upload the soundfonts to the wavetable synthesizer in your Live
card. And the soundfonts as well, of course.

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

Rick Macdonald

unread,
Feb 9, 2004, 7:50:08 PM2/9/04
to

Henrique de Moraes Holschuh said:
> On Mon, 09 Feb 2004, Rick Macdonald wrote:
>> Searching the web and Debian site uncovered that I may need to load
>> "sound
>> fonts" with sfxload, but it's not clear to me if this is still required
>> or
>> not. Also, the awesfx package no longer exists.
>>
>> What do I need to do next?
>
> You can either use timidity (software synthesis), or you need to find
> something to upload the soundfonts to the wavetable synthesizer in your
> Live
> card. And the soundfonts as well, of course.

timidity is installed and works but I need true midi now.

Any idea why awesfx was removed from the Debian packages?

I found one on the web (awesfx_0.4.4-5_i386.deb). I found some SF2 files
(CT4MGM.SF2 CT8MGM.SF2) from my Windows machine with an SB Extigy. Will
they work? Somewhere I have the CDs from the SBLive card if I need them.

Can I mess up the SBLive card running sfxload?

...RickM...

Roy Pluschke

unread,
Feb 9, 2004, 8:20:11 PM2/9/04
to
On February 9, 2004 04:42 pm, Rick Macdonald wrote:
> Henrique de Moraes Holschuh said:
> > On Mon, 09 Feb 2004, Rick Macdonald wrote:
> >> Searching the web and Debian site uncovered that I may need to load
> >> "sound
> >> fonts" with sfxload, but it's not clear to me if this is still required
> >> or
> >> not. Also, the awesfx package no longer exists.
> >>
> >> What do I need to do next?
> >
> > You can either use timidity (software synthesis), or you need to find
> > something to upload the soundfonts to the wavetable synthesizer in your
> > Live
> > card. And the soundfonts as well, of course.
>
> timidity is installed and works but I need true midi now.
>
> Any idea why awesfx was removed from the Debian packages?
>
> I found one on the web (awesfx_0.4.4-5_i386.deb). I found some SF2 files
> (CT4MGM.SF2 CT8MGM.SF2) from my Windows machine with an SB Extigy. Will
> they work? Somewhere I have the CDs from the SBLive card if I need them.
>
> Can I mess up the SBLive card running sfxload?
>

I use the awesfx package on my debian box without any problems (soundblaster
live card). The sound fonts that come with the soundcard are called
2gmgsmt.sf2, 4gmgsmt.sf2 and 8mbgmsfx.sf2 which I'm sure you can find with a
quick google. Note that using the cards wave synth under alsa drops an
occasional note. See the alsa home page about this bug.

> timidity is installed and works but I need true midi now.

I don't understand the above statement. Timidity is/has true midi. To run
timidity as a alsa synth start up timidity like this:

timidity -Os -iA -B2,8 &

Its best to have timidity suid root so that it can use the real time
scheduler/clock or whatever it is called. In your application i.e.
rosegarden or noteedit just select the timidity synth instead of the
soundcard synth. The timidity samples are much better that the 8mb sound
fonts that come by default with the soundblaster cards.

R.J.P.

Rick Macdonald

unread,
Feb 9, 2004, 9:20:05 PM2/9/04
to

Roy - thanks for all the info! I've had timidity installed and working for
years, but I gather it does more than I thought. I might be able to get by
with it after all. Am I correct in assuming that with ALSA my MIDI H/W
ports are probably working now? I haven't had a chance to test yet.

rickm@timshel:~$ lspci | grep SB
02:0d.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)
02:0d.1 Input device controller: Creative Labs SB Live! MIDI/Game Port
(rev 08)


...RickM...

Roy Pluschke

unread,
Feb 9, 2004, 10:00:20 PM2/9/04
to
On February 9, 2004 05:53 pm, Rick Macdonald wrote:
> Roy - thanks for all the info! I've had timidity installed and working for
> years, but I gather it does more than I thought. I might be able to get by
> with it after all. Am I correct in assuming that with ALSA my MIDI H/W
> ports are probably working now? I haven't had a chance to test yet.
>

From what I can tell from here, yes.

I'm not sure what timidity sound patches, if any, debian currently has.
I would highly recommend the "eawpats" which are available here

http://www.stardate.bc.ca/eawpatches/eawpats12_full.rar

You will need to "unrar" them (apt-get install unrar)
unrar e -y whatever.rar

I placed them in /usr/share/timidity/eawpats/
my timidity.cfg file looks as follows

# start
dir /usr/share/timidity/eawpats/
source gravis.cfg
source gsdrums.cfg
source gssfx.cfg
source xgmap2.cfg
# end

Conrad Newton

unread,
Feb 10, 2004, 2:40:06 AM2/10/04
to
From Roy Pluschke on Monday, 2004-02-09 at 18:50:36 -0800:

> On February 9, 2004 05:53 pm, Rick Macdonald wrote:
> > Roy - thanks for all the info! I've had timidity installed and working for
> > years, but I gather it does more than I thought. I might be able to get by
> > with it after all. Am I correct in assuming that with ALSA my MIDI H/W
> > ports are probably working now? I haven't had a chance to test yet.
>
> From what I can tell from here, yes.
>
> I'm not sure what timidity sound patches, if any, debian currently has.

The package is called "timidity-patches".

Conrad

Roy Pluschke

unread,
Feb 10, 2004, 3:40:11 AM2/10/04
to
On February 9, 2004 11:35 pm, Conrad Newton wrote:
> From Roy Pluschke on Monday, 2004-02-09 at 18:50:36 -0800:
> > On February 9, 2004 05:53 pm, Rick Macdonald wrote:
> > > Roy - thanks for all the info! I've had timidity installed and working
> > > for years, but I gather it does more than I thought. I might be able to
> > > get by with it after all. Am I correct in assuming that with ALSA my
> > > MIDI H/W ports are probably working now? I haven't had a chance to test
> > > yet.
> >
> > From what I can tell from here, yes.
> >
> > I'm not sure what timidity sound patches, if any, debian currently has.
>
> The package is called "timidity-patches".
>
> Conrad

The package only exists in stable and is missing from testing and unstable --
don't know why perhaps some licencing issues. The "timidity-patches" are not
of the same quality as the "eawpats". 10mb as opposed to 24mb, the difference
is quite audible.

R.J.P.

Rick Macdonald

unread,
Feb 10, 2004, 11:20:15 AM2/10/04
to

Roy Pluschke said:
> On February 9, 2004 04:42 pm, Rick Macdonald wrote:

>> timidity is installed and works but I need true midi now.
>
> I don't understand the above statement. Timidity is/has true midi. To run
> timidity as a alsa synth start up timidity like this:
>
> timidity -Os -iA -B2,8 &

> Its best to have timidity suid root so that it can use the real time
> scheduler/clock or whatever it is called.

Yes, this works fine! So far I just tried "pmidi -p 128:0".

Now what I really need to do is get the test program working (code is
below), so I need to know an actual device name, but I can't get it
working.

I straced pmidi:

rickm@timshel:~/SRC$ strace -f pmidi -p 128:0 ~/Rainbow4.mid 2>&1 | grep
/dev
open("/dev/snd/seq", O_RDWR) = 3

and it seems that it uses /dev/snd/seq, but playmidi doesn't like this:

rickm@timshel:~/SRC$ playmidi -D /dev/snd/seq ~/Rainbow4.mid
Playmidi 2.4 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai
playmidi: No playback device found.

However, telling playmidi to use "external midi" does work:

rickm@timshel:~/SRC$ strace -f playmidi -e ~/Rainbow4.mid 2>&1 |grep seq
open("/dev/sequencer", O_WRONLY) = 3
Requested buffer size 2048, fragment size 1024
ALSA pcm 'default' set buffer size 2048, period size 1024 bytes

But putting "-D /dev/sequencer" on the playmidi command line does _not_ work.

I've tried all these device names in the code below and none work. Any
idea how to get the test program to work? (I tried adding a sleep(3)
before the close in case it was cutting off the note, but it didn't help).

rickm@timshel:~/SRC$ playmidi --help
Playmidi 2.4 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai
This is free software with ABSOLUTELY NO WARRANTY.
For details please see the file COPYING.
usage: playmidi [-options] file1 [file2 ...]
-v verbosity (additive)
-i x ignore channels set in bitmask x (hex)
-c x play only channels set in bitmask x (hex)
-x x exclude channel x from playable bitmask
-p [c,]x play program x on channel c (all if no c)
-V [c,]x play channel c with volume x (all if no c)
-t x skew tempo by x (float)
-d don't play any percussion
-P x play percussion on channel x
-e output to external midi
-D x output to midi device x
-f output to fm (sb patches)
-4 output to 4-op fm (opl/3 patches)
-a output to awe32 wave synth
-h x skip to header x in large archive
-g output to gravis ultrasound
-E x play channels in bitmask x external
-F x play channels in bitmask x on fm
-G x play channels in bitmask x on gus
-A x play channels in bitmask x on awe32
-z ignore channel of all events
-8 force 8-bit samples on GUS
-M enable MT-32 to GM translation mode
-I show list of all GM programs (see -p)
-R x set initial reverb to x (0-127)
-C x set initial chorus to x (0-127)
-r real-time playback graphics

I couldn't seem to get "amidi" to work either:

rickm@timshel:~$ amidi -p hw:128,0 -S "90 40 ef"
cannot open port "hw:128,0": No such device

rickm@timshel:~/SRC$ pmidi -l
Port Client name Port name
64:0 Rawmidi 0 - EMU10K1 MPU-401 (U 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
128:0 Client-128 TiMidity port 0
128:1 Client-128 TiMidity port 1
rickm@timshel:~/SRC$ amidi -l
Device Name
hw:0,0 EMU10K1 MPU-401 (UART)
hw:0,1 Emu10k1 Synth MIDI (16 subdevices)
hw:0,2 Emu10k1 Synth MIDI (16 subdevices)

My midi test program:

//
// Programmer: Craig Stuart Sapp [cr...@ccrma.stanford.edu]
// Creation Date: Mon Dec 21 18:00:42 PST 1998
// Last Modified: Mon Dec 21 18:00:42 PST 1998
// Filename: ...linuxmidi/output/method1.c
// Syntax: C
// $Smake: gcc -O -o devmidiout devmidiout.c && strip devmidiout
//

#include <linux/soundcard.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

int main(void) {
// char* device = "/dev/midi" ;
char* device = "/dev/sequencer" ;
unsigned char data[3] = {0x90, 60, 127};

// step 1: open the OSS device for writing
int fd = open(device, O_WRONLY, 0);
if (fd < 0) {
printf("Error: cannot open %s\n", device);
exit(1);
}

// step 2: write the MIDI information to the OSS device
write(fd, data, sizeof(data));

// step 3: (optional) close the OSS device
close(fd);

return 0;
}

...RickM...

0 new messages