Subject: Re: [alsa-devel] Re: ALSA midi problems Was: Re: [linux-audio-dev] disk-based sampler:
From: Jaroslav Kysela (perex_AT_suse.cz)
Date: Sat Jul 15 2000 - 11:46:34 EEST
On Sat, 15 Jul 2000, Benno Senoner wrote:
> On Sat, 15 Jul 2000, Chris Baugher wrote:
> > The patch worked! I was also able to decrease the value to 5000 without
> > causing the "resource unavailable" error. The response seems quite good
> > although I'm not a keyboard player so I might not be a good judge. As far
> > as the midi problem goes, I ran the following code to try to reproduce the
> > error:
>
> I _STRONGLY_ suspect that this error is due to broken blocking MIDI
> I/O in ALSA, but it would be nice to get a confirmation from the ALSA folks.
> ( all on vacation ? :-))) )
ALSA doesn't use blocking I/O at all for the OSS emulation. If I remember
correctly, the OSS code had not this feature at the design time of the
ALSA raw midi layer (KeyKit package had big troubles with the correct
implementation), so we have these lines in our code:
#ifdef CONFIG_SND_OSSEMUL
if (minor < 256)
file->f_flags |= O_NONBLOCK;
#endif
I hope that it explains all your problems. It appears that latest OSS/Free
implements O_NONBLOCK well, so I removed these lines from the ALSA
rawmidi code.
BTW: The best solution for the midi input is non-blocking I/O with
select() or poll() usage and bigger read buffer than 1 (to minimize
interactions with the kernel when more bytes are received).
Jaroslav
-----
Jaroslav Kysela <perex_AT_suse.cz>
SuSE Linux http://www.suse.com
ALSA project http://www.alsa-project.org
This archive was generated by hypermail 2b28 : Sat Jul 15 2000 - 12:14:21 EEST