Re: Repeating cross staff tremolo

2017-03-13 Thread Thomas Morley
2017-03-14 1:06 GMT+01:00 Allen Wu :

>
> Hey Guys,
>
> I was trying the example of crossing staff tremolo, but I found it
> difficult to repeat the same one to the next.  Can someone tell me what did
> I do wrong?
>
> Thanks,
> Allen
>
>
> %Here is my code:
>
> upper = {s4 s4}
>
^
You should see this warning:
warning: cannot find context to switch to

The upper-context ends to early, try:
upper = { s1 }

>
> lower = \relative c''' {
>   \voiceOne
>   \repeat tremolo 8 {32 \change Staff = "up" \voiceTwo }
> %Works
>
>   \voiceOne \change Staff = "down"
>   \repeat tremolo 8 {32 \change Staff = "up" \voiceTwo }
> %Wrong
> }
>
>
> \new PianoStaff <<
>   \new Staff = "up"   \upper
>   \new Staff = "down" \lower
> >>
>

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


Repeating cross staff tremolo

2017-03-13 Thread Allen Wu
Hey Guys,

I was trying the example of crossing staff tremolo, but I found it
difficult to repeat the same one to the next.  Can someone tell me what did
I do wrong?

Thanks,
Allen


%Here is my code:

upper = {s4 s4}

lower = \relative c''' {
  \voiceOne
  \repeat tremolo 8 {32 \change Staff = "up" \voiceTwo }
%Works

  \voiceOne \change Staff = "down"
  \repeat tremolo 8 {32 \change Staff = "up" \voiceTwo }
%Wrong
}


\new PianoStaff <<
  \new Staff = "up"   \upper
  \new Staff = "down" \lower
>>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Starting with Lilypond - First Error

2017-03-13 Thread Ralph Fröhlich

Great! Thats it!

See: http://jurtenland.de/wiki/Die_Affen_rasen_durch_den_Wald

With 

Thank you very much


Am 13.03.2017 um 22:46 schrieb David Kastrup:

Henning Hraban Ramm  writes:


Am 2017-03-13 um 17:44 schrieb Scoutladen - Ralph Fröhlich 
:


I try to use Lilypond in our Mediawiki for collection songs for
group of children (like boyscouts...).

Try to set up the first song with a given .ly I get the first
errors. The code of affen.ly seams to be correct, and I try to
google for the error-messages. But I didn't find any help

I guess you are using the Score extension:
https://www.mediawiki.org/wiki/Extension:Score

None of the examples uses variables. This and the hints from the other
replies suggest, that this Mediawiki extension writes a temporary
"file.ly", that wraps your code in a \score block, i.e. it is only
meant for single scores/snippets/examples without structure or
variables, not for whole song sheets or the like.

On the page you cite I read in the descriptions of attributes:

 raw 0 (default), 1 If set to 1, the score code is interpreted as a
 complete LilyPond file. Use this option if you want to
 create more complex scores. If the score language (lang
 attribute) is not set to lilypond, this attribute is
 ignored.

So preumably the OP would need to use


...


here.  Without him actually showing _how_ he uses "LilyPond in our
Mediawiki", of course, that is pure guesserola.




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


Re: Starting with Lilypond - First Error

2017-03-13 Thread David Kastrup
Henning Hraban Ramm  writes:

> Am 2017-03-13 um 17:44 schrieb Scoutladen - Ralph Fröhlich 
> :
>
>> I try to use Lilypond in our Mediawiki for collection songs for
>> group of children (like boyscouts...).
>> 
>> Try to set up the first song with a given .ly I get the first
>> errors. The code of affen.ly seams to be correct, and I try to
>> google for the error-messages. But I didn't find any help
>
> I guess you are using the Score extension:
> https://www.mediawiki.org/wiki/Extension:Score
>
> None of the examples uses variables. This and the hints from the other
> replies suggest, that this Mediawiki extension writes a temporary
> "file.ly", that wraps your code in a \score block, i.e. it is only
> meant for single scores/snippets/examples without structure or
> variables, not for whole song sheets or the like.

On the page you cite I read in the descriptions of attributes:

raw 0 (default), 1 If set to 1, the score code is interpreted as a
complete LilyPond file. Use this option if you want to
create more complex scores. If the score language (lang
attribute) is not set to lilypond, this attribute is
ignored.

So preumably the OP would need to use


...


here.  Without him actually showing _how_ he uses "LilyPond in our
Mediawiki", of course, that is pure guesserola.

-- 
David Kastrup

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


Re: Starting with Lilypond - First Error

2017-03-13 Thread Jeffery Shivers
On Mon, Mar 13, 2017 at 5:31 PM, Ralph Fröhlich  wrote:
> From commandline lilypond compiles affen.ly without any error
>
> It seams to be an error between Mediawiki-Extension:Score and Lilypond and
> not Lilypond and affen.ly
>
> Thank you
>

Great -

Please `reply-all` in the future, by the way (lilypond-user should be
included as a minimum, unless / until the discussion sprouts into a
private / tangential matter)

>
> Am 13.03.2017 um 22:23 schrieb Jeffery Shivers:
>
> On Mar 13, 2017 5:16 PM, "Ralph Fröhlich"  wrote:
>>
>> Thank you, I have updatet to 2.19.49 but get the same issue.
>>
>> On the server everything is fine and compilation is korrekt.
>>
>
> Have you tried with Michael's suggestion though? Does the same thing happen
> with just
>
> 'lilypond file.ly'
> Or whatever name it actually is, since there seems to be some inconsistency
> about that..
>
> Maybe create a new file which jonly* contains verbatim what you posted in
> the original message here, and then, from the command line, 'lilypond
> that-file-name.ly'
>
> What happens then?
>>
>>
>> Am 13.03.2017 um 22:00 schrieb Jeffery Shivers:
>>>
>>> I can't replicate the errors you're getting with the latest stable
>>> version.
>>>
>>> Do you have the option to upgrade to (or install additionally, for
>>> testing at least) 2.18.2? If not, try it on lilybin
>>> (http://lilybin.com/)
>>>
>>> The error message points pretty clearly to the lines where these
>>> problems supposedly are, but what you have actually seems correct
>>> (syntactically
>>> at least) from a first glance.
>>>
>>> 2017-03-13 12:44 GMT-04:00 Scoutladen - Ralph Fröhlich
>>> :

 Hi everybody,

 I try to use Lilypond in our Mediawiki for collection songs for group of
 children (like boyscouts...).

 Try to set up the first song with a given .ly I get the first errors.
 The
 code of affen.ly seams to be correct, and I try to google for the
 error-messages. But I didn't find any help

 If you have anny idea?

 Best regards
 Ralph

 Errors

 Processing `.../file.ly'
 Parsing...
 .../file.ly:27:1: error: Spurious expression in \score

 #(set-global-staff-size 14)
 .../file.ly:29:1: error: unrecognized string, not in text script or
 \lyricmode

 akkordea = \chordmode {
 .../file.ly:29:10: error: syntax error, unexpected '=', expecting '}'
 akkordea
   = \chordmode {
 .../file.ly:71:23: error: unknown escaped string: `\akkordea'
  \new ChordNames {
\akkordea }
 .../file.ly:71:23: error: unrecognized string, not in text script or
 \lyricmode
  \new ChordNames {
\akkordea }
 .../file.ly:176:25: error: syntax error, unexpected '}'

  }
 fatal error: failed files: ".../file.ly"

 exited with status: 1



 affen.ly

 % Dieses Notenblatt wurde erstellt von Peter Crighton
 [http://www.petercrighton.de]
 %
 % Kontakt: petecrigh...@googlemail.com
 %
 % geringfügige Änderungen von Hauke Rehr

 \version "2.12.3"

 \header {
title = "Die Affen rasen durch den Wald"
poet = "Text und Melodie: Volksweise"
copyright = "Gemeinfrei. Kann beliebig vervielfältigt und
 weitergegeben
 werden."
tagline = ""
 }

 #(set-global-staff-size 14)

 akkordea = \chordmode {
s8
% \repeat unfold 4 { c2 a2:m } ?
c2 a2:m
c2 a2:m
c2 a2:m
c2 a2:m
g1:7
c2 c2:7
f1
c1
g1
c1
c1*7/8
 }


 strophe = \relative c' {
\partial 8 a'8 | g4 g4 a4 a4 | g4 g8 a4 r8 r a8  | g4 g4 a4 a4 |
g4 g8 a4 e8 f8 fis8 | g4 g4 g4 g4  | c,2 r8 c'8 c a|
\repeat volta 2
{ c4 c8 c4 c8 c a | c4 c8 c4 e,8 f fis | g4 g4 g4 g4}
\alternative {
  { c4( a8 c4) c8 c a  }
  { c,2 r4 r8 }
}
\bar "|."
 }

 text = \lyricmode {
\set stanza = "1."
 Die Af -- fen ra -- sen durch den Wald,
 der ei -- ne macht den an -- der’n kalt,
 die gan -- ze Af -- fen -- ban -- de brüllt:
 „Wo ist die Ko -- kos -- nuss, wo ist die Ko -- kos -- nuss,
 wer hat die Ko -- kos -- nuss  ge -- klaut?__ Wo ist die
 klaut?“
 }


 \score {
<<
  \new ChordNames { \akkordea }
  \new Voice = "Lied" {
\clef "treble"
\time 4/4
\key c\major
\autoBeamOff
\strophe
  }
  \new Lyrics \lyricsto "Lied" { \text }
>>
 }

   \markup {
 \fill-line { \line {
   \hspace #0.1
   \column {
 \line {
   \bold "2."
   \column {
 "Die Affenmama sitzt am Fluss"
 "und angelt n

Re: Starting with Lilypond - First Error

2017-03-13 Thread Henning Hraban Ramm
Am 2017-03-13 um 17:44 schrieb Scoutladen - Ralph Fröhlich 
:

> I try to use Lilypond in our Mediawiki for collection songs for group of 
> children (like boyscouts...).
> 
> Try to set up the first song with a given .ly I get the first errors. The 
> code of affen.ly seams to be correct, and I try to google for the 
> error-messages. But I didn't find any help

I guess you are using the Score extension:
https://www.mediawiki.org/wiki/Extension:Score

None of the examples uses variables. This and the hints from the other replies 
suggest, that this Mediawiki extension writes a temporary "file.ly", that wraps 
your code in a \score block, i.e. it is only meant for single 
scores/snippets/examples without structure or variables, not for whole song 
sheets or the like.

Greetlings & Gut Pfad, Hraban
---
fiëé visuëlle
Henning Hraban Ramm
http://www.fiee.net




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


Re: Starting with Lilypond - First Error

2017-03-13 Thread Jeffery Shivers
On Mar 13, 2017 5:16 PM, "Ralph Fröhlich"  wrote:
>
> Thank you, I have updatet to 2.19.49 but get the same issue.
>
> On the server everything is fine and compilation is korrekt.
>

Have you tried with Michael's suggestion though? Does the same thing happen
with just

'lilypond file.ly'
Or whatever name it actually is, since there seems to be some inconsistency
about that..

Maybe create a new file which jonly* contains verbatim what you posted in
the original message here, and then, from the command line, 'lilypond
that-file-name.ly'

What happens then?
>
>
> Am 13.03.2017 um 22:00 schrieb Jeffery Shivers:
>>
>> I can't replicate the errors you're getting with the latest stable
version.
>>
>> Do you have the option to upgrade to (or install additionally, for
>> testing at least) 2.18.2? If not, try it on lilybin
>> (http://lilybin.com/)
>>
>> The error message points pretty clearly to the lines where these
>> problems supposedly are, but what you have actually seems correct
(syntactically
>> at least) from a first glance.
>>
>> 2017-03-13 12:44 GMT-04:00 Scoutladen - Ralph Fröhlich <
ra...@scoutladen.eu>:
>>>
>>> Hi everybody,
>>>
>>> I try to use Lilypond in our Mediawiki for collection songs for group of
>>> children (like boyscouts...).
>>>
>>> Try to set up the first song with a given .ly I get the first errors.
The
>>> code of affen.ly seams to be correct, and I try to google for the
>>> error-messages. But I didn't find any help
>>>
>>> If you have anny idea?
>>>
>>> Best regards
>>> Ralph
>>>
>>> Errors
>>>
>>> Processing `.../file.ly'
>>> Parsing...
>>> .../file.ly:27:1: error: Spurious expression in \score
>>>
>>> #(set-global-staff-size 14)
>>> .../file.ly:29:1: error: unrecognized string, not in text script or
>>> \lyricmode
>>>
>>> akkordea = \chordmode {
>>> .../file.ly:29:10: error: syntax error, unexpected '=', expecting '}'
>>> akkordea
>>>   = \chordmode {
>>> .../file.ly:71:23: error: unknown escaped string: `\akkordea'
>>>  \new ChordNames {
>>>\akkordea }
>>> .../file.ly:71:23: error: unrecognized string, not in text script or
>>> \lyricmode
>>>  \new ChordNames {
>>>\akkordea }
>>> .../file.ly:176:25: error: syntax error, unexpected '}'
>>>
>>>  }
>>> fatal error: failed files: ".../file.ly"
>>>
>>> exited with status: 1
>>>
>>>
>>>
>>> affen.ly
>>>
>>> % Dieses Notenblatt wurde erstellt von Peter Crighton
>>> [http://www.petercrighton.de]
>>> %
>>> % Kontakt: petecrigh...@googlemail.com
>>> %
>>> % geringfügige Änderungen von Hauke Rehr
>>>
>>> \version "2.12.3"
>>>
>>> \header {
>>>title = "Die Affen rasen durch den Wald"
>>>poet = "Text und Melodie: Volksweise"
>>>copyright = "Gemeinfrei. Kann beliebig vervielfältigt und
weitergegeben
>>> werden."
>>>tagline = ""
>>> }
>>>
>>> #(set-global-staff-size 14)
>>>
>>> akkordea = \chordmode {
>>>s8
>>>% \repeat unfold 4 { c2 a2:m } ?
>>>c2 a2:m
>>>c2 a2:m
>>>c2 a2:m
>>>c2 a2:m
>>>g1:7
>>>c2 c2:7
>>>f1
>>>c1
>>>g1
>>>c1
>>>c1*7/8
>>> }
>>>
>>>
>>> strophe = \relative c' {
>>>\partial 8 a'8 | g4 g4 a4 a4 | g4 g8 a4 r8 r a8  | g4 g4 a4 a4 |
>>>g4 g8 a4 e8 f8 fis8 | g4 g4 g4 g4  | c,2 r8 c'8 c a|
>>>\repeat volta 2
>>>{ c4 c8 c4 c8 c a | c4 c8 c4 e,8 f fis | g4 g4 g4 g4}
>>>\alternative {
>>>  { c4( a8 c4) c8 c a  }
>>>  { c,2 r4 r8 }
>>>}
>>>\bar "|."
>>> }
>>>
>>> text = \lyricmode {
>>>\set stanza = "1."
>>> Die Af -- fen ra -- sen durch den Wald,
>>> der ei -- ne macht den an -- der’n kalt,
>>> die gan -- ze Af -- fen -- ban -- de brüllt:
>>> „Wo ist die Ko -- kos -- nuss, wo ist die Ko -- kos -- nuss,
>>> wer hat die Ko -- kos -- nuss  ge -- klaut?__ Wo ist die
>>> klaut?“
>>> }
>>>
>>>
>>> \score {
>>><<
>>>  \new ChordNames { \akkordea }
>>>  \new Voice = "Lied" {
>>>\clef "treble"
>>>\time 4/4
>>>\key c\major
>>>\autoBeamOff
>>>\strophe
>>>  }
>>>  \new Lyrics \lyricsto "Lied" { \text }
>>>>>
>>> }
>>>
>>>   \markup {
>>> \fill-line { \line {
>>>   \hspace #0.1
>>>   \column {
>>> \line {
>>>   \bold "2."
>>>   \column {
>>> "Die Affenmama sitzt am Fluss"
>>> "und angelt nach der Kokosnuss."
>>> "Die ganze Affenbande brüllt:"
>>> "|: „Wo ist die Kokosnuss,"
>>> "wo ist die Kokosnuss,"
>>> "wer hat die Kokosnuss geklaut?“ :|"
>>>   }
>>> }
>>> \hspace #0.1
>>> \line {
>>>   \bold "3."
>>>   \column {
>>> "Der Affenonkel, welch ein Graus,"
>>> "reißt alle Urwaldbäume aus."
>>> "Die ganze Affenbande brüllt: …"
>>>   }
>>> }
>>> \hspace #0.1
>>> \line {
>>>   \bold "4."
>>>   \column {
>>> "Die Affentante kommt von fern,"
>>> "sie isst die Kokosnuss so gern."
>>>

Re: Starting with Lilypond - First Error

2017-03-13 Thread Malte Meyn


Am 13.03.2017 um 22:04 schrieb David Kastrup:
> Scoutladen - Ralph Fröhlich  writes:
> 
>> Hi everybody,
>>
>> I try to use Lilypond in our Mediawiki for collection songs for group
>> of children (like boyscouts...).
>>
>> Try to set up the first song with a given .ly I get the first
>> errors. The code of affen.ly seams to be correct, and I try to google
>> for the error-messages. But I didn't find any help
>>
>> If you have anny idea?
>>
>> Best regards
>> Ralph
>>
>> Errors
>>
>> Processing `.../file.ly'
>> Parsing...
>> .../file.ly:27:1: error: Spurious expression in \score
> 
> file.ly is not affen.ly and the error messages as well as the line
> numbers do not correspond with what you posted.
> 
> In the posted affen.ly there is not even a \score written.
> 

If you add the line

\score {

directly before the #(set-global-staff-size 14) you’ll get this error
message—but only if you use LilyPond 2.19.xx; versions 2.18.2 and
earlier (like the 2.12.3 in Ralph’s \version statement) only say

“error: syntax error, unexpected SCM_TOKEN, expecting \header

  #(set-global-staff-size 14)”

So please, Ralph, give us the correct and complete file and state the
LilyPond version you are actually using.

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


Re: Starting with Lilypond - First Error

2017-03-13 Thread Michael Gerdau
Hallo Ralph,
> I try to use Lilypond in our Mediawiki for collection songs for group of
> children (like boyscouts...).
> 
> Try to set up the first song with a given .ly I get the first errors.
> The code of affen.ly seams to be correct, and I try to google for the
> error-messages. But I didn't find any help
> 
> If you have anny idea?

The inserted file compiles just fine on my system.

Looking at the error msgs you provided it seems as if the file you
mailed to the list is not what you used to create the errors shown,
because...

> .../file.ly:27:1: error: Spurious expression in \score
> 
> #(set-global-staff-size 14)

...this is line 16 of what you provided while lilypond is calling it
line 27. Makes 11 lines of other stuff before the code you'd shown.

[Rest snipped as the following lines are equally off]

I'd suggest you try to compile the raw file affen.ly on the commandline
without doing any fancy include stuff inside other systems to check if
your lilypond installation is basically working.

Once that's established you can then work on the mediawiki integration.
Any errors you'd encounter then aren't lilypond but mediawiki
integration related.

HTH,
Michael
-- 
 Michael Gerdau   email: m...@qata.de
 GPG-keys available on request or at public keyserver

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


Re: Starting with Lilypond - First Error

2017-03-13 Thread David Kastrup
Scoutladen - Ralph Fröhlich  writes:

> Hi everybody,
>
> I try to use Lilypond in our Mediawiki for collection songs for group
> of children (like boyscouts...).
>
> Try to set up the first song with a given .ly I get the first
> errors. The code of affen.ly seams to be correct, and I try to google
> for the error-messages. But I didn't find any help
>
> If you have anny idea?
>
> Best regards
> Ralph
>
> Errors
>
> Processing `.../file.ly'
> Parsing...
> .../file.ly:27:1: error: Spurious expression in \score

file.ly is not affen.ly and the error messages as well as the line
numbers do not correspond with what you posted.

In the posted affen.ly there is not even a \score written.

-- 
David Kastrup

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


Re: Starting with Lilypond - First Error

2017-03-13 Thread Jeffery Shivers
I can't replicate the errors you're getting with the latest stable version.

Do you have the option to upgrade to (or install additionally, for
testing at least) 2.18.2? If not, try it on lilybin
(http://lilybin.com/)

The error message points pretty clearly to the lines where these
problems supposedly are, but what you have actually seems correct (syntactically
at least) from a first glance.

2017-03-13 12:44 GMT-04:00 Scoutladen - Ralph Fröhlich :
> Hi everybody,
>
> I try to use Lilypond in our Mediawiki for collection songs for group of
> children (like boyscouts...).
>
> Try to set up the first song with a given .ly I get the first errors. The
> code of affen.ly seams to be correct, and I try to google for the
> error-messages. But I didn't find any help
>
> If you have anny idea?
>
> Best regards
> Ralph
>
> Errors
>
> Processing `.../file.ly'
> Parsing...
> .../file.ly:27:1: error: Spurious expression in \score
>
> #(set-global-staff-size 14)
> .../file.ly:29:1: error: unrecognized string, not in text script or
> \lyricmode
>
> akkordea = \chordmode {
> .../file.ly:29:10: error: syntax error, unexpected '=', expecting '}'
> akkordea
>  = \chordmode {
> .../file.ly:71:23: error: unknown escaped string: `\akkordea'
> \new ChordNames {
>   \akkordea }
> .../file.ly:71:23: error: unrecognized string, not in text script or
> \lyricmode
> \new ChordNames {
>   \akkordea }
> .../file.ly:176:25: error: syntax error, unexpected '}'
>
> }
> fatal error: failed files: ".../file.ly"
>
> exited with status: 1
>
>
>
> affen.ly
>
> % Dieses Notenblatt wurde erstellt von Peter Crighton
> [http://www.petercrighton.de]
> %
> % Kontakt: petecrigh...@googlemail.com
> %
> % geringfügige Änderungen von Hauke Rehr
>
> \version "2.12.3"
>
> \header {
>   title = "Die Affen rasen durch den Wald"
>   poet = "Text und Melodie: Volksweise"
>   copyright = "Gemeinfrei. Kann beliebig vervielfältigt und weitergegeben
> werden."
>   tagline = ""
> }
>
> #(set-global-staff-size 14)
>
> akkordea = \chordmode {
>   s8
>   % \repeat unfold 4 { c2 a2:m } ?
>   c2 a2:m
>   c2 a2:m
>   c2 a2:m
>   c2 a2:m
>   g1:7
>   c2 c2:7
>   f1
>   c1
>   g1
>   c1
>   c1*7/8
> }
>
>
> strophe = \relative c' {
>   \partial 8 a'8 | g4 g4 a4 a4 | g4 g8 a4 r8 r a8  | g4 g4 a4 a4 |
>   g4 g8 a4 e8 f8 fis8 | g4 g4 g4 g4  | c,2 r8 c'8 c a|
>   \repeat volta 2
>   { c4 c8 c4 c8 c a | c4 c8 c4 e,8 f fis | g4 g4 g4 g4}
>   \alternative {
> { c4( a8 c4) c8 c a  }
> { c,2 r4 r8 }
>   }
>   \bar "|."
> }
>
> text = \lyricmode {
>   \set stanza = "1."
>Die Af -- fen ra -- sen durch den Wald,
>der ei -- ne macht den an -- der’n kalt,
>die gan -- ze Af -- fen -- ban -- de brüllt:
>„Wo ist die Ko -- kos -- nuss, wo ist die Ko -- kos -- nuss,
>wer hat die Ko -- kos -- nuss  ge -- klaut?__ Wo ist die
>klaut?“
> }
>
>
> \score {
>   <<
> \new ChordNames { \akkordea }
> \new Voice = "Lied" {
>   \clef "treble"
>   \time 4/4
>   \key c\major
>   \autoBeamOff
>   \strophe
> }
> \new Lyrics \lyricsto "Lied" { \text }
>   >>
> }
>
>  \markup {
>\fill-line { \line {
>  \hspace #0.1
>  \column {
>\line {
>  \bold "2."
>  \column {
>"Die Affenmama sitzt am Fluss"
>"und angelt nach der Kokosnuss."
>"Die ganze Affenbande brüllt:"
>"|: „Wo ist die Kokosnuss,"
>"wo ist die Kokosnuss,"
>"wer hat die Kokosnuss geklaut?“ :|"
>  }
>}
>\hspace #0.1
>\line {
>  \bold "3."
>  \column {
>"Der Affenonkel, welch ein Graus,"
>"reißt alle Urwaldbäume aus."
>"Die ganze Affenbande brüllt: …"
>  }
>}
>\hspace #0.1
>\line {
>  \bold "4."
>  \column {
>"Die Affentante kommt von fern,"
>"sie isst die Kokosnuss so gern."
>"Die ganze Affenbande brüllt: …"
>  }
>}
>\hspace #0.1
>\line {
>  \bold "5."
>  \column {
>"Der Affenmilchmann, dieser Knilch,"
>"er wartet auf die Kokosmilch."
>"Die ganze Affenbande brüllt: …"
>  }
>}
>  }
>  \line {" "}
>  \column {
>\line {
>  \bold "6."
>  \column {
>"Das Affenbaby, voll Genuss,"
>"hält in der Hand die Kokosnuss"
>"Die ganze Affenbande brüllt:"
>"|: „Da ist die Kokosnuss,"
>"da ist die Kokosnuss,"
>"es hat die Kokosnuss geklaut!“ :|"
>  }
>}
>\hspace #0.1
>\line {
>  \bold "7."
>  \column {
>"Die Affenoma schreit: „Hurra!"
>"Die Kokosnuss ist wieder da!“"
>"Die ganze Affenbande brüllt:"
>"|: „Da ist die Kokosnuss,"
>"da ist die Kokosnuss,"
>"es hat die Kokosnuss geklaut!“ :|"
>  }
>}
>\hspace #0.1
>\line {
>  \bold "8."
>  \column {
>"Und die

Starting with Lilypond - First Error

2017-03-13 Thread Scoutladen - Ralph Fröhlich

Hi everybody,

I try to use Lilypond in our Mediawiki for collection songs for group of 
children (like boyscouts...).


Try to set up the first song with a given .ly I get the first errors. 
The code of affen.ly seams to be correct, and I try to google for the 
error-messages. But I didn't find any help


If you have anny idea?

Best regards
Ralph

Errors

Processing `.../file.ly'
Parsing...
.../file.ly:27:1: error: Spurious expression in \score

#(set-global-staff-size 14)
.../file.ly:29:1: error: unrecognized string, not in text script or \lyricmode

akkordea = \chordmode {
.../file.ly:29:10: error: syntax error, unexpected '=', expecting '}'
akkordea
 = \chordmode {
.../file.ly:71:23: error: unknown escaped string: `\akkordea'
\new ChordNames {
  \akkordea }
.../file.ly:71:23: error: unrecognized string, not in text script or \lyricmode
\new ChordNames {
  \akkordea }
.../file.ly:176:25: error: syntax error, unexpected '}'

}
fatal error: failed files: ".../file.ly"

exited with status: 1



affen.ly

% Dieses Notenblatt wurde erstellt von Peter Crighton 
[http://www.petercrighton.de]

%
% Kontakt: petecrigh...@googlemail.com
%
% geringfügige Änderungen von Hauke Rehr

\version "2.12.3"

\header {
  title = "Die Affen rasen durch den Wald"
  poet = "Text und Melodie: Volksweise"
  copyright = "Gemeinfrei. Kann beliebig vervielfältigt und 
weitergegeben werden."

  tagline = ""
}

#(set-global-staff-size 14)

akkordea = \chordmode {
  s8
  % \repeat unfold 4 { c2 a2:m } ?
  c2 a2:m
  c2 a2:m
  c2 a2:m
  c2 a2:m
  g1:7
  c2 c2:7
  f1
  c1
  g1
  c1
  c1*7/8
}


strophe = \relative c' {
  \partial 8 a'8 | g4 g4 a4 a4 | g4 g8 a4 r8 r a8  | g4 g4 a4 a4 |
  g4 g8 a4 e8 f8 fis8 | g4 g4 g4 g4  | c,2 r8 c'8 c a|
  \repeat volta 2
  { c4 c8 c4 c8 c a | c4 c8 c4 e,8 f fis | g4 g4 g4 g4}
  \alternative {
{ c4( a8 c4) c8 c a  }
{ c,2 r4 r8 }
  }
  \bar "|."
}

text = \lyricmode {
  \set stanza = "1."
   Die Af -- fen ra -- sen durch den Wald,
   der ei -- ne macht den an -- der’n kalt,
   die gan -- ze Af -- fen -- ban -- de brüllt:
   „Wo ist die Ko -- kos -- nuss, wo ist die Ko -- kos -- nuss,
   wer hat die Ko -- kos -- nuss  ge -- klaut?__ Wo ist die
   klaut?“
}


\score {
  <<
\new ChordNames { \akkordea }
\new Voice = "Lied" {
  \clef "treble"
  \time 4/4
  \key c\major
  \autoBeamOff
  \strophe
}
\new Lyrics \lyricsto "Lied" { \text }
  >>
}

 \markup {
   \fill-line { \line {
 \hspace #0.1
 \column {
   \line {
 \bold "2."
 \column {
   "Die Affenmama sitzt am Fluss"
   "und angelt nach der Kokosnuss."
   "Die ganze Affenbande brüllt:"
   "|: „Wo ist die Kokosnuss,"
   "wo ist die Kokosnuss,"
   "wer hat die Kokosnuss geklaut?“ :|"
 }
   }
   \hspace #0.1
   \line {
 \bold "3."
 \column {
   "Der Affenonkel, welch ein Graus,"
   "reißt alle Urwaldbäume aus."
   "Die ganze Affenbande brüllt: …"
 }
   }
   \hspace #0.1
   \line {
 \bold "4."
 \column {
   "Die Affentante kommt von fern,"
   "sie isst die Kokosnuss so gern."
   "Die ganze Affenbande brüllt: …"
 }
   }
   \hspace #0.1
   \line {
 \bold "5."
 \column {
   "Der Affenmilchmann, dieser Knilch,"
   "er wartet auf die Kokosmilch."
   "Die ganze Affenbande brüllt: …"
 }
   }
 }
 \line {" "}
 \column {
   \line {
 \bold "6."
 \column {
   "Das Affenbaby, voll Genuss,"
   "hält in der Hand die Kokosnuss"
   "Die ganze Affenbande brüllt:"
   "|: „Da ist die Kokosnuss,"
   "da ist die Kokosnuss,"
   "es hat die Kokosnuss geklaut!“ :|"
 }
   }
   \hspace #0.1
   \line {
 \bold "7."
 \column {
   "Die Affenoma schreit: „Hurra!"
   "Die Kokosnuss ist wieder da!“"
   "Die ganze Affenbande brüllt:"
   "|: „Da ist die Kokosnuss,"
   "da ist die Kokosnuss,"
   "es hat die Kokosnuss geklaut!“ :|"
 }
   }
   \hspace #0.1
   \line {
 \bold "8."
 \column {
   "Und die Moral von der Geschicht’:"
   "Klaut keine Kokosnüsse nicht,"
   "weil sonst die ganze Bande brüllt:"
   "|: „Wo ist die Kokosnuss,"
   "wo ist die Kokosnuss,"
   "wer hat die Kokosnuss geklaut?“ :|"
 }
   }
 }
   } }
 }

 % some settings % vim: sw=2 et

--
Abonniere unseren Kanal bei Youtube http://www.youtube.de/jurtenland

Besuche uns bei Facebook http://www.facebook.com/zeltemitfeuerimherzen
Folge uns bei Twitter: http://www.twitter.com/jurtenland
_
Jurtenland - Zelte mit Feuer im Herzen!
Troyerladen - Zieht euch warm an!
Kistenladen - Verpacken, transportieren, lagern!
_

Scoutladen
Ralph Fröhlich
Weingartenstr. 35
77654 Offenburg

Tel. 0

Re: Composing music functions

2017-03-13 Thread Morten Lemvigh
Hi,

Thank you for your answer - seems so much good is coming :-). Lilypond is
just amazing!
  - and also a lesson to myself about checking renames in example code :-)

Best regards,
Morten

On Sun, Mar 12, 2017 at 11:30 PM, Thomas Morley 
wrote:

> 2017-03-12 22:46 GMT+01:00 Morten Lemvigh :
> > Hi,
> >
> > I'm trying to create some tools for setting choir pieces. I have run
> against
> > a problem where I have a music function that needs the result of another
> > music function. That other function uses a Lilypond code block, so it
> takes
> > both parser and location. For reasons I don't understand, I cannot get
> this
> > to work. Lilypond gives me a:
> >
> >   Wrong type to apply: #>
> >
> >
> > I have tried to create a small toy example to show what I want to
> achieve:
> >
> > rest-around = #(define-music-function (parser location music )
> (ly:music?)
> >   #{ r4 $music r4 #})
> >
> > restful-choir = #(define-music-function (parser location music)
> (ly:music?)
> >   (let ((rest-around (rest-around parser location music)))
> >#{
> >  <<
> >\new Voice { \voiceOne \transpose c g $rest-framed }
>
> rest-framed is not defined see terminal-output:
>
> error: GUILE signaled an error for the expression beginning here
>\new Voice { \voiceOne \transpose c g $
>   rest-framed }
> Unbound variable: rest-framed
>
>
> >\new Voice { \voiceTwo $rest-framed }
> >  >>
> >#}))
> >
> >
> > music =  { c' d' e' }
> >
> > \score {
> >   \new Staff { \restful-choir \music }
> > }
> >
> > I have run into this problem a couple of times, the current problem I'm
> > trying to solve is: I have a list of music an I am trying to map each
> item
> > of the list with a function that creates a staff with the music.
> Afterwards
> > they should be combined as 'SimultaneousMusic. I would like to use
> Lilypond
> > code blocks where I think it is clearer than the Scheme counterpart.
> >
> > Is there something obvious I am doing wrong,
>
> You did not post your lily-version ;)
>
> > or am I perhaps completely off
> > on this approach...?
> >
> > Best regards,
> > Morten
>
> This works for newer devel-versions:
>
> \version "2.19.56"
>
> rest-around = #(define-music-function (music ) (ly:music?)
>   #{ r4 $music r4 #})
>
> restful-choir = #(define-music-function (music) (ly:music?)
>   (let ((rest-framed (rest-around music)))
>#{
>  <<
>\new Voice { \voiceOne \transpose c g $rest-framed }
>\new Voice { \voiceTwo $rest-framed }
>  >>
>#}))
>
>
> music =  { c' d' e' }
>
> \score {
>   \new Staff { \restful-choir \music }
> }
>
>
> Cheers,
>   Harm
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Nalesnik
On Mon, Mar 13, 2017 at 10:41 AM, David Nalesnik
 wrote:
> On Mon, Mar 13, 2017 at 10:19 AM, David Nalesnik
>  wrote:
>> Hi again,
>>
>> On Mon, Mar 13, 2017 at 10:15 AM, David Kastrup  wrote:
>>> David Nalesnik  writes:
>>>
 Oh, there's some extra code.  I decided to use a flag to avoid
 redundant calculations, but didn't follow through.
>
> Speaking of redundant calculations...
>
> %% Grob should be a NoteColumn object
> #(define (space-by-stems grob)
>(let* ((stem (ly:grob-object grob 'stem))
>   (beam (ly:grob-object stem 'beam)))
>  (if (eq? #t (ly:grob-property beam 'cross-staff))
>  (let* ((stems (ly:grob-array->list (ly:grob-object beam 'stems)))
>  (note-columns (map (lambda (s) (ly:grob-parent s X)) stems))
>  ;; which NoteColumn am I?
>  (me-nc (memq grob note-columns))
>  (orig-stem-pos (ly:grob-relative-coordinate stem (car
> me-nc) X)))
>(- orig-stem-pos))
>  0.0)))
>
> 

*Arghh!*  Forgive me, but...

%% Grob should be a NoteColumn object
#(define (space-by-stems grob)
   (let* ((stem (ly:grob-object grob 'stem))
  (beam (ly:grob-object stem 'beam)))
 (if (and (ly:grob? beam)
  (eq? #t (ly:grob-property beam 'cross-staff)))
 (let* ((stems (ly:grob-array->list (ly:grob-object beam 'stems)))
(orig-stem-pos (ly:grob-relative-coordinate stem grob X)))
   (- orig-stem-pos))
 0.0)))

>
> Let me know if you run into issues with a large score.  Could indicate
> that I need to do some checking if objects exist -- of which there is
> currently none.
>

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


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Nalesnik
On Mon, Mar 13, 2017 at 10:19 AM, David Nalesnik
 wrote:
> Hi again,
>
> On Mon, Mar 13, 2017 at 10:15 AM, David Kastrup  wrote:
>> David Nalesnik  writes:
>>
>>> Oh, there's some extra code.  I decided to use a flag to avoid
>>> redundant calculations, but didn't follow through.

Speaking of redundant calculations...

%% Grob should be a NoteColumn object
#(define (space-by-stems grob)
   (let* ((stem (ly:grob-object grob 'stem))
  (beam (ly:grob-object stem 'beam)))
 (if (eq? #t (ly:grob-property beam 'cross-staff))
 (let* ((stems (ly:grob-array->list (ly:grob-object beam 'stems)))
 (note-columns (map (lambda (s) (ly:grob-parent s X)) stems))
 ;; which NoteColumn am I?
 (me-nc (memq grob note-columns))
 (orig-stem-pos (ly:grob-relative-coordinate stem (car
me-nc) X)))
   (- orig-stem-pos))
 0.0)))



Let me know if you run into issues with a large score.  Could indicate
that I need to do some checking if objects exist -- of which there is
currently none.

DN

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


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Nalesnik
Hi again,

On Mon, Mar 13, 2017 at 10:15 AM, David Kastrup  wrote:
> David Nalesnik  writes:
>
>> Oh, there's some extra code.  I decided to use a flag to avoid
>> redundant calculations, but didn't follow through.  The music function
>> should read
>>
>> spaceStemsEvenly =
>> #(define-music-function (mus) (ly:music?)
>>#{
>>  \override NoteColumn.X-offset = #space-by-stems
>>  #mus
>>  \revert NoteColumn.X-offset
>>#})
>
> This looks like it should rather be \temporary \override in order not to
> interfere with preexisting settings in the context.
>
> --
> David Kastrup

I've attached a version which updates the music function based on
David Kastrup's suggestion above.

Also, since it's certainly more convenient for you to wrap large
chunks of music in the music function, the attached checks for
cross-staff beaming.

DN
\version "2.19.56"

%% Grob should be a NoteColumn object
#(define (space-by-stems grob)
   (let* ((stem (ly:grob-object grob 'stem))
  (beam (ly:grob-object stem 'beam)))
 (if (eq? #t (ly:grob-property beam 'cross-staff))
 (let* ((stems (ly:grob-array->list (ly:grob-object beam 'stems)))
 (note-columns (map (lambda (s) (ly:grob-parent s X)) stems))
 ;; which NoteColumn am I?
 (me-nc (memq grob note-columns))
 (nth (- (length note-columns) (length me-nc)))
 (orig-stem-pos (map (lambda (s nc) (ly:grob-relative-coordinate s nc X))
  stems note-columns)))
   (* -1 (list-ref orig-stem-pos nth)))
 0.0)))

spaceStemsEvenly =
#(define-music-function (mus) (ly:music?)
   #{
 \temporary \override NoteColumn.X-offset = #space-by-stems
 #mus
 \revert NoteColumn.X-offset
   #})

%% EXAMPLE %

tsd = { \change Staff = treble \stemDown }
bsu = { \change Staff = bass \stemUp }

treble = {
  \clef treble
  aes''32[ \bsu cis'! \tsd disis'''! \bsu deses'! \tsd d''' \bsu ees'!]
}

bass = {
  \clef bass
  s8.
}

\score {

  \new PianoStaff
  <<
\new Staff = "treble" { \treble \spaceStemsEvenly \treble \treble }
\new Staff = "bass" { \bass \bass \bass }
  >>

  \layout {
\context {
  \Score
  proportionalNotationDuration = #(ly:make-moment 1/32)
  \override SpacingSpanner.uniform-stretching = ##t
  \override Score.SpacingSpanner.strict-note-spacing = ##t
}
  }
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Kastrup
David Nalesnik  writes:

> Oh, there's some extra code.  I decided to use a flag to avoid
> redundant calculations, but didn't follow through.  The music function
> should read
>
> spaceStemsEvenly =
> #(define-music-function (mus) (ly:music?)
>#{
>  \override NoteColumn.X-offset = #space-by-stems
>  #mus
>  \revert NoteColumn.X-offset
>#})

This looks like it should rather be \temporary \override in order not to
interfere with preexisting settings in the context.

-- 
David Kastrup

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


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Nalesnik
On Mon, Mar 13, 2017 at 9:58 AM, David Nalesnik
 wrote:
> Hi Andrew,
>
> On Mon, Mar 13, 2017 at 3:11 AM, Andrew Bernard
>  wrote:
>> This issue has dogged me for a long time, and searching the archives does
>> not produce a reliable answer as far as I can see.
>>
>> When using proportional notation with cross staff beamed groups, it looks
>> vastly better if the stems are evenly spaced, but proportional notation
>> messes this up, and only in the cross staff situation.
>>
>> I have tried using \newSpacing section in my scores and I am so deep in
>> confusion perhaps that I cannot find a way to make this work, while
>> preserving the proportional notation for the score overall.
>>
>> There is a thread concerning this matter here, with no resolution, but
>> pertinent:
>>
>> https://lists.gnu.org/archive/html/lilypond-user/2014-07/msg00303.html
>>
>> It would be great if this could be made to work. What lilypond incantations
>> do I need, or is it a current limitation? Could we have some sort of
>> \spaceStemsEvenly command?
>>
>> Andrew
>>
>> == snip
>>
>> \version "2.19.56"
>>
>> tsd = { \change Staff = treble \stemDown }
>> bsu = { \change Staff = bass \stemUp }
>>
>> treble = {
>>   \clef treble
>>   aes''32[ \bsu c' \tsd d''' \bsu d' \tsd d''' \bsu ees']
>> }
>>
>> bass = {
>>   \clef bass
>>   s4
>> }
>>
>> \score {
>>
>>   \new PianoStaff
>>   <<
>> \new Staff = "treble" { \treble }
>> \new Staff = "bass" { \bass }
>>   >>
>>
>>   \layout {
>>   }
>> }
>>
>> \score {
>>
>>   \new PianoStaff
>>   <<
>> \new Staff = "treble" { \treble }
>> \new Staff = "bass" { \bass }
>>   >>
>>
>>   \layout {
>> \context {
>>   \Score
>>   proportionalNotationDuration = #(ly:make-moment 1/32)
>>   \override SpacingSpanner.uniform-stretching = ##t
>>   \override Score.SpacingSpanner.strict-note-spacing = ##t
>> }
>>   }
>> }
>>
>
> How about this?
>
> It's not a deep solution which adjusts spacing; rather, it adjusts the
> X-offset of NoteColumns based on stem position.
>
> The example shows a corrected group surrounded by default to
> illustrate usage of the music function I've wrapped the correction
> into.
>
> Best,
> David
>
> 
>
> \version "2.19.56"
>
> %% Grob should be a NoteColumn object
> #(define (space-by-stems grob)
>(let* ((stem (ly:grob-object grob 'stem))
>   (beam (ly:grob-object stem 'beam))
>   (stems (ly:grob-array->list (ly:grob-object beam 'stems)))
>   (note-columns (map (lambda (s) (ly:grob-parent s X)) stems))
>   ;; which NoteColumn am I?
>   (me-nc (memq grob note-columns))
>   (nth (- (length note-columns) (length me-nc)))
>   (orig-stem-pos (map (lambda (s nc)
> (ly:grob-relative-coordinate s nc X))
>stems note-columns)))
>  (* -1 (list-ref orig-stem-pos nth
>
> spaceStemsEvenly =
> #(define-music-function (mus) (ly:music?)
>(let ((done #f))
>  #{
>\override NoteColumn.X-offset = #space-by-stems
>#mus
>\revert NoteColumn.X-offset
>  #}))

Oh, there's some extra code.  I decided to use a flag to avoid
redundant calculations, but didn't follow through.  The music function
should read

spaceStemsEvenly =
#(define-music-function (mus) (ly:music?)
   #{
 \override NoteColumn.X-offset = #space-by-stems
 #mus
 \revert NoteColumn.X-offset
   #})

>
> %% EXAMPLE %
>
> tsd = { \change Staff = treble \stemDown }
> bsu = { \change Staff = bass \stemUp }
>
> treble = {
>   \clef treble
>   aes''32[ \bsu c' \tsd d''' \bsu d' \tsd d''' \bsu ees']
> }
>
> bass = {
>   \clef bass
>   s8.
> }
>
> \score {
>
>   \new PianoStaff
>   <<
> \new Staff = "treble" { \treble \spaceStemsEvenly \treble \treble }
> \new Staff = "bass" { \bass \bass \bass }
>   >>
>
>   \layout {
> \context {
>   \Score
>   proportionalNotationDuration = #(ly:make-moment 1/32)
>   \override SpacingSpanner.uniform-stretching = ##t
>   \override Score.SpacingSpanner.strict-note-spacing = ##t
> }
>   }
> }

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


Re: Cross staff stem spacing with proportional notation

2017-03-13 Thread David Nalesnik
Hi Andrew,

On Mon, Mar 13, 2017 at 3:11 AM, Andrew Bernard
 wrote:
> This issue has dogged me for a long time, and searching the archives does
> not produce a reliable answer as far as I can see.
>
> When using proportional notation with cross staff beamed groups, it looks
> vastly better if the stems are evenly spaced, but proportional notation
> messes this up, and only in the cross staff situation.
>
> I have tried using \newSpacing section in my scores and I am so deep in
> confusion perhaps that I cannot find a way to make this work, while
> preserving the proportional notation for the score overall.
>
> There is a thread concerning this matter here, with no resolution, but
> pertinent:
>
> https://lists.gnu.org/archive/html/lilypond-user/2014-07/msg00303.html
>
> It would be great if this could be made to work. What lilypond incantations
> do I need, or is it a current limitation? Could we have some sort of
> \spaceStemsEvenly command?
>
> Andrew
>
> == snip
>
> \version "2.19.56"
>
> tsd = { \change Staff = treble \stemDown }
> bsu = { \change Staff = bass \stemUp }
>
> treble = {
>   \clef treble
>   aes''32[ \bsu c' \tsd d''' \bsu d' \tsd d''' \bsu ees']
> }
>
> bass = {
>   \clef bass
>   s4
> }
>
> \score {
>
>   \new PianoStaff
>   <<
> \new Staff = "treble" { \treble }
> \new Staff = "bass" { \bass }
>   >>
>
>   \layout {
>   }
> }
>
> \score {
>
>   \new PianoStaff
>   <<
> \new Staff = "treble" { \treble }
> \new Staff = "bass" { \bass }
>   >>
>
>   \layout {
> \context {
>   \Score
>   proportionalNotationDuration = #(ly:make-moment 1/32)
>   \override SpacingSpanner.uniform-stretching = ##t
>   \override Score.SpacingSpanner.strict-note-spacing = ##t
> }
>   }
> }
>

How about this?

It's not a deep solution which adjusts spacing; rather, it adjusts the
X-offset of NoteColumns based on stem position.

The example shows a corrected group surrounded by default to
illustrate usage of the music function I've wrapped the correction
into.

Best,
David



\version "2.19.56"

%% Grob should be a NoteColumn object
#(define (space-by-stems grob)
   (let* ((stem (ly:grob-object grob 'stem))
  (beam (ly:grob-object stem 'beam))
  (stems (ly:grob-array->list (ly:grob-object beam 'stems)))
  (note-columns (map (lambda (s) (ly:grob-parent s X)) stems))
  ;; which NoteColumn am I?
  (me-nc (memq grob note-columns))
  (nth (- (length note-columns) (length me-nc)))
  (orig-stem-pos (map (lambda (s nc)
(ly:grob-relative-coordinate s nc X))
   stems note-columns)))
 (* -1 (list-ref orig-stem-pos nth

spaceStemsEvenly =
#(define-music-function (mus) (ly:music?)
   (let ((done #f))
 #{
   \override NoteColumn.X-offset = #space-by-stems
   #mus
   \revert NoteColumn.X-offset
 #}))

%% EXAMPLE %

tsd = { \change Staff = treble \stemDown }
bsu = { \change Staff = bass \stemUp }

treble = {
  \clef treble
  aes''32[ \bsu c' \tsd d''' \bsu d' \tsd d''' \bsu ees']
}

bass = {
  \clef bass
  s8.
}

\score {

  \new PianoStaff
  <<
\new Staff = "treble" { \treble \spaceStemsEvenly \treble \treble }
\new Staff = "bass" { \bass \bass \bass }
  >>

  \layout {
\context {
  \Score
  proportionalNotationDuration = #(ly:make-moment 1/32)
  \override SpacingSpanner.uniform-stretching = ##t
  \override Score.SpacingSpanner.strict-note-spacing = ##t
}
  }
}

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


Re: Attach point-and-click link to custom stencil

2017-03-13 Thread David Kastrup
Urs Liska  writes:

> Am 13.03.2017 um 13:16 schrieb David Kastrup:
>> Urs Liska  writes:
>>
>>> Am 13.03.2017 um 13:07 schrieb David Kastrup:
 Urs Liska  writes:

>>> I'm calling the function with \override Tie.stencil = #arced-curve-stencil
>>>
>>> which is defined as
>>>
>>> #(define (arced-curve-stencil grob)
>>>...
>>>
>>> and returns the result of a (ly:stencil-translate (ly:make-stencil call.
>> The point-and-click area is rectangular and taken from the stencil's
>> position and dimensions, so there is suspicion that they aren't what you
>> want them to be.
>
> OK. That means it could either be where the original grob would have
> been printed or maybe originating before the stencil-translate is
> applied. I'll investigate.

No, stencil-translate obviously should shift the area.  The question is
what dimensions you pass to the make-stencil call.

 With stencils, you should not need to do anything.  When calling
 ly:engraver-make-grob yourself, be sure to specify a good cause.
 Then the originating event's point-and-click info will be
 automatically attached.

>>> As usual the information about ly:engraver-make-grob on the
>>> Scheme-functions page doesn't help me very much. All I would be able
>>> to figure out is the cause, but what kind of "engraver instance"
>>> should I be referring to here?

>> The one passed to the engraver callback?
>
> You mean what I refer to as "grob" in my example?

No.  You don't call ly:engraver-make-grob from within a grob's stencil
callback.  You call it from within the callbacks of an engraver
instance, those which are defined with make-engraver .

-- 
David Kastrup

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


Re: Composing music functions

2017-03-13 Thread Simon Albrecht

Am 12.03.2017 um 22:53 schrieb caag...@gmail.com:
You can't call music functions directly from Scheme code. You have to 
either wrap the call in #{ #} or use `ly:music-function-extract` to 
extract the procedure itself and call that.


In recent development versions, that’s obsolete. E.g.

{ #(bar "|.") }

and

{ ##{ \bar "|." #} }

are now completely equivalent.

Best, Simon

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


Re: Attach point-and-click link to custom stencil

2017-03-13 Thread Urs Liska


Am 13.03.2017 um 13:16 schrieb David Kastrup:
> Urs Liska  writes:
>
>> Am 13.03.2017 um 13:07 schrieb David Kastrup:
>>> Urs Liska  writes:
>>>
 when writing a callback function to override a stencil, how can I attach
 the original point-and-click link to the resulting graphics?
>>> Isn't it attached automatically?  I don't think the usual stencil
>>> callbacks bother with point-and-click info themselves.
>> It seems not, they are not clickable.
>> I'm calling the function with \override Tie.stencil = #arced-curve-stencil
>>
>> which is defined as
>>
>> #(define (arced-curve-stencil grob)
>>...
>>
>> and returns the result of a (ly:stencil-translate (ly:make-stencil call.
> The point-and-click area is rectangular and taken from the stencil's
> position and dimensions, so there is suspicion that they aren't what you
> want them to be.

OK. That means it could either be where the original grob would have
been printed or maybe originating before the stencil-translate is
applied. I'll investigate.

>
 Is that even possible, as I'm not actually dealing with the grob
 anymore (isn't it)?

 I know how to get the location from inside the ties and slurs I'm
 dealing with, but I don't know how I can get this information back
 into the resulting element in the PDF.
>>> With stencils, you should not need to do anything.  When calling
>>> ly:engraver-make-grob yourself, be sure to specify a good cause.  Then
>>> the originating event's point-and-click info will be automatically
>>> attached.
>> As usual the information about ly:engraver-make-grob on the
>> Scheme-functions page doesn't help me very much. All I would be able to
>> figure out is the cause, but what kind of "engraver instance" should I
>> be referring to here?
> The one passed to the engraver callback?

You mean what I refer to as "grob" in my example?

-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Re: Is it possible to compute a \lyricsto before running further processing?

2017-03-13 Thread Simon Albrecht

Am 13.03.2017 um 01:40 schrieb caag...@gmail.com:
There are several types of postprocessing that break \lyricsto's 
auto-alignment*. Is there some way to tell the `\lyricsto` to align 
its syllables to the correct position so further processing won't 
affect it? (I'm guessing no, because if it was possible, it'd be the 
default.)


* A few examples are `\set Score.skipTypesetting` which breaks with 
ties, and `\articulate` which breaks slurs, as well as introducing 
rests into the lyrics themselves if you apply it to the entire tree.


It seems that your best bet would be to go for manual syllable durations.
Best, Simon

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


Re: Attach point-and-click link to custom stencil

2017-03-13 Thread David Kastrup
Urs Liska  writes:

> Am 13.03.2017 um 13:07 schrieb David Kastrup:
>> Urs Liska  writes:
>>
>>> when writing a callback function to override a stencil, how can I attach
>>> the original point-and-click link to the resulting graphics?
>> Isn't it attached automatically?  I don't think the usual stencil
>> callbacks bother with point-and-click info themselves.
>
> It seems not, they are not clickable.
> I'm calling the function with \override Tie.stencil = #arced-curve-stencil
>
> which is defined as
>
> #(define (arced-curve-stencil grob)
>...
>
> and returns the result of a (ly:stencil-translate (ly:make-stencil call.

The point-and-click area is rectangular and taken from the stencil's
position and dimensions, so there is suspicion that they aren't what you
want them to be.

>>> Is that even possible, as I'm not actually dealing with the grob
>>> anymore (isn't it)?
>>>
>>> I know how to get the location from inside the ties and slurs I'm
>>> dealing with, but I don't know how I can get this information back
>>> into the resulting element in the PDF.
>> With stencils, you should not need to do anything.  When calling
>> ly:engraver-make-grob yourself, be sure to specify a good cause.  Then
>> the originating event's point-and-click info will be automatically
>> attached.
>
> As usual the information about ly:engraver-make-grob on the
> Scheme-functions page doesn't help me very much. All I would be able to
> figure out is the cause, but what kind of "engraver instance" should I
> be referring to here?

The one passed to the engraver callback?

-- 
David Kastrup

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


Re: Attach point-and-click link to custom stencil

2017-03-13 Thread Urs Liska


Am 13.03.2017 um 13:07 schrieb David Kastrup:
> Urs Liska  writes:
>
>> when writing a callback function to override a stencil, how can I attach
>> the original point-and-click link to the resulting graphics?
> Isn't it attached automatically?  I don't think the usual stencil
> callbacks bother with point-and-click info themselves.

It seems not, they are not clickable.
I'm calling the function with \override Tie.stencil = #arced-curve-stencil

which is defined as

#(define (arced-curve-stencil grob)
   ...

and returns the result of a (ly:stencil-translate (ly:make-stencil call.

>
>> Is that even possible, as I'm not actually dealing with the grob
>> anymore (isn't it)?
>>
>> I know how to get the location from inside the ties and slurs I'm
>> dealing with, but I don't know how I can get this information back
>> into the resulting element in the PDF.
> With stencils, you should not need to do anything.  When calling
> ly:engraver-make-grob yourself, be sure to specify a good cause.  Then
> the originating event's point-and-click info will be automatically
> attached.

As usual the information about ly:engraver-make-grob on the
Scheme-functions page doesn't help me very much. All I would be able to
figure out is the cause, but what kind of "engraver instance" should I
be referring to here?

-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Re: Attach point-and-click link to custom stencil

2017-03-13 Thread David Kastrup
Urs Liska  writes:

> when writing a callback function to override a stencil, how can I attach
> the original point-and-click link to the resulting graphics?

Isn't it attached automatically?  I don't think the usual stencil
callbacks bother with point-and-click info themselves.

> Is that even possible, as I'm not actually dealing with the grob
> anymore (isn't it)?
>
> I know how to get the location from inside the ties and slurs I'm
> dealing with, but I don't know how I can get this information back
> into the resulting element in the PDF.

With stencils, you should not need to do anything.  When calling
ly:engraver-make-grob yourself, be sure to specify a good cause.  Then
the originating event's point-and-click info will be automatically
attached.

-- 
David Kastrup

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


Attach point-and-click link to custom stencil

2017-03-13 Thread Urs Liska
Hi all,

when writing a callback function to override a stencil, how can I attach
the original point-and-click link to the resulting graphics? Is that
even possible, as I'm not actually dealing with the grob anymore (isn't it)?

I know how to get the location from inside the ties and slurs I'm
dealing with, but I don't know how I can get this information back into
the resulting element in the PDF.

Thanks for any pointers
Urs


-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Cross staff stem spacing with proportional notation

2017-03-13 Thread Andrew Bernard
This issue has dogged me for a long time, and searching the archives does
not produce a reliable answer as far as I can see.

When using proportional notation with cross staff beamed groups, it looks
vastly better if the stems are evenly spaced, but proportional notation
messes this up, and only in the cross staff situation.

I have tried using \newSpacing section in my scores and I am so deep in
confusion perhaps that I cannot find a way to make this work, while
preserving the proportional notation for the score overall.

There is a thread concerning this matter here, with no resolution, but
pertinent:

https://lists.gnu.org/archive/html/lilypond-user/2014-07/msg00303.html

It would be great if this could be made to work. What lilypond incantations
do I need, or is it a current limitation? Could we have some sort of
\spaceStemsEvenly command?

Andrew

== snip

\version "2.19.56"

tsd = { \change Staff = treble \stemDown }
bsu = { \change Staff = bass \stemUp }

treble = {
  \clef treble
  aes''32[ \bsu c' \tsd d''' \bsu d' \tsd d''' \bsu ees']
}

bass = {
  \clef bass
  s4
}

\score {

  \new PianoStaff
  <<
\new Staff = "treble" { \treble }
\new Staff = "bass" { \bass }
  >>

  \layout {
  }
}

\score {

  \new PianoStaff
  <<
\new Staff = "treble" { \treble }
\new Staff = "bass" { \bass }
  >>

  \layout {
\context {
  \Score
  proportionalNotationDuration = #(ly:make-moment 1/32)
  \override SpacingSpanner.uniform-stretching = ##t
  \override Score.SpacingSpanner.strict-note-spacing = ##t
}
  }
}

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