Lilypond: how to add the number of repetitions above a bar












2















I am working with a score in Lilypond that has a lot of repetitions, where basically every bar has to be repeated a certain number of times. I would like to be able to write above every bar the number of times it should be repeat, similar to the score below (which was not created in Lilypond):



enter image description here



It would be great to be able to have some brackets above the bar and also to have the "3x" centralized, just like in the example above. So far, the only (temporary) solution I was able to come up with in Lilypond was to add repeat bars and then simply write "3x" above the first note of every bar (since I could not have it centralized on the bar either). It does not look very good, but gets the job done. This temporary solution looks like this:



enter image description here



Any suggestions of how to make this example look more similar to the first inn Lilypond would be extremely welcome!










share|improve this question




















  • 1





    I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

    – Michael Scott Cuthbert
    Aug 29 '13 at 3:46






  • 1





    Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

    – gilbertohasnofb
    Aug 29 '13 at 13:30






  • 2





    @Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

    – shambulator
    Aug 29 '13 at 14:13








  • 1





    It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

    – shambulator
    Aug 29 '13 at 15:58






  • 3





    @shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

    – Michael Scott Cuthbert
    Aug 30 '13 at 3:44
















2















I am working with a score in Lilypond that has a lot of repetitions, where basically every bar has to be repeated a certain number of times. I would like to be able to write above every bar the number of times it should be repeat, similar to the score below (which was not created in Lilypond):



enter image description here



It would be great to be able to have some brackets above the bar and also to have the "3x" centralized, just like in the example above. So far, the only (temporary) solution I was able to come up with in Lilypond was to add repeat bars and then simply write "3x" above the first note of every bar (since I could not have it centralized on the bar either). It does not look very good, but gets the job done. This temporary solution looks like this:



enter image description here



Any suggestions of how to make this example look more similar to the first inn Lilypond would be extremely welcome!










share|improve this question




















  • 1





    I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

    – Michael Scott Cuthbert
    Aug 29 '13 at 3:46






  • 1





    Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

    – gilbertohasnofb
    Aug 29 '13 at 13:30






  • 2





    @Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

    – shambulator
    Aug 29 '13 at 14:13








  • 1





    It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

    – shambulator
    Aug 29 '13 at 15:58






  • 3





    @shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

    – Michael Scott Cuthbert
    Aug 30 '13 at 3:44














2












2








2


1






I am working with a score in Lilypond that has a lot of repetitions, where basically every bar has to be repeated a certain number of times. I would like to be able to write above every bar the number of times it should be repeat, similar to the score below (which was not created in Lilypond):



enter image description here



It would be great to be able to have some brackets above the bar and also to have the "3x" centralized, just like in the example above. So far, the only (temporary) solution I was able to come up with in Lilypond was to add repeat bars and then simply write "3x" above the first note of every bar (since I could not have it centralized on the bar either). It does not look very good, but gets the job done. This temporary solution looks like this:



enter image description here



Any suggestions of how to make this example look more similar to the first inn Lilypond would be extremely welcome!










share|improve this question
















I am working with a score in Lilypond that has a lot of repetitions, where basically every bar has to be repeated a certain number of times. I would like to be able to write above every bar the number of times it should be repeat, similar to the score below (which was not created in Lilypond):



enter image description here



It would be great to be able to have some brackets above the bar and also to have the "3x" centralized, just like in the example above. So far, the only (temporary) solution I was able to come up with in Lilypond was to add repeat bars and then simply write "3x" above the first note of every bar (since I could not have it centralized on the bar either). It does not look very good, but gets the job done. This temporary solution looks like this:



enter image description here



Any suggestions of how to make this example look more similar to the first inn Lilypond would be extremely welcome!







repeat lilypond music-notation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 4 at 14:29









Matthieu Brucher

14.4k32140




14.4k32140










asked Aug 25 '13 at 13:56









gilbertohasnofbgilbertohasnofb

1,027924




1,027924








  • 1





    I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

    – Michael Scott Cuthbert
    Aug 29 '13 at 3:46






  • 1





    Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

    – gilbertohasnofb
    Aug 29 '13 at 13:30






  • 2





    @Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

    – shambulator
    Aug 29 '13 at 14:13








  • 1





    It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

    – shambulator
    Aug 29 '13 at 15:58






  • 3





    @shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

    – Michael Scott Cuthbert
    Aug 30 '13 at 3:44














  • 1





    I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

    – Michael Scott Cuthbert
    Aug 29 '13 at 3:46






  • 1





    Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

    – gilbertohasnofb
    Aug 29 '13 at 13:30






  • 2





    @Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

    – shambulator
    Aug 29 '13 at 14:13








  • 1





    It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

    – shambulator
    Aug 29 '13 at 15:58






  • 3





    @shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

    – Michael Scott Cuthbert
    Aug 30 '13 at 3:44








1




1





I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

– Michael Scott Cuthbert
Aug 29 '13 at 3:46





I don't know the answer to this, but just as a comment to any moderators who don't know Lilypond but who might think of this Q as offtopic for StackOverflow: Lilypond is a notation software whose file-format is essentially a set of Scheme subroutines, so q's about usage tend to be on topic.

– Michael Scott Cuthbert
Aug 29 '13 at 3:46




1




1





Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

– gilbertohasnofb
Aug 29 '13 at 13:30





Thanks for your comment, Michael. Indeed there is very little about LilyPond here at StackOverflow, and that is one of the reasons I like to post questions (and answers as well, if I discover them). This could be a nice complement to the lilypond-user mailing list, which is certainly the best place to ask questions related to LilyPond.

– gilbertohasnofb
Aug 29 '13 at 13:30




2




2





@Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

– shambulator
Aug 29 '13 at 14:13







@Michael I use LilyPond and think it's fantastic, but I'd still call questions about usage off-topic for Stack Overflow. The fact that its data files are closer to programming than most programs' strikes me as a technicality; you could make a similar argument for any software that consumes PostScript :P This question seems like a good fit for Music: Practice & Theory, though. Edit: there's even a meta question on the subject.

– shambulator
Aug 29 '13 at 14:13






1




1





It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

– shambulator
Aug 29 '13 at 15:58





It's a bit of a fuzzy one in my mind, and I haven't voted to close :P It's definitely on-topic for Music.SE ("usage of specific music software") - I don't agree that there needs to be some kind of "musical knowledge" bar - and I think LilyPond users there would appreciate having these kinds of questions. But at the same time, how many non-programmers use LilyPond in favour of something not quite so... programming language-like? :)

– shambulator
Aug 29 '13 at 15:58




3




3





@shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

– Michael Scott Cuthbert
Aug 30 '13 at 3:44





@shambulator -- I agree that in general how to solve problems in music notation software is better for Music.SE (and voted up comment despite disagreeing), but I think a look at the "solution" posted below shows why (1) this seems the most appropriate place for discussing using lilypond (just like a question on "how can I use [C# library] to access [other library]) and (2) why few musicians have taken up lilypond. :-)

– Michael Scott Cuthbert
Aug 30 '13 at 3:44












2 Answers
2






active

oldest

votes


















5














This is a workaround for this problem:



version "2.19.15"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPY ALL THIS BELOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% repeatBracket snippet
% will add .----Nx----. above a bar, where N is the number of repetitions
% based on the wonderful spanner by David Nalesnik (see: http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00446.html )
#(define (test-stencil grob text)
(let* ((orig (ly:grob-original grob))
(siblings (ly:spanner-broken-into orig)) ; have we been split?
(refp (ly:grob-system grob))
(left-bound (ly:spanner-bound grob LEFT))
(right-bound (ly:spanner-bound grob RIGHT))
(elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
(elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
(break-alignment-L
(filter
(lambda (elt) (grob::has-interface elt 'break-alignment-interface))
elts-L))
(break-alignment-R
(filter
(lambda (elt) (grob::has-interface elt 'break-alignment-interface))
elts-R))
(break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
(break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
(num
(markup text))
(num
(if (or (null? siblings)
(eq? grob (car siblings)))
num
(make-parenthesize-markup num)))
(num (grob-interpret-markup grob num))
(num-stil-ext-X (ly:stencil-extent num X))
(num-stil-ext-Y (ly:stencil-extent num Y))
(num (ly:stencil-aligned-to num X CENTER))
(num
(ly:stencil-translate-axis
num
(+ (interval-length break-alignment-L-ext)
(* 0.5
(- (car break-alignment-R-ext)
(cdr break-alignment-L-ext))))
X))
(bracket-L
(markup
#:path
0.1 ; line-thickness
`((moveto 0.5 ,(* 0.5 (interval-length num-stil-ext-Y)))
(lineto ,(* 0.5
(- (car break-alignment-R-ext)
(cdr break-alignment-L-ext)
(interval-length num-stil-ext-X)))
,(* 0.5 (interval-length num-stil-ext-Y)))
(closepath)
(rlineto 0.0
,(if (or (null? siblings) (eq? grob (car siblings)))
-1.0 0.0)))))
(bracket-R
(markup
#:path
0.1
`((moveto ,(* 0.5
(- (car break-alignment-R-ext)
(cdr break-alignment-L-ext)
(interval-length num-stil-ext-X)))
,(* 0.5 (interval-length num-stil-ext-Y)))
(lineto 0.5
,(* 0.5 (interval-length num-stil-ext-Y)))
(closepath)
(rlineto 0.0
,(if (or (null? siblings) (eq? grob (last siblings)))
-1.0 0.0)))))
(bracket-L (grob-interpret-markup grob bracket-L))
(bracket-R (grob-interpret-markup grob bracket-R))
(num (ly:stencil-combine-at-edge num X LEFT bracket-L 0.4))
(num (ly:stencil-combine-at-edge num X RIGHT bracket-R 0.4)))
num))

#(define-public (Measure_attached_spanner_engraver context)
(let ((span '())
(finished '())
(event-start '())
(event-stop '()))
(make-engraver
(listeners ((measure-counter-event engraver event)
(if (= START (ly:event-property event 'span-direction))
(set! event-start event)
(set! event-stop event))))
((process-music trans)
(if (ly:stream-event? event-stop)
(if (null? span)
(ly:warning "You're trying to end a measure-attached spanner but you haven't started one.")
(begin (set! finished span)
(ly:engraver-announce-end-grob trans finished event-start)
(set! span '())
(set! event-stop '()))))
(if (ly:stream-event? event-start)
(begin (set! span (ly:engraver-make-grob trans 'MeasureCounter event-start))
(set! event-start '()))))
((stop-translation-timestep trans)
(if (and (ly:spanner? span)
(null? (ly:spanner-bound span LEFT))
(moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
(ly:spanner-set-bound! span LEFT
(ly:context-property context 'currentCommandColumn)))
(if (and (ly:spanner? finished)
(moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
(begin
(if (null? (ly:spanner-bound finished RIGHT))
(ly:spanner-set-bound! finished RIGHT
(ly:context-property context 'currentCommandColumn)))
(set! finished '())
(set! event-start '())
(set! event-stop '()))))
((finalize trans)
(if (ly:spanner? finished)
(begin
(if (null? (ly:spanner-bound finished RIGHT))
(set! (ly:spanner-bound finished RIGHT)
(ly:context-property context 'currentCommandColumn)))
(set! finished '())))
(if (ly:spanner? span)
(begin
(ly:warning "I think there's a dangling measure-attached spanner :-(")
(ly:grob-suicide! span)
(set! span '())))))))

layout {
context {
Staff
consists #Measure_attached_spanner_engraver
override MeasureCounter.font-encoding = #'latin1
override MeasureCounter.font-size = 0
override MeasureCounter.outside-staff-padding = 2
override MeasureCounter.outside-staff-horizontal-padding = #0
}
}

repeatBracket = #(define-music-function
(parser location N note)
(number? ly:music?)
#{
override Staff.MeasureCounter.stencil =
#(lambda (grob) (test-stencil grob #{ #(string-append(number->string N) "×") #} ))
startMeasureCount
repeat volta #N { $note }
stopMeasureCount
#}
)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...UNTIL HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{
repeatBracket 7 {c'1}
repeatBracket 32 {d' g}
repeatBracket 14 {e' f g}
repeatBracket 29 {f' a bes break cis' e''}
repeatBracket 1048 {g'1}
}


This code above gives the following result:



enter image description here]





This solution was not created by myself, but sent to me by David Nalesnik, from lilypond-user mailing list. I just would like to share it here in case someone would need it as well. I've made just some very minor adjustments to what David sent me.






share|improve this answer

































    4














    I just had a similar problem but preferred the style on your second example, with the 3x above the bar. The solution I found was:



    f e d c |
    mark markup {"3x"}repeat volta 3 {c d e f}
    f e d c |


    generating



    http://i.imgur.com/pO4Aq9I.png



    Maybe someone else has a use for it.






    share|improve this answer

























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f18429727%2flilypond-how-to-add-the-number-of-repetitions-above-a-bar%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      5














      This is a workaround for this problem:



      version "2.19.15"

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPY ALL THIS BELOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % repeatBracket snippet
      % will add .----Nx----. above a bar, where N is the number of repetitions
      % based on the wonderful spanner by David Nalesnik (see: http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00446.html )
      #(define (test-stencil grob text)
      (let* ((orig (ly:grob-original grob))
      (siblings (ly:spanner-broken-into orig)) ; have we been split?
      (refp (ly:grob-system grob))
      (left-bound (ly:spanner-bound grob LEFT))
      (right-bound (ly:spanner-bound grob RIGHT))
      (elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
      (elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
      (break-alignment-L
      (filter
      (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
      elts-L))
      (break-alignment-R
      (filter
      (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
      elts-R))
      (break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
      (break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
      (num
      (markup text))
      (num
      (if (or (null? siblings)
      (eq? grob (car siblings)))
      num
      (make-parenthesize-markup num)))
      (num (grob-interpret-markup grob num))
      (num-stil-ext-X (ly:stencil-extent num X))
      (num-stil-ext-Y (ly:stencil-extent num Y))
      (num (ly:stencil-aligned-to num X CENTER))
      (num
      (ly:stencil-translate-axis
      num
      (+ (interval-length break-alignment-L-ext)
      (* 0.5
      (- (car break-alignment-R-ext)
      (cdr break-alignment-L-ext))))
      X))
      (bracket-L
      (markup
      #:path
      0.1 ; line-thickness
      `((moveto 0.5 ,(* 0.5 (interval-length num-stil-ext-Y)))
      (lineto ,(* 0.5
      (- (car break-alignment-R-ext)
      (cdr break-alignment-L-ext)
      (interval-length num-stil-ext-X)))
      ,(* 0.5 (interval-length num-stil-ext-Y)))
      (closepath)
      (rlineto 0.0
      ,(if (or (null? siblings) (eq? grob (car siblings)))
      -1.0 0.0)))))
      (bracket-R
      (markup
      #:path
      0.1
      `((moveto ,(* 0.5
      (- (car break-alignment-R-ext)
      (cdr break-alignment-L-ext)
      (interval-length num-stil-ext-X)))
      ,(* 0.5 (interval-length num-stil-ext-Y)))
      (lineto 0.5
      ,(* 0.5 (interval-length num-stil-ext-Y)))
      (closepath)
      (rlineto 0.0
      ,(if (or (null? siblings) (eq? grob (last siblings)))
      -1.0 0.0)))))
      (bracket-L (grob-interpret-markup grob bracket-L))
      (bracket-R (grob-interpret-markup grob bracket-R))
      (num (ly:stencil-combine-at-edge num X LEFT bracket-L 0.4))
      (num (ly:stencil-combine-at-edge num X RIGHT bracket-R 0.4)))
      num))

      #(define-public (Measure_attached_spanner_engraver context)
      (let ((span '())
      (finished '())
      (event-start '())
      (event-stop '()))
      (make-engraver
      (listeners ((measure-counter-event engraver event)
      (if (= START (ly:event-property event 'span-direction))
      (set! event-start event)
      (set! event-stop event))))
      ((process-music trans)
      (if (ly:stream-event? event-stop)
      (if (null? span)
      (ly:warning "You're trying to end a measure-attached spanner but you haven't started one.")
      (begin (set! finished span)
      (ly:engraver-announce-end-grob trans finished event-start)
      (set! span '())
      (set! event-stop '()))))
      (if (ly:stream-event? event-start)
      (begin (set! span (ly:engraver-make-grob trans 'MeasureCounter event-start))
      (set! event-start '()))))
      ((stop-translation-timestep trans)
      (if (and (ly:spanner? span)
      (null? (ly:spanner-bound span LEFT))
      (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
      (ly:spanner-set-bound! span LEFT
      (ly:context-property context 'currentCommandColumn)))
      (if (and (ly:spanner? finished)
      (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
      (begin
      (if (null? (ly:spanner-bound finished RIGHT))
      (ly:spanner-set-bound! finished RIGHT
      (ly:context-property context 'currentCommandColumn)))
      (set! finished '())
      (set! event-start '())
      (set! event-stop '()))))
      ((finalize trans)
      (if (ly:spanner? finished)
      (begin
      (if (null? (ly:spanner-bound finished RIGHT))
      (set! (ly:spanner-bound finished RIGHT)
      (ly:context-property context 'currentCommandColumn)))
      (set! finished '())))
      (if (ly:spanner? span)
      (begin
      (ly:warning "I think there's a dangling measure-attached spanner :-(")
      (ly:grob-suicide! span)
      (set! span '())))))))

      layout {
      context {
      Staff
      consists #Measure_attached_spanner_engraver
      override MeasureCounter.font-encoding = #'latin1
      override MeasureCounter.font-size = 0
      override MeasureCounter.outside-staff-padding = 2
      override MeasureCounter.outside-staff-horizontal-padding = #0
      }
      }

      repeatBracket = #(define-music-function
      (parser location N note)
      (number? ly:music?)
      #{
      override Staff.MeasureCounter.stencil =
      #(lambda (grob) (test-stencil grob #{ #(string-append(number->string N) "×") #} ))
      startMeasureCount
      repeat volta #N { $note }
      stopMeasureCount
      #}
      )

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...UNTIL HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      {
      repeatBracket 7 {c'1}
      repeatBracket 32 {d' g}
      repeatBracket 14 {e' f g}
      repeatBracket 29 {f' a bes break cis' e''}
      repeatBracket 1048 {g'1}
      }


      This code above gives the following result:



      enter image description here]





      This solution was not created by myself, but sent to me by David Nalesnik, from lilypond-user mailing list. I just would like to share it here in case someone would need it as well. I've made just some very minor adjustments to what David sent me.






      share|improve this answer






























        5














        This is a workaround for this problem:



        version "2.19.15"

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPY ALL THIS BELOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % repeatBracket snippet
        % will add .----Nx----. above a bar, where N is the number of repetitions
        % based on the wonderful spanner by David Nalesnik (see: http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00446.html )
        #(define (test-stencil grob text)
        (let* ((orig (ly:grob-original grob))
        (siblings (ly:spanner-broken-into orig)) ; have we been split?
        (refp (ly:grob-system grob))
        (left-bound (ly:spanner-bound grob LEFT))
        (right-bound (ly:spanner-bound grob RIGHT))
        (elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
        (elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
        (break-alignment-L
        (filter
        (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
        elts-L))
        (break-alignment-R
        (filter
        (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
        elts-R))
        (break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
        (break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
        (num
        (markup text))
        (num
        (if (or (null? siblings)
        (eq? grob (car siblings)))
        num
        (make-parenthesize-markup num)))
        (num (grob-interpret-markup grob num))
        (num-stil-ext-X (ly:stencil-extent num X))
        (num-stil-ext-Y (ly:stencil-extent num Y))
        (num (ly:stencil-aligned-to num X CENTER))
        (num
        (ly:stencil-translate-axis
        num
        (+ (interval-length break-alignment-L-ext)
        (* 0.5
        (- (car break-alignment-R-ext)
        (cdr break-alignment-L-ext))))
        X))
        (bracket-L
        (markup
        #:path
        0.1 ; line-thickness
        `((moveto 0.5 ,(* 0.5 (interval-length num-stil-ext-Y)))
        (lineto ,(* 0.5
        (- (car break-alignment-R-ext)
        (cdr break-alignment-L-ext)
        (interval-length num-stil-ext-X)))
        ,(* 0.5 (interval-length num-stil-ext-Y)))
        (closepath)
        (rlineto 0.0
        ,(if (or (null? siblings) (eq? grob (car siblings)))
        -1.0 0.0)))))
        (bracket-R
        (markup
        #:path
        0.1
        `((moveto ,(* 0.5
        (- (car break-alignment-R-ext)
        (cdr break-alignment-L-ext)
        (interval-length num-stil-ext-X)))
        ,(* 0.5 (interval-length num-stil-ext-Y)))
        (lineto 0.5
        ,(* 0.5 (interval-length num-stil-ext-Y)))
        (closepath)
        (rlineto 0.0
        ,(if (or (null? siblings) (eq? grob (last siblings)))
        -1.0 0.0)))))
        (bracket-L (grob-interpret-markup grob bracket-L))
        (bracket-R (grob-interpret-markup grob bracket-R))
        (num (ly:stencil-combine-at-edge num X LEFT bracket-L 0.4))
        (num (ly:stencil-combine-at-edge num X RIGHT bracket-R 0.4)))
        num))

        #(define-public (Measure_attached_spanner_engraver context)
        (let ((span '())
        (finished '())
        (event-start '())
        (event-stop '()))
        (make-engraver
        (listeners ((measure-counter-event engraver event)
        (if (= START (ly:event-property event 'span-direction))
        (set! event-start event)
        (set! event-stop event))))
        ((process-music trans)
        (if (ly:stream-event? event-stop)
        (if (null? span)
        (ly:warning "You're trying to end a measure-attached spanner but you haven't started one.")
        (begin (set! finished span)
        (ly:engraver-announce-end-grob trans finished event-start)
        (set! span '())
        (set! event-stop '()))))
        (if (ly:stream-event? event-start)
        (begin (set! span (ly:engraver-make-grob trans 'MeasureCounter event-start))
        (set! event-start '()))))
        ((stop-translation-timestep trans)
        (if (and (ly:spanner? span)
        (null? (ly:spanner-bound span LEFT))
        (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
        (ly:spanner-set-bound! span LEFT
        (ly:context-property context 'currentCommandColumn)))
        (if (and (ly:spanner? finished)
        (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
        (begin
        (if (null? (ly:spanner-bound finished RIGHT))
        (ly:spanner-set-bound! finished RIGHT
        (ly:context-property context 'currentCommandColumn)))
        (set! finished '())
        (set! event-start '())
        (set! event-stop '()))))
        ((finalize trans)
        (if (ly:spanner? finished)
        (begin
        (if (null? (ly:spanner-bound finished RIGHT))
        (set! (ly:spanner-bound finished RIGHT)
        (ly:context-property context 'currentCommandColumn)))
        (set! finished '())))
        (if (ly:spanner? span)
        (begin
        (ly:warning "I think there's a dangling measure-attached spanner :-(")
        (ly:grob-suicide! span)
        (set! span '())))))))

        layout {
        context {
        Staff
        consists #Measure_attached_spanner_engraver
        override MeasureCounter.font-encoding = #'latin1
        override MeasureCounter.font-size = 0
        override MeasureCounter.outside-staff-padding = 2
        override MeasureCounter.outside-staff-horizontal-padding = #0
        }
        }

        repeatBracket = #(define-music-function
        (parser location N note)
        (number? ly:music?)
        #{
        override Staff.MeasureCounter.stencil =
        #(lambda (grob) (test-stencil grob #{ #(string-append(number->string N) "×") #} ))
        startMeasureCount
        repeat volta #N { $note }
        stopMeasureCount
        #}
        )

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...UNTIL HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        {
        repeatBracket 7 {c'1}
        repeatBracket 32 {d' g}
        repeatBracket 14 {e' f g}
        repeatBracket 29 {f' a bes break cis' e''}
        repeatBracket 1048 {g'1}
        }


        This code above gives the following result:



        enter image description here]





        This solution was not created by myself, but sent to me by David Nalesnik, from lilypond-user mailing list. I just would like to share it here in case someone would need it as well. I've made just some very minor adjustments to what David sent me.






        share|improve this answer




























          5












          5








          5







          This is a workaround for this problem:



          version "2.19.15"

          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPY ALL THIS BELOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          % repeatBracket snippet
          % will add .----Nx----. above a bar, where N is the number of repetitions
          % based on the wonderful spanner by David Nalesnik (see: http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00446.html )
          #(define (test-stencil grob text)
          (let* ((orig (ly:grob-original grob))
          (siblings (ly:spanner-broken-into orig)) ; have we been split?
          (refp (ly:grob-system grob))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
          (elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
          (break-alignment-L
          (filter
          (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
          elts-L))
          (break-alignment-R
          (filter
          (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
          elts-R))
          (break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
          (break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
          (num
          (markup text))
          (num
          (if (or (null? siblings)
          (eq? grob (car siblings)))
          num
          (make-parenthesize-markup num)))
          (num (grob-interpret-markup grob num))
          (num-stil-ext-X (ly:stencil-extent num X))
          (num-stil-ext-Y (ly:stencil-extent num Y))
          (num (ly:stencil-aligned-to num X CENTER))
          (num
          (ly:stencil-translate-axis
          num
          (+ (interval-length break-alignment-L-ext)
          (* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext))))
          X))
          (bracket-L
          (markup
          #:path
          0.1 ; line-thickness
          `((moveto 0.5 ,(* 0.5 (interval-length num-stil-ext-Y)))
          (lineto ,(* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext)
          (interval-length num-stil-ext-X)))
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (closepath)
          (rlineto 0.0
          ,(if (or (null? siblings) (eq? grob (car siblings)))
          -1.0 0.0)))))
          (bracket-R
          (markup
          #:path
          0.1
          `((moveto ,(* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext)
          (interval-length num-stil-ext-X)))
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (lineto 0.5
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (closepath)
          (rlineto 0.0
          ,(if (or (null? siblings) (eq? grob (last siblings)))
          -1.0 0.0)))))
          (bracket-L (grob-interpret-markup grob bracket-L))
          (bracket-R (grob-interpret-markup grob bracket-R))
          (num (ly:stencil-combine-at-edge num X LEFT bracket-L 0.4))
          (num (ly:stencil-combine-at-edge num X RIGHT bracket-R 0.4)))
          num))

          #(define-public (Measure_attached_spanner_engraver context)
          (let ((span '())
          (finished '())
          (event-start '())
          (event-stop '()))
          (make-engraver
          (listeners ((measure-counter-event engraver event)
          (if (= START (ly:event-property event 'span-direction))
          (set! event-start event)
          (set! event-stop event))))
          ((process-music trans)
          (if (ly:stream-event? event-stop)
          (if (null? span)
          (ly:warning "You're trying to end a measure-attached spanner but you haven't started one.")
          (begin (set! finished span)
          (ly:engraver-announce-end-grob trans finished event-start)
          (set! span '())
          (set! event-stop '()))))
          (if (ly:stream-event? event-start)
          (begin (set! span (ly:engraver-make-grob trans 'MeasureCounter event-start))
          (set! event-start '()))))
          ((stop-translation-timestep trans)
          (if (and (ly:spanner? span)
          (null? (ly:spanner-bound span LEFT))
          (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
          (ly:spanner-set-bound! span LEFT
          (ly:context-property context 'currentCommandColumn)))
          (if (and (ly:spanner? finished)
          (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
          (begin
          (if (null? (ly:spanner-bound finished RIGHT))
          (ly:spanner-set-bound! finished RIGHT
          (ly:context-property context 'currentCommandColumn)))
          (set! finished '())
          (set! event-start '())
          (set! event-stop '()))))
          ((finalize trans)
          (if (ly:spanner? finished)
          (begin
          (if (null? (ly:spanner-bound finished RIGHT))
          (set! (ly:spanner-bound finished RIGHT)
          (ly:context-property context 'currentCommandColumn)))
          (set! finished '())))
          (if (ly:spanner? span)
          (begin
          (ly:warning "I think there's a dangling measure-attached spanner :-(")
          (ly:grob-suicide! span)
          (set! span '())))))))

          layout {
          context {
          Staff
          consists #Measure_attached_spanner_engraver
          override MeasureCounter.font-encoding = #'latin1
          override MeasureCounter.font-size = 0
          override MeasureCounter.outside-staff-padding = 2
          override MeasureCounter.outside-staff-horizontal-padding = #0
          }
          }

          repeatBracket = #(define-music-function
          (parser location N note)
          (number? ly:music?)
          #{
          override Staff.MeasureCounter.stencil =
          #(lambda (grob) (test-stencil grob #{ #(string-append(number->string N) "×") #} ))
          startMeasureCount
          repeat volta #N { $note }
          stopMeasureCount
          #}
          )

          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...UNTIL HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

          {
          repeatBracket 7 {c'1}
          repeatBracket 32 {d' g}
          repeatBracket 14 {e' f g}
          repeatBracket 29 {f' a bes break cis' e''}
          repeatBracket 1048 {g'1}
          }


          This code above gives the following result:



          enter image description here]





          This solution was not created by myself, but sent to me by David Nalesnik, from lilypond-user mailing list. I just would like to share it here in case someone would need it as well. I've made just some very minor adjustments to what David sent me.






          share|improve this answer















          This is a workaround for this problem:



          version "2.19.15"

          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPY ALL THIS BELOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
          % repeatBracket snippet
          % will add .----Nx----. above a bar, where N is the number of repetitions
          % based on the wonderful spanner by David Nalesnik (see: http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00446.html )
          #(define (test-stencil grob text)
          (let* ((orig (ly:grob-original grob))
          (siblings (ly:spanner-broken-into orig)) ; have we been split?
          (refp (ly:grob-system grob))
          (left-bound (ly:spanner-bound grob LEFT))
          (right-bound (ly:spanner-bound grob RIGHT))
          (elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
          (elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
          (break-alignment-L
          (filter
          (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
          elts-L))
          (break-alignment-R
          (filter
          (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
          elts-R))
          (break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
          (break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
          (num
          (markup text))
          (num
          (if (or (null? siblings)
          (eq? grob (car siblings)))
          num
          (make-parenthesize-markup num)))
          (num (grob-interpret-markup grob num))
          (num-stil-ext-X (ly:stencil-extent num X))
          (num-stil-ext-Y (ly:stencil-extent num Y))
          (num (ly:stencil-aligned-to num X CENTER))
          (num
          (ly:stencil-translate-axis
          num
          (+ (interval-length break-alignment-L-ext)
          (* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext))))
          X))
          (bracket-L
          (markup
          #:path
          0.1 ; line-thickness
          `((moveto 0.5 ,(* 0.5 (interval-length num-stil-ext-Y)))
          (lineto ,(* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext)
          (interval-length num-stil-ext-X)))
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (closepath)
          (rlineto 0.0
          ,(if (or (null? siblings) (eq? grob (car siblings)))
          -1.0 0.0)))))
          (bracket-R
          (markup
          #:path
          0.1
          `((moveto ,(* 0.5
          (- (car break-alignment-R-ext)
          (cdr break-alignment-L-ext)
          (interval-length num-stil-ext-X)))
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (lineto 0.5
          ,(* 0.5 (interval-length num-stil-ext-Y)))
          (closepath)
          (rlineto 0.0
          ,(if (or (null? siblings) (eq? grob (last siblings)))
          -1.0 0.0)))))
          (bracket-L (grob-interpret-markup grob bracket-L))
          (bracket-R (grob-interpret-markup grob bracket-R))
          (num (ly:stencil-combine-at-edge num X LEFT bracket-L 0.4))
          (num (ly:stencil-combine-at-edge num X RIGHT bracket-R 0.4)))
          num))

          #(define-public (Measure_attached_spanner_engraver context)
          (let ((span '())
          (finished '())
          (event-start '())
          (event-stop '()))
          (make-engraver
          (listeners ((measure-counter-event engraver event)
          (if (= START (ly:event-property event 'span-direction))
          (set! event-start event)
          (set! event-stop event))))
          ((process-music trans)
          (if (ly:stream-event? event-stop)
          (if (null? span)
          (ly:warning "You're trying to end a measure-attached spanner but you haven't started one.")
          (begin (set! finished span)
          (ly:engraver-announce-end-grob trans finished event-start)
          (set! span '())
          (set! event-stop '()))))
          (if (ly:stream-event? event-start)
          (begin (set! span (ly:engraver-make-grob trans 'MeasureCounter event-start))
          (set! event-start '()))))
          ((stop-translation-timestep trans)
          (if (and (ly:spanner? span)
          (null? (ly:spanner-bound span LEFT))
          (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
          (ly:spanner-set-bound! span LEFT
          (ly:context-property context 'currentCommandColumn)))
          (if (and (ly:spanner? finished)
          (moment<=? (ly:context-property context 'measurePosition) ZERO-MOMENT))
          (begin
          (if (null? (ly:spanner-bound finished RIGHT))
          (ly:spanner-set-bound! finished RIGHT
          (ly:context-property context 'currentCommandColumn)))
          (set! finished '())
          (set! event-start '())
          (set! event-stop '()))))
          ((finalize trans)
          (if (ly:spanner? finished)
          (begin
          (if (null? (ly:spanner-bound finished RIGHT))
          (set! (ly:spanner-bound finished RIGHT)
          (ly:context-property context 'currentCommandColumn)))
          (set! finished '())))
          (if (ly:spanner? span)
          (begin
          (ly:warning "I think there's a dangling measure-attached spanner :-(")
          (ly:grob-suicide! span)
          (set! span '())))))))

          layout {
          context {
          Staff
          consists #Measure_attached_spanner_engraver
          override MeasureCounter.font-encoding = #'latin1
          override MeasureCounter.font-size = 0
          override MeasureCounter.outside-staff-padding = 2
          override MeasureCounter.outside-staff-horizontal-padding = #0
          }
          }

          repeatBracket = #(define-music-function
          (parser location N note)
          (number? ly:music?)
          #{
          override Staff.MeasureCounter.stencil =
          #(lambda (grob) (test-stencil grob #{ #(string-append(number->string N) "×") #} ))
          startMeasureCount
          repeat volta #N { $note }
          stopMeasureCount
          #}
          )

          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...UNTIL HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

          {
          repeatBracket 7 {c'1}
          repeatBracket 32 {d' g}
          repeatBracket 14 {e' f g}
          repeatBracket 29 {f' a bes break cis' e''}
          repeatBracket 1048 {g'1}
          }


          This code above gives the following result:



          enter image description here]





          This solution was not created by myself, but sent to me by David Nalesnik, from lilypond-user mailing list. I just would like to share it here in case someone would need it as well. I've made just some very minor adjustments to what David sent me.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 22 '18 at 16:05

























          answered Aug 29 '13 at 13:28









          gilbertohasnofbgilbertohasnofb

          1,027924




          1,027924

























              4














              I just had a similar problem but preferred the style on your second example, with the 3x above the bar. The solution I found was:



              f e d c |
              mark markup {"3x"}repeat volta 3 {c d e f}
              f e d c |


              generating



              http://i.imgur.com/pO4Aq9I.png



              Maybe someone else has a use for it.






              share|improve this answer






























                4














                I just had a similar problem but preferred the style on your second example, with the 3x above the bar. The solution I found was:



                f e d c |
                mark markup {"3x"}repeat volta 3 {c d e f}
                f e d c |


                generating



                http://i.imgur.com/pO4Aq9I.png



                Maybe someone else has a use for it.






                share|improve this answer




























                  4












                  4








                  4







                  I just had a similar problem but preferred the style on your second example, with the 3x above the bar. The solution I found was:



                  f e d c |
                  mark markup {"3x"}repeat volta 3 {c d e f}
                  f e d c |


                  generating



                  http://i.imgur.com/pO4Aq9I.png



                  Maybe someone else has a use for it.






                  share|improve this answer















                  I just had a similar problem but preferred the style on your second example, with the 3x above the bar. The solution I found was:



                  f e d c |
                  mark markup {"3x"}repeat volta 3 {c d e f}
                  f e d c |


                  generating



                  http://i.imgur.com/pO4Aq9I.png



                  Maybe someone else has a use for it.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Apr 7 '14 at 10:32

























                  answered Sep 8 '13 at 13:00









                  MathiasMathias

                  1,284816




                  1,284816






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f18429727%2flilypond-how-to-add-the-number-of-repetitions-above-a-bar%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      404 Error Contact Form 7 ajax form submitting

                      How to know if a Active Directory user can login interactively

                      TypeError: fit_transform() missing 1 required positional argument: 'X'