Trouble Selecting Correct Font-series

2015-08-25 Thread Ben Strecker
I'm using Lilypond version 2.19.25 on a mac running Yosemite, and I'm trying to
use the font family Iowan Old Style.  In addition to the regular styles (roman, 
bold, italic, bolditalic, etc.) this family comes with Black and BlackItalic 
styles.  in my small example below, the markup gets engraved using Iowan Old 
Style Black instead of Iowan Old Style Roman, and I can't seem 
to find a way to fix it.

\paper {
  fonts = #
  (make-pango-font-tree
   Iowan Old Style
   Optima
   Monaco
   (/ (* staff-height pt) 2.5))
}

\relative c' {
  c^\markup{Test} d e f g a b c
}

My suspicion is that it may have something to do with the organization of the
.ttc file where the font resides, but I don't know enough on the subject to 
fix it.


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


Re: vertical spacing of rests

2015-08-25 Thread Michael Gerdau
 Why would you want to use odd values here?

I was just playing with values. If only even numbers are supposed to
be used since they are the only sensible choices, then why not have
all values doubled internally anyway ?

  W/o a documentation I can't judge whether that's intended, but it
  is at least unexpected.
 
 What else would you expect when shifting a rest half a staff space?

First and foremost I would expect symmetric behaviour for positive and
negative values w/r to up/down placement.

That is not (always) the case as can be seen most prominently with
values 3 and -3 (3 seems to be effectively identical to 2). The same
goes for 5 and -5 (5 equals 4). suspect there is some rounding and
truncating involved.

Overall it seems displacement by half a staff space works for negative
values continously while for positive values it seems to jump. Or more
precisely for positive odd values greater 1.

I also would not have expected the additional lines drawn of which I
now expect they are drawn always but only become visible for odd
displacements.


As I wrote in my initial post:
I don't know whether that behaviour is not exactly as intended.

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

signature.asc
Description: This is a digitally signed message part.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: OT: Beauty of programming languages

2015-08-25 Thread Werner LEMBERG
 In a review on languages in the Communications of the ACM a long
 time ago, each language was described by a caption and a short
 paragraph.  Sample captions:

   APL : I can read hieroglyphs too.
   Prolog : If Prolog is the answer, then what was the question?

LOL!  Can you give a reference to this review?


Werner

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


Re-use \chordmode for strumming patterns

2015-08-25 Thread Joel Ebel
Hi. I'm curious if there's a way to re-use a variable containing
chords entered in \chordmode to create strumming patterns with
Pitch_squash_engraver and \improvisationOn. I like only having to
enter the chords once, so if I change something, I only need to do it
in one place, and I also would like the strumming patterns in the midi
output. But the issue is that handing multiple notes to the
Pitch_squash_engraver gives it a double note-head. Is there a way to
maybe extract the root of the chord, or get a single head from the
Pitch_squash_engraver?

Thanks!
Joel

Example:

\version 2.19.25

chordNames = \chordmode {
  c4 c8 c~ c c c c
  g4 g8 g~ g g g g

}


  \new ChordNames {
\set chordChanges = ##t
\chordNames }
  \new Voice \with {
\consists Pitch_squash_engraver
  } { \improvisationOn
  % Would like some option here like:
  % \chordRoot
  \chordNames
  }


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


Re: vertical spacing of rests

2015-08-25 Thread Trevor Daniels

Michael Gerdau wrote Tuesday, August 25, 2015 3:27 PM


  \override Rest.voiced-position = 0
 
 Yes, first available in 2.19.15, courtesy of Keith O'Hara.
 Yet to be documented in the NR, I believe.
 
 I have used Peter's example code and tried various parameter to
 voiced-position (see attached). It is my impression that the odd
 parameters show an...odd (pun intended) behaviour:
 - some odd parameter show additional horizontal lines
 - the vertical spacing is not symmetric up/down for odd numbers
 
 W/o a documentation I can't judge whether that's intended, but it
 is at least unexpected.

Yes, odd numbers appear strange with a standard staff.
But then, so does a'2\rest.

There was a long discussion about this, see 
https://code.google.com/p/lilypond/issues/detail?id=2109

The thing to remember is that not all music is set on a 5-line
staff with equal spacing.  So the odd numbers may have a use
after all.

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


Re: Re-use \chordmode for strumming patterns

2015-08-25 Thread David Kastrup
Joel Ebel jbe...@mybox.org writes:

 Hi. I'm curious if there's a way to re-use a variable containing
 chords entered in \chordmode to create strumming patterns with
 Pitch_squash_engraver and \improvisationOn. I like only having to
 enter the chords once, so if I change something, I only need to do it
 in one place, and I also would like the strumming patterns in the midi
 output. But the issue is that handing multiple notes to the
 Pitch_squash_engraver gives it a double note-head. Is there a way to
 maybe extract the root of the chord, or get a single head from the
 Pitch_squash_engraver?

 Thanks!
 Joel

 Example:

 \version 2.19.25

 chordNames = \chordmode {
   c4 c8 c~ c c c c
   g4 g8 g~ g g g g

 }

 
   \new ChordNames {
 \set chordChanges = ##t
 \chordNames }
   \new Voice \with {
 \consists Pitch_squash_engraver
   } { \improvisationOn
   % Would like some option here like:
   % \chordRoot
   \chordNames
   }


Try

chordRoot =
#(define-music-function (m) (ly:music?) (event-chord-reduce m))

I don't like the name.  Once we come up with a nice bike shed color, we
probably should provide that function in LilyPond proper and document it
along with Pitch_squash_engraver.

-- 
David Kastrup

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


Re: Equal spacing of notes in a bar

2015-08-25 Thread William Marchant

Very many thanks, Simon
Bill

On 15-08-25 08:18 AM, Simon Albrecht wrote:

Am 25.08.2015 um 02:51 schrieb William Marchant:
Thanks to Simon and Abraham.  I found the quoted reference on my own, 
but I need something which can be applied to  several single bars 
throughout the music.  It is the lyrics which are distorting just a 
few bars.  I had hoped there would be a snippet I am unable to find.  
Is there one?  TIA.

Bill
There are several issues in our tracker concerned with the 
shortcomings of Lily’s current behaviour, since indeed note spacing 
should only in extreme cases by distorted by lyrics. What can be done?

– Choose a narrower font for lyrics.
– Play with LyricText.self-alignment-X, e.g. (gross exaggeration :-))
%%%
\version 2.18.2

selfAl = #(define-music-function (parser location num) (number?)
#{ \once \override LyricText . self-alignment-X  = $num #})

mus = { g'8 f'8 e'8 }
text = \lyricmode { \selfAl 1.2 straight straight \selfAl #-1 straight }

\score {
  
\mus
\addlyrics \text
  
}
%

– choose a wider horizontal spacing in general, either through the 
methods in 
http://lilypond.org/doc/v2.18/Documentation/notation/changing-horizontal-spacing

– or by ‘brute force’: something like \paper { system-count = 10 }.

HTH, Simon



On 15-08-24 03:56 PM, Simon Albrecht wrote:

Hi Bill,

‘proportional notation’ is the magic word: 
http://lilypond.org/doc/v2.18/Documentation/notation/proportional-notation.


HTH, Simon

Am 24.08.2015 um 20:54 schrieb William Marchant:
I have looked though the documentation without finding what I need. 
The attached code gives me a triplet whose notes are spaced 
according to the words.  I would like to equalize  the spacing 
between the notes.  Is there a snippet I have missed, or some 
technique that will provide this?

Bill

\version 2.18.2
global = {
  \language english
  \key bf \major
  \time 3/4
}
melody = \relative c' {
\tuplet 3/2 { bf8 c d }  c2 |
}
  VerseOne = \lyricmode {
  Give me a big
  }
 \score {
  \new ChoirStaff 
\new Staff 
  \new Voice = Song {
\global
\melody
  }
  \new Lyrics \lyricsto Song {
\VerseOne
  }

  
  \layout {
\context {
  \Score
}
  }
}


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







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







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


Re: vertical spacing of rests

2015-08-25 Thread Phil Holmes
- Original Message - 
From: Michael Gerdau m...@qata.de

To: lilypond-user@gnu.org
Sent: Tuesday, August 25, 2015 3:27 PM
Subject: Re: vertical spacing of rests



 \override Rest.voiced-position = 0

Yes, first available in 2.19.15, courtesy of Keith O'Hara.
Yet to be documented in the NR, I believe.


I have used Peter's example code and tried various parameter to
voiced-position (see attached). It is my impression that the odd
parameters show an...odd (pun intended) behaviour:
- some odd parameter show additional horizontal lines
- the vertical spacing is not symmetric up/down for odd numbers

W/o a documentation I can't judge whether that's intended, but it
is at least unexpected.

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


I would expect it.  If you look at the list of glyphs in the NR, you'll see 
that the rests include the ledger line.


--
Phil Holmes 



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


Re: vertical spacing of rests

2015-08-25 Thread David Kastrup
Michael Gerdau m...@qata.de writes:

  \override Rest.voiced-position = 0
 
 Yes, first available in 2.19.15, courtesy of Keith O'Hara.
 Yet to be documented in the NR, I believe.

 I have used Peter's example code and tried various parameter to
 voiced-position (see attached). It is my impression that the odd
 parameters show an...odd (pun intended) behaviour:

Why would you want to use odd values here?

 W/o a documentation I can't judge whether that's intended, but it
 is at least unexpected.

What else would you expect when shifting a rest half a staff space?

-- 
David Kastrup

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


Re: Equal spacing of notes in a bar

2015-08-25 Thread William Marchant

Thanks David.  That looks like a solution for me.
Bill

On 15-08-24 10:13 PM, David Nalesnik wrote:



On Mon, Aug 24, 2015 at 7:51 PM, William Marchant 
wmarch...@eastlink.ca mailto:wmarch...@eastlink.ca wrote:


Thanks to Simon and Abraham.  I found the quoted reference on my
own, but I need something which can be applied to  several single
bars throughout the music.  It is the lyrics which are distorting
just a few bars.  I had hoped there would be a snippet I am unable
to find.  Is there one?  TIA.
Bill


Maybe \newSpacingSection would serve?

http://lilypond.org/doc/v2.18/Documentation/notation/new-spacing-area

HTH,
David



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


Repeats in \parallelMusic

2015-08-25 Thread David Sumbler
Is there a way of using \repeat volta 2 and similar when using
the \parallelMusic command?  The following does not work:


\version 2.18.0

\parallelMusic #'(Vone Vtwo) {
%bar 1
\repeat volta 2 { d''1 |
\repeat volta 2 { f'1 |
%bar 2
c''1 } |
e'1 } |
}

\score { 
\new Staff { \Vone }
\new Staff { \Vtwo }
 }


I have tried repositioning the braces but none of my experiments so far
have produced the desired result.

David


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


Re: Re-use \chordmode for strumming patterns

2015-08-25 Thread Joel Ebel
 chordRoot =
 #(define-music-function (m) (ly:music?) (event-chord-reduce m))
That works perfectly!


 I don't like the name.  Once we come up with a nice bike shed color, we
 probably should provide that function in LilyPond proper and document it
 along with Pitch_squash_engraver.

I agree that this would be a handy function to exist and have
documented in section 1.1.4 of the notation reference, though I don't
have a better idea for the name. Now that I know about
event-chord-reduce, I see that this has been discussed before:
https://code.google.com/p/lilypond/issues/detail?id=185

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


Re: vertical spacing of rests

2015-08-25 Thread Trevor Daniels

Peter Selinger wrote Tuesday, August 25, 2015 2:28 PM

 I think using
 
 \override Rest.voiced-position = 0
 
 in the voice in which you have rests might do the trick for you.
 
 Trevor
 
 This shows that I should read my emails in the correct order. Thanks
 for the tip about voiced-position. This seems to be a new feature in
 2.19? 

Yes, first available in 2.19.15, courtesy of Keith O'Hara.
Yet to be documented in the NR, I believe.

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


Re: Repeats in \parallelMusic

2015-08-25 Thread David Kastrup
David Sumbler da...@aeolia.co.uk writes:

 Is there a way of using \repeat volta 2 and similar when using
 the \parallelMusic command?  The following does not work:


 \version 2.18.0

 \parallelMusic #'(Vone Vtwo) {
 %bar 1
 \repeat volta 2 { d''1 |
 \repeat volta 2 { f'1 |
 %bar 2
 c''1 } |
 e'1 } |
 }

 \score { 
 \new Staff { \Vone }
 \new Staff { \Vtwo }
  }


 I have tried repositioning the braces but none of my experiments so far
 have produced the desired result.

It's simpler than you think it is.  You only need the structure to
descend into once.

\version 2.18.0

\parallelMusic #'(Vone Vtwo) {
%bar 1
\repeat volta 2 { d''1 |
   f'1 |
%bar 2
  c''1 |
  e'1  |
} g''1 | c''1 |
}

\score { 
\new Staff { \Vone }
\new Staff { \Vtwo }
 }


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


Re: OT: Beauty of programming languages (was: Way to flatten nested \include's?)

2015-08-25 Thread Jacques Menu
Hello Michæl,

In the APL course I took years ago, the teacher said: « Exercice for the next 
two weeks : find out what this sample program (25 symbols altogether) does.
A guy says two weeks later: « It does this and that… but it took me two and a 
half hours to find out! »
And teacher answers: « Well, it took me two hours to write! »

In a review on languages in the Communications of the ACM a long time ago, each 
language was described by a caption and a short paragraph. Sample captions:
APL : I can read hieroglyphs too.
Prolog : If Prolog is the answer, then what was the question? (Don’t 
misunderstand me though, I loved this language…).

JM

 Le 25 août 2015 à 01:37, Michael Gerdau m...@qata.de a écrit :
 
 While guile is aimed at being an extension language, don't forget that
 Scheme was taught at MIT for many, many years as the finest language to
 give students a deep insight into computing and computer science (refer
 SICP). [Sadly, they now teach Python instead. Real world practicality
 defeated beauty, insight, and elegance. :-(]
 
 Well, beauty is in the eye of the beholder..
 
 Anybody remembering APL ?
 
 THAT is a beautiful language and most likely totally unuseable for the
 vast majority of today's aspiring programmers :)
 
 Kind regards,
 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


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


Re: Make a new staff occupy the same vertical space as a previous staff

2015-08-25 Thread Joel Ebel
On Tue, Aug 25, 2015 at 9:53 PM, David Kastrup d...@gnu.org wrote:
 The following appears to work here.  Of course it begs the question
 whether we should provide a context definition like that, possibly with
 a better name, in LilyPond by default.

Excellent! That does work, which is good because I discovered that if
I add another staff, then the second half of the line wound up below
that other staff, rather than adjacent to the chordnames, example
below. I would certainly be in favor of a re-usable line context.

\version 2.19.25

  \new ChordNames {
 \chordmode { c1 }
   \new TabStaff \relative c {
   c4 e g c
   }
 \break
 \chordmode { c1 }
   \new RhythmicStaff {
   c4 c8 c~ c c c
   }

  }
  \new Staff \relative c' {
c1 g'
  }


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


Re: Way to flatten nested \include's?

2015-08-25 Thread Johan Vromans
On Tue, 25 Aug 2015 09:23:12 +1000
Andrew Bernard andrew.bern...@gmail.com wrote:

 Unless you enjoy writing Scheme as much as I do!

I programmed quite a lot in lisp and APL, but never quite liked it.

From a practical point of view: every linux system comes with Perl and
Python. If you're lucky you can add Scheme yourself.

-- Johan

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


Re: Way to flatten nested \include's?

2015-08-25 Thread Andrew Bernard

That was the general idea. I posted some instructions about how to add the 
utility to a lilypond installation for people but in a new thread. It was 
actually one of the main reasons I did it in Scheme - there would be a 
guaranteed known execution environment installed if the user is using lilypond 
to begin with.

A






On 25/08/2015 17:49, David Kastrup 
lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of 
d...@gnu.org wrote:

If all else fails, the lilypond binary itself can serve as a GUILE
interpreter.


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


Re: Errors when using TabStaff with stringTunings

2015-08-25 Thread David Kastrup
Blöchl Bernhard b_120902342...@telecolumbus.net writes:

 I sent that post on Monday August 24th at about 17:00 UTC. It never
 appeared on the list for reasons I do not know. For another trial I
 send that mail again.


 I cannot tell you the reason
   #'( -5 -10 -15 -20)
 does not work. But I can tell you how I do it:


 %~~~
 \version 2.18.0

 five-bass = \stringTuning  b,, e, a, d g 

 yourmusic = {
  \key g \minor
  R1*12
  r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
   c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
  r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 r
   d''\1 d''\1 d''\1 r d''\1 d''\1 d''\1
  r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
   c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
  r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 d''\1
   d''\1 d''\1 d''\1 d''\1 d''\1 d''\1 d''\1
 }


 \score {
  \new StaffGroup 
  \new TabStaff 
  %\set TabStaff.stringTunings = #'( -5 -10 -15 -20)
  \set TabStaff.stringTunings = #five-bass
  {
  \yourmusic
  }
  
  
  \layout{}
 }

   %

 That even works with \version 2.12.3.

Uh, it even works with \version 2.7.38.  You just have to use a
version of LilyPond that is at least at version 2.15.16 (for addition of
the \stringTuning command with the somewhat undescriptive but colorful
commit message
commit 3170fd65067a96ea861c173c81fce5f0e127762e
Author: David Kastrup d...@gnu.org
Date:   Sun Oct 23 15:29:45 2011 +0200

Get rid of most of the insane string-tunings API
) and at least version 2.15.43 to allow for assigning a value to
five-bass with a normal LilyPond assignment.

You seem to misunderstand what \version does.  It is important for
convert-ly, and LilyPond will complain whenever the \version header
indicates a version newer than itself (or, for some strange reason,
older than 2.7.38).  But apart from this warning, LilyPond does not
change behavior.  It's still the same old 2.18.2 or whatever else it has
been compiled as.

-- 
David Kastrup

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


Re: Errors when using TabStaff with stringTunings

2015-08-25 Thread David Kastrup
Blöchl Bernhard b_120902342...@telecolumbus.net writes:

 with
 That even works with \version 2.12.3.
 I just reference to the original code under question. It obviously
 used lilypond
 \version 2.12.3

But it's a bad idea to tack on a version header referring to a version
with which the file won't work.

For one thing, if people with an older version of LilyPond try running
the code, they'll get mysterious error messages without being advised
about the version mismatch.

For another, when convert-ly is being run on the file, it might make a
hash of it because it assumes a much older syntax than there actually is
and upgrades it.

So there is no point in leaving a \version 2.12.3 at the top of the
file while at the same time updating its syntax to that of 2.18.2 (or in
this case probably 2.16.0 if nothing else is in there requiring a newer
version).

-- 
David Kastrup

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


Re: Errors when using TabStaff with stringTunings

2015-08-25 Thread Blöchl Bernhard

with
That even works with \version 2.12.3.
I just reference to the original code under question. It obviously used 
lilypond

\version 2.12.3

Regards


Am 25.08.2015 09:13, schrieb David Kastrup:

Blöchl Bernhard b_120902342...@telecolumbus.net writes:


I sent that post on Monday August 24th at about 17:00 UTC. It never
appeared on the list for reasons I do not know. For another trial I
send that mail again.


I cannot tell you the reason
  #'( -5 -10 -15 -20)
does not work. But I can tell you how I do it:


%~~~
\version 2.18.0

five-bass = \stringTuning  b,, e, a, d g 

yourmusic = {
 \key g \minor
 R1*12
 r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
  c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
 r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 r
  d''\1 d''\1 d''\1 r d''\1 d''\1 d''\1
 r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
  c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
 r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 d''\1
  d''\1 d''\1 d''\1 d''\1 d''\1 d''\1 d''\1
}


\score {
 \new StaffGroup 
 \new TabStaff 
 %\set TabStaff.stringTunings = #'( -5 -10 -15 -20)
 \set TabStaff.stringTunings = #five-bass
 {
 \yourmusic
 }
 
 
 \layout{}
}

  %

That even works with \version 2.12.3.


Uh, it even works with \version 2.7.38.  You just have to use a
version of LilyPond that is at least at version 2.15.16 (for addition 
of

the \stringTuning command with the somewhat undescriptive but colorful
commit message
commit 3170fd65067a96ea861c173c81fce5f0e127762e
Author: David Kastrup d...@gnu.org
Date:   Sun Oct 23 15:29:45 2011 +0200

Get rid of most of the insane string-tunings API
) and at least version 2.15.43 to allow for assigning a value to
five-bass with a normal LilyPond assignment.

You seem to misunderstand what \version does.  It is important for
convert-ly, and LilyPond will complain whenever the \version header
indicates a version newer than itself (or, for some strange reason,
older than 2.7.38).  But apart from this warning, LilyPond does not
change behavior.  It's still the same old 2.18.2 or whatever else it 
has

been compiled as.


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


Re: OT: Beauty of programming languages

2015-08-25 Thread Johan Vromans
On Tue, 25 Aug 2015 15:29:56 +1000
Andrew Bernard andrew.bern...@gmail.com wrote:

 quicksort=: (($:@(#[), (=#[), $:@(#[)) ({~ ?@#)) ^: (1#)

It's hard to believe that people only complained about Perl being line
noise...

-- Johan

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


Re: Way to flatten nested \include's?

2015-08-25 Thread David Kastrup
Johan Vromans jvrom...@squirrel.nl writes:

 On Tue, 25 Aug 2015 09:23:12 +1000
 Andrew Bernard andrew.bern...@gmail.com wrote:

 Unless you enjoy writing Scheme as much as I do!

 I programmed quite a lot in lisp and APL, but never quite liked it.

 From a practical point of view: every linux system comes with Perl and
 Python. If you're lucky you can add Scheme yourself.

If all else fails, the lilypond binary itself can serve as a GUILE
interpreter.

-- 
David Kastrup

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


Re: Way to flatten nested \include's?

2015-08-25 Thread David Kastrup
Andrew Bernard andrew.bern...@gmail.com writes:

 lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of 
 d...@gnu.org wrote:

If all else fails, the lilypond binary itself can serve as a GUILE
interpreter.

 That was the general idea. I posted some instructions about how to add
 the utility to a lilypond installation for people but in a new
 thread. It was actually one of the main reasons I did it in Scheme -
 there would be a guaranteed known execution environment installed if
 the user is using lilypond to begin with.

It's not just that.  It's also that the lilypond executable is pretty
sure to know the search paths of LilyPond.  You cannot really get them
reliably without calling LilyPond, and if you do that anyway, why not
use its interpreter?

-- 
David Kastrup

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


Re: Errors when using TabStaff with stringTunings

2015-08-25 Thread Blöchl Bernhard
I sent that post on Monday August 24th at about 17:00 UTC. It never 
appeared on the list for reasons I do not know. For another trial I send 
that mail again.



I cannot tell you the reason
  #'( -5 -10 -15 -20)
does not work. But I can tell you how I do it:


%~~~
\version 2.18.0

five-bass = \stringTuning  b,, e, a, d g 

yourmusic = {
 \key g \minor
 R1*12
 r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
  c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
 r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 r
  d''\1 d''\1 d''\1 r d''\1 d''\1 d''\1
 r8 bes'8\1 bes'\1 bes'\1 r8 a'\1 a'\1 a'\1 r
  c''\1 c''\1 c''\1 r bes'\1 bes'\1 bes'\1
 r bes'\1 bes'\1 bes'\1 r a'\1 a'\1 a'\1 d''\1
  d''\1 d''\1 d''\1 d''\1 d''\1 d''\1 d''\1
}


\score {
 \new StaffGroup 
 \new TabStaff 
 %\set TabStaff.stringTunings = #'( -5 -10 -15 -20)
 \set TabStaff.stringTunings = #five-bass
 {
 \yourmusic
 }
 
 
 \layout{}
}

  %

That even works with \version 2.12.3.
If you really have a 6 string bass extend the string list. I think to
six-bass = \stringTuning b,, e, a, d g c'



Am 24.08.2015 22:12, schrieb Kevin Nowaczyk:

Thanks for the help everyone,

I would up changing the stringTungings line to:
\set Staff.stringTunings = \stringTuning e,, a,, d, g,
And everything works fine. However, I also tried the notaion:
\set Staff.stringTunings = #bass-tuning
but that didn't work. I'll have to figure that out at a later time.

All-in-all, I installed mediawiki with the Score plugin to show off a
few guitar tabs I transcribed a few years ago. If you're curious, the
first one (that now works) is here:
http://wiki.beakerboy.com/index.php/Steven_Smith

Thanks Again,
Kevin Nowaczyk

On Mon, 8/24/15, David Kastrup d...@gnu.org wrote:

 Subject: Re: Errors when using TabStaff with stringTunings
 To: Kevin Nowaczyk beakerbo...@yahoo.com
 Cc: lilypond-user@gnu.org
 Date: Monday, August 24, 2015, 12:36 PM

 Kevin Nowaczyk beakerbo...@yahoo.com
 writes:

  I have a lilypond file
 which used to parse perfectly well several
  years ago.

 Run convert-ly -ed on the file.  At least on
 your example file, it
 upgraded the version
 successfully.  The resulting code is rather ugly
 but works.  You might want to look up the
 \stringTuning function in the
 notation
 manual in order to do this in a prettier way.

 --
 David
 Kastrup


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


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


Re: Way to flatten nested \include's?

2015-08-25 Thread Andrew Bernard
I am not sure I understand. Is having a symlink:

flatten-ly - /home/username/bin/lilypond-wrapper.guile

not correct? The convert-ly utility is set up as:

convert-ly - /home/username/bin/lilypond-wrapper.python


Andrew


On 25/08/2015 18:11, David Kastrup d...@gnu.org wrote:


It's not just that.  It's also that the lilypond executable is pretty
sure to know the search paths of LilyPond.  You cannot really get them
reliably without calling LilyPond, and if you do that anyway, why not
use its interpreter?


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


Re: Way to flatten nested \include's?

2015-08-25 Thread Marc Hohl

Am 25.08.2015 um 10:11 schrieb David Kastrup:

Andrew Bernard andrew.bern...@gmail.com writes:


lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of 
d...@gnu.org wrote:


If all else fails, the lilypond binary itself can serve as a GUILE
interpreter.


That was the general idea. I posted some instructions about how to add
the utility to a lilypond installation for people but in a new
thread. It was actually one of the main reasons I did it in Scheme -
there would be a guaranteed known execution environment installed if
the user is using lilypond to begin with.


It's not just that.  It's also that the lilypond executable is pretty
sure to know the search paths of LilyPond.  You cannot really get them
reliably without calling LilyPond, and if you do that anyway, why not
use its interpreter?


This would be a great idea!

The flatten-ly procedure would come in handy to solve the problem of
lilypond-book and lyluatex that changes in nested include files do not
cause the lilypond sourecs to be rendered again.

If the md5 sum is calculated of a flattened ly file instead of the
original ly file, *every* change is visible.

So +1 for making flatten-ly a lilypond executable!


Marc

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


Re: Way to flatten nested \include's?

2015-08-25 Thread Marc Hohl

Am 25.08.2015 um 11:12 schrieb Andrew Bernard:

I am not sure I understand. Is having a symlink:

flatten-ly - /home/username/bin/lilypond-wrapper.guile


not correct? The convert-ly utility is set up as:

convert-ly - /home/username/bin/lilypond-wrapper.python


I think that David meant that your script should be callable by lilypond
itself, something like

lilypond flatten-ly.ly

This ensures that all include paths are resolved automatically.
A shell script does not know about lilypond's way to find include files ;-)

Marc




Andrew


On 25/08/2015 18:11, David Kastrup d...@gnu.org mailto:d...@gnu.org
wrote:


It's not just that.  It's also that the lilypond executable is pretty
sure to know the search paths of LilyPond.  You cannot really get them
reliably without calling LilyPond, and if you do that anyway, why not
use its interpreter?



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




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


Re: vertical spacing of rests

2015-08-25 Thread 70147persson

Den 2015-08-23 00:01, skrev Peter Selinger:

Hello again,

this is a true newbie question. I am trying to engrave two polyphonic
voices on a single staff. Since the two voices have all their rests in
common, I only want to typeset each rest once, so I use spacer rests
in the second voice. Still the vertical spacing is such that all the
rests are put near the top of the staff. I would like them to appear
in their normal positions.

From the manual, I know two ways to do this. Solution 1 is to enclose
each rest between \oneVoice and \voiceOne, forcing standard vertical
spacing:

   \version 2.19.25
   
   \new Staff 

 \new Voice \relative c'' {
   \voiceOne {
 \oneVoice r \voiceOne c \oneVoice r \voiceOne d
 %%%
   }
 }
 \new Voice \relative c'' {
   \voiceTwo {
 s4 a8 a8 s4 b8 b8
   }
 }
   

Solution 2 is to specify an explicit vertical position for each rest.

   \version 2.19.25
   
   \new Staff 

 \new Voice \relative c'' {
   \voiceOne {
 b4\rest c b\rest \voiceOne d
 
   }
 }
 \new Voice \relative c'' {
   \voiceTwo {
 s4 a8 a8 s4 b8 b8
   }
 }
   

Neither solution is particularly elegant, as they both require every
rest to be marked up individually. Is there a global way to turn off
vertical spacing for rests in a context, i.e., some command whose
effect would be to make notes behave as with \voiceOne and rests
behave as with \oneVoice?

Thanks, -- Peter





Hello,
There might be another aspect of positioning (common) rests from 
different voices. This is beside all the technical solutions presented 
earlier in this thread. All these work more or less fine for half rests 
as well as full rests. But when it comes to full rests, in almost every 
note sheet I have come in contact with, it is printed hanging below 
staff line number two, not zero, so the half rest and full rest reside 
in the same white space.


You can not have different definitions for these two rests, except for 
individual rests (\once \override...). But if you need a full rest, at 
least I prefer the multi measure rest (R1 instead of r1) as this is 
automatically centred in the measure. This type of rest also has its own 
definition of the vertical position. So the definition of centerRests 
should be:


centerRests = {
   \override Rest.staff-position = ##t
   \override MultiMeasureRest.staff-position = #2
}

Regarding the voice VoiceTwo, I use to convert the rests into spaces, 
which is quite simple by means of the global replace function (ctrl+H) 
in Frescobaldi and the regular expression (Regex) option. Replace //([ 
])r([^a-zA-Z]*) with \1s\2)// (remove the quotation marks, they are 
here just for pointing out the text to insert). For non English works 
the exclude text (a-zA-Z) might have to be expanded, not to affect 
comments and similar texts.


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


Re: Way to flatten nested \include's?

2015-08-25 Thread David Kastrup
Andrew Bernard andrew.bern...@gmail.com writes:

 On 25/08/2015 18:11, David Kastrup d...@gnu.org wrote:


 It's not just that.  It's also that the lilypond executable is pretty
 sure to know the search paths of LilyPond.  You cannot really get them
 reliably without calling LilyPond, and if you do that anyway, why not
 use its interpreter?

 I am not sure I understand. Is having a symlink:

 flatten-ly - /home/username/bin/lilypond-wrapper.guile

 not correct?

I can't say anything about the wrappers used here.  I was pointing out
that calling a Scheme procedure via the lilypond executable has the
advantage of having search paths etc set correctly.

You can do that with

lilypond -e '(load xxx.scm)'

-- 
David Kastrup

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


lyric-text::interpolate-alignment

2015-08-25 Thread Simon Albrecht

Hello,

with my current project I wanted to avoid making too many manual 
adjustments on LyricText.self-alignment-X, and so I made an essay at 
having this done automatically depending on the width of the syllable. 
It’s not a very sophisticated approach – a really intelligent solution 
is still far away. But it works and I’m interested in hearing your opinion.


Best regards, Simon
\version 2.19.25

#(define (lyric-text::interpolate-alignment grob)
   Calculates values for 'self-alignment-X using the width = X-extent of the syllable. Values are zero up to @var{lower-threshold}, @var{maximum} above @{upper-threshold}, with a smooth interpolation inbetween.
   (let*
((width (cdr (ly:grob-property grob 'X-extent)))

 (lower-threshold 3)
 (upper-threshold 11)
 (maximum (- 4/5))
 
 ;; calculate parameters for use in the ‘sigmoid’ cubic function with
 ;; (sigmoid lower-threshold) -- 0
 ;; (sigmoid upper-threshold) -- maximum
 ;; and zero ‘slope’ in both these points
 
 (a (/ (* 2 maximum)
  (+ (- (expt upper-threshold 3))
(* 3 upper-threshold upper-threshold lower-threshold)
(* -3 upper-threshold lower-threshold lower-threshold)
(expt lower-threshold 3
 (b (/ (- maximum (* a (+ (expt upper-threshold 3)
 (* 2 (expt lower-threshold 3))
 (* -3 upper-threshold (expt lower-threshold 2)
  (expt (- upper-threshold lower-threshold) 2)))
 (c (/ (- maximum
  (* b (- (expt upper-threshold 2) (expt lower-threshold 2)))
  (* a (- (expt upper-threshold 3) (expt lower-threshold 3
   (- upper-threshold lower-threshold)))
 (d (- maximum
  (* upper-threshold c)
  (* (expt upper-threshold 2) b)
  (* (expt upper-threshold 3) a)))

 (sigmoid (lambda (x) (+ (* a x x x) (* b x x) (* c x) d

;(format #t The four parameters have been determined as: \n a ~a \n b ~a \n c ~a \n d ~a\n a b c d)

(cond
 ((= width lower-threshold) 0)
 (( lower-threshold width upper-threshold)
  (sigmoid width))
 ((= width upper-threshold) maximum

\layout {
  \context {
\Lyrics
\override LyricText.self-alignment-X = #lyric-text::interpolate-alignment
\override LyricText.before-line-breaking =
#(lambda (grob)
   (let
((extent (ly:grob-property grob 'X-extent))
 (txt (ly:grob-property grob 'text)))
(format #t For ~a, X-extent is ~a\n txt extent)))
  }
}


  {
\repeat unfold 8 g'8\noBeam
  }
  \addlyrics {
 l ll lll  l ll 
  }

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


Make a new staff occupy the same vertical space as a previous staff

2015-08-25 Thread Joel Ebel
I'm sure this is documented somewhere and I just can't seem to find
it. How do I get a new staff to immediately follow a previous staff in
the same vertical space. In this simple example, I'd like the TabStaff
to end, and the RhythmicStaff to immediately follow in the same
vertical space, rather than starting lower in the score, indicating a
switch between picked notes vs strummed chords.

\version 2.19.25

  \new ChordNames \chordmode {
c1 c
  }
  { \new TabStaff \relative c {
  c4 e g c
}
\new RhythmicStaff {
  c4 c8 c~ c c c
}
  }


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


Re: lyric-text::interpolate-alignment

2015-08-25 Thread Simon Albrecht

Am 26.08.2015 um 00:04 schrieb Simon Albrecht:

Hello,

with my current project I wanted to avoid making too many manual 
adjustments on LyricText.self-alignment-X, and so I made an essay at 
having this done automatically depending on the width of the syllable. 
It’s not a very sophisticated approach – a really intelligent solution 
is still far away. But it works and I’m interested in hearing your 
opinion.
In particular, I have one question: how must I modify this approach, so 
that it will still be possible to override individual LyricText grobs?

\override LyricText.after-line-breaking =
#(lambda (grob) (ly:grob-set-property! grob 'self-alignment-X 
lyric-text::interpolate-alignment))

– which I tried as an alternative – did not work at all.

TIA, Simon

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


Re: vertical spacing of rests

2015-08-25 Thread Peter Selinger
Phil Holmes wrote:
 
 - Original Message - 
 From: Michael Gerdau m...@qata.de
 To: lilypond-user@gnu.org
 Sent: Tuesday, August 25, 2015 3:27 PM
 Subject: Re: vertical spacing of rests
 
 
   \override Rest.voiced-position = 0
 
  Yes, first available in 2.19.15, courtesy of Keith O'Hara.
  Yet to be documented in the NR, I believe.
 
  I have used Peter's example code and tried various parameter to
  voiced-position (see attached). It is my impression that the odd
  parameters show an...odd (pun intended) behaviour:
  - some odd parameter show additional horizontal lines
  - the vertical spacing is not symmetric up/down for odd numbers
 
  W/o a documentation I can't judge whether that's intended, but it
  is at least unexpected.
 
  Kind regards,
  Michael
  -- 
  Michael Gerdau   email: m...@qata.de
  GPG-keys available on request or at public keyserver
 
 I would expect it.  If you look at the list of glyphs in the NR, you'll see 
 that the rests include the ledger line.

Did you see his output? What struck me as strange is not that the
rests were shifted in increments of half a staff line - that is to be
expected.

What is strange, however, is that for all rests longer than a quarter,
voiced-position = 3 has the same effect as voiced-position = 2 (i.e.,
they are *not* shifted the final odd step), and voiced-position = 5 has
the same effect as voiced-position = 4. Also, for multi-measure rests,
voiced-position  2 seems to have no effect whatsoever; they don't go
any higher than voiced-position = 2. 

This behavior seems internally inconsistent. Even if we take for
granted that odd voiced-position shifts are probably not very common,
it is still concerning that there is one behavior for shifts = 2, a
different behavior for shifts  2, and finally that the behavior is
different for each kind of rest (= quarter, = half, and
multi-measure each behave differently, but only when voiced-position 
 2).

Perhaps this is a bug in the voiced-position implementation?

-- Peter

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


Re: Equal spacing of notes in a bar

2015-08-25 Thread Simon Albrecht

Am 25.08.2015 um 02:51 schrieb William Marchant:
Thanks to Simon and Abraham.  I found the quoted reference on my own, 
but I need something which can be applied to  several single bars 
throughout the music.  It is the lyrics which are distorting just a 
few bars.  I had hoped there would be a snippet I am unable to find.  
Is there one?  TIA.

Bill
There are several issues in our tracker concerned with the shortcomings 
of Lily’s current behaviour, since indeed note spacing should only in 
extreme cases by distorted by lyrics. What can be done?

– Choose a narrower font for lyrics.
– Play with LyricText.self-alignment-X, e.g. (gross exaggeration :-))
%%%
\version 2.18.2

selfAl = #(define-music-function (parser location num) (number?)
#{ \once \override LyricText . self-alignment-X  = $num #})

mus = { g'8 f'8 e'8 }
text = \lyricmode { \selfAl 1.2 straight straight \selfAl #-1 straight }

\score {
  
\mus
\addlyrics \text
  
}
%

– choose a wider horizontal spacing in general, either through the 
methods in 
http://lilypond.org/doc/v2.18/Documentation/notation/changing-horizontal-spacing

– or by ‘brute force’: something like \paper { system-count = 10 }.

HTH, Simon



On 15-08-24 03:56 PM, Simon Albrecht wrote:

Hi Bill,

‘proportional notation’ is the magic word: 
http://lilypond.org/doc/v2.18/Documentation/notation/proportional-notation.


HTH, Simon

Am 24.08.2015 um 20:54 schrieb William Marchant:
I have looked though the documentation without finding what I need. 
The attached code gives me a triplet whose notes are spaced 
according to the words.  I would like to equalize  the spacing 
between the notes.  Is there a snippet I have missed, or some 
technique that will provide this?

Bill

\version 2.18.2
global = {
  \language english
  \key bf \major
  \time 3/4
}
melody = \relative c' {
\tuplet 3/2 { bf8 c d }  c2 |
}
  VerseOne = \lyricmode {
  Give me a big
  }
 \score {
  \new ChoirStaff 
\new Staff 
  \new Voice = Song {
\global
\melody
  }
  \new Lyrics \lyricsto Song {
\VerseOne
  }

  
  \layout {
\context {
  \Score
}
  }
}


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







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



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


Re: Putting flatten-ly into your lilypond installation

2015-08-25 Thread Martin Tarenskeen



On Tue, 25 Aug 2015, Andrew Bernard wrote:


If you want to put flatten-ly into your lilypond installation, copy it to the 
lilypond installation bin directory, and make a symbolic link to
the lilypond guile wrapper in your bin directory where the other lilypond tools 
are.

For example:

$ cp flatten-ly ~/lilypond/usr/bin
$ ln -s ~/bin/lilypond-wrapper.guile ~/bin/flatten-ly

Then you don’t necessarily need to have guile installed on your system.


On my Fedora 22 system, with LilyPond and guile installed from the 
official Fedora rpm repo, /usr/bin/guile is guile2. Your script fails with 
guile2. For LilyPond there is /usr/bin/guile1.8 installed from the 
compat-guile18 package.


To make flatten-ly work on my system I simply edited the first line in the 
script to contain


#!/usr/bin/guile1.8 \
-e main -s


It would be interesting to find out what would be needed to make it work 
also with guile2.


--

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


Re: Errors when using TabStaff with stringTunings

2015-08-25 Thread Blöchl Bernhard

That cannot work as you overwrite your setting
\set Staff.stringTunings = \stringTuning e,, a,, d, g,
with
\set Staff.stringTunings = #bass-tuning

#bass-tuning is preset in the list in lilypond you got shortly with 
another mail.


Correct use is
  \new TabStaff {
\set Staff.stringTunings = \stringTuning e,, a,, d, g,
\yournotes
  }

I wold recommend you to study the manual, i. e.
http://lilypond.org/doc/v2.18/Documentation/notation/common-notation-for-fretted-strings.html

Regards


Am 24.08.2015 22:38, schrieb Kevin Nowaczyk:

In this case..the band is little known and no longer together. I had
it hidden from view for anonymous visitors except open it up for the
next couple days for people here who were interested in checking it
out.

I do like the automatic midi feature. It helps identify mistakes pretty 
easily.


Kevin


On Mon, 8/24/15, Simon Albrecht simon.albre...@mail.de wrote:

 Subject: Re: Errors when using TabStaff with stringTunings
 To: Kevin Nowaczyk beakerbo...@yahoo.com, lilypond-user@gnu.org
 Date: Monday, August 24, 2015, 4:25 PM

 Am 24.08.2015 um 22:12
 schrieb Kevin Nowaczyk:
  Thanks for the help
 everyone,
 
  I would
 up changing the stringTungings line to:
 
 \set Staff.stringTunings = \stringTuning e,, a,, d,
 g,
  And everything works fine.
 However, I also tried the notaion:
  \set
 Staff.stringTunings = #bass-tuning
  but
 that didn't work. I'll have to figure that out at a
 later time.
 
 
 All-in-all, I installed mediawiki with the Score plugin to
 show off a few guitar tabs I transcribed a few years ago. If
 you're curious, the first one (that now works) is
 here:
  http://wiki.beakerboy.com/index.php/Steven_Smith
 You may only hope that you don’t get any
 problems due to the legal
 (copyright)
 issues with this…

 Yours,
 Simon


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


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


Re: lyric-text::interpolate-alignment

2015-08-25 Thread David Nalesnik
Simon,

On Tue, Aug 25, 2015 at 5:40 PM, Simon Albrecht simon.albre...@mail.de
wrote:

 Am 26.08.2015 um 00:04 schrieb Simon Albrecht:

 Hello,

 with my current project I wanted to avoid making too many manual
 adjustments on LyricText.self-alignment-X, and so I made an essay at having
 this done automatically depending on the width of the syllable. It’s not a
 very sophisticated approach – a really intelligent solution is still far
 away. But it works and I’m interested in hearing your opinion.

 In particular, I have one question: how must I modify this approach, so
 that it will still be possible to override individual LyricText grobs?


Not sure I understand.  What if you keep your layout block as is, and put
for example

\once \override LyricText.self-alignment-X = #LEFT

before the syllable you'd like to change?

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


Re: vertical spacing of rests

2015-08-25 Thread Peter Selinger
70147pers...@telia.com wrote:
 
 Hello,
 There might be another aspect of positioning (common) rests from 
 different voices. This is beside all the technical solutions presented 
 earlier in this thread. All these work more or less fine for half rests 
 as well as full rests. But when it comes to full rests, in almost every 
 note sheet I have come in contact with, it is printed hanging below 
 staff line number two, not zero, so the half rest and full rest reside 
 in the same white space.
 
 You can not have different definitions for these two rests, except for 
 individual rests (\once \override...). But if you need a full rest, at 
 least I prefer the multi measure rest (R1 instead of r1) as this is 
 automatically centred in the measure. This type of rest also has its own 
 definition of the vertical position. So the definition of centerRests 
 should be:
 
 centerRests = {
 \override Rest.staff-position = ##t
 \override MultiMeasureRest.staff-position = #2
 }
 
 Regarding the voice VoiceTwo, I use to convert the rests into spaces, 
 which is quite simple by means of the global replace function (ctrl+H) 
 in Frescobaldi and the regular expression (Regex) option. Replace //([ 
 ])r([^a-zA-Z]*) with \1s\2)// (remove the quotation marks, they are 
 here just for pointing out the text to insert). For non English works 
 the exclude text (a-zA-Z) might have to be expanded, not to affect 
 comments and similar texts.
 
 Kaj

Hi Kaj,

thanks for pointing this out. Ugh, what an ugly mess. In my opinion,
this is a bug in the font for the full measure rest glyph. The
reference point for that glyph should be so that the glyph is above,
not below, its reference point.

Currently, the behavior is completely inconsistent, as this example
shows:

%
\version 2.19.25


  \compressFullBarRests
  \new Staff {
^default
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
  }
  \new Staff {
\override Rest.staff-position = #0
\override MultiMeasureRest.staff-position = #0
^staff-position = 0
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
\revert Rest.staff-position
\revert MultiMeasureRest.staff-position
  }
  \new Staff {
\override Rest.Y-offset = #0
\override MultiMeasureRest.Y-offset = #0
^Y-offset = 0
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
\revert Rest.Y-offset
\revert MultiMeasureRest.Y-offset
  }

%

All three staffs (see tests8.pdf) contain the same set of rests. 
The default positioning (top staff) is correct both for normal rests
and full-measure rests.

Setting staff-position = 0 (middle staff) works correctly for r1
rests, incorrectly for R1 rests, and correctly for all other rests
(including multi-measure).

Setting Y-offset = 0 (bottom staff) works incorrectly for r1 and
R1 rests, and correctly for all other rests (including multi-measure).

This is inconsistent in several ways, because

* if staff-position is used, whole rests of type r1 and R1 are
  treated differently from each other. Moreover, the R1 type rests
  are positioned incorrectly relative to all other rests.

* if Y-offset is used, both r1 and R1 rests are positioned
  incorrectly relative to all other rests.

* finally, the behavior of staff-position doesn't match that of
  Y-offset, in the case of r1 rests only.

I think the correct long-term solution is to redefine the reference
point of the whole rest glyph so that it is always positioned slightly
above the half-rest glyph. 

Meanwhile, one has to work around this. Here is another incremental
patch to the merge-rests code (from
http://www.mail-archive.com/lilypond-user%40gnu.org/msg69608.html, now
triply patched):

diff --git a/merge-rests.ily b/merge-rests.ily
index 688a37c..f4e3adb 100644
--- a/merge-rests.ily
+++ b/merge-rests.ily
@@ -21,10 +21,10 @@
 % merge a list of rests, by moving the first one to the specified
 % offset, and disabling all the other ones including any associated dots.
 #(define (merge-to-offset rests offset)
-   (ly:grob-set-property! (car rests) 'Y-offset offset)
+   (ly:grob-set-property! (car rests) 'staff-position offset)
(for-each
 (lambda (rest)
-  (ly:grob-set-property! rest 'Y-offset offset)
+  (ly:grob-set-property! rest 'staff-position offset)
   (if (not (null? (ly:grob-object rest 'dot)))
  (ly:grob-set-property! (ly:grob-object rest 'dot) 'stencil #f)))
 (cdr rests)))
@@ -58,7 +58,7 @@
  (lambda (rests)
(if (all-equal rests mmrest-same-length)
(let ((offset (if (eq? (ly:grob-property (car rests)
-'measure-count) 1) 1 0)))
+'measure-count) 1) 2 0)))
  (merge-to-offset rests offset)
 (curr-rests '())
 (rests '()))

It turns out the code was already compensating 

Re: vertical spacing of rests

2015-08-25 Thread Peter Selinger
Trevor Daniels wrote:
 
 selin...@mathstat.dal.ca (Peter Selinger) writes:
 
  this is a true newbie question. I am trying to engrave two polyphonic
  voices on a single staff. Since the two voices have all their rests in
  common, I only want to typeset each rest once, so I use spacer rests
  in the second voice. Still the vertical spacing is such that all the
  rests are put near the top of the staff. I would like them to appear
  in their normal positions.
 
  From the manual, I know two ways to do this. Solution 1 is to enclose
  each rest between \oneVoice and \voiceOne, forcing standard vertical
  spacing:
 
  Solution 2 is to specify an explicit vertical position for each rest.
 
  Neither solution is particularly elegant, as they both require every
  rest to be marked up individually. Is there a global way to turn off
  vertical spacing for rests in a context, i.e., some command whose
  effect would be to make notes behave as with \voiceOne and rests
  behave as with \oneVoice?
 
 I think using
 
 \override Rest.voiced-position = 0
 
 in the voice in which you have rests might do the trick for you.
 
 Trevor

This shows that I should read my emails in the correct order. Thanks
for the tip about voiced-position. This seems to be a new feature in
2.19? 

Unlike staff-position, voiced-position does the right thing for all
rests, including r1 and R1. 

Adding that to my previous example:

%
\version 2.19.25


  \compressFullBarRests
  \new Staff {
\oneVoice
^default for oneVoice
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
  }
  \new Staff {
\voiceOne
^default for voiceOne
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
  }
  \new Staff {
\voiceOne   
\override Rest.staff-position = #0
\override MultiMeasureRest.staff-position = #0
^voiceOne with staff-position = 0
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
\revert Rest.staff-position
\revert MultiMeasureRest.staff-position
  }
  \new Staff {
\voiceOne   
\override Rest.Y-offset = #0
\override MultiMeasureRest.Y-offset = #0
^voiceOne with Y-offset = 0
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
\revert Rest.Y-offset
\revert MultiMeasureRest.Y-offset
  }
  \new Staff {
\voiceOne   
\override Rest.voiced-position = #0
\override MultiMeasureRest.voiced-position = #0
^voiceOne with voiced-position = 0
| r\longa | r\breve | r1 | r2 r4 r8 r8 | R1*4 | R1*2 | R1 |
\revert Rest.voiced-position
\revert MultiMeasureRest.voiced-position
  }

%

(see attached rests8b.pdf for the output). The fact that
voiced-position works correctly and staff-position doesn't seems to
further underscore the problem with (and possible bug in)
MultiMeasureRest.staff-position.

-- Peter

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


Re: Make a new staff occupy the same vertical space as a previous staff

2015-08-25 Thread Joel Ebel
The closest I've been able to get so far is to instantiate the
TabStaff and the RhythmicStaff inside the ChordNames in parallel with
the chords I want to make. I still don't get the TabStaff and the
RhythmicStaff on the same line, but if I insert a \break (commented
out below) in between them, then they appear to be in the same place.
Is there a better solution?

\version 2.19.25
\new ChordNames {
   \chordmode { c1 }
 \new TabStaff \relative c {
   c4 e g c
 }
   %\break
   \chordmode { c1 }
 \new RhythmicStaff {
   c4 c8 c~ c c c
 }
  
}

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


Re: lyric-text::interpolate-alignment

2015-08-25 Thread Kieren MacMillan
Hi David (et al.),

This is one of my biggest pet peeves.
It was part of the GSoC lyric work that never got completed.

My sponsorship offer for a fix remains open!  =)

Cheers,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: Make a new staff occupy the same vertical space as a previous staff

2015-08-25 Thread David Kastrup
Joel Ebel jbe...@mybox.org writes:

 I'm sure this is documented somewhere and I just can't seem to find
 it. How do I get a new staff to immediately follow a previous staff in
 the same vertical space. In this simple example, I'd like the TabStaff
 to end, and the RhythmicStaff to immediately follow in the same
 vertical space, rather than starting lower in the score, indicating a
 switch between picked notes vs strummed chords.

 \version 2.19.25
 
   \new ChordNames \chordmode {
 c1 c
   }
   { \new TabStaff \relative c {
   c4 e g c
 }
 \new RhythmicStaff {
   c4 c8 c~ c c c
 }
   }


The following appears to work here.  Of course it begs the question
whether we should provide a context definition like that, possibly with
a better name, in LilyPond by default.

\version 2.19.25


  \new ChordNames \chordmode {
c1 c
  }
  \new Line {
\new TabStaff
{
  \relative c {
	c4 e g c \stopStaff
  }
}
\new RhythmicStaff
{
  4 8 8~8 8 4
}
  }


\layout {
  \context {
\name Line
\type Engraver_group
\consists Axis_group_engraver
\accepts TabStaff
\accepts RhythmicStaff
  }
  \context {
\Score
\accepts Line
  }
}

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