Hi *,
I need to follow up to myself here to correct what I said last week:

> Hmm..well, I once noticed dropped notes with my Emu10k1-based
> Soundblaster PCI512 as well (most obvious when using pmidi, but it also
> happened with MusE). I had made some attempts to find out where exactly
> this note-dropping would happen, but I've never gotten very far.

I'd like to take this back. I was probably using a very old version of
pmidi then; I checked Steve Ratcliffe's pages at
http://www.parabola.demon.co.uk/alsa/pmidi.html, and version 1.5.4 from
August 2001 works actually very good on my setup (kernel 2.4.16, ALSA
0.9.0beta10). I believe I heard a lost note here and there every couple
of seconds, but this might actually have been intentional in the MIDI
files (it was a "missing" HiHat here and there - could have been the
composers' taste).

My problems with MusE and it stopping to play back notes through Emu10k1
after a while is still there, though. I can reproduce this quite easily:
I create a track, set the output device to Emu10k1 synth, create a short
(2-bar) part, set it to loop play and put in some drums (4-to-the-floor
bass, snare, hihat) while it plays back. After some 5 - 10 iterations
through the loop area, notes suddenly "die off" and I don't hear
anything anymore. Restarting MusE helps.

I had a look yesterday at how MusE and pmidi do their MIDI playback, and
noticed that pmidi uses ALSA queues and lets ALSA know about the tempo
of the song (snd_seq_queue_tempo_set_tempo() etc) while MusE has a more
"direct approach" to sending notes (damn, I wish I knew more about
ALSA..sorry for being so imprecise here). Could it be MusE's MIDI
playback makes some ALSA-provided queues overflow and this causes the
lost notes? Is it feasible to rewrite MusE to make use of queues as well
if this helps, or does MusE need full control over when and how notes
are played back? These ideas are just a wild guess - laugh at me if this
makes no sense :-).

What I found quite astounding is how brave pmidi keeps its timing: It
uses no extra threads, no RTC, no suid-root privileges (and my kernel
doesn't have LL or PE patches built in right now), but still plays back
a 10-track MIDI file very time-stable even if I do something like "start
Gimp, Mozilla and Netscape in parallel and switch from the X11 tty to a
text console and back at the same time" (I want to do some more stress
tests here). I guess this shows the power behind ALSA and what correct
ALSA programming can do. It goes without saying that during a playback
of a MIDI file with pmidi the system load produced by it was pretty much
0. Impressive.

Regards,
Frank
-- 
      Frank Neumann ([EMAIL PROTECTED]), VIONA Development Center
            ST Microelectronics, Karlstraße 27, 76133 Karlsruhe

_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to