On Fri, 2010-06-25 at 15:05 -0600, Gustin Johnson wrote: > On 10-06-25 02:02 PM, Ralf Mardorf wrote: > > Hi :) > > > > I guess no answer is an answer :D. > > > Not necessarily. You could be asking the wrong question and or in the > wrong place. > > > 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 :(. > > I would hesitate to jump to this conclusion if I were you. I would also > rephrase this. Saying someone did a bad job but providing no real proof > is not usually a successful strategy in the open source world. > > Also getting no answer may indicate a completely different problem. > > > Hopefully I'm just paranoid and wrong ;). > > I don't think paranoia is the right word. > > > > 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 > > > _______________________________________________ > 64studio-users mailing list > [email protected] > http://lists.64studio.com/mailman/listinfo/64studio-users
The question is very simple. The UART (used by MPU etc.) in the 80ies very seldom the ACIA too, can be used directly on Assembler or by grotesque detours and C must not be the bad, if one knows what he does on C. At least I wonder about the statements from Paul Davis, the Guru for RT Linux. It is completely nonsense what he has written, that there anything regarding to the time is fixed for an asynchronous serial interface. If you take care about the CTS/RTS there's nothing fixed. He doesn't know what he was talking about. I do know what I'm talking about, hence it was my job and in addition I did what today is called FLOSS myself a long time before there was Linux rt. The big OZ Mr. Davis did wrote nonsense, idiotic stuff, he complete has no knowledge about RT MIDI regarding to software + hardware. That's it! Cheers! Ralf PS: Is MIDI for Linux an RT thread? Is it? Or could e.g. the graphics interrupt the movement from ALSA seq to the MIDI interface? I've got no knowledge about Linux, but I do have knowledge about hardware + software regarding to music and especially regarding to MIDI. What's bad with my question? Jitterless MIDI does mean you have to program for MIDI rt too, this means you request CTS/RTS and do write one byte directly to the MIDI interface. If it should be done on Linux in any other way, than it's incompetent programed. ALSA seq might not be the bad, but how is it handled to talk to the UART? Is runtime lib a talking to runtime lib b? If so the coders did a bad job. This isn't the way you can handle an asynchronous serial interface for real time. _______________________________________________ 64studio-users mailing list [email protected] http://lists.64studio.com/mailman/listinfo/64studio-users
