[Alsa-user] Re: [MusE] Muse compilation (me: EMU10K MIDI problems - the same old thing, Mr. Iwai)
Brought to you by:
perex
From: Frank N. <Fra...@st...> - 2002-01-16 10:32:39
|
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 --=20 Frank Neumann (Fra...@st...), VIONA Development Center ST Microelectronics, Karlstra=DFe 27, 76133 Karlsruhe |