Hello Valentin,

thanks for your help!

I try to explain better what I need to do. Suppose that my score is divided
into three sections. The first one has not only notes, but a title too.
I need to render the sections all together or individually. The first
obvious way to do that is write the score in the form:


%%%%%
\markup { "My-Title" }
{
% SECTION 1 (title + notes)
{ c'1 c' d' d'\pageBreak }

%SECTION 2
{ c'1 c' d' d'\sustainOn\pageBreak }

%SECTION 3
{ c'1 c'\sustainOff d' d' }

}
%%%%%

and then comment or comment out parts of the score that I don't need to
render. So, for example, if I need to render only section 2, I would
comment section 3 and section 1 but I have to comment the markup block
separately as well: this is unwanted, because the markup belongs to section
1 context. Instead, it would be more appropriate to exclude automatically
the markup block when section one is not included.
Note that putting the sections into separate files, as you suggested, does
not solve the problem: instead of commenting blocks of code, I would have
to exclude both the file associated to the markup and the file associated
to section 1, if I want to render section 2.
Now, if I try to by-pass the problem with a \book context, I can embed the
markup into section 1:

%%%%%
\book {

% SECTION 1 (title + notes)
\markup { "My-Title" }
{ c'1 c' d' d'\pageBreak }

%SECTION 2
{ c'1 c' d' d'\sustainOn\pageBreak }

%SECTION 3
{ c'1 c'\sustainOff d' d' }

}
%%%%%

In this way, I could embed the markup into section 1, but it won't work for
another reason: the presence of the pedal needs that all the sections
belong to the same context. Note too that if I tweak sections of a score
into separate scores, I would have a logical mismatch between the syntax
used for blocks of code and what that blocks of code effectively represent,
which is unwanted too.

Hope this is more clear. Unfortunately the problem is tricky (and I hope
I'm wrong, so that there is already a right approach for it)

Best,

Paolo




On Wed, Nov 24, 2021 at 5:00 PM Valentin Petzel <valen...@petzel.at> wrote:

> Hello Paolo,
>
> I don’t really understand what you want to do. But if you only want render
> parts of your project I advise against commenting out and commenting in
> stuff.
> Instead (since you have a new section there anyway) put the different
> sections
> into different scores (you can tweak the second score so that it does not
> in
> fact look like it’s a new score) in different files. Then you could have a
> file header.ly which contains the header, a file secI.ly which contains
> the
> first section, secII.ly which contains the second section and so on. And
> then
> you could simply do
>
> \include "header.ly"
> \include "secI.ly"
> \include "secII.ly"
>
> and so on. If you want to render one section you just need to render the
> particular file.
>
> If you don’t want separate scores you could do use files which define the
> different parts in variables and stitch them together in the score.
>
> Like if you have a duetto with flauto dolce and bass tuba for example
> (marvellous combination!) you could have in
> secI.ly:
> FluteSecI = { music }
> TubaSecI = { music }
>
> And similar in secI.ly. Then in the score you can stitch them together like
> Flute = { \FluteSecI \pageBreak \FluteSecI }
> And similar.
>
> Then to get an output in your separate file you can create a separate
> score,
> only containing the section (which is something you could probably quickly
> do
> using templates.
>
> You can then assign this score to a variable like thisscore=\score{...}
> and
> then do something like
> #(if (not (defined? 'included)) (add-score thisscore))
>
> Then you can do #(define included 0) (or whatever value) before you
> include
> these files, and thus these scores will not be output if you compile the
> full
> score, but if you compile the files themselves they are.
>
> Cheers,
> Valentin
>
>
> Am Mittwoch, 24. November 2021, 13:01:11 CET schrieb Paolo Prete:
> > Hello,
> >
> > Given a header like this:
> >
> > %%%%%%%%
> > \markuplist {
> >
> > \fill-line {
> >   \override #'(font-name . "Liberation Sans")
> >   \override #'(font-size . 6)
> >   "Author"
> > }
> >
> > \vspace #4
> >
> > \fill-line {
> >   \override #'(font-name . "Liberation Sans")
> >   \override #'(font-size . 15)
> >   "Title"
> > }
> >
> > \vspace #2
> >
> > \fill-line {
> >   \override #'(font-name . "Liberation Sans")
> >   \override #'(font-size . 10)
> >   "Subtitle"
> > }
> >
> > \vspace #6
> >
> > }
> >
> > {
> >
> > %section 1
> > c'1 c' c' \break c' c'
> >
> > \pageBreak
> >
> > %section 2
> > e'1 e' f' \break f' f'
> >
> > }
> >
> > %%%%%
> >
> > ... I would like to put it inside the score context. Is it possible ?
> > In this way, given that the above header is only bound to the first page
> of
> > the score, if I want to render only page 2 I would not need two block
> > comments  (page 1 and header), but I would use only one block comment.
> >
> > (Maybe by using the following hacky way to have multiple marks on the
> same
> > bar:
> > https://lilypond.org/doc/v2.23/Documentation/snippets/expressive-marks
> > (Creating simultaneous rehearsal marks) ?)
> >
> > Thanks!
> >
> > P

Reply via email to