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 [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
