\version "2.15.8"
#(define (bounding-coords grob-coord bar-coords end-coord)
(if (null? (cdr bar-coords))
(cons (car bar-coords) end-coord)
(if (and (< (car bar-coords) grob-coord)
(> (cadr bar-coords) grob-coord))
(cons (car bar-coords)(cadr bar-coords))
(bounding-coords grob-coord (cdr bar-coords) end-coord))))
#(define (center-on-measure grob)
(let* ((sys (ly:grob-system grob))
(array (ly:grob-object sys 'all-elements))
(grob-coord (interval-center (ly:grob-extent grob sys X)))
(grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name)))
(bars (filter (lambda (x) (eq? 'NonMusicalPaperColumn (grob-name x)))
(ly:grob-array->list array)))
(bar-coords (sort (map (lambda (x) (interval-center (ly:grob-extent x sys X))) bars) <))
(bounds (bounding-coords grob-coord bar-coords (cdr (ly:grob-extent sys sys X)))))
(cons
(- (- grob-coord (/ (+ (car bounds) (cdr bounds)) 2)))
0)))
{
\override TextScript #'extra-offset = #center-on-measure
\repeat unfold 10 { s1_"|"^"|" }
s2_"|"^"|"
}