Re: Understanding Lilypond

2015-01-26 Thread Flaming Hakama by Elaine
 From: Kieren MacMillan kieren_macmil...@sympatico.ca
 Subject: Re: Understanding Lilypond

 Hi Peter,

  many of us have struggled for many months to get to grips with the
 structure and philosophy of Lilypond.

 1. Regarding the structure, what are you struggling with exactly?

 2. Regarding the philosophy, what are you struggling with exactly?

 Hope I can help!
 Kieren.



I have perhaps too much to say about lilypond documentation, much of it
still very unformed in my mind.
Here is some coherent but still probably pie-in-the-sky stuff that I think
would be exceptionally helpful.


% Code examples

The current examples present the minimum information necessary to
demonstrate the feature.

This follows lilypond's approach, which is to invent everything needed that
you didn't specify, like books, scores, staves, time signatues, clefs,
barlines, etc.

However, there are lots of time you are dealing with things that need to be
applied for only one staff, one staff group, for only one measure, only one
book, etc.   Before you can apply the example, you have to backfill the
structure to which it needs to be applied.  Then, apply your modification
in the correct place.

This leads me to a few suggestions:

1a) Provide a way to take a snippet and get the inferred document.Which
is to say, let lilypond invent all the book/score/staff, etc. necessary,
and then output that structure, rather than the usual pdf output.
(Someone will probably inform me that Frescobaldi already does this, and/or
there is an interpreter that does it, or a command line argument...)

1b) Add an option to toggle each example from the current, minimal
example, to a full context example that has this inferred structure.

2) For things that can be applied in various places (at global level, book
level, score level, staff group level, staff level, layout, context etc.)
 provide examples for what each of these look like.  Let the user choose at
which level the example should pertain, so they can then copy/paste the
code applicable to their situation.

3a) Link from the examples in the documentation to templates (and provide
enough templates to cover the material.)

3b) Compile some documentation-demonstration scores made by stringing
together the content in the existing examples, then provide links to the
examples' usage in these reference scores.

3c) Develop a library of musical example scores and cross reference them so
you can go from score to documentation or vice versa.


I am willing to help with documentation efforts if anyone is coordinating
them and needs help.



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


Re: Understanding Lilypond

2015-01-26 Thread Kieren MacMillan
Hi,

 The current examples present the minimum information necessary to demonstrate 
 the feature.
 This follows lilypond's approach, which is to invent everything needed that 
 you didn't specify, like books, scores, staves, time signatues, clefs, 
 barlines, etc.

This *is* a potential frustration.

 1b) Add an option to toggle each example from the current, minimal example, 
 to a full context example that has this inferred structure.  

That would be a great solution — it might be difficult to do “automagically”, 
but could certainly be done manually by an interested party.

 2) For things that can be applied in various places (at global level, book 
 level, score level, staff group level, staff level, layout, context etc.)  
 provide examples for what each of these look like.  Let the user choose at 
 which level the example should pertain, so they can then copy/paste the code 
 applicable to their situation.

Hmmm… Given the impressive (read: daunting) size of the docs as they already 
stand, I’m not sure that multiplying all examples by at least a factor of five 
(my estimate for the average number of possible levels of application) is a 
great idea. Certainly *one* example showing the application of the same (e.g.) 
override at all possible different levels would be instructive — and hopefully 
easily applied to other circumstances by the reader.

 3a) Link from the examples in the documentation to templates (and provide 
 enough templates to cover the material.)

There is a discussion currently underway about how best to provide stylesheets 
and templates — feel free to join in and contribute there!

 3b) Compile some documentation-demonstration scores made by stringing 
 together the content in the existing examples, then provide links to the 
 examples' usage in these reference scores.
 
 3c) Develop a library of musical example scores and cross reference them so 
 you can go from score to documentation or vice versa.

Interesting suggestions, though I don’t immediately see how to accomplish that 
easily.

Thanks!
Kieren.

___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


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


RE: Understanding Lilypond

2015-01-17 Thread Peter Gentry
Thanks for your reply Kieran - I'm not sure that my response is suitable for 
the list but will post it there anyway. Please feel
free to critisize scorn or otherwise flame.

1. This is difficult. My background is chiefly in Fortran and Visual Basic 
although I have dabbled with machine code. These codes
have well defined structures variables are defined there are multi dimensional 
arrays and subroutines are similarly well defined as
far as parameters and scopes are concerned.

When I look through the Lilypond source code I see

(a) at least three different languages being used C++, Scheme, and Python. It 
is not clear how these are integrated or why they are
needed.
(b) the syntax and scope of variables is hard to follow through the various 
procedures probably mainly due to a lack of
understanding of the way scheme objects are stored in memory.
I have started to learn these codes but often find various definitions and 
example scripts only work in one variety of the code. 

(c) As with most learning tasks it is important to start out with correct 
descriptions and definitions. The tyro can be led astray
by ill founded assumptions as to how the code elements work and fit together. 
In short you can see difficulties that don't exist or
try to implement unnecessary coding. A simple example being lists and 
regression in scheme the use and philosophy is different from
say Fortran and similar languages where the basic principles allow you to 
guess how to use unfamiliar procedures rather as you
would use paper and pencil. You can often read code and see at a glance the 
gist of what is going on.
 (d) summing up when looking at the source code there is a dazzling array of 
procedures but how and when they are called is not
clear - nor how they relate to each other. I would be looking for a main 
programme and branches to various sub programmes or
routines I.E. a flow diagram!

2. 
(a) The philosophy is outlined but is short on detailed explanation in terms of 
code. The ideas of engravers, grobs etc is
understood but the details of their parameters and how they are altered in ly 
scripts is hard to find in a systematic way.

There are excellent aids to get one writing ly scripts and producing quite 
complex scores but not to make those individual tweaks.
Looking at the various tweaks published on the list can be bewildering the 
common first impression is why? how? Where was that in
the documentation?

Maybe I'm just to long in the tooth for grasping new concepts. More experienced 
programmers will rightly say we are not spoon
feeding and you should put in the hard graft yourself. I agree with that but 
would love some signposts to reduce the feeling of
being lost in a sea of hieroglyphs. 

-Original Message-
From: Kieren MacMillan [mailto:kieren_macmil...@sympatico.ca] 
Sent: Friday, January 16, 2015 9:40 PM
To: Peter Gentry
Cc: Lilypond-User Mailing List
Subject: Re: Understanding Lilypond

Hi Peter,

 many of us have struggled for many months to get to grips 
with the structure and philosophy of Lilypond.

1. Regarding the structure, what are you struggling with exactly?

2. Regarding the philosophy, what are you struggling with exactly?

Hope I can help!
Kieren.



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


Re: Understanding Lilypond

2015-01-17 Thread Urs Liska
Cc: Lilypond-User Mailing List
Subject: Re: Understanding Lilypond

Hi Peter,


many of us have struggled for many months to get to grips

with the structure and philosophy of Lilypond.

1. Regarding the structure, what are you struggling with exactly?

2. Regarding the philosophy, what are you struggling with exactly?

Hope I can help!
Kieren.



___
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: Understanding Lilypond

2015-01-17 Thread Richard Shann
On Sat, 2015-01-17 at 13:37 +0100, Urs Liska wrote:
 Concretely I see the problem in a sequence of related issues:
 
 - Scheme itself *is* difficult to get into

actually, Scheme syntax is incredibly simple - Scheme expressions are
lists (a b c) with the first element being the procedure and the
subsequent ones the parameters. So if you come across (if a b) you look
up the procedure if in the documentation, rather than having to learn
a bunch of keywords (if, case, else ...) which have special syntax
peculiar to them.


 - There are so many Scheme dialects, 

the only one relevant to LilyPond is the guile-1.8 interpreter. In
Denemo we have moved on to guile-2.0 but I haven't come across other
interpreters for Scheme, though I've noticed them mentioned in the Guile
documentation.

HTH

Richard



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


Re: Understanding Lilypond

2015-01-17 Thread Urs Liska

Am 17.01.2015 um 14:13 schrieb Richard Shann:

On Sat, 2015-01-17 at 13:37 +0100, Urs Liska wrote:

Concretely I see the problem in a sequence of related issues:

- Scheme itself *is* difficult to get into


actually, Scheme syntax is incredibly simple - Scheme expressions are
lists (a b c) with the first element being the procedure and the
subsequent ones the parameters. So if you come across (if a b) you look
up the procedure if in the documentation, rather than having to learn
a bunch of keywords (if, case, else ...) which have special syntax
peculiar to them.


Yes. But the way until you get familiar with this simple foundation and 
with all its implications is incredibly steep.






- There are so many Scheme dialects,


the only one relevant to LilyPond is the guile-1.8 interpreter. In
Denemo we have moved on to guile-2.0 but I haven't come across other
interpreters for Scheme, though I've noticed them mentioned in the Guile
documentation.


Of course, but when you are searching for solutions, approaches or even 
tutorials on Scheme you'll get a bunch of different resources, some 
for Racket, some for MIT Scheme, some for guile-1.8, some for guile-2.0 
and so on. While often there is something to the solution that you can 
use for the problem at hand often the suggestions don't work in LilyPond 
- and you don't have a clue why.


The correct Scheme version is stated somewhere at the beginning of the 
Extending manual, but it's done so in a way that you will only 
understand the meaning of it after having learned quite some Scheme.


Urs



HTH

Richard





--
Urs Liska
www.openlilylib.org

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


Re: Understanding Lilypond

2015-01-17 Thread Mattes
 
Am Samstag, 17. Januar 2015 14:13 CET, Richard Shann rich...@rshann.plus.com 
schrieb: 
 

 actually, Scheme syntax is incredibly simple - Scheme expressions are
 lists (a b c) with the first element being the procedure and the
 subsequent ones the parameters. So if you come across (if a b) you look
 up the procedure if in the documentation, rather than having to learn
 a bunch of keywords (if, case, else ...) which have special syntax
 peculiar to them.

Hmm, as a general intro this is o.k. - but be aware that syntax is coupled with 
semantics
and with Lisp/Scheme sematically differnt things do have the same (non)syntax. 
Some
consider this elegant, some feel they get lost.
BTW, 'if', like 'let' or 'cond' or 'begin' etc.,  is _not_ a procedure but 
either a macro or a special 
operator. 

 
  - There are so many Scheme dialects, 
 
 the only one relevant to LilyPond is the guile-1.8 interpreter. In
 Denemo we have moved on to guile-2.0 but I haven't come across other
 interpreters for Scheme, though I've noticed them mentioned in the Guile
 documentation.

Autsch. Racket, DrScheme, MIT-Scheme, Bigloo, Chicken, Stalin, ChezScheme or, 
relevant
for us musicians S7 ...

 Cheers (and a happy new year)

 Ralf Mattes
 
 HTH
 
 Richard
 
 
 
 ___
 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: Understanding Lilypond

2015-01-17 Thread Kieren MacMillan
Hi Peter,

 I'm not sure that my response is suitable for the list

It *definitely* is!

 Please feel free to critisize scorn or otherwise flame.

I’m sorry your default expectation is to be critisized, scorned, or flamed — 
that hasn’t been my primary experience on this list (as a newbie more than a 
decade ago, or since), although there are of course exceptions. (As I recall, 
the lilypond-devel list is more severe.)

 There are excellent aids to get one writing ly scripts and producing quite 
 complex scores but not to make those individual tweaks.
 Looking at the various tweaks published on the list can be bewildering the 
 common first impression is why? how? Where was that in
 the documentation?

Can you give a concrete example? Either it is in the documentation and you were 
unable to find it, or it’s not in the documentation — either way, there may be 
a solution which will assist future users/readers.

Thanks,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


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


Re: Understanding Lilypond

2015-01-17 Thread Paul Morris
Urs Liska wrote
 Of course, but when you are searching for solutions, approaches or even
 tutorials on Scheme you'll get a bunch of different resources, some for
 Racket, some for MIT Scheme, some for guile-1.8, some for guile-2.0 and so
 on. While often there is something to the solution that you can use for
 the problem at hand often the suggestions don't work in LilyPond - and you
 don't have a clue why.

For learning Scheme itself I found myself just using the GUILE manuals, and
this has worked well for me.  They are terse but comprehensive and you know
it's the same type of Scheme used in LilyPond.
https://www.gnu.org/software/guile/docs/docs.html

There's an all-in-one-page version of these manuals which is easy to
search using your browser's search-in-page feature.  That's how I usually
look for something I'm trying to understand, when reading an LSR snippet,
etc.

For a more friendly tutorial-style walk-through of Scheme to familiarize
yourself with it in general... I like this series of videos:
https://www.youtube.com/watch?v=byofGyW2L10

But I agree that the LilyPond-Scheme interfaces are more obscure and could
use more documentation.  For this I've learned most from examples from the
LSR (that were similar to what I was trying to do).  One of the problems is
that what you need to know varies greatly with what you want to do.  Are you
overriding grob properties?  Are you writing a custom engraver?  Are you
altering contexts (their properties or sets of engravers)?  Are you altering
the musical input before it gets very far?  Those are each different ways of
intervening, at different points, in different ways, that one would use for
different purposes.  

Hmmm... It would be interesting and maybe helpful to develop such a typology
of common techniques.  What have I left out above?  

(Also, my sense is that LilyPond may or may not have the kind of systematic
consistency that some are looking for?)

Cheers,
-Paul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Understanding-Lilypond-tp170550p170609.html
Sent from the User mailing list archive at Nabble.com.

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


Re: Understanding Lilypond

2015-01-17 Thread Urs Liska

Am 17.01.2015 um 17:22 schrieb Kieren MacMillan:

Hi Peter,


I'm not sure that my response is suitable for the list


It *definitely* is!


Please feel free to critisize scorn or otherwise flame.


I’m sorry your default expectation is to be critisized, scorned, or flamed — 
that hasn’t been my primary experience on this list (as a newbie more than a 
decade ago, or since), although there are of course exceptions. (As I recall, 
the lilypond-devel list is more severe.)


There are excellent aids to get one writing ly scripts and producing quite 
complex scores but not to make those individual tweaks.
Looking at the various tweaks published on the list can be bewildering the 
common first impression is why? how? Where was that in
the documentation?


Can you give a concrete example? Either it is in the documentation and you were 
unable to find it, or it’s not in the documentation — either way, there may be 
a solution which will assist future users/readers.



I think the problem is more fundamental than individual missing items.
What we'd need is something similarly slow-paced as the Learning Manual 
but for the Extending Manual.


In a way the tutorials in Scores of Beauty 
(http://lilypondblog.org/category/using-lilypond/tutorials/) are a 
start, but I'd always want to have more material there.


Just yesterday we had the question how to store pitches in a Scheme 
pair. The solution involved switching parsing modes between LilyPond, 
Scheme and LilyPond-in-Scheme.
Such questions would really warrant tutorials, and these tutorials would 
actually help people get into it.


Urs


Thanks,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


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




--
Urs Liska
www.openlilylib.org

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


Re: Understanding Lilypond

2015-01-16 Thread Urs Liska


Am 16.01.2015 um 13:35 schrieb David Sumbler:

As I start to gain experience in setting music in Lilypond I am trying
to understand more about how it works internally.  As well as personal
satisfaction, this obviously has a practical aim: it will make it easier
for me to modify or correct things without having to ask so many
questions on this forum, and will also perhaps eventually mean that I
can help by answering others' questions.

However, despite having read the documentation - some of it several
times - I do find understanding some aspects of the structure of
Lilypond extremely difficult.  One of the manuals likens a Lilypond file
to source code in a computer language, but I find that understanding the
structure of a coding language is perfectly straightforward compared to
getting my head around Lilypond.  (I have learnt several languages over
the years, although not, I admit, Lisp or Scheme; however, I have no
reason to suppose that understanding their structure is any more
difficult than other languages).

For instance, in Lilypond there is a sensible difference in the default
handling of time- and key-signatures.  Using the \key command a key is
defined for the current Staff.  But using the \time command sets the
time signature for every staff.  If a different time signature is
required for a particular staff, then timeSignatureFraction has to be
changed.

 From the Internals Reference I see that the 2 layout objects
KeySignature and TimeSignature both exist, by default, in a Staff
context, which makes perfect sense.


Yes, that makes sense because they are used to *engrave* the visual 
objects at staff level.




Clearly, though, when the \time command is used, then not only is
Staff.timeSignatureFraction set, but so also is some other variable in a
higher context.


The timing aspects are controlled by the Timing_translator, and this 
engraver by default lives in the Score context.
Which also makes perfect sense because usually the timing is uniform in 
a score from top to bottom.


But this construct is what makes polymetrics so easy to do in LilyPond. 
You can move the Timing_translator from the Score to Staff level to get 
independent timing in the different staves.
But you should not forget to also move the Default_bar_line_engraver 
that should live at the same level as Timing_translator.


With key signatures it is much more common that different instruments 
*show* different keys.
Nevertheless it *is* sort of an inconsistency that you *always* have to 
specify the key for each staff separately (or in a global variable, 
which is not much better). It would be more consistent to have the key 
also live in the Score context by default and give the ability to 
sepcify contexts with different keys through their context properties.

I think this has been discussed recently.

HTH
Urs



What I can't seem to find (although it may well be in the documentation
somewhere) is a clear explanation of this.  Can somebody point me in the
right direction?

David


___
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: Understanding Lilypond

2015-01-16 Thread Peter Gentry
.



--

Message: 3
Date: Fri, 16 Jan 2015 06:25:31 -0700 (MST)
From: tisimst tisimst.lilyp...@gmail.com
To: lilypond-user@gnu.org
Subject: Re: small caps
Message-ID: 1421414720.349...@smtp.gmail.com
Content-Type: text/plain; charset=us-ascii

Craig,

\caps is just a short-hand command for \smallCaps, but this 
situation is obviously a code bug. You CAN put the \caps or 
\smallCaps in the header variable itself:

piece = \markup \smallCaps Piece

and then it works, but since it seems that you are trying to 
create a custom title that does this automatically, this 
solution may not be suitable for you. I'm forwarding this 
small example to the bugs-list for extermination:

%

\version 2.19.11

\paper {
  scoreTitleMarkup = \markup {
\column {
  \on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
\large \bold \smallCaps \fromproperty #'header:piece
  }
}
  }
}

\header {
  title = Title
  piece = Piece  % put the \smallCaps in here and it works }

{ \repeat unfold 3 { s1 \break } }

%--

- Abraham

On Fri, Jan 16, 2015 at 2:00 AM, Craig Dabelstein [via 
Lilypond] ml-node+s1069038n170544...@n5.nabble.com wrote:
 Hi Shane,
 
 \version 2.19.11
 
 Even with \smallCaps (how did I miss that!?!!?) the test stays the 
 same. Bold and Large are both working but not the small caps.
 
 Craig
 
 
 On Fri Jan 16 2015 at 4:39:22 PM Shane Brandes [hidden 
email] wrote:
 Which version are you using? and is it not \smallcaps that you need 
 to issue? Also does the font actually have small caps natively?
 
 Shane
 
 On Fri, Jan 16, 2015 at 12:54 AM, Craig Dabelstein [hidden email] 
 wrote:
  Hi List,
 
  Can anyone tell me why I can't get small caps working with this
 code?
 
  Many thanks,
 
  Craig
 
  scoreTitleMarkup = \markup {
  \column {
\on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1
 }
\fill-line {
  \large \bold \caps \fromproperty #'header:piece
   }
  }
}
  }
 
  ___
  lilypond-user mailing list
  [hidden email]
  https://lists.gnu.org/mailman/listinfo/lilypond-user
 
 
 ___
 lilypond-user mailing list
 [hidden email]
 https://lists.gnu.org/mailman/listinfo/lilypond-user
 
 
 If you reply to this email, your message will be added to the 
 discussion below:
 http://lilypond.1069038.n5.nabble.com/small-caps-tp170540p170544.html
 To start a new topic under User, email 
 ml-node+s1069038n...@n5.nabble.com 
 To unsubscribe from Lilypond, click here.
 NAML




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/small-caps-tp170540p170552.html
Sent from the User mailing list archive at Nabble.com.
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.gnu.org/archive/html/lilypond-user/attachments/20
150116/0f65abad/attachment.html

--

Message: 4
Date: Fri, 16 Jan 2015 14:28:52 +0100
From: Urs Liska u...@openlilylib.org
To: lilypond-user@gnu.org
Subject: Re: Understanding Lilypond
Message-ID: 54b91214.40...@openlilylib.org
Content-Type: text/plain; charset=windows-1252; format=flowed


Am 16.01.2015 um 13:35 schrieb David Sumbler:
 As I start to gain experience in setting music in Lilypond I 
am trying
 to understand more about how it works internally.  As well 
as personal
 satisfaction, this obviously has a practical aim: it will 
make it easier
 for me to modify or correct things without having to ask so many
 questions on this forum, and will also perhaps eventually mean that I
 can help by answering others' questions.

 However, despite having read the documentation - some of it several
 times - I do find understanding some aspects of the structure of
 Lilypond extremely difficult.  One of the manuals likens a 
Lilypond file
 to source code in a computer language, but I find that 
understanding the
 structure of a coding language is perfectly straightforward 
compared to
 getting my head around Lilypond.  (I have learnt several 
languages over
 the years, although not, I admit, Lisp or Scheme; however, I have no
 reason to suppose that understanding their structure is any more
 difficult than other languages).

 For instance, in Lilypond there is a sensible difference in 
the default
 handling of time- and key-signatures.  Using the \key 
command a key is
 defined for the current Staff.  But using the \time command sets the
 time signature for every staff.  If a different time signature is
 required for a particular staff, then timeSignatureFraction has to be
 changed.

  From the Internals Reference I see that the 2 layout objects
 KeySignature and TimeSignature both exist, by default, in a Staff
 context, which makes perfect sense.

Yes, that makes sense because they are used to *engrave* the visual 
objects at staff

Re: Understanding Lilypond

2015-01-16 Thread Urs Liska
://lilypond.1069038.n5.nabble.com/file/n170551/esempio3033
-crop.pdf
esempio3064-crop.pdf
http://lilypond.1069038.n5.nabble.com/file/n170551/esempio3064
-crop.pdf



--
View this message in context:
http://lilypond.1069038.n5.nabble.com/Re-bottom-of-EPS-output-c

ut-off-size-of-PDF-files-tp170524p170551.html

Sent from the User mailing list archive at Nabble.com.



--

Message: 3
Date: Fri, 16 Jan 2015 06:25:31 -0700 (MST)
From: tisimst tisimst.lilyp...@gmail.com
To: lilypond-user@gnu.org
Subject: Re: small caps
Message-ID: 1421414720.349...@smtp.gmail.com
Content-Type: text/plain; charset=us-ascii

Craig,

\caps is just a short-hand command for \smallCaps, but this
situation is obviously a code bug. You CAN put the \caps or
\smallCaps in the header variable itself:

piece = \markup \smallCaps Piece

and then it works, but since it seems that you are trying to
create a custom title that does this automatically, this
solution may not be suitable for you. I'm forwarding this
small example to the bugs-list for extermination:

%

\version 2.19.11

\paper {
  scoreTitleMarkup = \markup {
\column {
  \on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
\large \bold \smallCaps \fromproperty #'header:piece
  }
}
  }
}

\header {
  title = Title
  piece = Piece  % put the \smallCaps in here and it works }

{ \repeat unfold 3 { s1 \break } }

%--

- Abraham

On Fri, Jan 16, 2015 at 2:00 AM, Craig Dabelstein [via
Lilypond] ml-node+s1069038n170544...@n5.nabble.com wrote:

Hi Shane,

\version 2.19.11

Even with \smallCaps (how did I miss that!?!!?) the test stays the
same. Bold and Large are both working but not the small caps.

Craig


On Fri Jan 16 2015 at 4:39:22 PM Shane Brandes [hidden

email] wrote:

Which version are you using? and is it not \smallcaps that you need
to issue? Also does the font actually have small caps natively?

Shane

On Fri, Jan 16, 2015 at 12:54 AM, Craig Dabelstein [hidden email]
wrote:

Hi List,

Can anyone tell me why I can't get small caps working with this

code?

Many thanks,

Craig

scoreTitleMarkup = \markup {
 \column {
   \on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1

}

   \fill-line {
 \large \bold \caps \fromproperty #'header:piece
  }
 }
   }
 }

___
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user


___
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user


If you reply to this email, your message will be added to the
discussion below:
http://lilypond.1069038.n5.nabble.com/small-caps-tp170540p170544.html
To start a new topic under User, email
ml-node+s1069038n...@n5.nabble.com
To unsubscribe from Lilypond, click here.
NAML




--
View this message in context:
http://lilypond.1069038.n5.nabble.com/small-caps-tp170540p170552.html
Sent from the User mailing list archive at Nabble.com.
-- next part --
An HTML attachment was scrubbed...
URL:
http://lists.gnu.org/archive/html/lilypond-user/attachments/20

150116/0f65abad/attachment.html

--

Message: 4
Date: Fri, 16 Jan 2015 14:28:52 +0100
From: Urs Liska u...@openlilylib.org
To: lilypond-user@gnu.org
Subject: Re: Understanding Lilypond
Message-ID: 54b91214.40...@openlilylib.org
Content-Type: text/plain; charset=windows-1252; format=flowed


Am 16.01.2015 um 13:35 schrieb David Sumbler:

As I start to gain experience in setting music in Lilypond I

am trying

to understand more about how it works internally.  As well

as personal

satisfaction, this obviously has a practical aim: it will

make it easier

for me to modify or correct things without having to ask so many
questions on this forum, and will also perhaps eventually mean that I
can help by answering others' questions.

However, despite having read the documentation - some of it several
times - I do find understanding some aspects of the structure of
Lilypond extremely difficult.  One of the manuals likens a

Lilypond file

to source code in a computer language, but I find that

understanding the

structure of a coding language is perfectly straightforward

compared to

getting my head around Lilypond.  (I have learnt several

languages over

the years, although not, I admit, Lisp or Scheme; however, I have no
reason to suppose that understanding their structure is any more
difficult than other languages).

For instance, in Lilypond there is a sensible difference in

the default

handling of time- and key-signatures.  Using the \key

command a key is

defined for the current Staff.  But using the \time command sets the
time signature for every staff.  If a different time signature is
required for a particular staff, then timeSignatureFraction

RE: Understanding Lilypond

2015-01-16 Thread Peter Gentry
 
Just let me repeat something I wrote a number of times here.
If you manage to understand something with the help of this 
list that you think could be a not-so-uncommon issue for many 
please consider sharing your experience with a (little or big) 
tutorial, for which we have always free space on the Scores 
of Beauty blog.

Urs


First of all apologies for not cutting the bulk of the list posting on the 
previous message.

Scores of beauty is admirable and if I had something to contribute I would - 
problem is having something worthy of posting there.

I love Lilypond and use it weekly (maybe weakly)...


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


Re: Understanding Lilypond

2015-01-16 Thread Kieren MacMillan
Hi Peter,

 many of us have struggled for many months to get to grips with the structure 
 and philosophy of Lilypond.

1. Regarding the structure, what are you struggling with exactly?

2. Regarding the philosophy, what are you struggling with exactly?

Hope I can help!
Kieren.

___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


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


Re: Understanding Lilypond

2015-01-16 Thread Noeck
Dear David,

as a small addition and a partly similar answer to Urs’, I think the point is:
LilyPond tries to suggest (or even enforce as a default) conventions of classic
music notation. This comprises for example that clefs are repeated for each line
but the time signature isn’t.

In your case, that means: The key signature can depend on the instrument and can
be different for each staff. But in most cases, the time signature is the same
within a score (across staves). You can have polyrhythmical music in LilyPond
but it is not the default. So while this looks inconsistent from the purely
programmatical point of view, it makes sense for most music.

Cheers,
Joram

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


Re: Understanding Lilypond language

2014-04-06 Thread David Kastrup
Harald Christiansen haraldch...@gmail.com writes:

 Hello,

 Is there a manual for the lilypond language itself ?

 I don't get it ... is it a programming language ... a macro expander ...
 all of the above ?

It is a dynamically typed language.  Not much programming in the
language itself, but a Scheme layer caters for that and provides all the
types.

The command line processes an input file, and certain things like
top-level music or scores cause actions.

 I cannot build a mental model of how it works.

 For example, let's take variables. I take the notation reference, I look
 at the index and I see several entries.

 One entry specifies:

 3.1.5 File structure
 [...]

 A variable, such as

 foo = { c4 d e d }

 So far so good.

 Another entry:

 3.3.2 Different editions from one source
 [...]
 Using variables

 allLyrics = \lyricmode {King of glo -- ry }

 Is this just a macro substitution ?

No.  Neither is the above.  Both place a sequential music structure into
the respective variables.  Use

\void \displayMusic \allLyrics
\void \displayMusic \foo

to see what's in there.

 But then in one of my own I have to declare

 myLayout = \layout { bla bla bla }

 even if \myLayout is used inside of a \layout section

Because \layout { ... } is not a music expression but rather an output
definition.  Different type.

 So it seems that there is more going on but what ? Are the variables
 typed ? (i.e. myLayout is of type \layout and I have to cast it or
 declare it ? I don't get it)

There are no typed variables.  Types are associated with expressions
rather than variables: that's what using a dynamically typed language
like Scheme is about.  So there is no point in declaring a variable.
Its type is determined by what you place in there.

 I understand that at some level underneath lilypond uses Scheme
 (Guile) but how specifically ?

 e.g. 
 \set Staff.printPartCombineTexts = ##f

 The way I guess this is: '#f' is the false atom, the first # switches
 to Guile interpretation ... but beyond this all is completely foggy.

Check out the red manual.

URL:http://lilypond.org/doc/v2.19/Documentation/extending/scheme-in-lilypond

-- 
David Kastrup

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


Re: Understanding Lilypond language

2014-04-06 Thread Harald Christiansen
Hello David,

Many thanks for your reply.  :-)

I was giving the variable example as a kind of difficulty I have. I
appreciate the fish you are giving to me but I want to learn how to
fish :-)

For example you say
Because \layout { ... } is not a music expression but rather an output
definition. Different type. 

and then later on:

There are no typed variables.

In my mind these two do not work together ... for me there is some
understanding missing.

And yes I found the Lilypond Extending manual but that still doesn't
explain properly the Lilypond language itself.

Regards.



On 04/06/2014 06:18 PM, David Kastrup wrote:
 Harald Christiansen haraldch...@gmail.com writes:

 Hello,

 Is there a manual for the lilypond language itself ?

 I don't get it ... is it a programming language ... a macro expander ...
 all of the above ?
 It is a dynamically typed language.  Not much programming in the
 language itself, but a Scheme layer caters for that and provides all the
 types.

 The command line processes an input file, and certain things like
 top-level music or scores cause actions.

 I cannot build a mental model of how it works.

 For example, let's take variables. I take the notation reference, I look
 at the index and I see several entries.

 One entry specifies:

 3.1.5 File structure
 [...]

 A variable, such as

 foo = { c4 d e d }

 So far so good.

 Another entry:

 3.3.2 Different editions from one source
 [...]
 Using variables

 allLyrics = \lyricmode {King of glo -- ry }

 Is this just a macro substitution ?
 No.  Neither is the above.  Both place a sequential music structure into
 the respective variables.  Use

 \void \displayMusic \allLyrics
 \void \displayMusic \foo

 to see what's in there.

 But then in one of my own I have to declare

 myLayout = \layout { bla bla bla }

 even if \myLayout is used inside of a \layout section
 Because \layout { ... } is not a music expression but rather an output
 definition.  Different type.

 So it seems that there is more going on but what ? Are the variables
 typed ? (i.e. myLayout is of type \layout and I have to cast it or
 declare it ? I don't get it)
 There are no typed variables.  Types are associated with expressions
 rather than variables: that's what using a dynamically typed language
 like Scheme is about.  So there is no point in declaring a variable.
 Its type is determined by what you place in there.

 I understand that at some level underneath lilypond uses Scheme
 (Guile) but how specifically ?

 e.g. 
 \set Staff.printPartCombineTexts = ##f

 The way I guess this is: '#f' is the false atom, the first # switches
 to Guile interpretation ... but beyond this all is completely foggy.
 Check out the red manual.

 URL:http://lilypond.org/doc/v2.19/Documentation/extending/scheme-in-lilypond



-- 
Nihil verus. Omnia possibilia.


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


Re: Understanding Lilypond language

2014-04-06 Thread Paul Morris
Harald Christiansen wrote
 For example you say
 Because \layout { ... } is not a music expression but rather an output
 definition. Different type. 
 
 and then later on:
 
 There are no typed variables.
 
 In my mind these two do not work together ... for me there is some
 understanding missing.

There are different types of expressions (music expressions, output
definition expressions, etc.), but not different types of variables.  You
don't have to declare/define a variable's type, they are dynamically typed.

Put another way, output definitions like \layout {...} or \midi {...} are
not the same thing as music expressions like { c4 d e f }.  None of these
are variables, they are expressions, but they can be assigned to a variable.  

You may find it easier to learn to fish by just doing some fishing, if you
know what I mean?  

-Paul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Understanding-Lilypond-language-tp161270p161321.html
Sent from the User mailing list archive at Nabble.com.

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