On Fri, 2010-06-25 at 22:02 +0200, Ralf Mardorf wrote:
> 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

PS:

I'm not sure, possible even it's needed to check CTS/RTS for the UART at
all events (a long time ago since the 80ies), anyway, there is the
possibility to control the UART with major priority by directly talking
to it, or by using blabla seq talking to blabla serial interface handler
written on C, were nobody knows what time consuming = IRQ allowing
headroom it will produce. I suspect incompetent programming at least as
one part for the hw MIDI jitter issue.
I guess MIDI on Linux isn't programmed for rt threads.

BUT I don't know, nobody did reply.

> -------- 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

Reply via email to