> >IMHO a MIDI driver should be a (real time) user space process able to
> >accurately transmit MIDI events on the hardware from
> >CLOCK_MONOTONIC or something similar.
> 
> IMHO, to "accurately transmit" means that you have to be able to
> schedule with an accuracy at a resolution of 1 MIDI byte (320usec).
> 
> CLOCK_MONOTONIC cannot, by itself, accomplish this, and isn't
> necessary. One might say its an unnecessary and insufficient condition :)

No, it doesn't accomplish this, but it can. The kernel will have to support
it, so Linux will have to gain accurate scheduling. In the meantime I think
getting the clock resolution on Intel from 10ms down to 1ms will be
sufficient in most cases.

> What is needed is an extraordinarily (by comparison with most systems)
> high resolution timer. This can only be provided by (1) a device like
> the timer on the old GUS boards or (2) something like what the KURT
> patches do (constantly reprogram the system timer to interrupt when
> needed).
> 
> Without them, I don't see how this can ever be done with the correct
> timing. I define correct to be the timing that would be obtained from
> a device driver that blocked all interrupts but its own, and had a
> queue of say 4kB of MIDI data that it delivered in an uninterrupted
> stream via a h/w MIDI port. 

I really don't think that's necessary. A <<ms accurate time should
be sufficient.

--martijn


Reply via email to