MIDI Timing and PC soundcards

Thomas Hudson thudson at cygnus.com
Mon Oct 12 21:51:02 CEST 1998


>
> I'm just beginning to get into PC based MIDI sequencing, and I'm a little
> confised about all the talk about timing, and how 'dreadful' a PC
> is at this.
>
> What exactly is the issue here? How could anything as fast as even a
> 486DX33 be SLOW enough as to not keep up with the pace of MIDI data? Isn't
> the processor magnatudes faster than the requirements of the MIDI
> data stream?
>
I don't believe it is a hardware issue. It has more to do with modern
OS's. With something like DOS, you have complete control of the machine
and no competing processes, so timing is quite good. But modern multitasking
OS's like Linux or NT weren't really designed with firm real time in mind.

Delivering what a driver has read to your user-space process in a
reasonable amount of time is not the only concern, being consistent is
a problem too. For example, if it takes the OS 10ms to deliver one event
then 1ms to deliver the next, etc. this causes jitter. Humans are quite
good at compensating for a consistent delay (think of time delays
associated with distance in a marching band or orchestra), but when
the delay time keeps changing it is maddening...

I have heard that win3.1/95/98 is not that bad (simply because it's not
a real OS). With Windows NT you really need to use DirectX (the standard
MIDI stuff is 16 bit and uses thunking).

For Linux, the ALSA stuff has the best interface and does most timing
related stuff in the kernel. Of course it helps to not have a lot of
other users on the system. Of course, other users are not a problem
on WinNT/Win95/98 ;-).

Thomas




More information about the Synth-diy mailing list