[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fixed measure width for chord charts.
From: |
Richard Shann |
Subject: |
Re: Fixed measure width for chord charts. |
Date: |
Fri, 29 Aug 2014 17:49:15 +0100 |
I see that my question has been asked before:
http://lists.gnu.org/archive/html/lilypond-user/2010-06/msg00127.html
in the more challenging environment where the notes are also being
typeset.
That was four years ago, and no answer to the equal-measure-width
question was given.
I would be happy to hack some scheme code to force a constant measure
width, at least for this simple case where there are just a few chord
symbols per bar and the user is prepared to make the symbols small
enough to fit the bars.
But I would very much appreciate someone pointing me to the relevant
area of code, if it sounds feasible...
Richard
On Fri, 2014-08-29 at 15:36 +0100, Richard Shann wrote:
> On Fri, 2014-08-29 at 16:00 +0200, Jacques Menu wrote:
> > Hello Richard,
> >
> > \set Score.bars-per-line-engraver '(4))
> Thanks -
> I can't get that to compile, and indeed I can't track down
> bars-per-line-engraver in the 2.18 docs, but I see it in snippets (see
> below).
> This anyway appears to address the question of avoiding manually
> inserting the line breaks, which will be nice, but the question I am
> asking is how to force equal bar lengths (in mm) across the line, so
> that bar lines will align down the page.
>
> This doesn't have to avoid collisions in conventional scores - it is
> just for chord charts.
>
> Below is the snippet I found defining a bars-per-line-engraver thing,
> FWIW
> Richard
> #(define ((bars-per-line-engraver bar-list) context)
> (let* ((working-copy bar-list)
> (total (1+ (car working-copy))))
> `((acknowledgers
> (paper-column-interface
> . ,(lambda (engraver grob source-engraver)
> (let ((internal-bar (ly:context-property context
> 'internalBarNumber)))
> (if (and (pair? working-copy)
> (= (remainder internal-bar total) 0)
> (eq? #t (ly:grob-property grob 'non-musical)))
> (begin
> (set! (ly:grob-property grob
> 'line-break-permission) 'force)
> (if (null? (cdr working-copy))
> (set! working-copy bar-list)
> (begin
> (set! working-copy (cdr working-copy))))
> (set! total (+ total (car
> working-copy))))))))))))
>
>
>
> >
> > JM
> >
> > Am 29.08.2014 um 13:20:57 schrieb Richard Shann <address@hidden>:
> >
> > > I have been developing LilyPond code to enable the generation of "Chord
> > > Charts" such as the one attached here.
> > > They differ from conventional music notation by being short, comprising
> > > only Chord Symbols with one or two chord durations, and, ideally, a
> > > fixed measure spacing, usually four to a line.
> > > Various tweaks have been applied in this example to suit very small
> > > displays.
> > > The remaining outstanding difficulty is controlling the measure width -
> > > ideally all the bar lines would align vertically down the screen (the
> > > chord symbols would be made smaller if they didn't fit).
> > > I have set
> > >
> > > \set Score.proportionalNotationDuration = #(ly:make-moment 1/4)
> > >
> > > which helps make the measures more even in width, but not entirely.
> > >
> > > Can anyone suggest something that would essentially turn off the fancy
> > > spacing algorithms that are running? Or perhaps point me to some scheme
> > > code governing the spacing which I could tweak?
> > >
> > > Richard
> > >
> > >
> > >
> > > <AsTimeGoesByV2.ly><AsTimeGoesBy.png>_______________________________________________
> > > lilypond-user mailing list
> > > address@hidden
> > > https://lists.gnu.org/mailman/listinfo/lilypond-user
> >
>
>
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user