Re: segmented glissando lines

2020-02-09 Thread Aaron Hill

On 2020-02-09 2:39 pm, dtsmarin wrote:

Is it possible to change the thickness of the fancy-gliss line?


Perhaps change...


(layout-line-thickness grob) ;line-width


...to...


(* (layout-line-thickness grob)
   (ly:grob-property grob 'thickness 1)) ;line-width


Then you can set the thickness property of the Glissando grob.


-- Aaron Hill



Re: segmented glissando lines

2020-02-09 Thread dtsmarin
Is it possible to change the thickness of the fancy-gliss line?



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: can a Scheme engraver "solve" Issue #34 (grace note bug)? [cross-posted]

2020-02-09 Thread Kieren MacMillan
Hi David,

> my own take on what that means would not have been to abolish
> grace time: it's still useful for identifying things.  But rather to
> reduce NoteColumn/MusicalColumn sharing/alignment during grace time to
> being just per-Staff, or possibly as option per-Voice.  That would
> allow, for special cases, to still blow it up back to being per Score.

I agree that would be optimal.

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Dario Marrini
Absolutely Linux... :) I'm a Linux user since 1999, now I have been using
Linux Mint since many years. I'm out now, I will do all the tests you
suggested me as soon as I'm back.
Many thanks

Dario

Il dom 9 feb 2020, 16:51 Klaus Blum  ha scritto:

> Hi Dario,
>
> Am 09.02.2020 um 16:18 schrieb Dario Marrini:
> > but let me understand where this lilypond-preamble.ly
> >  should be
>
> another question: Is it a Mac or a Linux machine that you are working on?
>
> Cheers,
> Klaus
>


Re: Double Parenthesis

2020-02-09 Thread Freeman Gilmore
  I did not see this when i replied last , so let me read it i loos like it
is the answer i want.
Thank you,ƒg

On Sun, Feb 9, 2020 at 12:38 PM David Kastrup  wrote:

> Freeman Gilmore  writes:
>
> > On Sun, Feb 9, 2020 at 9:33 AM Thomas Morley 
> > wrote:
> >
> >> Am So., 9. Feb. 2020 um 15:02 Uhr schrieb Freeman Gilmore
> >> :
> >> >
> >> >
> >> >
> >> > This is taken from the "Scheme Book".
> >> >
> >> > Question why double parenthesis  for  let ((rand (random 100))) ?
> >> >
> >> > Thank you, ƒg
> >>
> >> Well, every expression needs to be wrapped into parenthesis.
> >>
> >> One pair for the let-expression:
> >> (let ...)
> >>
> >> One pair for all local-bindings:
> >> (let (all-local-bindings) ...)
> >>
> > I understand the above and below but not this  let ((rand (random 100)))
> > Put in your form:   (let ((rand (random 100))) ...)
>
> In Scheme, there is no such thing as a redundant parenthesis.  Every
> parenthesis has meaning.
>
> bla
>
> at top level is a variable.
>
> (bla)
>
> takes the value of the variable and calls it as a function.
>
> ((bla))
>
> takes the value this function returns, and calls _that_ as a function.
>
> So the question boils down to: why was the syntax of let designed in a
> way requiring so many parentheses?
>
> Now the basic syntax of let is
>
> (let [local bindings] [cmd] ...)
>
> In order to recognise where the first command starts, [local bindings]
> can only be a single item, but since we can have more than a single
> binding, we need to have it delimited, and in constructs as old as let,
> there is no delimiter but parentheses.
>
> So now we have
>
> (let ([local binding] ...) [cmd] ...)
>
> Now how should [local binding] look?  It could be [variable] [value],
> making for
>
> (let (x 1 y 4) ...)
>
> but for one thing, this gets ugly to read when we have something like
>
> (let (x y z t) ...)
>
> which in actual syntax looks like (let ((x y) (z t)) ...) .  And for
> another, in the old ancestor Lisp, (let (x y z t) ...) actual has
> separate meaning and changing that established meaning would really
> confuse people.  Quoting (out of laziness) from Elisp:
>
> let is a special form in ‘C source code’.
>
> (let VARLIST BODY...)
>
>   Probably introduced at or before Emacs version 1.12.
>
> Bind variables according to VARLIST then eval BODY.
> The value of the last form in BODY is returned.
> Each element of VARLIST is a symbol (which is bound to nil)
> or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of
> VALUEFORM).
> All the VALUEFORMs are evalled before any symbols are bound.
>
> [back]
>
> So adding one layer of parens around variable and value (if there are to
> be both) seems called for.
>
> And that's what you get.
>
> > Here is another example from the book, why double parenthesis ((assq
> > 'col-darkblue colors)).
>
> That doesn't occur in a vacuum, so it would appear that you are missing
> context here.
>
> --
> David Kastrup
> My replies have a tendency to cause friction.  To help mitigating
> damage, feel free to forward problematic posts to me adding a subject
> like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".
>


Re: Double Parenthesis

2020-02-09 Thread Kieren MacMillan
Hi Freeman,

> This is the form i am asking about:
>   (let
> (
> (rand (random 100))
> )
>  (
>...
>  )
>   )

In that form, the … is where the procedure(s) for the let function would 
appear, though I’d probably indent it like this instead:

(let
(
(rand (random 100))
)
(
...
)
)

Now… what exactly is your question about that form?

Best,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: Double Parenthesis

2020-02-09 Thread Freeman Gilmore
On Sun, Feb 9, 2020 at 12:25 PM Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:

> Hi Freeman,
>
> > Ok you are getting closer to what i am asking.
>
> I’m glad!
>
> > Rerote(let ((rand (random 100))) ...) .I need to understand it
> so that i know which to use and when?
> >  ((rand (random 100)) or (rand (random 100)
>
> You would never use either, because the parentheses aren’t
> matched/paired/balanced.  ;)
>
> >   for (let ((rand (random 100))) ...) or (let(rand (random 100)) ...) .
>

In your previous email you explained this: ((rand (random 100)))  for
let ((rand
(random 100))) which is ((let ((rand (random 100)))...)

>
> As Harm pointed out, indentation will help… Here’s an extremely
> broken-down version:
>
> (let
> (
> (rand (random 100))
> (a (+ 2 3))
> )
> )
>
This is the form i am asking about:
  (let
(
(rand (random 100))
)
 (
   ...
 )
  )


>
> Compressing it onto a single line [which is not necessarily encouraged]
> gives:
>
> (let ((rand (random 100)) (a (+ 2 3
>
> Hope that helps!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
>
>


Re: Double Parenthesis

2020-02-09 Thread David Kastrup
Freeman Gilmore  writes:

> On Sun, Feb 9, 2020 at 9:33 AM Thomas Morley 
> wrote:
>
>> Am So., 9. Feb. 2020 um 15:02 Uhr schrieb Freeman Gilmore
>> :
>> >
>> >
>> >
>> > This is taken from the "Scheme Book".
>> >
>> > Question why double parenthesis  for  let ((rand (random 100))) ?
>> >
>> > Thank you, ƒg
>>
>> Well, every expression needs to be wrapped into parenthesis.
>>
>> One pair for the let-expression:
>> (let ...)
>>
>> One pair for all local-bindings:
>> (let (all-local-bindings) ...)
>>
> I understand the above and below but not this  let ((rand (random 100)))
> Put in your form:   (let ((rand (random 100))) ...)

In Scheme, there is no such thing as a redundant parenthesis.  Every
parenthesis has meaning.

bla

at top level is a variable.

(bla)

takes the value of the variable and calls it as a function.

((bla))

takes the value this function returns, and calls _that_ as a function.

So the question boils down to: why was the syntax of let designed in a
way requiring so many parentheses?

Now the basic syntax of let is

(let [local bindings] [cmd] ...)

In order to recognise where the first command starts, [local bindings]
can only be a single item, but since we can have more than a single
binding, we need to have it delimited, and in constructs as old as let,
there is no delimiter but parentheses.

So now we have

(let ([local binding] ...) [cmd] ...)

Now how should [local binding] look?  It could be [variable] [value],
making for

(let (x 1 y 4) ...)

but for one thing, this gets ugly to read when we have something like

(let (x y z t) ...)

which in actual syntax looks like (let ((x y) (z t)) ...) .  And for
another, in the old ancestor Lisp, (let (x y z t) ...) actual has
separate meaning and changing that established meaning would really
confuse people.  Quoting (out of laziness) from Elisp:

let is a special form in ‘C source code’.

(let VARLIST BODY...)

  Probably introduced at or before Emacs version 1.12.

Bind variables according to VARLIST then eval BODY.
The value of the last form in BODY is returned.
Each element of VARLIST is a symbol (which is bound to nil)
or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
All the VALUEFORMs are evalled before any symbols are bound.

[back]

So adding one layer of parens around variable and value (if there are to
be both) seems called for.

And that's what you get.

> Here is another example from the book, why double parenthesis ((assq
> 'col-darkblue colors)).

That doesn't occur in a vacuum, so it would appear that you are missing
context here.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Re: Double Parenthesis

2020-02-09 Thread Kieren MacMillan
Hi Freeman,

> Ok you are getting closer to what i am asking.

I’m glad!

> Rerote(let ((rand (random 100))) ...) .I need to understand it so 
> that i know which to use and when?
>  ((rand (random 100)) or (rand (random 100)

You would never use either, because the parentheses aren’t 
matched/paired/balanced.  ;)

>   for (let ((rand (random 100))) ...) or (let(rand (random 100)) ...) .

As Harm pointed out, indentation will help… Here’s an extremely broken-down 
version:

(let
(
(rand (random 100))
(a (+ 2 3))
)
)

Compressing it onto a single line [which is not necessarily encouraged] gives:

(let ((rand (random 100)) (a (+ 2 3

Hope that helps!
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: Double Parenthesis

2020-02-09 Thread Freeman Gilmore
On Sun, Feb 9, 2020 at 11:45 AM Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:

> Hi Freeman,
>
> > I understand the above and below but not this  let ((rand (random
> 100)))
> > Put in your form:   (let ((rand (random 100))) ...)
>
> Here are the thoughts of a Scheme newbie — hopefully they are correct!  =)
>
> Working from the inside out:
>
> The first set of parentheses is needed to encapsulate the random number
> procedure/expression:
>
>   (random 100)
>
> The second set of parentheses associates that procedure/expression (a.k.a.
> result) with a variable [to be set using Let]:
>
>   (rand (random 100))
>
> The third set encloses the "complete set of [Let] variables":
>
>   ((rand (random 100)))
>
Ok you are getting closer to what i am asking.

>
> The fourth set [in Harm’s form] is for the Let procedure/expression itself:
>
>   (let ((rand (random 100)))

Rerote(let ((rand (random 100))) ...) .I need to understand it so
that i know which to use and when?
 ((rand (random 100)) or (rand (random 100)  for (let ((rand (random 100)))
...) or (let(rand (random 100)) ...) .

Thank you, ƒg






>
> Hope that helps you understand it!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
>
>


Re: Double Parenthesis

2020-02-09 Thread Kieren MacMillan
Hi Freeman,

> I understand the above and below but not this  let ((rand (random 100)))  
> Put in your form:   (let ((rand (random 100))) ...) 

Here are the thoughts of a Scheme newbie — hopefully they are correct!  =)

Working from the inside out:

The first set of parentheses is needed to encapsulate the random number 
procedure/expression:

  (random 100)

The second set of parentheses associates that procedure/expression (a.k.a. 
result) with a variable [to be set using Let]:

  (rand (random 100))

The third set encloses the "complete set of [Let] variables":

  ((rand (random 100)))

The fourth set [in Harm’s form] is for the Let procedure/expression itself:

  (let ((rand (random 100

Hope that helps you understand it!
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Klaus Blum

Hi Dario,

Am 09.02.2020 um 16:18 schrieb Dario Marrini:

but let me understand where this lilypond-preamble.ly
 should be


another question: Is it a Mac or a Linux machine that you are working on?

Cheers,
Klaus



Re: OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Klaus Blum
Hi Dario, 


Dario Marrini-2 wrote
> let me understand where this lilypond-preamble.ly should be

This file is a part of a complete LilyPond installation. 
On Windows, it is located inside the LilyPond program folder, in the
subfolder
/usr/share/lilypond/current/ly
On Linux and Mac, instead of "current", you will probably find a version
number. 
Inside this folder, there should be a file named
lilypond-book-preamble.ly

Your screenshots show no error message about this file missing, so I guess
you will find it there. 

Let's do another test: 
In the OOoLilyPond window, click the button "Open as temp. file in ext.
editor"
The Frescobaldi opens a file "OOoLilyPondTemp.ly"
Can you compile this file in Frescobaldi an make a screenshot again? 
Let's see if a whole page is produced again or a small snippet. 

Cheers, 
Klaus




--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: Double Parenthesis

2020-02-09 Thread Freeman Gilmore
On Sun, Feb 9, 2020 at 9:33 AM Thomas Morley 
wrote:

> Am So., 9. Feb. 2020 um 15:02 Uhr schrieb Freeman Gilmore
> :
> >
> >
> >
> > This is taken from the "Scheme Book".
> >
> > Question why double parenthesis  for  let ((rand (random 100))) ?
> >
> > Thank you, ƒg
>
> Well, every expression needs to be wrapped into parenthesis.
>
> One pair for the let-expression:
> (let ...)
>
> One pair for all local-bindings:
> (let (all-local-bindings) ...)
>
I understand the above and below but not this  let ((rand (random 100)))
Put in your form:   (let ((rand (random 100))) ...)

Here is another example from the book, why double parenthesis ((assq
'col-darkblue colors)).

Thank for all you work here, ƒg

One pair for each single local binding, note every local binding is of
> type key-value:
> (let (  (key1 value1) (key2 value2) ) ...)
>
> Every value my be a procedure call, with the need for another pair of
> parenthesis:
> (let ( (key1 (proc1 args1)) (key2 (proc2 args2)) ) ...)
>
> Proper indentation increases readability:
> (let (
>   (key1 (proc1 args1))
>   (key2 (proc2 args2))
>  )
>...
>)
>
> HTH,
>   Harm
>


Re: LSR contribution

2020-02-09 Thread Thomas Morley
Hi Michael,

Am Mi., 5. Feb. 2020 um 14:54 Uhr schrieb Michael Käppler :
>
> Hi Harm,
> sorry that I did not respond for over one month... Many other things had
> to be done.

Same here...

> Now I would like to finish this snippet to be free for new interesting
> things. ;)
>
> I did substantially rework some parts of the engraver, namely switching
> to a list-processing-way of dealing with current/last-grobs/pitches/...
> Not sure if you like this change. I like it for less code duplication...

Fine with me, I already updated the LSR-code, for now unapproved.
Please have a look whether all is ok, snippet-description and the like.

Probably one suggestion:
How about gving the user some hint or example-message what can be
expected if warnings are triggered or debug-mode is enabled?

> > If a note is last in previous interval and first in a new one, then
> > the color from the new one is done, leaving the first of the previous
> > interval with the for it set color:
> >
> > \score {
> ><<
> >  \new Staff { b c' b' }
> >  \new Staff {  }
> >>>
> >\layout {
> >  \context {
> >\Voice
> >\consists
> >  \color_interval_engraver #intervaldefs
> >#`(("2-" 0 #t ,green)
> >   ("7+" 0 #t ,red)
> >)
> >  }
> >}
> > }
> >
> > No clue how to improve this situation.

> You're absolutely right. I think this is unavoidable with this design
> (coloring both notes).
> I added a warning for this case and, while I was at it, some more debug
> output.
> Some neat solution would be to draw Horizontal_brackets instead. Thus we
> could
> correctly represent overlapping intervals, too.
> I do not have the time to implement this, however.

Same here ...

> Cheers,
> Michael


Thanks,
  Harm



Re: Drawing boxes around grobs

2020-02-09 Thread Paolo Prete
On Sat, Feb 8, 2020 at 10:36 PM Thomas Morley 
wrote:

> Am Sa., 8. Feb. 2020 um 22:20 Uhr schrieb Paolo Prete <
> paolopr...@gmail.com>:
> >
> >
>
>
> You could redefine box-stencil to take an additional color-argument.
> Also stencil-boxer to take an optional color-argument:
>
> #(define (box-stencil stencil thickness padding color)
>   "Add a box around @var{stencil}, producing a new stencil."
>   (let* ((x-ext (interval-widen (ly:stencil-extent stencil 0) padding))
>  (y-ext (interval-widen (ly:stencil-extent stencil 1) padding))
>  (y-rule
>(stencil-with-color
>  (make-filled-box-stencil (cons 0 thickness) y-ext) color))
>  (x-rule
>(stencil-with-color
>  (make-filled-box-stencil
>   (interval-widen x-ext thickness) (cons 0 thickness))
> color)))
> (set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding))
> (set! stencil (ly:stencil-combine-at-edge stencil X -1 y-rule padding))
> (set! stencil (ly:stencil-combine-at-edge stencil Y 1 x-rule 0.0))
> (set! stencil (ly:stencil-combine-at-edge stencil Y -1 x-rule 0.0))
> stencil))
>
> #(define* (make-stencil-boxer thickness padding callback #:optional (color
> red))
>   "Return function that adds a box around the grob passed as argument."
>   (lambda (grob)
> (box-stencil (callback grob) thickness padding color)))
>
> {
> \override TextScript.stencil =
>   #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
>
> \override Script.stencil =
>   #(make-stencil-boxer 0.1 0.3 ly:script-interface::print)
>
> \override NoteHead.stencil =
>   #(make-stencil-boxer 0.1 0.3 ly:note-head::print cyan)
>   c'4^"foo"->
>
> \override TupletBracket.stencil =
>   #(make-stencil-boxer 0.1 0.8 ly:tuplet-bracket::print)
>   \tuplet 3/2 { b4 4 4 }
> }
>
> Cheers,
>   Harm
>


Thanks to Harm and Aaron.

At this point, is there a way to extend the box by setting four parameters
separately:

top, bottom, left, right

..., instead of the "padding" one ?
Something like:

 #(make-stencil-boxer 0.1 #paddingLeft #paddingRight #paddingTop
#paddingBottom ly:script-interface::print cyan)

Cheers,
P


Re: Double Parenthesis

2020-02-09 Thread Thomas Morley
Am So., 9. Feb. 2020 um 15:02 Uhr schrieb Freeman Gilmore
:
>
>
>
> This is taken from the "Scheme Book".
>
> Question why double parenthesis  for  let ((rand (random 100))) ?
>
> Thank you, ƒg

Well, every expression needs to be wrapped into parenthesis.

One pair for the let-expression:
(let ...)

One pair for all local-bindings:
(let (all-local-bindings) ...)

One pair for each single local binding, note every local binding is of
type key-value:
(let (  (key1 value1) (key2 value2) ) ...)

Every value my be a procedure call, with the need for another pair of
parenthesis:
(let ( (key1 (proc1 args1)) (key2 (proc2 args2)) ) ...)

Proper indentation increases readability:
(let (
  (key1 (proc1 args1))
  (key2 (proc2 args2))
 )
   ...
   )

HTH,
  Harm



Re: OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Klaus Blum
Klaus Blum wrote
> Could you post a screenshot of your OOoLilyPond window and your
> OOoLilyPond
> Config dialog? Maybe this could help to find the problem. 

Version 0.4.0 and 0.5.0 are very old. You should remove them and try again
with the latest stable version 0.5.12. 

Could you then provide the screenshots mentioned above? 
And: 
After inserting the full-page object, please start OOoLilyPond again and
click the "Ly Output" button. Now a new window will open. Please add a
screenshot of that as well. 

I hope this will provide enough information to find the problem.  :)


Cheers, 
Klaus



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: Double Parenthesis

2020-02-09 Thread Malte Meyn




Am 09.02.20 um 15:02 schrieb Freeman Gilmore:

This is taken from the "Scheme Book".

Question why double parenthesis  for  let ((rand (random 100))) ?


A let expression can have several definitions, f. e.

(let
  (
(rand (random 100))
(notrand (* 6 7))
  )
  […]
)



Re: OOolilypond LO extension : trouble with 0.5.0 and 0.4.0

2020-02-09 Thread Klaus Blum
Hi Dario, 


Dario Marrini-2 wrote
> Hi musicians,
> trying to use the LO extension, as I said in my previous post, I tried to
> use some older version; with 0.5.0 and 0.4.0 I get the same error, I have
> error message in Italian but I think it should have  been a common problem
> in the past; I get an error about an index out of range in the source
> Basic
> code, and the Basic language window opens showing the line where the error
> is located, I haven't enough knowledge to manage it, I try to attach two
> screenshots

There is still a problem when the template or the Ly code does not contain
the command
  #(define version-seen #t)
or
\include "lilypond-book-preamble.ly"
and there is no \version statement in the code. 

I hope I can soon fix this.

When modifying templates or writing new templates, one of the mentioned
commands should be contained, depending on the image format you use. Then
this error will not occur. 

Probably a solution for your problem from the other tread will solve this
one as well.


Cheers, 
Klaus



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Klaus Blum
Hi Dario, 


Dario Marrini-2 wrote
> ; it seems they are working
> properly, but they always produce a music object with a full page
> dimension, maing troubles in writing the document.

it seems that your template or your snippet is missing 
\include "lilypond-book-preamble.ly"
This command is responsible for auto-cropping the image. 

Maybe this is related to the image file format you have chosen. You can find
more information here:
https://github.com/openlilylib/LO-ly/wiki/Config#format

Could you post a screenshot of your OOoLilyPond window and your OOoLilyPond
Config dialog? Maybe this could help to find the problem. 

Cheers, 
Klaus




--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Double Parenthesis

2020-02-09 Thread Freeman Gilmore
This is taken from the "Scheme Book".

Question why double parenthesis  for  let ((rand (random 100))) ?

Thank you, ƒg


OOolilypond Libre Office extension : insert object large as full page

2020-02-09 Thread Dario Marrini
Hi musicians,
I'm trying to use OOolilypond LO extension; I downloaded last stable
version. 05,12, and the previous one, 0,5,11; it seems they are working
properly, but they always produce a music object with a full page
dimension, maing troubles in writing the document.

any idea?

thank you very much

dario


Re: can a Scheme engraver "solve" Issue #34 (grace note bug)? [cross-posted]

2020-02-09 Thread David Kastrup
Kieren MacMillan  writes:

> Hi David (et al.),
>
>> I don't think grace notes are usually synchronized optically.
>
> According to our recent "live-from-London" keynote speaker…  ;)
>
> … you are correct — in fact, in one example, she shows how grace
> groups [of different "sizes"] on two different staves can be
> compressed [to the right] to be closer to the principal note/beat,
> thus "ruining" any optical synchronization between the staves.

Frankly, my own take on what that means would not have been to abolish
grace time: it's still useful for identifying things.  But rather to
reduce NoteColumn/MusicalColumn sharing/alignment during grace time to
being just per-Staff, or possibly as option per-Voice.  That would
allow, for special cases, to still blow it up back to being per Score.

One thing I find irritating about grace time is what it does graphically
and in midi to an appoggiatura.  Those are usually supposed to come
on-time, have at _least_ the nominal duration and steal time from the
_next_ rather than the previous note.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Re: How to code a glide?

2020-02-09 Thread Thomas Morley
Am So., 9. Feb. 2020 um 00:00 Uhr schrieb Mark Stephen Mrotek
:
>
> Thomas,
>
> How about a zig-zag glissando?
> http://lilypond.org/doc/v2.19/Documentation/notation/expressive-marks-as-lines
>
> Mark

Hi Mark,

if bendAfter is not sufficient, a glissando would have been my next
suggestion, too. :)

Cheers,
  Harm
>
> -Original Message-
> From: lilypond-user 
> [mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] On Behalf Of 
> Thomas Morley
> Sent: Saturday, February 08, 2020 2:52 PM
> To: John Burt 
> Cc: lilypond-user 
> Subject: Re: How to code a glide?
>
> Am Sa., 8. Feb. 2020 um 23:47 Uhr schrieb John Burt :
> >
> > I'm sorry to say that I don't even know the proper term for what I am 
> > trying to do. I am setting some Georgian folksongs. Sometimes they end with 
> > a descending glide on the last note (like an engine running down). On the 
> > handwritten sheet music I have been using this is represented as a squiggly 
> > descending line after the last note. I'd like to put that in my score, but 
> > I have no idea how to code it. Does anyone have an idea?
> > John Burt
>
> Look for bendAfter. Does it already help?
>
> Cheers,
>   Harm
>



Re: Page numbers with text

2020-02-09 Thread Marco Bagolin
Thank you all,
all solutions are good, but I don't know why the copyright field on the
first page does not appear.

My code is the following:

\version "2.18.2"



\paper {
  print-first-page-number = ##t
  oddHeaderMarkup = ##f
  evenHeaderMarkup = ##f
  oddFooterMarkup = \markup {
  \on-the-fly \print-page-number-check-first \fromproperty
#'page:page-number-string
  \on-the-fly \print-page-number-check-first \italic "- My Song - arr.
by M. Bagolin (2020)"
  }
  evenFooterMarkup = \oddFooterMarkup
}

\header {
title = \markup \override #'(font-name . "Arial Black") \fontsize #+4 {
\bold  "My song" }
copyright = \markup
\override #'(font-name . "Palatino Linotype")
\override #'(baseline-skip . 2)
\center-column { \fontsize #-4
{ \bold
{
\line { " " }
"Arranged by M. B. (2020)"
"ALL RIGHTS RESERVED"
}
}
  }
}
...
...
...

Il giorno ven 7 feb 2020 alle ore 21:44 Noeck  ha
scritto:

> … and if you want this footer on every page, you can have it shorter:
>
>
>   oddFooterMarkup = \markup \fill-line {
> \line {
>   \fromproperty #'page:page-number-string
>   "–"
>   \fromproperty #'header:title
> }
>   }
>
> Best,
> Joram
>
>