Hello Valentin,

I see what you mean (thanks for your further explanation) but it would not
work for what I want to achieve. I try to explain why.
My example is focused on _rendering_. With your procedure, I would
statically fix portions to be rendered separately, and each portion would
be a separate file. This is good when writing parts, or when writing
movements of a composition. But in my case, all the sections dynamically
vary because they represents what to be rendered.
This means that, for example, when a section takes too much time to be
rendered, I can decide to shrink it. Then, for example, I fix a problem,  I
verify the problem has fixed (---> rendering) and then I enlarge it to its
original size ( == amount of rendered measures). This is what I do very
often (it saves much time!) and this is why I comment/comment out portions
of the score.

Best,
P



On Wed, Nov 24, 2021 at 7:07 PM Valentin Petzel <[email protected]> wrote:

> Hello Paolo,
>
> you've missunderstood what I meant. If you have each section in a separate
> file you can simly compile that file instead of uncommenting stuff. And you
> can have header and first section in the same file.
>
> Cheers,
> Valentin
>
> 24.11.2021 18:08:50 Paolo Prete <[email protected]>:
>
> 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 <[email protected]>
> 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