[ardour-dev] Ancient history? - Problem identified

Joel White cv223 at comcast.net
Sat Nov 6 19:55:28 PST 2004

(Note that I didn't write "Problem solved" - I don't know how to solve 
it, besides a hack described below)

About a week ago, I posted a message asking about possible reasons why 
xruns seen using 0.9beta11.2 when recording to a SCSI Raid0 went away 
with 0.9beta12 (on a 2.4.23 kernel).  Paul took pity on my poor, 
tormented soul and let me have cvs access (thanks again, Paul!)  so I 
could try and track down the problem.  I went through a number of old 
cvs versions by the dates of "CVS commit" messages to the ardour-dev 
list (not sequentially - I don't have _that_ much time!) and found the 
smoking gun to be on May 7, 2004, when Jesse Chappell committed code to 
put waveforms into regions while recording.  That code pointed out where 
the problem was.

To make a long story somewhat shorter, it turns out that on my system, 
updating the regions during recording (even with "Follow playhead" 
turned off) generates xruns when the SCSI Raid is written to (i.e., 
xruns occur when the drives chirp).  Specifically, if I comment out line 
700 in  streamview.cc (this is in routine StreamView::update_rec_box() 
in 0.9beta19):

        // gtk_canvas_item_set (rect, "x2", xend, NULL);

and run Ardour with the Display Option "Show waveforms while recording" 
turned off, I get no (zero!) xruns while recording to the SCSI Raid, 
where before I got > 25 per 1 minute of recording.  Of course, I don't 
get the pinkish boxes growing across the screen, but I can live with that.

If I don't comment out that line, I get just as many xruns on the newer 
versions of Ardour as before - I hadn't tried turning "Show 
waveforms..." off before I started on my cvs quest.  I guess I thought 
the waveforms during recording were too cool.

Turning on the "Show waveforms..." still generates about 3 xruns per 
minute of recording, so I still don't know what's going on there (other 
gtk canvas access, perhaps?).  Also, running under the 
2.6.9-rc2-mm4-VP-S7 kernel still generates a handful of xruns per minute 
on either Raid or IDE drives even with the above hack, so something 
different still seems to be happening with that kernel.  I'll stick with 
2.4.23 for now.

If anybody has any ideas about what may be going on (how gtk canvas 
access + SCSI Raid writes = xruns), I'm still curious.  Also, I'm 
willing to try additional tests, if it would be helpful.

BTW, this is with gtk+ version 1.2.10.

Thanks for your time,


More information about the Ardour-Dev mailing list