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 <paolopr...@gmail.com>: > 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[http://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[http://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