Re: Tempo Alignment Questions

2018-01-13 Thread Shane Brandes
\override Score.MetronomeMark.extra-offset = #'(x . -y)  that will do
it you will have to iterate a few guesses to get what you want.

Shane

On Sat, Jan 13, 2018 at 11:34 PM, Jay Anderson  wrote:
> I'm unable to find them at the moment, but I've seen threads discussing
> general overrides for tempo marks to make them work better (e.g. avoid
> stacking, better horizontal alignment with other objects). What are the
> current recommend overrides that you use to get better tempo behavior? The
> suggestion from Gould is:
> - Align with the time signature
> - If no time signature then align with the first notation element (that's
> not the starting clef or key signature)
>
> Here are some things I'm looking to solve:
>
> (1) Align with repeat sign at the beginning of a system. I haven't found the
> right overrides to make that work.
>
> =
> \version "2.19.80"
> \score {
>   \new Staff \transpose c c' {
> c1 | \break
>
> %RehearsalMarks align where the tempo should in this case
> \override Score.RehearsalMark.self-alignment-X = #LEFT
> \mark "RehearsalMark"
>
> %Not sure how to make MetronomeMarks align. Here's what I've tried:
> \override Score.MetronomeMark.break-align-symbols = #'(staff-bar)
> \override Score.MetronomeMark.non-break-align-symbols = #'()
> \tempo "MetronomeMark"
>
> \repeat volta 2 { c1 |}
>   }
> }
> =
>
> (2) Align with accidentals. The default lilypond behavior is to align with
> the notehead. Like the above I haven't found the right overrides to make
> this work.
>
> =
> \score {
>   \new Staff \transpose c c' {
> cis1 |
> %Not sure how to make MetronomeMarks align. Here's what I've tried:
> \override Score.MetronomeMark.non-break-align-symbols =
> #'(accidental-interface)
> \tempo "Accidental Alignment"
>
> cis1 |
>   }
> }
> =
>
> (3) Alignment with multimeasure rests. I haven't found any definitive source
> for how these should behave. It isn't addressed directly in Gould though
> there are some examples on page 565 where they appear to be just to the left
> of the bar line. Lilypond does this mostly, but it leaves more horizontal
> space between the bar line and the start of the tempo than I'd like.
>
> \override Score.MetronomeMark.non-break-align-symbols =
> #'(paper-column-interface multi-measure-rest-interface)
>
> The above is very close except after a break the tempo indication left
> aligns with the left edge of the system instead of right after the clef. I'm
> not sure how to fix that.
>
> =
> \score {
>   \new Staff \transpose c c' {
> \compressFullBarRests
> \markLengthOn
> \override Score.MetronomeMark.non-break-align-symbols =
> #'(paper-column-interface multi-measure-rest-interface)
> \tempo "Somewhat long tempo"
> R1*20 |
> % Align to bar line
> \tempo "Another long tempo"
> c1 | \noBreak
> R1*20 |
> %Misaligned after break
> \tempo "Yet another long tempo"
> R1*20 |
> \tempo "Final long tempo"
> R1*20 |
> \markLengthOff
>   }
> }
> =
>
> In conjunction with the above, to nudge it slight to the left of the bar
> line with multi measure rests the override below seems to work well and I
> like it better than directly aligning with the bar.
>
> =
> #(define (is-bar-aligned grob)
>   (and (grob::has-interface grob 'break-aligned-interface)
> (eqv? 'staff-bar (ly:grob-property grob 'break-align-symbol
>
> #(define (callback mm)
>   (let ((parent (ly:grob-parent mm X)))
> (if (is-bar-aligned parent)
>   '(1 . 0)
>   '(0 . 0
>
> ...
>
> \override Score.MetronomeMark.extra-offset = #callback
> =
>
> (4) Alignment after rehearsal marks. My preference here would be to have the
> rehearsal mark followed by tempo mark instead of stacking. Most of the time
> this isn't a big problem. However when music gets a bit compressed they
> stack (even using \markLengthOn). Also if I manage to make the above (3)
> work for alignment with multimeasure rests this will also occur. This would
> be worth thinking about after the above.
>
> Any suggestions for the above would be welcome. Thanks.
>
> -Jay
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Tempo Alignment Questions

2018-01-13 Thread Jay Anderson
I'm unable to find them at the moment, but I've seen threads discussing
general overrides for tempo marks to make them work better (e.g. avoid
stacking, better horizontal alignment with other objects). What are the
current recommend overrides that you use to get better tempo behavior? The
suggestion from Gould is:
- Align with the time signature
- If no time signature then align with the first notation element (that's
not the starting clef or key signature)

Here are some things I'm looking to solve:

(1) Align with repeat sign at the beginning of a system. I haven't found
the right overrides to make that work.

=
\version "2.19.80"
\score {
  \new Staff \transpose c c' {
c1 | \break

%RehearsalMarks align where the tempo should in this case
\override Score.RehearsalMark.self-alignment-X = #LEFT
\mark "RehearsalMark"

%Not sure how to make MetronomeMarks align. Here's what I've tried:
\override Score.MetronomeMark.break-align-symbols = #'(staff-bar)
\override Score.MetronomeMark.non-break-align-symbols = #'()
\tempo "MetronomeMark"

\repeat volta 2 { c1 |}
  }
}
=

(2) Align with accidentals. The default lilypond behavior is to align with
the notehead. Like the above I haven't found the right overrides to make
this work.

=
\score {
  \new Staff \transpose c c' {
cis1 |
%Not sure how to make MetronomeMarks align. Here's what I've tried:
\override Score.MetronomeMark.non-break-align-symbols =
#'(accidental-interface)
\tempo "Accidental Alignment"

cis1 |
  }
}
=

(3) Alignment with multimeasure rests. I haven't found any definitive
source for how these should behave. It isn't addressed directly in Gould
though there are some examples on page 565 where they appear to be just to
the left of the bar line. Lilypond does this mostly, but it leaves more
horizontal space between the bar line and the start of the tempo than I'd
like.

\override Score.MetronomeMark.non-break-align-symbols =
#'(paper-column-interface multi-measure-rest-interface)

The above is very close except after a break the tempo indication left
aligns with the left edge of the system instead of right after the clef.
I'm not sure how to fix that.

=
\score {
  \new Staff \transpose c c' {
\compressFullBarRests
\markLengthOn
\override Score.MetronomeMark.non-break-align-symbols =
#'(paper-column-interface multi-measure-rest-interface)
\tempo "Somewhat long tempo"
R1*20 |
% Align to bar line
\tempo "Another long tempo"
c1 | \noBreak
R1*20 |
%Misaligned after break
\tempo "Yet another long tempo"
R1*20 |
\tempo "Final long tempo"
R1*20 |
\markLengthOff
  }
}
=

In conjunction with the above, to nudge it slight to the left of the bar
line with multi measure rests the override below seems to work well and I
like it better than directly aligning with the bar.

=
#(define (is-bar-aligned grob)
  (and (grob::has-interface grob 'break-aligned-interface)
(eqv? 'staff-bar (ly:grob-property grob 'break-align-symbol

#(define (callback mm)
  (let ((parent (ly:grob-parent mm X)))
(if (is-bar-aligned parent)
  '(1 . 0)
  '(0 . 0

...

\override Score.MetronomeMark.extra-offset = #callback
=

(4) Alignment after rehearsal marks. My preference here would be to have
the rehearsal mark followed by tempo mark instead of stacking. Most of the
time this isn't a big problem. However when music gets a bit compressed
they stack (even using \markLengthOn). Also if I manage to make the above
(3) work for alignment with multimeasure rests this will also occur. This
would be worth thinking about after the above.

Any suggestions for the above would be welcome. Thanks.

-Jay
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Center-align a score

2018-01-13 Thread Kieren MacMillan
Hi David,

> When 2.19.61 comes out, you'll be able to write
> 
> \overrideProperty
> Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset
> . (0.0 . 1.0)))
> 
> to "nudge" a system one staff-space down the page, for example.
> 
> That should be a bit easier to work with than 'Y-offset.

I still think this is amazing (thanks again!), but… My instinct/intuition says 
that the Y axis of the extra-offset should work like it does for every other 
grob, i.e., + goes UP the page, and - goes down. Right now, it’s the opposite. 
Just a thought!

Best,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: GSoC applications

2018-01-13 Thread Flaming Hakama by Elaine
> -- Forwarded message --
> From: Urs Liska 
> To: Carlo Stemberger 
> Cc: lilypond-user 
> Subject: Re: GSoC applications
>
> ...
>
> Am 09.01.2018 um 19:36 schrieb Karlin High:
>
> I'm partial to Knut Petersen's video score features. There was once a
> mention of combining these two projects somehow.
>
> However, think of all the dependencies that video-generation features
> would bring in. (Say, FluidSynth for MIDI-to-Audio, FFMPEG for video
> generation, etc) I expect a video score feature would end up as a whole
> separate project closely connected to LilyPond, like Frescobaldi is now.
>
>
> This sounds great.
>
> I suggest you start a new thread about that and discuss some outline of a
> project. If you come up with a project description - and a mentor - I can
> integrate it in the suggestions page.
>
> Urs
>

I'd consider being the mentor for this project.

I agree that, before it is GSoC-consumbale, I think there needs to be some
discussion about how it fits together, and break it into parts, each
appropriate for a project.

I'm in the midst of writing up some notes and suggestions, but I figured
I'd mention my interest first.



David Elaine Alt
415 . 341 .4954   "*Confusion is
highly underrated*"
ela...@flaminghakama.com
skype: flaming_hakama
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Simon Albrecht

On 13.01.2018 21:15, Pierre-Luc Gauthier wrote:

Holy, what devilry is this?


Also, PS: , especially the title-/mouseover-text ;-)

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Simon Albrecht

On 13.01.2018 21:15, Pierre-Luc Gauthier wrote:

2018-01-13 15:04 GMT-05:00 Thomas Morley:

 @score-list

Holy, what devilry is this?


List splicing – prefixing with @ inserts all the elements of the list 
separately.


Best, Simon

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Header as argument in score generating function

2018-01-13 Thread David Kastrup
Simon Albrecht  writes:

> On 13.01.2018 19:28, Thomas Morley wrote:
>> Btw, if I'm not mistaken, "module?" is not even listed in the
>> guile-manual, neither guile-1.8 nor guile-2.2.3
>
> Astounding.
>
> ~/lilypond-git$ git grep 'module?'
> ly/context-mods-init.ly: (if (output-module? module)
> scm/framework-ps.scm:  (if (module? header)
> scm/lily-library.scm:(define-public (output-module? module)

Well, the main suspect is

dak@lola:/usr/local/tmp/lilypond$ git grep 'is_module'
Documentation/misc/ChangeLog-2.3:   * lily/include/ly-module.hh 
(ly_use_module): rename is_module to
lily/book-scheme.cc:  if (ly_is_module (header))
lily/book-scheme.cc:  return ly_is_module (b->header_) ? b->header_ : 
SCM_BOOL_F;
lily/book-scheme.cc:  SCM_ASSERT_TYPE (ly_is_module (module), module, SCM_ARG2, 
__FUNCTION__,
lily/book.cc:  if (ly_is_module (s.header_))
lily/book.cc:  if (ly_is_module (parent->header_))
lily/book.cc:  if (ly_is_module (header_))
lily/book.cc:  if (ly_is_module (score->get_header ()))
lily/book.cc:  else if (ly_is_module (output_paper_book->header_))
lily/book.cc:  else if (ly_is_module (output_paper_book->header_0_))
lily/book.cc:  if (ly_is_module (score->get_header ()))
lily/include/lily-guile.hh:inline bool ly_is_module (SCM x) { return 
SCM_MODULEP (x); }
lily/lily-parser.cc:  if (!ly_is_module (id))
lily/output-def.cc:  if (ly_is_module (s.scope_))
lily/pango-font.cc:  if (ly_is_module (mod))
lily/paper-book-scheme.cc:  if (ly_is_module (book->header_))
lily/paper-book.cc:  if (ly_is_module (header_))
lily/paper-book.cc:  if (ly_is_module (header_))
lily/paper-book.cc:  if (ly_is_module (header_0_))
lily/paper-book.cc:  if (ly_is_module (header_))
lily/paper-book.cc:  if (ly_is_module (header_))
lily/paper-book.cc:  if (ly_is_module (header))
lily/paper-book.cc:  if (ly_is_module (header))
lily/paper-book.cc:  if (ly_is_module (scm_car (s)))
lily/parser.yy: } else if (ly_is_module ($1))
lily/parser.yy: if (ly_is_module ($2))
lily/parser.yy: } else if (ly_is_module ($2))
lily/parser.yy: } else if (ly_is_module ($2)) {
lily/parser.yy: if (!ly_is_module (book->header_))
lily/parser.yy: if (!ly_is_module (book->header_))
lily/parser.yy: if (scm_is_pair ($1) && ly_is_module (scm_car 
($1)))
lily/parser.yy: if (ly_is_module (scm_car ($1)))
lily/parser.yy: else if (scm_is_pair ($$) && ly_is_module 
(scm_car ($$)))
lily/parser.yy: } else if (ly_is_module ($2)) {
lily/parser.yy: if (!ly_is_module (module))
lily/parser.yy: } else if (scm_is_pair ($$) && ly_is_module 
(scm_car ($$)))
lily/parser.yy: if (!ly_is_module (score->get_header ()))
lily/parser.yy: if (!scm_is_pair ($1) || !ly_is_module (scm_car 
($1)))
lily/performance-scheme.cc:  SCM_ASSERT_TYPE (ly_is_module (module), module, 
SCM_ARG2, __FUNCTION__,
lily/performance.cc:  assert (ly_is_module (module));
lily/score-scheme.cc:  SCM_ASSERT_TYPE (ly_is_module (module), module, 
SCM_ARG2, __FUNCTION__,
lily/score.cc:  if (ly_is_module (s.header_))
lily/score.cc:  assert (ly_is_module (module));

so it's not like this isn't actually checked a fair amount...

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Header as argument in score generating function

2018-01-13 Thread Pierre-Luc Gauthier
Might this be related or even interesting :
http://lists.gnu.org/archive/html/lilypond-user/2016-06/msg00454.html

2018-01-13 15:46 GMT-05:00 Simon Albrecht :
> On 13.01.2018 19:28, Thomas Morley wrote:
>>
>> Btw, if I'm not mistaken, "module?" is not even listed in the
>> guile-manual, neither guile-1.8 nor guile-2.2.3
>
>
> Astounding.
>
> ~/lilypond-git$ git grep 'module?'
> ly/context-mods-init.ly: (if (output-module? module)
> scm/framework-ps.scm:  (if (module? header)
> scm/lily-library.scm:(define-public (output-module? module)
>
> Best, Simon



-- 
Pierre-Luc Gauthier

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Header as argument in score generating function

2018-01-13 Thread Simon Albrecht

On 13.01.2018 19:28, Thomas Morley wrote:

Btw, if I'm not mistaken, "module?" is not even listed in the
guile-manual, neither guile-1.8 nor guile-2.2.3


Astounding.

~/lilypond-git$ git grep 'module?'
ly/context-mods-init.ly: (if (output-module? module)
scm/framework-ps.scm:  (if (module? header)
scm/lily-library.scm:(define-public (output-module? module)

Best, Simon

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Pierre-Luc Gauthier
Hi Thomas,

2018-01-13 15:04 GMT-05:00 Thomas Morley :
> @score-list

Holy, what devilry is this?
It *does* work perfectly !

> Though I'm not sure what you're aiming at...
Hopefully I will try someday and make a post (on the lilypondblog.org
if I could set myself an account) for my setup which I think is quite
powerful for, easy to setup, complex chorus and full orchestra,
*multiple score* work.

The multiple score support was lacking in my setup but I need to make
it work ASAP.
It got me going for the last year and currently generates multiples
editions (letter, tablet, huge, kindle, etc) for all parts in the
orchestra for a small setup time.

Thank you very much Thomas.
-- 
Pierre-Luc Gauthier

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: GSoC applications

2018-01-13 Thread Kieren MacMillan
Hi Urs,

> In theory the answer is simple: A good project for GSoC is something a 
> student can achieve with three months of full-time work. Not more, but also 
> not less.
> Generally, for larger projects it's beneficial if it can be somehow 
> modularized, i.e. it should not be one monolithic feature that can just be 
> completed or not. So if progress is slower there is simply less functionality 
> completed rather than the whole thing failed.

I note that all the Lyric improvements are no longer listed as a GSoC project. 
What's the reason there?

In addition to the stuff that Janek was actively working on — now quite a while 
ago — there was a flurry of discussion not too long about about whether 
LyricText could have some "fixed versus flexible" springs-and-rods 
mechanism(s), so that lyrics don't always distort note-spacing. I think this 
project would easily fill up three months of full-time work, but could also be 
modularized.

That would be the project I most want to see completed (or at least 
significantly tackled/advanced).

Thanks,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Thomas Morley
2018-01-13 20:33 GMT+01:00 Pierre-Luc Gauthier :
> Thanks Thimothy
>
> 2018-01-13 13:49 GMT-05:00 Timothy Lanfear :
>> See this thread
>
> I will.
>
> Here is where I am so far.
>
> I'm trying to get some basic iteration going on.
> Still, I'm not sure why it does not work.
>
> --
> Pierre-Luc Gauthier
>
> %%%
> \version "2.21.0"
>
> scoreI = \score {{ces''4}}
>
> scoreII = \score {{cis''4}}
>
> bookFunc = #
> (define-void-function
>  (score-list filename)
>  (list?  string?)
>  (ly:book-process #{
>\book {
>  \header {title = #(strftime "%H:%M:%S" (localtime (current-time)))}
>
>  % $(car score-list) % This works
>  % $(cadr score-list) % This works
>
>  $(for-some-music ;; Or map? Neither works
> (lambda (score)
>   score)
> score-list)

@score-list

will do what you're trying to do here.
Though I'm not sure what you're aiming at...

Cheers,
  Harm

>}
>#} #{ \paper {} #} #{ \layout {} #}
>(string-append "Part-" filename)))
>
> \bookFunc #(list scoreI scoreII) "fileName"
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Pierre-Luc Gauthier
Thanks Thimothy

2018-01-13 13:49 GMT-05:00 Timothy Lanfear :
> See this thread

I will.

Here is where I am so far.

I'm trying to get some basic iteration going on.
Still, I'm not sure why it does not work.

-- 
Pierre-Luc Gauthier

%%%
\version "2.21.0"

scoreI = \score {{ces''4}}

scoreII = \score {{cis''4}}

bookFunc = #
(define-void-function
 (score-list filename)
 (list?  string?)
 (ly:book-process #{
   \book {
 \header {title = #(strftime "%H:%M:%S" (localtime (current-time)))}

 % $(car score-list) % This works
 % $(cadr score-list) % This works

 $(for-some-music ;; Or map? Neither works
(lambda (score)
  score)
score-list)
   }
   #} #{ \paper {} #} #{ \layout {} #}
   (string-append "Part-" filename)))

\bookFunc #(list scoreI scoreII) "fileName"
\version "2.21.0"

scoreI = \score {{ces''4}}

scoreII = \score {{cis''4}}

bookFunc = #
(define-void-function
 (score-list filename)
 (list?  string?)
 (ly:book-process #{
   \book {
 \header {title = #(strftime "%H:%M:%S" (localtime (current-time)))}

 % $(car score-list) % This works
 % $(cadr score-list) % This works

 $(for-some-music ;; Or map? Neither works
(lambda (score)
  score)
score-list)
   }
   #} #{ \paper {} #} #{ \layout {} #}
   (string-append "Part-" filename)))

\bookFunc #(list scoreI scoreII) "fileName"___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: List of scores for book function

2018-01-13 Thread Timothy Lanfear
See this thread for some ideas on how to do it, plus some quirks to look 
out for.


http://lilypond.1069038.n5.nabble.com/Unexpected-behaviour-of-ly-make-book-and-ly-make-book-part-td192160.html



On 13/01/18 16:52, Pierre-Luc Gauthier wrote:

Hi there,

I'm trying to pass a list of scores to a book generating function and
I have a few questions.
Please see example post scriptum.

How should I structure (syntax) my score list?
I did some trials and (only) errors…

How should I iterate over said list?
I'm not quite sure how to "unfold" the score if that makes any sense.
I am using (display (car score-list)) just to figure out what is going on.

Good day


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


--
Timothy Lanfear, Bristol, UK.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Header as argument in score generating function

2018-01-13 Thread Thomas Morley
2018-01-13 17:05 GMT+01:00 Pierre-Luc Gauthier :

>
> FTR, At first I tried "ly:module?" as a predicate.
> Also, I did look for any "module" predicate in the predefined type
> predicates documentation page.
> The "module?" is not listed in this page.
> ^ Should I notify the bug list?


Well, we do have a subsection "Guile predicates", with a single entry:
"hash-table?"
Maybe we should add "module?" there.

Iirc it's not that long possible to assign a header to a variable. But
now we should be prepared that users will take the opportunity to use
it in functions, like you did.
So, yes, let's document it, imho.

Btw, if I'm not mistaken, "module?" is not even listed in the
guile-manual, neither guile-1.8 nor guile-2.2.3

Cheers,
  Harm

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


List of scores for book function

2018-01-13 Thread Pierre-Luc Gauthier
Hi there,

I'm trying to pass a list of scores to a book generating function and
I have a few questions.
Please see example post scriptum.

How should I structure (syntax) my score list?
I did some trials and (only) errors…

How should I iterate over said list?
I'm not quite sure how to "unfold" the score if that makes any sense.
I am using (display (car score-list)) just to figure out what is going on.

Good day
-- 
Pierre-Luc Gauthier

%
\version "2.21.0"

scoreI = \score {
  {\key cis \major ces''4}
  \layout {}
}

scoreII = \score {
  {\key ces \major cis''4}
  \layout {}
}

bookFunc = #
(define-void-function
 (score-list filename)
 (list?  string?)
 (ly:book-process #{
   \book {

 \score {
   {c'4}
   \layout {}
 }

 %$(for-each score-list
 %   (lambda (score)
 % $score
 % ))

   }
   #} #{ \paper {} #} #{ \layout {} #}
   (string-append "Part-" filename)))

\bookFunc #'(scoreI scoreII) "fileName"
\version "2.21.0"

scoreI = \score {
  {\key cis \major ces''4}
  \layout {}
}

scoreII = \score {
  {\key ces \major cis''4}
  \layout {}
}

bookFunc = #
(define-void-function
 (score-list filename)
 (list?  string?)
 (ly:book-process #{
   \book {

 \score {
   {c'4}
   \layout {}
 }

 %$(for-each score-list
 %   (lambda (score)
 % $score
 % ))

   }
   #} #{ \paper {} #} #{ \layout {} #}
   (string-append "Part-" filename)))

\bookFunc #'(scoreI scoreII) "fileName"___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Header as argument in score generating function

2018-01-13 Thread Pierre-Luc Gauthier
Hi Thomas,

> 2018-01-13 3:30 GMT+01:00 Pierre-Luc Gauthier :

>> Expecting music, found #

>> I did read and tried stuff based on :
>> http://lilypond.org/doc/v2.19/Documentation/notation/predefined-type-predicates.en.html

2018-01-13 1:16 GMT-05:00 Thomas Morley :
> As the error-message states, don't ask for ly:muisc? but for module?

It does work! Thank you very much.

FTR, At first I tried "ly:module?" as a predicate.
Also, I did look for any "module" predicate in the predefined type
predicates documentation page.
The "module?" is not listed in this page.
^ Should I notify the bug list?

Good day
-- 
Pierre-Luc Gauthier

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user