Hi :) I guess no answer is an answer :D.
There are several ways to program for asynchronous serial interfaces, but there's only one way regarding to real time MIDI. When I programmed on Assembler in the 80ies I directly talked to the UART, and request CTS/RTS for every single byte. It's also possible not to use CTS/RTS for every single byte, but than you need to add headroom for the time. While it wouldn't be such a drama, if 1ms headroom would be 1ms, it's a drama because for such a long time a lot of IRQs are able to produce jitter, but a constant latency. I guess the MIDI coders for Linux did a bad job. I might be wrong, but as I said before, getting no answer is getting an answer :(. Hopefully I'm just paranoid and wrong ;). Cheers! Ralf -------- Forwarded Message -------- From: Ralf Mardorf <[email protected]> To: Paul Davis <[email protected]> Cc: James Morris <[email protected]>, Linux Audio Developers <[email protected]>, 64studio-users <[email protected]> Subject: Re: [LAD] basic MIDI note-on/note-off questions Date: Fri, 25 Jun 2010 15:51:13 +0200 On Fri, 2010-06-25 at 15:36 +0200, Ralf Mardorf wrote: > On Fri, 2010-06-25 at 14:38 +0200, Ralf Mardorf wrote: > > On Fri, 2010-06-25 at 08:29 -0400, Paul Davis wrote: > > > On Fri, Jun 25, 2010 at 6:55 AM, James Morris <[email protected]> wrote: > > > > Hi, > > > > > > > > I keep getting surprised at some of the most basic problems I run > > > > into... This time, processing order. > > > > > > just remember that in "real" MIDI, nothing can be simultaneous. its a > > > serial protocol without timestamps. with traditional serial MIDI, the > > > time interval between bits and bytes is also fixed, creating a fixed > > > minimal interval between any two note on/off messages. > > > > In addition, the UART gives information about being ready to send. It's > > not fixed to e.g. 1ms. There's a register giving this information. > > Note, there's nothing fixed, the limitation is just for the max Baud > MIDI is able to do. Regarding to the term 'fixed' UART is for 'Universal > Asynchronous Receiver Transmitter', the important word is > 'Asynchronous'. We are talking about microseconds, taking care about the > CTS and RTS registers. Regarding to all that MIDI jitter, I wonder if > ALSA seq, might has to do with it. I don't know, perhaps there are > issues for USB specifications, but maybe there's something bad for this > 'timestamp' routs. > > *?* > > I programmed on Assembler directly using the UART and there never was > jitter. > > Could this be a reason for MIDI jitter using Linux or has it nothing to > do with it? Because, at the other hand there's no jitter internal the > studio in the box. > > *?* > > Ralf I can't remember, perhaps CTS and RTS are flags in one register and maybe they have other acronyms ;), anyway, this is the important stuff. Pedro Lopez-Cabanillas did post the technical specifications. _______________________________________________ 64studio-users mailing list [email protected] http://lists.64studio.com/mailman/listinfo/64studio-users
