Re: [LAD] automation on Linux (modular approach)

From: Philipp <hollunder@email-addr-hidden>
Date: Fri Mar 26 2010 - 10:46:59 EET

Excerpts from fons's message of 2010-03-25 11:22:40 +0100:
> On Thu, Mar 25, 2010 at 10:19:50AM +0100, Philipp wrote:
>
> > Very strange, -Xraw is said to perform better than -Xseq.
> > Maybe there's a difference between outboard and software?
> >
> > In software land jack midi is the clear winner, -Xraw is said to perform
> > better than -Xseq, so if it's different for outboard gear, where does
> > the difference come from?
>
> I haven't looked closely at the MIDI code in Jack's Alsa
> backend, so I can't tell. But AFAIK
>
> 1. Alsa's Raw interface does not provide scheduling of
> events to be transmitted at some particular time,
> nor timestamps on received events.
>
> If timing is important to your use, you have to do
> it yourself, by calling the write() function at the
> right time, and by reading some timer for received
> data.
>
> Assuming that the backend is not doing this, event
> timing would be quantised to audio period boundaries.
> Note that doing your own timing in this case requires
> a separate thread - the backend as seem from Jack's
> engine must never wait, except for audio period
> boundaries.
>
> Also to ensure immediate transmission when calling
> the write() function, the caller has to either open
> the device with the SYNC flag set, or use the drain()
> function. Failure to do either could explain the very
> large quantisation I observed with the raw interface
> - it leaves it up to the Alsa code when to transfer
> data from user space to kernel (driver) space, and
> this decision will probably be based on the number
> of bytes waiting etc.
>
> 2. The Alsa Sequencer interface allows to put a timestamp
> on transmitted data, and then Alsa will ensure it gets
> transmitted at the right time. It will also provide
> timestamps on received data.
>
>
> Ciao,
>
> --
> FA
>
> O tu, che porte, correndo si ?
> E guerra e morte !

Thanks Fons.
It's a bit of technical detail overload for me, but in essence, if I got
it right:
Alsa sequencer does timestamping/scheduling.
Jack midi does it as well, probably more accurate.
Raw doesn't do it at all.

Consequences:
..there are so many possible combinations here, especially with
a2jmidid in the equation, and they'd need to be tested :)

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri Mar 26 12:15:01 2010

This archive was generated by hypermail 2.1.8 : Fri Mar 26 2010 - 12:15:01 EET