lilypond-user
[Top][All Lists]
Advanced

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

Re: Syntax for reading object property values?


From: Mats Bengtsson
Subject: Re: Syntax for reading object property values?
Date: Sun, 02 Oct 2005 20:58:41 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.6) Gecko/20050319

See http://lists.gnu.org/archive/html/bug-lilypond/2005-09/msg00125.html
for a somewhat related question.

   /Mats

Peter Hays wrote:
Han-Wen Nienhuys  wrote:

If you don't want to format bar numbers, then what are you looking for?


Good question.  Sorry I didn't just state that up front.

I want to put multiple Rehearsal Marks over selective bars. Specifically, I want to put a bar 'letter' and a bar 'number' over a bar, using some form of a '\mark' statement. Ideally, I would like the letter in a circled and the number boxed. My understanding, and my observation, is that multiple \mark statements can nat be applied to the same bar. Only the last statement is evaluated. I have seen other threads to this effect. It would be great if I was wrong.

So far, the closest I have come is combining the following:

1. "\set Score.markFormatter = #(...currentBarNumber)"   to box the numbers
2. "\override Score.TextScript #'print-function = ..." to circle the letters 3. Override the RehearslaMark font size (small) and the TextScript font size (large) 4. Use a '\mark \default' statement at measure position 0 place the bar number 5. Use '\override #extra-offse () to move the following TextScript over the previous bar number
5. Use a 'c^A' to place an explicit letter over the bar number.
6 Change 'TextScript' to 'MultiMeasureRestText' if the first note is a multi-measure-rest. "R4*2^A"

   (A)
  [33]
------|------
------|------
------|------
------|------
------|------

Some bars only get bar numbers, not all TextScripts need to be circled, and so each instance of my letter-number RehearsalMark requires several overrides.

I was looking for a way to include some expression in a '\mark \markup{....}' statement that would combine as many of theses elements as possible. The letter does not need to be circled, and the letter itself can be specified explicitly.

It seems it can be done.
a.) I can combine text and a symbol (coda) in a 'mark \markup' argument, and arrange them in a column. b.) I can explicitly include currentBarNumber (with a box!) in a '\mark' statement:
       \mark #(lambda (mark context)
(make-box-markup (number->string (ly:context-property context 'currentBarNumber))))

Unfortunately, b. does NOT work as a '\mark \markup' statement:
       \mark \markup #(lambda (mark context)
(make-box-markup (number->string (ly:context-property context 'currentBarNumber))))
Th error is "\mark format expected"

If c. worked, I could combine a letter with the boxed number, and arrange in a column.
     \mark \markup {\col {\huge A} {#(lambda...'currentBarNumber)}}

I feel I am close, but really don't know what I'm doing. I got b. to work just by trial and error.

Thanks again.
Peter




_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user

--
=============================================
        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463                         
        Fax:   (+46) 8 790 7260
        Email: address@hidden
        WWW: http://www.s3.kth.se/~mabe
=============================================




reply via email to

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