How to notate movement titles? or how to have subsections?

2020-07-25 Thread Kenneth Wolcott
Hi;

  Actually even more simple than this.

  All I have understood so far in reading the Learning and Notation
and Snippets Lilypond documentation is that I have "header" enclosing
a "title" but no grasp of additional structure like using "book".

  Could someone point out to me where I can get more info on how to do this?

  Perhaps doing a simple skeleton like I have below that I can use as
a template?

Thanks,
Ken Wolcott

  Hypothetically I have a Lilypond file (or many subfiles) that will
end up looking like this:

  Book of Exercises

  Scale Exercises

[some text here]

  Major Scales

  C Major Scale (literally)
  G Major Scale (literally)
  etc

  Minor Scales

 [ literally some minor scales here ]

Simple Tunes and Themes

Title of Tune #1
[some text describing the tune, practicing it, performing it, etc]
[actual tune notes go here]



Re: Understanding scope of functions in Scheme modules

2020-07-25 Thread Urs Liska
I thought I had a good idea, but it got me into hot water, with no
border in sight yet...

I thought I could do the following:

 * Define-public my "internal" procedures in a module _my-module
 * Use that module in my-module

All the stuff defined in _my-module will be visible in my-module, and
all the stuff defined publicly in my-module will be seen in later
LilyPond files. If some later Scheme module needs access to it it can
use my-module.

While I have the impression this actually works I run into situations I
wouldn't have expected. Unfortunately I can't really provide an MWE for
it.

But could someone give me a hint how I can bring myself in a situation
to get
  Unbound variable: define-void-function
?
This is defined in music-functions.scm, and it should in any case have
been loaded before I ever issue an \include "oll-core/package.ily",
isn't it?

Probably the real issue is totally somewhere else, but I just have to
shoot in the dark here, hoping for some reflections ...

BestUrs

Am Samstag, den 25.07.2020, 10:28 +0200 schrieb Urs Liska:
> Hi,
> 
> I'm trying to clean up some code in openLilyLib, most of which had
> been
> added when I was just starting to understand the topics I had to deal
> with at any point ...
> 
> One thing I'm right now struggling with and that I'd like to get
> right
> this time is the scoping of code within Scheme modules.
> 
> My observation at this point seems to be:
> 
>  * I can define procedures or variables in a Scheme module
> equivalently
>with (define-public my-proc) or (define my-proc) (export my-proc)
>  * I can include such a module in a .ly file with (use-modules (my-
>module)) (if it's in the Guile path).
>  * my-proc will then be available for any later LilyPond code (i.e.
>also in other files that are later in that compilation's parsing)
>  * my-proc will *not* be available in other .scm files, in these I
>would have to explicitly include my-module with use-modules.
> 
> Is this correct so far?
> If so is there a way to make names from modules only available within
> the LilyPond file that uses the module?
> 
> I would like to have more encapsulation, so that the helper functions
> needed for the implementation are only visible where needed to have
> less clutter in the global namespace, like in many other languages
> where you have to explicitly import modules you want to use within
> each
> file.
> 
> I think it will already be progress just to have the code *organized*
> like that, the camelCase-d user-facing LilyPond functions in the .ily
> file and the Scheme-define-d helper code in a separate .scm file. But
> if there were a way for real scoping it would be better.
> 
> Any suggestions available?
> 
> Thanks
> Urs
> 
> 




Re: Natural marked with a sharp symbol (mensural notation)

2020-07-25 Thread Lukas-Fabian Moser

Hi Niols,

I stumbled upon a score in G minor where a E natural would be marked 
as a E note preceded by a sharp symbol. What would be a “clean” way to 
achieve that?


I have thought of redefining the natural symbol by the sharp one, but:

  1. I don't know how to do this.

  2. This would not work in an other key signature with sharps where, I
 assume, the natural would be marked with flat symbols.


Perhaps:

\version "2.20.0"

forceSharp =
\tweak Accidental.stencil #ly:text-interface::print
\tweak Accidental.text ##{ \markup { \sharp } #}
\etc

forceFlat =
\tweak Accidental.stencil #ly:text-interface::print
\tweak Accidental.text ##{ \markup { \flat } #}
\etc

\relative {
  \key f \major
  f' g a \forceSharp b
}

\relative {
  \key g \major
  a' g \forceFlat f e
}

This probably has to be customized if you use mensural glyphs.

Best
Lukas




Natural marked with a sharp symbol (mensural notation)

2020-07-25 Thread Niols

Hello,

I stumbled upon a score in G minor where a E natural would be marked as 
a E note preceded by a sharp symbol. What would be a “clean” way to 
achieve that?


I have thought of redefining the natural symbol by the sharp one, but:

  1. I don't know how to do this.

  2. This would not work in an other key signature with sharps where, I
 assume, the natural would be marked with flat symbols.

I actually found something about this in the documentation here:


http://lilypond.org/doc/v2.19/Documentation/notation/typesetting-mensural-music#mensural-accidentals-and-key-signatures

It does say that the natural symbol does not exist really and that the 
sharp or flat is used more often. However, I could not see a clean way 
to say that I indeed wanted that.


As a bonus question, what if I wanted the sharp from the mensural 
accidentals to be bigger in my score (I find the default one really tiny).


Thank you so much in advance,
— Niols



Re: What happened to INSTALL.txt?

2020-07-25 Thread H. S. Teoh
On Sat, Jul 25, 2020 at 09:47:16AM +0200, Jonas Hahnfeld wrote:
> Hi,
> 
> Am Freitag, den 24.07.2020, 15:14 -0700 schrieb H. S. Teoh:
> > I pulled lilypond sources from git today, and while trying to figure
> > out a botched configure invocation, I did a git clean -x -f, and now
> > INSTALL.txt doesn't exist anymore...?  I did a fresh git clone from
> > git://git.sv.gnu.org/lilypond.git but same thing, INSTALL.txt seems
> > to have gone missing?
> 
> INSTALL.txt is not tracked in git, but generated from texinfo sources
> when running ./configure (or ./autogen.sh). For that reason, it was
> removed with git-clean.
[...]

Ah, thanks! That explains it.

Seems to me like kind of a chicken-and-egg problem, though. In order to
build lilypond I need to read INSTALL.txt, but in order to read
INSTALL.txt, I need to build lilypond first...  I ended up googling for
the file on the website and following the steps from there instead.


T

-- 
Тише едешь, дальше будешь.



Re: Selective partCombine

2020-07-25 Thread David Sumbler
On Sat, 25 Jul 2020 at 18:01 +1000, Vaughan McAlley  
wrote:
> 
> On Sat, 25 Jul 2020 at 05:28, David Sumbler  wrote:
> >
> > The only orchestral piece I have set in Lilypond until now was for 12
> > strings and a couple of other instruments.  I had 2 versions of the
> > strings material, one of which kept all of the parts on separate staves
> > for the parts, and the other which combined them on to fewer staves
> > (where appropriate) for the score.  This worked tolerably well: I wrote
> > one version first, then copied and edited it to produce the other.  In
> > simpler sections I could even make the necessary changes by using tags.
> >
> > But I feel that there must be a better way.  As I am now about to start
> > on a work for full orchestra, I have been experimenting with having
> > separate parts which can nonetheless be combined on to a single stave
> > using \partCombine and its cousins. For instance, I have:
> >
> > instOne = {c'4 d' e' f' | g' a' b' c'' | d'' e'' f'' g''}
> > instTwo = {a4 b c' d' | e' f' g' a' | b' c'' d'' e''}
> > instScore = ?
> >
> > The form of instOne and instTwo would be correct for the parts.  I am
> > looking for a way of writing instScore so that it combines the parts on
> > to one staff in bar 2, while keeping them separate in bars 1 and 3.
> > (Obviously this would be senseless here, but imagine that each bar
> > represents a passage taking up a full page width or more.)
> >
> > Is this possible?  Or am I approaching this in completely the wrong
> > way?
> >
> > David
> >
> >
> 
> I've been working on an old orchestral score of mine where flutes
> keep swapping to piccolo etc. I have something like this, the
> attached files. Being able to put variables in quotes is a godsend.
> 
> Vaughan

This is excellent - thank you so much for sending it.  I need to study
it in a bit more detail than I've had time for yet, but I am sure that
I can adapt these ideas to my requirements.

David




Re: Selective partCombine

2020-07-25 Thread via LilyPond user discussion
Did you see my (first attempt at a) tutorial on this topic?https://lists.gnu.org/archive/html/lilypond-user/2020-06/msg00114.htmlRutgerOp 25 jul. 2020 10:01 a.m. schreef Vaughan McAlley :On Sat, 25 Jul 2020 at 05:28, David Sumbler  wrote:>> The only orchestral piece I have set in Lilypond until now was for 12> strings and a couple of other instruments.  I had 2 versions of the> strings material, one of which kept all of the parts on separate staves> for the parts, and the other which combined them on to fewer staves> (where appropriate) for the score.  This worked tolerably well: I wrote> one version first, then copied and edited it to produce the other.  In> simpler sections I could even make the necessary changes by using tags.>> But I feel that there must be a better way.  As I am now about to start> on a work for full orchestra, I have been experimenting with having> separate parts which can nonetheless be combined on to a single stave> using \partCombine and its cousins. For instance, I have:>> instOne = {c'4 d' e' f' | g' a' b' c'' | d'' e'' f'' g''}> instTwo = {a4 b c' d' | e' f' g' a' | b' c'' d'' e''}> instScore = ?>> The form of instOne and instTwo would be correct for the parts.  I am> looking for a way of writing instScore so that it combines the parts on> to one staff in bar 2, while keeping them separate in bars 1 and 3.> (Obviously this would be senseless here, but imagine that each bar> represents a passage taking up a full page width or more.)>> Is this possible?  Or am I approaching this in completely the wrong> way?>> David>>I've been working on an old orchestral score of mine where flutes keep swapping to piccolo etc. I have something like this, the attached files. Being able to put variables in quotes is a godsend.Vaughan 


Understanding scope of functions in Scheme modules

2020-07-25 Thread Urs Liska
Hi,

I'm trying to clean up some code in openLilyLib, most of which had been
added when I was just starting to understand the topics I had to deal
with at any point ...

One thing I'm right now struggling with and that I'd like to get right
this time is the scoping of code within Scheme modules.

My observation at this point seems to be:

 * I can define procedures or variables in a Scheme module equivalently
   with (define-public my-proc) or (define my-proc) (export my-proc)
 * I can include such a module in a .ly file with (use-modules (my-
   module)) (if it's in the Guile path).
 * my-proc will then be available for any later LilyPond code (i.e.
   also in other files that are later in that compilation's parsing)
 * my-proc will *not* be available in other .scm files, in these I
   would have to explicitly include my-module with use-modules.

Is this correct so far?
If so is there a way to make names from modules only available within
the LilyPond file that uses the module?

I would like to have more encapsulation, so that the helper functions
needed for the implementation are only visible where needed to have
less clutter in the global namespace, like in many other languages
where you have to explicitly import modules you want to use within each
file.

I think it will already be progress just to have the code *organized*
like that, the camelCase-d user-facing LilyPond functions in the .ily
file and the Scheme-define-d helper code in a separate .scm file. But
if there were a way for real scoping it would be better.

Any suggestions available?

Thanks
Urs




Re: Selective partCombine

2020-07-25 Thread Vaughan McAlley
On Sat, 25 Jul 2020 at 05:28, David Sumbler  wrote:
>
> The only orchestral piece I have set in Lilypond until now was for 12
> strings and a couple of other instruments.  I had 2 versions of the
> strings material, one of which kept all of the parts on separate staves
> for the parts, and the other which combined them on to fewer staves
> (where appropriate) for the score.  This worked tolerably well: I wrote
> one version first, then copied and edited it to produce the other.  In
> simpler sections I could even make the necessary changes by using tags.
>
> But I feel that there must be a better way.  As I am now about to start
> on a work for full orchestra, I have been experimenting with having
> separate parts which can nonetheless be combined on to a single stave
> using \partCombine and its cousins. For instance, I have:
>
> instOne = {c'4 d' e' f' | g' a' b' c'' | d'' e'' f'' g''}
> instTwo = {a4 b c' d' | e' f' g' a' | b' c'' d'' e''}
> instScore = ?
>
> The form of instOne and instTwo would be correct for the parts.  I am
> looking for a way of writing instScore so that it combines the parts on
> to one staff in bar 2, while keeping them separate in bars 1 and 3.
> (Obviously this would be senseless here, but imagine that each bar
> represents a passage taking up a full page width or more.)
>
> Is this possible?  Or am I approaching this in completely the wrong
> way?
>
> David
>
>

I've been working on an old orchestral score of mine where flutes keep
swapping to piccolo etc. I have something like this, the attached files.
Being able to put variables in quotes is a godsend.

Vaughan
\version "2.20.0"

scorePart =
#(define-music-function
  (scoreMarkup partMarkup)
  (markup? markup?)
  #{ <<
\tag #'removeFromPart { <>^#scoreMarkup }
\tag #'removeFromScore { <>^#partMarkup }
 >>
  #}
  )

\paper {
  ragged-right = ##t
  left-margin = 3\cm
}

global = {
  \time 4/4
  \key c \major
  s1*5
  \bar "|."
}


"Fl1 1-4" = \relative c''' {
  c4 c c c |
  R1
  c8 b c b c b c b |
  R1
}

"Fl1 5-5" = \relative g'' {
  \tag #'removeFromPart <>^"Fl 1,2"
  g4 g g g |
}

"Fl2 1-4" = \relative g'' {
  g4 g g g |
  R1
  g4 g g g |
  R1
}

"Fl2 5-5" = \relative g'' {
  g4 g g g |
}

"Fl3 1-4" = \relative e'' {
  e4 e e e |
  R1
  e4 e e e |
  % scorePart takes two markups,
  % one for the score and one for the part
  \scorePart
  \markup \left-column { "Flute 3" "to piccolo" }
  "To piccolo"
  R1
}

"Fl3 5-5" = \relative b' {
  \transposition c'
  b4^"Piccolo"  b b b |
}

fluteOnePart = {
  \"Fl1 1-4"
  \"Fl1 5-5"
}

fluteTwoPart = {
  \"Fl2 1-4"
  \"Fl2 5-5"
}

fluteThreePart = {
  \"Fl3 1-4"
  \"Fl3 5-5"
}

\score {
  \new Staff
  \removeWithTag #'removeFromPart
  <<
\global
\fluteOnePart
  >>
  \layout {}
}

\score {
  \new Staff
  \removeWithTag #'removeFromPart
  <<
\global
\fluteTwoPart
  >>
  \layout {}
}

\score {
  \new Staff
  \removeWithTag #'removeFromPart
  <<
\global
\fluteThreePart
  >>
  \layout {}
}

flutesTop = \new Staff <<
  \global
  {
\set Staff.instrumentName = "Fl. 1,2"
\partcombine \"Fl1 1-4" \"Fl2 1-4"
\break
\set Staff.shortInstrumentName = "Picc"
\"Fl3 5-5"
  }
>>

flutesBottom = \new Staff <<
  \global
  {
\set Staff.instrumentName = "Fl. 3"
\"Fl3 1-4"
\break
\set Staff.shortInstrumentName = "Fl. 1,2"
\partcombine \"Fl1 5-5" \"Fl2 5-5"
  }
>>

\score {
  \removeWithTag #'removeFromScore
  \new StaffGroup
  <<
\flutesTop
\flutesBottom
  >>
  \layout {}
}


flutes.pdf
Description: Adobe PDF document


Re: What happened to INSTALL.txt?

2020-07-25 Thread Jonas Hahnfeld
Hi,

Am Freitag, den 24.07.2020, 15:14 -0700 schrieb H. S. Teoh:
> I pulled lilypond sources from git today, and while trying to figure out
> a botched configure invocation, I did a git clean -x -f, and now
> INSTALL.txt doesn't exist anymore...?  I did a fresh git clone from
> git://git.sv.gnu.org/lilypond.git but same thing, INSTALL.txt seems to
> have gone missing?

INSTALL.txt is not tracked in git, but generated from texinfo sources
when running ./configure (or ./autogen.sh). For that reason, it was
removed with git-clean.

Jonas


signature.asc
Description: This is a digitally signed message part