lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Music function for manual vertical placement of systems and staves


From: Philip Thomas
Subject: Music function for manual vertical placement of systems and staves
Date: Mon, 4 Jun 2012 02:33:50 +0200

Dear fellow users,

I have managed to design some simple music functions, but I haven't
succeeded with this one.

The score (SATB choral) is short but has a certain complexity (a number of
repeated passages, pronunciation notes under lyrics, large markup text
appearing mid-score, etc.). After getting a lot of help on a number of
issues from the forum (thank you, Harm, in particular!), I wrangled
unsuccessfully with flexible vertical spacing, so I decided to position the
systems and staves manually. I fairly quickly got the result I wanted in
terms of appearance, after a little juggling, but now my file is cluttered
up with code like this:

\overrideProperty #"Score.NonMusicalPaperColumn"
    #'line-break-system-details #'((Y-offset . 20)
                                   (alignment-distances . (10 10 10)))

It seemed to me that a darling little music function should be able do the
trick, and hoped to get it to work with syntax something like this: 

\SATBVert [SystemVerticalPosition] [SopToAltoStaves] [AltoToTenorStaves]
[TenorToBassStaves]
e.g. \SATBVert #20 #10 #10 #10

I tried to write a function along the following lines, but it didn't work:

SATBVert = #(define-music-function 
            (parser location sysvert StoA AtoT TtoB) 
            (number? number? number? number?)
  #{ 
    \overrideProperty #"Score.NonMusicalPaperColumn"
      #'line-break-system-details 
        #'( (Y-offset . $sysvert)
            (alignment-distances . ($StoA $AtoT $TtoB)))
  #}) 

I'm pretty sure, from what I've read, that what I'm missing is type
predicates, but my tiny and inexperienced brain hasn't discovered or worked
out the syntax for how to include them. (I won't trouble you with
reproducing my failed experiments.) Or maybe there's something else wrong
that I haven't discovered.

If someone could point me in the right direction -- a relevant example would
be great -- I would be very grateful.

Cheers, Philip





reply via email to

[Prev in Thread] Current Thread [Next in Thread]