Grace notes taking musical time?

2019-02-03 Thread Andrew Bernard
Adding the grace note in this bar cause ca bar check error and pushes it
out. For as long as I have lived grace notes take no time. What am I
missing? Must be working too hard!

Andrew

%
\version "2.19.82"

treble = {
  \time 1/4

  aih'16^-^>_\sfz \tuplet 3/2 {
f'([ d'')
\grace gis8

  }

  \once \override TupletNumber.text = #tuplet-number::calc-denominator-text
  \once \hide TupletBracket
  \tuplet 3/2 { d''16 b''32] } |
  c''4
  \bar "."

}

\score {
  \new Staff {
\treble
  }

  \layout {}
}

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


Re: Grace notes taking musical time?

2019-02-03 Thread Andrew Bernard
Oh. Stupid. Working too hard! I neglected to realise the grace note time
value sets the value for the next note where it was not specified, as I
added in the grace afterwards.

Many apologies for some particularly stupid noise. How I wish we could
delete posts sometimes.

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


Re: Grace notes taking musical time?

2019-02-03 Thread David Kastrup
Andrew Bernard  writes:

> Oh. Stupid. Working too hard! I neglected to realise the grace note time
> value sets the value for the next note where it was not specified, as I
> added in the grace afterwards.
>
> Many apologies for some particularly stupid noise. How I wish we could
> delete posts sometimes.

There are a few conventions coined to rein in consequences of this
convenience.  One is to start each line with an explicit duration
(meaning that you can interchange lines without changing their rhythm).
Another is to prefer using <> over s1*0 for comparable effect (post
events after rather than with the last note) since s1*0 leaves a default
note duration that can have decidedly ugly effects and the typical use
case of s1*0 is being the last element of some construct.

I don't even remember what happens when entering and leaving tuplet
sequences with regard to the carried-over note duration.  It's best
practice to be explicit with the respective first notes anyway.

In the end, it's a reasonable price to pay for the convenience and a few
conventions keep the effects reined in.

-- 
David Kastrup

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


Re: dynamic next to espressivoII

2019-02-03 Thread Thomas Morley
Am So., 3. Feb. 2019 um 08:17 Uhr schrieb Andrew Bernard
:
>
> I posted abot this recently, but only one response. Does anybody have any 
> idea how to align a dynamic and the new \espressivo mark horizontally, next 
> to each other? I know one is a dynamic and one is an accent, so I am stumped.
>
> Refer to the image extracted from the MS I am setting. I'd like it to be 
> close to this effect.
>
> Thanks all!
>
> Andrew

Hi Andrew,

in my understanding the espressivo-sign is a hint for the musician to
apply crescendo followed by a decrescendo on a long note.
In your image I fail to see any espressivo-sign, but encounter always
the more verbose (de)crescendo-Hairpins.

Furthermore in LilyPond they are different grobs, one a spanner the
other an item.
Placing them at the same height is possible only if both graphic signs
are transformed to belong to Dynamics or to Scripts. imho.

If the espressivo is not a spanner, than you have always to adjust the
extension-values as soon as layout changes even if the espressivo is
part of Dynamics. (See below)

So I'd vote for a new espressivo being a spanner, or more precisely it
should use real Hairpins.

Here some thoughts:

One could do all manual (the first two codings) or one could try to
automate it (the next two codings, the first reuses Aaron's coding, so
the pseudo-Hairpins are no spanners)

\version "2.19.82"

\paper {
  indent = 0
  %% uncomment:
  %ragged-right = ##f
}

\markup "Manually: using Hairpins and simultaneous-music, i.e << ... >>"

\new Staff {
  <<
c''2
{ s4\mf-\tweak minimum-length #10 \< s4-\tweak minimum-length #6 \> <>\! }
  >>
  %% A \bar-command is necessary, otherwise one can't end with <>\!
  \bar "|."
}

\markup "Manually: using Hairpins and \\at by David Kastrup"

at =
#(define-music-function (time event music)
  (ly:duration? ly:music? ly:music?)
  "Place @var{event} at a relative duration @var{time} in relation to
  @var{music}."
  #{ \context Bottom << { \skip $time <>$event } $music >> #})

\new Staff {
  \at 4 -\tweak minimum-length #6 \> c''2\mf-\tweak minimum-length #10 \<
  <>\!
  %% A \bar-command is necessary, otherwise one can't end with <>\!
  \bar "|."
}

\markup \wordwrap-string
  #"Autogenerate: using DynamicText with 'make-dynamic-script', and
  'make-espressivo-stencil' by Aaron Hill"

dynamicTextLengthOn = {
  % 0.4 staff-space between adjacent texts
  \override DynamicText.extra-spacing-width = #'(-0.0 . 0.4)
  \override DynamicText.extra-spacing-height = #'(-inf.0 . +inf.0)
}

dynamicTextLengthOff = {
  \override DynamicText.extra-spacing-width = #'(+inf.0 . -inf.0)
  \override DynamicText.extra-spacing-height = #'(0 . 0)
}

#(define (make-espressivo-stencil thick width height gap)
   (let* ((inner (/ gap 2))
  (outer (+ width inner))
  (middle (/ height 2)))
 (ly:stencil-add
   (make-line-stencil thick (- inner) 0 (- outer) middle)
   (make-line-stencil thick (- outer) middle (- inner) height)
   (make-line-stencil thick inner 0 outer middle)
   (make-line-stencil thick outer middle inner height

buzz =
#(define-event-function (args dyn-strg)
  ((number-list? '(0.1 4 0.9 0.35)) string?)
  ;; args-list contains settings for: thick width height gap
  (make-dynamic-script
#{
  \markup {
$dyn-strg
\stencil $(apply make-espressivo-stencil args)
  }
#}))

{
  \dynamicTextLengthOn
  %% need to adjust X-offset (or self-alignment-X)
  c''-\tweak X-offset #-0.5 \buzz "p"
  c''-\tweak X-offset #-1.3 \buzz "pf"
  c''-\tweak X-offset #-2.5 \buzz #'(0.1 8 0.9 0.5) ""
}

\markup \wordwrap-string
  #"Autogenerate: simultaneous-music with Hairpins."

%% Helper, c/p from define-music-display-methods.scm
#(define (make-music-type-predicate . music-types)
  (define make-music-type-predicate-aux
(lambda (mtypes)
  (lambda (expr)
(if (null? mtypes)
#f
(or (eqv? (car mtypes) (ly:music-property expr 'name))
((make-music-type-predicate-aux (cdr mtypes)) expr))
  (make-music-type-predicate-aux music-types))

foo =
#(define-music-function (shorten mus)
  ((number-pair-list? '((0 . 0) (0 . 0))) ly:music?)
  ;; the optional argument 'shorten' may be used fine-tune first/second Hairpin
  ;; going for 'minimum-length would have been possible as well, though
  ;; 'shorten-pair gives more control
  (let* ((note-or-chord?
   (make-music-type-predicate
 ;; more?
 'EventChord
 'NoteEvent)))
(if (note-or-chord? mus)
(let* ((mus-length (ly:moment-main (ly:music-length mus)))
   (half-mus-length (/ mus-length 2))
   (new-length-pair
 (cons
   (numerator half-mus-length)
   (denominator half-mus-length)))
   (skip #{ \scaleDurations $new-length-pair s1\> #})
   (start-skip #{ \scaleDurations $new-length-pair s1\< #}))

  (cond ((music-is-of-type? mus 'note

Re: Please test new lilypond installers

2019-02-03 Thread Knut Petersen

Hi Karlin!


Maybe, installing compat6x package is required.

# pkg install compat6x-amd64

...and it did indeed fix the issue. LilyPond seems fully functional.

Next, I want to make a FreeBSD 32-bit VM, and see about reviving an
iMac G5 to test the PowerPC installers. Although I doubt there's a
very big user base for those.


Thanks for your help!

Yes, some of the installers target somewhat aged platforms ... but as long as 
the installers are functional and don't cause too much work to maintain there's 
no reason  not to keep them around.

Knut


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


Re: Configuration Point & Click

2019-02-03 Thread David Wright
[Note that this posting might overtake another one I made yesterday.]

On Fri 01 Feb 2019 at 17:33:34 (-0700), foxfanfare wrote:
> foxfanfare wrote
> > And again, what is strange is that I have to launch zathura through vim if
> > I
> > want it to react to the link. If I launch the PDF alone in Zathura and
> > click
> > on the link, for instance
> > textedit:///home/remy/Documents/test/test.ly:5:4:5
> > goes directly to the browser. Maybe zathura isn't configured properly and
> > should add xdg-open before the link? 
> 
> OK for that part I just understood where the problem was. I used to launch
> the PDF directly from my file browser (currently ranger). The PDF shows
> correctly but the links redirect to the web browser. But if I just open a
> terminal and launch the PDF from there, the PDF opens at his side and then
> the link is redirected directly to vim in the previous terminal.

I'd be interested to know what configuration command you're using in
zathura to handle the clicks.

I have checked the way that lilypond-invoke-editor works here just by
typing it at the commandline. You might try the same sort of tests.

$ EDITOR=gvim lilypond-invoke-editor textedit:///tmp/windmills.ly:362:9:10
lilypond-invoke-editor (GNU LilyPond) 2.18.2
E247: no registered server named "GVIM": Send failed. Trying to execute 
locally

gives me the file on a local GUI vim. I tried running a server called
VIM and get the same effect, so the name appears invariant.

$ EDITOR=vim lilypond-invoke-editor textedit:///tmp/windmills.ly:362:9:10
lilypond-invoke-editor (GNU LilyPond) 2.18.2

is similar except that the E247 gets lost, possibly because the
non-GUI vim clears the xterm in order to display itself there.

With a GUI or non-GUI server call GVIM running,
$ EDITOR=gvim lilypond…
works as expected, but
$ EDITOR=vim lilypond…
will run vim locally and ignore the server; that is, if the server is
not editing the file already. If the server does have that file open,
then you get a swap file error when it tries to start a local vim.

So I'm pretty confident that lilypond-invoke-editor is doing a good job.

I then tried using zathura as the PDF viewer with:

$ EDITOR=gvim zathura windmills.pdf

having put   set synctex-editor-command "lilypond-invoke-editor %s"
into ~/.zathurarc.

Clicking a note seems to have no effect, left, right or centre,
± shift ± control. However, double clicking a note opens my browser,
searching unproductively for the textedit string.

> Still, I can't manage to skip all the warning like "Vim: Warning: Input is
> not from a terminal" and E325 which tend to make vim unusable. I don't have
> the feeling that the server mode solves this. I also tried with
> remote-silent but it is the same.

Where do those messages appear?

Do you get those warning/error messages when you click on a note even
if you have already done some (harmless) edit of the file already?

Cheers,
David.

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


Another question about two voices

2019-02-03 Thread Klaus Ethgen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Hi Folks,

I have one music where the "lines" (Sorry, I am not exactly sure about
the english name of it) on a note are pointing both down even if they
are marked with different voices:
   classicalGuitar = \relative c
   {
  \global
  \easyHeadsOn
  c4 d8 e g g
  a4 a8 g f4
  \repeat volta 2
  {
 <<
{ \voiceOne e4 f g
\new voice { \voiceTwo c4 d e
 >>
 \oneVoice r4
 <<
{ \voiceOne e4 f g
\new voice { \voiceTwo c4 d h
 >>
 \oneVoice r4
  }
   }

- From the documentation I would think that the \voiceOne and the
\oneVoice parts have lines pointing up and the \voiceTwo parts pointing
down.

But it is different. Up to f4 and the repeat beginning, the lines
pointing up and then both are pointing down.

Is there any I do wrong?

Regards
   Klaus
- -- 
Klaus Ethgen   http://www.ethgen.ch/
pub  4096R/4E20AF1C 2011-05-16Klaus Ethgen 
Fingerprint: 85D4 CA42 952C 949B 1753  62B3 79D0 B06F 4E20 AF1C
-BEGIN PGP SIGNATURE-
Comment: Charset: ISO-8859-1

iQGzBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXEusACgkQpnwKsYAZ
9qy2kwv7BGPM6XQkGUHS0FpNN+z3MgP7nRyw9nzNwcLPOlB+Bzd2TUEb5hSOJuXg
VCjKNAG/NoLnaUaIo1DwUS56S1XkYoZhXKDpQbKACTlXb/gaLes76/awEYCyv6l1
rnaqxD92S+7iEAsGh9z2UmXNEm4HrYvQNmrQbZbi3eToUUAzdXOwmpPmDg+E1GXc
ywOA/g6THoftCwoVfU+bIx761dvovpRJFSbehp8eiEkKGfcUMIlAM7kediGX/aXT
wpRn6+TZ1S6duC5uEKM5cYYNDdsIGOaBUs8rUboJdXTT7hfdrJ//4Paqqdxg9p+X
i9kTG9DNgbN5Lalzk4K74qDLPTxRdMETimzQ1GL022HXDCxyciC5GNzcUoa8IGLx
NQTWTmHteRSpI01OSSGAzkqrjtmmpmeM/Q5RXBMssfGSeaJ9O4VsrFVR7Ij1Om+v
kx38kjfDHWm26Df3lpKK7Drrh9xKR77aXYFyp9ujU2mKD/LzNu7qCV9OtvHZ1xN+
TkcN5THR
=5nrW
-END PGP SIGNATURE-

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


Re: Another question about two voices

2019-02-03 Thread Klaus Ethgen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Sorry, did cut too much... Here is the right part:
   classicalGuitar = \relative c
   {
  \global
  \easyHeadsOn
  c4 d8 e g g | a4 g8 f e4 | d e f | g2 r4 | \break
  a4 a8 g f4 | g e c | d e d | c2 r4 | \break
  \repeat volta 2
  {
 <<
{ \voiceOne e4 f g | a4. g8 f e | f4. e8 d c | d2 }
\new voice { \voiceTwo c4 d e | f4. e8 d c | d4. c8 h a | h2 }
 >>
 \oneVoice r4 |
 <<
{ \voiceOne e4 f g | e2 }
\new voice { \voiceTwo c4 d h | c2 }
 >>
 \oneVoice r4
  }
   }

Regards
   Klaus
- -- 
Klaus Ethgen   http://www.ethgen.ch/
pub  4096R/4E20AF1C 2011-05-16Klaus Ethgen 
Fingerprint: 85D4 CA42 952C 949B 1753  62B3 79D0 B06F 4E20 AF1C
-BEGIN PGP SIGNATURE-
Comment: Charset: ISO-8859-1

iQGyBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXE4kACgkQpnwKsYAZ
9qw+3Av4ujTFC1Pzu/Cdy2KDj6wq6Z7YKcCyEmASAIQILL0O7dr95ocBMfJq4uPq
0L4Ib+vo/Dy6pDUdVHUZP11BOMx6JE6WWJRq50dfOyTK1WZQwzljAv2I7k165kq9
MJoa1t4ZPDKMmpOOY0ZsRp45lMiLPbPZOuNDDUmSl13leU3o9L7qcXjX8sAIxq1Q
c3UuWInc1n9PXJamw2a6DUnjjdO2O/nIKiayo2+M6sEb8xR2FeDfJWGqFBuZ+FXI
xVHIveTwRsygmd5OFHfEQfc12No1Gd/VCL9WmJIKGkx0W/BFMr9TP05iGPIn2gKn
JW5AFzUJhEbsnuu1ChT/gMwFDxvYrcWPLw1Odse9zaXmphpkYeJXbp8PudNyQoYC
RBLa7DQQpGei/OHd295bkgo+c/kyC7NJ9PmhqM8xKbUc8/lw/xUfWuDYpzOdTo6D
xLrRtPUWqfcE7cEeKtVNHpdrcxbfhUZIht4RmUqSPdvqhGLmeOvHgLJo6jSikdKR
niRVLTg=
=FL/j
-END PGP SIGNATURE-

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


Re: Another question about two voices

2019-02-03 Thread David Kastrup
Klaus Ethgen  writes:

> Hi Folks,
>
> I have one music where the "lines" (Sorry, I am not exactly sure about
> the english name of it) on a note are pointing both down even if they
> are marked with different voices:
>classicalGuitar = \relative c
>{
>   \global
>   \easyHeadsOn
>   c4 d8 e g g
>   a4 a8 g f4
>   \repeat volta 2
>   {
><<
>   { \voiceOne e4 f g
>   \new voice { \voiceTwo c4 d e
>>>
>\oneVoice r4
><<
>   { \voiceOne e4 f g
>   \new voice { \voiceTwo c4 d h
>>>
>\oneVoice r4
>   }
>}
>
> From the documentation I would think that the \voiceOne and the
> \oneVoice parts have lines pointing up and the \voiceTwo parts pointing
> down.
>
> But it is different. Up to f4 and the repeat beginning, the lines
> pointing up and then both are pointing down.
>
> Is there any I do wrong?

Did you read the error messages?  I mean, it's not like the above is
compilable code either way (\global is not defined anywhere and there
are lots of braces opening and not closes) so it isn't quite clear what
the actual code _really_ looks like.  But if your sloppy rendition is an
indication, you should have been getting error messages because of
non-existent context names.

-- 
David Kastrup

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


Re: Another question about two voices

2019-02-03 Thread Klaus Ethgen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Hi David,

Am So den  3. Feb 2019 um 17:18 schrieb David Kastrup:
> Did you read the error messages?

It made no sense for me, but read below.

> I mean, it's not like the above is
> compilable code either way (\global is not defined anywhere and there
> are lots of braces opening and not closes) so it isn't quite clear what
> the actual code _really_ looks like.  But if your sloppy rendition is an
> indication, you should have been getting error messages because of
> non-existent context names.

I sent an follow up, sorry, I did cut to much when cut&paste.

I just included the relevant part and the \global is clef settings.

However, I found the bug.

I used lower case voice in \new voice instead of upper case.

The error message "warning: cannot find or create new `voice'" was not
realy pointing where to find the bug but it was correct from program
perspective.

Regards
   Klaus
- -- 
Klaus Ethgen   http://www.ethgen.ch/
pub  4096R/4E20AF1C 2011-05-16Klaus Ethgen 
Fingerprint: 85D4 CA42 952C 949B 1753  62B3 79D0 B06F 4E20 AF1C
-BEGIN PGP SIGNATURE-
Comment: Charset: ISO-8859-1

iQGzBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXFlgACgkQpnwKsYAZ
9qxnwQv+NBUSxhnV8hKKiUC8ZwWF+MVHKaZ9OfDzbNpnHXYA0RjkaoBUsRpUugLk
N1ca9cb0S8jo+OxRsbIySdeig5esaWrIECyNX9pJGJ38QaE6FLN+dtDXDlfqr/x+
GghITg2CbWK+ZvLh81szRfg7UcZ03aOrA9nZ+yHO4MtwgrGA92ZOk7cPxjxhF1ym
f2TH6SN4i2OrCp0Qbiu/4Z3nZiu6VkqTsdfWO2N+ci549M+eaYASLPiUFjidg+sS
RZ+BHEig84kcocmR8nadXowYc+jgwApdERtCkW/gsPipagmWzkCfwz4rfK9bkiBL
3Jjg8A+IAXnRfsUcDSpZqRpo6whF3Zkt4FPyMQQGl9GeduLvqdgZAeJNO0Ijw4O8
8kN+AxezH0Kr7KU6OTj38KpI3hqSN2xQJQbTTAR2Om6/y/WxUJJVm4Uxc/1f3WUb
OpiFDSpMUdBzm0xAoaHMaxpiNYbIcEJB8WobN1dzWvQ7xE5PLtK1kXnwDbQfBgUT
wKCJfhMF
=zKvY
-END PGP SIGNATURE-

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


Re: "Mensurstriche" (barlines between systems) and Repeat signs.

2019-02-03 Thread Thomas Morley
Am Sa., 2. Feb. 2019 um 20:45 Uhr schrieb Thomas Morley
:

> Am Sa., 2. Feb. 2019 um 14:21 Uhr schrieb Aaron Hill 
> :

> > Alternately, the \defineBarLine function could be split:
> >
> >  \defineBarLine "bar" #'("end" "begin" "span")
> >  % becomes
> >  \setBarLineSpanning "bar" "span"
> >  \setBarLineBreaking "bar" "end" "begin"
> >
> > We gain some clarity and self-documentation; and in fact, the line
> > breaking arguments no longer need to be grouped in a list.  Users who
> > only need to change the default behavior for one aspect need only use
> > its associated function.  But would the added verbosity be a justifiable
> > cost?
>
> I think this suggestion would need a bit more work.
> Not sure it's worth the afford. But that's only me. I was involved in
> coding this scheme-interface, so I'm familiar with most of it (albeit
> not all). It's always difficult to write a good user-interface or
> documentation, if one is too familiar with things...
> So I'm open for suggestions as well.
> Currently I haven't researched the possibilities of setBarLineSpanning
> etc in depth maybe later or tomorrow, I may change my mind then ...

I had a closer look today, and I think it would be not so much work to
implement such things as I thought.
For now I come up with the code below.

Disclaimer:
It uses some special syntax to get non-public procedures etc. Don't do
so in codings for serious work.
The guile manual says it's meant only for debugging or as last resort.
Usually there is a reason why non-public procedures are non-public. ;)
It's done here only to offer everyone the possibility to test without
patching internals.

\version "2.19.82"

setBarLineSpanning =
#(define-void-function (bar span)(string? string?)
  (let* ((raw-bar ((@@ (lily) strip-string-annotation) bar))
 (bar-from-glyph-alist
   (or (assoc-get bar (@@ (lily) bar-glyph-alist))
   (assoc-get raw-bar (@@ (lily) bar-glyph-alist)
(if bar-from-glyph-alist
(define-bar-line
  bar (car bar-from-glyph-alist) (cdr bar-from-glyph-alist) span)
(let ((raw-bar-proc
(assoc-get raw-bar (@@ (lily) bar-glyph-print-procedures

  (if (not raw-bar-proc)
  (ly:warning
"No printing-procedure for bar of type \"~a\"."
raw-bar))
  (ly:warning
"Behaviour of bar type \"~a\" is not defined, use \\defineBarLine."
raw-bar)

\setBarLineSpanning "|-dashed" "!"

m = {
  R1 R1 \break R1 R1 R1
}

\score {
  \new StaffGroup << \m \m >>
  \layout {
\set Score.defaultBarType = "|-dashed"
  }
}

#(define (boolean-or-string? x)
  (or (boolean? x) (string? x)))

setBarLineBreaking =
#(define-void-function
  (bar end begin)(string? boolean-or-string? boolean-or-string?)
  (let* ((raw-bar ((@@ (lily) strip-string-annotation) bar))
 (span-bar
   (or (assoc-get bar (@@ (lily) span-bar-glyph-alist))
   (assoc-get raw-bar (@@ (lily) span-bar-glyph-alist)
(if span-bar
(define-bar-line bar end begin span-bar)
(let ((raw-bar-proc
(assoc-get raw-bar (@@ (lily) bar-glyph-print-procedures

  (if (not raw-bar-proc)
  (ly:warning
"No printing-procedure for bar of type \"~a\"."
raw-bar))
  (ly:warning
"Behaviour of bar type \"~a\" is not defined, use \\defineBarLine."
raw-bar)
  #f


\setBarLineBreaking "|-alt" "." "S"

m = {
  R1 R1 \break R1 R1 R1
}

\score {
  \new StaffGroup << \m \m >>
  \layout {
\set Score.defaultBarType = "|-alt"
  }
}


Opinions?


Cheers,
  Harm

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


Re: text block as spanner

2019-02-03 Thread Thomas Morley
Hi David,

Am Sa., 2. Feb. 2019 um 21:35 Uhr schrieb David Nalesnik
:
>
> Hi,
>
> On Sat, Feb 2, 2019 at 2:13 PM Thomas Morley  wrote:
> >
> > Am Sa., 2. Feb. 2019 um 21:09 Uhr schrieb Thomas Morley
> > :
> >
> > > A bold workaround is to define the whole infrastructure for
> > > TextSpanners with new/renamed events (class and type), grobs,
> > > engravers and
> > > start/stop-commands.
> >
> > I forgot to point to a limitation
> > The provided 'text-spanner->text' doesn't care for line-breaks.

To clarify, 'text-spanner->text' has nothing to do with multiple TextSpanners.
It's a stencil-override. special line-breaking behaviour is not coded, though.

> There is this: 
> https://www.mail-archive.com/lilypond-user@gnu.org/msg105826.html

Looks we have the same conversation every few years lol
Your approach is far less invasive, so preferable.

> Not sure if anything needs to be updated.

The fix mentioned here
http://lists.gnu.org/archive/html/lilypond-user/2017-11/msg00016.html
should be applied, then it still works.

Though, I noticed a little problem here and in scheme-text-spanner
from our regtests, too:
Usually one can set the direction via direction-modifiers, i.e. for
_\startTextSpan the TextSpanner is printed below. This does not work.

The direction may be catched in listener and applied to the grob in
process-music.
So I did in the attached file, not sure whether it's the best fix ...

Thanks,
  Harm
\version "2.19.82"

%% by David Nalesnik
%% https://www.mail-archive.com/lilypond-user@gnu.org/msg105826.html
%% see also:
%% http://lists.gnu.org/archive/html/lilypond-user/2017-11/msg00016.html
%% http://lists.gnu.org/archive/html/lilypond-user/2019-02/msg00034.html

%% Incorporating some code from the rewrite in Scheme of
%% Text_spanner_engraver in input/regression/scheme-text-spanner.ly

#(define (add-bound-item spanner item)
   (if (null? (ly:spanner-bound spanner LEFT))
   (ly:spanner-set-bound! spanner LEFT item)
   (ly:spanner-set-bound! spanner RIGHT item)))

#(define (axis-offset-symbol axis)
   (if (eq? axis X) 'X-offset 'Y-offset))

#(define (set-axis! grob axis)
   (if (not (number? (ly:grob-property grob 'side-axis)))
   (begin
(set! (ly:grob-property grob 'side-axis) axis)
(ly:grob-chain-callback
 grob
 (if (eq? axis X)
 ly:side-position-interface::x-aligned-side
 side-position-interface::y-aligned-side)
 (axis-offset-symbol axis)

#(define (assign-spanner-index spanner orig-ls)
   "Determine the position of a new spanner in an ordered sequence
of spanners.  The goal is for the sequence to begin with zero and
contain no gaps.  Return the index representing the spanner's position."
   (if (null? orig-ls)
   0
   (let loop ((ls orig-ls) (insert? #t) (result 0))
 (cond
  ((null? ls) result)
  ;; position at head of list
  ((and insert? (> (caar orig-ls) 0))
   (loop ls #f 0))
  ;; no gaps, put at end of list
  ((and insert? (null? (cdr ls)))
   (loop (cdr ls) #f (1+ (caar ls
  ;; fill lowest position of gap
  ((and insert?
(> (caadr ls) (1+ (caar ls
   (loop (cdr ls) #f (1+ (caar ls
  (else (loop (cdr ls) insert? result))

alternateTextSpannerEngraver =
#(lambda (context)
   (let (;; a list of pairs comprising a spanner index
  ;;  (not spanner-id) and a spanner which has been begun
  (spanners '())
  (finished '()) ; list of spanners in completion stage
  (ev-direction '()) 
  (start-events '()) ; list of START events
  (stop-events '())) ; list of STOP events
 (make-engraver
  ;; \startTextSpan, \stopTextSpan, and the like create events
  ;; which we collect here.
  (listeners
   ((text-span-event engraver event)
(if (= START (ly:event-property event 'span-direction))
(begin
  (set! start-events (cons event start-events))
  (set! ev-direction (ly:event-property event 'direction 1)))
(set! stop-events (cons event stop-events)
  ;; Populate 'note-columns property of spanners.  Bounds are
  ;; set to note columns, and each spanner keeps a record of
  ;; the note columns it traverses.
  (acknowledgers
   ((note-column-interface engraver grob source-engraver)
(for-each (lambda (s)
(ly:pointer-group-interface::add-grob
 (cdr s) 'note-columns grob)
(add-bound-item (cdr s) grob))
  spanners)
;; finished only contains spanners, no indices
(for-each (lambda (f)
(ly:pointer-group-interface::add-grob
 f 'note-columns grob)
(add-bound-item f grob))
  finished)))

  ((process-music trans)
   ;; Move begun spanners from 'spanners' to 'finished'.  We do this
   ;; on the basis

Volunteers wanted as Frescobaldi mentors

2019-02-03 Thread Urs Liska
Hi all,

Frescobaldi wants to apply again as a Google Summer of Code mentoring 
organization this year. In order to submit a promising application we need to 
have a number of potential project mentors, so I want to ask on this list for 
people who can imagine volunteering for this rewarding assignment.

With Frescobaldi the scope of required skills is quite narrower than with 
LilyPond - basically everything is done with Python (and PyQt). But the *main* 
challenge and task of a GSoC mentor is engaging with the student anyway, 
keeping them working and providing some feedback to them, acting as a bridge 
between student and user and developer community.

Being a GSoC mentoring organization is a very good thing for an open source 
project, and it would be a terrific opportunity to get our 3.1 release out and 
go beyond that. So if you by any chance consider your self qualified for this 
task (even "sort-of"), please get in touch with us on- or off-list. You 
wouldn't be left hanging dry and can count on our collaboration to make this a 
worthwile experience.

Best 

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


Re: Grace notes taking musical time?

2019-02-03 Thread Andrew Bernard
Hi David,

Thanks very much for this. In this case, I was simply over-tired!

All the best!

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


Re: Another question about two voices

2019-02-03 Thread Ivan Kuznetsov
Would you post an example that compiles successfully ?

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


Change staff clef immediately after time signature

2019-02-03 Thread Christopher R. Maden
This is probably a FAQ, but I can’t find the right combination of search 
terms to tease it from the ether...


I want a piano staff, with the left hand to start with bass clef, but 
then immediately switch to treble clef after the time signature.


Mnon-WE is attached.  Probably this involves monkeying with the clef 
engraver, but I haven’t figured out how.


Thanks in advance,
Chris
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.
\version "2.18.2"

\include "english.ly"

\new PianoStaff <<
  \new Staff {
\clef treble
\key d \major
\time 4/4
d''4 d'' d'' d''
  }
  \new Staff {
\clef bass
\key d \major
\time 4/4
\clef treble
d'4 d' d' d'
  }
>>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Change staff clef immediately after time signature

2019-02-03 Thread Aaron Hill

On 2019-02-03 6:33 pm, Christopher R. Maden wrote:

This is probably a FAQ, but I can’t find the right combination of
search terms to tease it from the ether...

I want a piano staff, with the left hand to start with bass clef, but
then immediately switch to treble clef after the time signature.

Mnon-WE is attached.  Probably this involves monkeying with the clef
engraver, but I haven’t figured out how.


Does \cueClef help?


\version "2.19.82"

\new PianoStaff <<
  \new Staff { \clef treble b'2 2 }
  \new Staff { \clef bass \cueClef treble b'4 4 4 4 }





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


Re: Change staff clef immediately after time signature

2019-02-03 Thread Aaron Hill

On 2019-02-03 6:43 pm, Aaron Hill wrote:

On 2019-02-03 6:33 pm, Christopher R. Maden wrote:

This is probably a FAQ, but I can’t find the right combination of
search terms to tease it from the ether...

I want a piano staff, with the left hand to start with bass clef, but
then immediately switch to treble clef after the time signature.

Mnon-WE is attached.  Probably this involves monkeying with the clef
engraver, but I haven’t figured out how.


Does \cueClef help?


\version "2.19.82"

\new PianoStaff <<
  \new Staff { \clef treble b'2 2 }
  \new Staff { \clef bass \cueClef treble b'4 4 4 4 }
>>



And if you want to change the size:


\version "2.19.82"

\new PianoStaff <<
  \new Staff { \clef treble b'2 2 }
  \new Staff { \clef bass
\once \override Staff.CueClef.font-size = #0
\cueClef treble b'4 4 4 4
  }





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


Re: Change staff clef immediately after time signature

2019-02-03 Thread Christopher R. Maden

On 2/3/19 9:43 PM, Aaron Hill wrote:

Does \cueClef help?


It does... though then when I \clef bass back again it’s ignored.  I can 
use \cueClefUnset...


Thanks, this is a great workaround.  I suspect there is a better (more 
properly LilyPondish) answer, but this is more than adequate for now.


Thanks again,
Chris
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.

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


Re: Change staff clef immediately after time signature

2019-02-03 Thread Andrew Bernard
Hi Christopher,

This comes up reasonably often. May I ask why you don't simply start the
piece with the treble clef? If you immediately change to treble, what is
the point of having the bass clef at this point? It's a musical decision up
to you, but it always strikes me as a bit unnecessary. Any player will know
the lower staff is the left hand, assuming this is normalish piano music,
so there is no need for a bass clef to remind them. What you want is not
wrong. just clumsy, and adds more visual noise to a score for the brain to
deal with.

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


Reducing top margin for a single page in a score

2019-02-03 Thread Andrew Bernard
I am doing a long string quartet. The full score sits nicely in the middle
of an A4 landscape page with a generous top margin. But there's a solo
viola part that's very dense and the staves fill out the whole page very
tightly right to the bottom, and it looks clumsy because there is lots of
space at the top margin not able to be utilised.

Is it possible to alter the top margin for just a single page in the midst
of a score where it is otherwise OK?

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


Re: Change staff clef immediately after time signature

2019-02-03 Thread Christopher R. Maden

On 2/4/19 12:36 AM, Andrew Bernard wrote:

This comes up reasonably often. May I ask why you don't simply start
the piece with the treble clef? If you immediately change to treble,
what is the point of having the bass clef at this point? It's a
musical decision up to you, but it always strikes me as a bit
unnecessary. Any player will know the lower staff is the left hand,
assuming this is normalish piano music, so there is no need for a
bass clef to remind them. What you want is not wrong. just clumsy,
and adds more visual noise to a score for the brain to deal with.


I’m transcribing Sousa’s “A Typical Tune of Zanzibar,”[*] and I’m trying 
not to change the notation too much unnecessarily.


I also think it kind of makes sense — the lower staff is almost entirely 
in the bass clef, and it makes sense to set that expectation right at 
the start, even if the first two bars are in treble clef.


~Chris

[*] http://levysheetmusic.mse.jhu.edu/collection/073/057 >
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.

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


Re: Change staff clef immediately after time signature

2019-02-03 Thread Andrew Bernard
HI Chris,

That makes sense. I also like to preserve the composer's own notation where
possible. And as said, it's not actually wrong! Good old Sousa!

Andrew


On Mon, 4 Feb 2019 at 16:43, Christopher R. Maden  wrote:

>
> I’m transcribing Sousa’s “A Typical Tune of Zanzibar,”[*] and I’m trying
> not to change the notation too much unnecessarily.
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user