(Git users) Please test a Fresocbaldi Feature

2017-03-17 Thread Urs Liska
Hi all,

there's a pull request for Frescobaldi, submitted by a new contributor
(https://github.com/wbsoft/frescobaldi/pull/905), and I have a problem
with it: The contributor states it works for him, I can't see anything
wrong in the code, but it doesn't work for me. So I'd be happy if others
could give it a try to see if we've missed something in the code or if
it's an issue with my set-up.

Steps to do so:

  * Be sure that you run Frescobaldi from its Git repository
  * Add https://github.com/prabhanshuguptagit/frescobaldi.git as a remote
  * Pull from that remote
  * checkout the midiinput_addshortcut branch from that remote
  * (Re-)Start Frescobaldi
  * Open the MIDI Input tool
  * Try Ctrl+Shift+3

This should toggle the "Accidentals" radio button between sharps and
flats and so improve the handling when using MIDI input.

Best
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


Re: Accessing a grob from within a music function

2017-03-17 Thread Urs Liska
Hi Harm,

thank you for your suggestions. I will definitely have a closer look but
I've realized that I have to postpone this task because it massively
interferes with a related one I'm currently at.

So I'll probably only comment after some more time.

Best
Urs


Am 17.03.2017 um 00:34 schrieb Thomas Morley:
> 2017-03-16 22:51 GMT+01:00 Thomas Morley :
>> 2017-03-16 14:23 GMT+01:00 Urs Liska :
>>> Hi,
>>>
>>> I'm trying to write a function to push a note column like this:
>>>
>>> pushLeftBroken =
>>> #(define-music-function ()()
>>>#{
>>>  \once \override NoteColumn.X-offset = 3
>>>#})
>>>
>>> But I need to make that "3" depend on some characteristics of the actual
>>> note column. Basically I need the width of the note column, including
>>> attached accidentals.
>>>
>>> I know how to get to the accidental(s) within a note column, but if I'm
>>> not mistaken there's no actual grob inside that.
>>>
>>> Probably music-function isn't the right approach?
>>>
>>> What I need is a way to say something like
>>>
>>> \once \override NoteColumn.X-offset = #(+ 3
>>> extent-of-all-accidentals-in-the-note-column)
>>>
>>> Any ideas?
>>> TIA
>>> Urs
>>
>>
>> Hi Urs,
>>
>> here my thoughts about the topic so far.
>> Although I'm afraid it will not help, because it has to be done
>> before-line-breaking.
>>
>> wanted-value = 20
>>
>> {
>> c'1( \break
>>   \override NoteColumn.before-line-breaking =
>>   #(lambda (nc)
>>   ;; TODOs
>>   ;; add fall-backs if certain grobs are not present, i.e
>>   ;; (DotColumn, Arpeggio, AccidentalPlacement)
>> (let* ((dot-col (ly:note-column-dot-column nc))
>>(acc-placement (ly:note-column-accidentals nc))
>>(common-ref
>>  (ly:grob-common-refpoint nc acc-placement X))
>>(x-length-of-accs
>>  (interval-length
>>(ly:relative-group-extent
>>  (map last (ly:grob-object acc-placement 'accidental-grobs))
>>  common-ref
>>  X
>>
>>(for-each
>>  (lambda (el)
>>(ly:grob-translate-axis!
>>  el
>>  (+ x-length-of-accs wanted-value)
>>  X))
>>  (filter
>>(lambda (g) (ly:grob? g))
>>(list
>>  acc-placement
>>  dot-col
>>  nc)
>>
>>
>>   2)\arpeggio ^"foo"
>> }
>>
>> Cheers,
>>   Harm
> Probably:
>
> {
> c'1( \break
>   \override NoteColumn.after-line-breaking =
>   #(lambda (nc)
>  (ly:grob-translate-axis! (ly:grob-parent nc X) 5 X)
>  ;; uncomment for viewing
>  ;(ly:grob-set-property!
>  ;  (ly:grob-parent nc X)
>  ;  'stencil
>  ;  ly:paper-column::print)
>)
>
>
>   2)\arpeggio ^"foo"
> }
>
> Not tested beyond the above example, though.
>
> Cheers,
>   Harm

-- 
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


checking grob type

2017-03-17 Thread Urs Liska
I order to check arguments for its type I've written this shorthand
function:

#(define (grob-type? grob name)
   (eq? name (assq-ref (ly:grob-property grob 'meta) 'name)))

which of course does what it's supposed to. But I wonder if there's a
more straightforward way, e.g. a built-in function doing the same?

Best
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


Re: checking grob type

2017-03-17 Thread Paul

On 03/17/2017 07:37 AM, Urs Liska wrote:


I order to check arguments for its type I've written this shorthand
function:

#(define (grob-type? grob name)
(eq? name (assq-ref (ly:grob-property grob 'meta) 'name)))

which of course does what it's supposed to. But I wonder if there's a
more straightforward way, e.g. a built-in function doing the same?


(ly:grob-name some-grob)

Also:

(grob::has-interface some-grob some-interface)

See:
http://lilypond.1069038.n5.nabble.com/Make-Grob-name-accessible-to-Scheme-issue-203090043-by-david-nalesnik-gmail-com-td171933.html

(Would be better if we had better docs for scheme functions...)

-Paul

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


Re: checking grob type

2017-03-17 Thread Urs Liska
Hi Paul,


Am 17.03.2017 um 13:12 schrieb Paul:
> On 03/17/2017 07:37 AM, Urs Liska wrote:
>
>> I order to check arguments for its type I've written this shorthand
>> function:
>>
>> #(define (grob-type? grob name)
>> (eq? name (assq-ref (ly:grob-property grob 'meta) 'name)))
>>
>> which of course does what it's supposed to. But I wonder if there's a
>> more straightforward way, e.g. a built-in function doing the same?
>
> (ly:grob-name some-grob)

Thanks, this was exactly the thing I was sure is available :-)

>
> Also:
>
> (grob::has-interface some-grob some-interface)
>
> See:
> http://lilypond.1069038.n5.nabble.com/Make-Grob-name-accessible-to-Scheme-issue-203090043-by-david-nalesnik-gmail-com-td171933.html
>
>
> (Would be better if we had better docs for scheme functions...)

Hm ...

Best
Urs

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

-- 
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


How to get ties between voices

2017-03-17 Thread Gerard

Dear All,
maybe you can help solving this problem.
I've attached a code with two examples.

Example 1 is the desired output, except for the missing ties in the 
right hand of the last quarter.
Example 2 is an alternative. Now the ties are correct, but the beams 
between right and left hand are splitted.


The notation of the 32nd in Example 1 is the preferred notation by the 
composer.

Is there a solution to get the missing ties?

Thanks for any comment.
Regards,
Gerard
\version "2.18.2"

\paper {}
\layout {}


testStaff = <<

 \new PianoStaff \with {
\override VerticalAxisGroup.staff-staff-spacing =
  #'((basic-distance . 10)
 (padding . 5))
  }
  {

  <<
\time 3/4
\context Staff = "upper" {  % Right hand 
	\clef "treble"
	\key c \major
 \relative e''

	<<
	   
	{ e2^"Example 1" a,4}

\\

	{e'32 c a e \change Staff="lower" \stemUp {c a e c} \change Staff = "upper" \stemDown {a'' c a e} \change Staff = "lower" \stemUp {c a e c} \change Staff = "upper" \stemDown \set tieWaitForNote = ##t {a'' e ~ c ~ a ~} \change Staff = "lower" \stemUp \set tieWaitForNote = ##t {g ~ e ~ c~ }}
	
	\\
	
{ s4 s4 s8 \stemDown  }

	>>
	
	 \relative e'' 
	 
	<<
   
{ e2^"Example 2" a,4}

\\

	{e'32 c a e \change Staff="lower" \stemUp {c a e c} \change Staff = "upper" \stemDown {a'' c a e} \change Staff = "lower" \stemUp {c a e c} \change Staff = "upper" \stemDown \set tieWaitForNote = ##t {a'' e ~ c ~ a ~ 8} }
	
	\\
	
{\change Staff = "lower" \stemUp \set tieWaitForNote = ##t {s4 s4 s8 g,32 ~ e ~ c~  }}

	>>
	
   
  }
  
\context Staff = "lower" {  % Left hand 			
	\clef "bass"
	\key c \major
	
	s2. s2.
	
 }
  >>
}
>>

\book{
  \score { << \testStaff >>}
}___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: checking grob type

2017-03-17 Thread David Nalesnik
Hi,

On Fri, Mar 17, 2017 at 7:18 AM, Urs Liska  wrote:
> Hi Paul,
>
>
> Am 17.03.2017 um 13:12 schrieb Paul:
>> On 03/17/2017 07:37 AM, Urs Liska wrote:
>>
>>> I order to check arguments for its type I've written this shorthand
>>> function:
>>>
>>> #(define (grob-type? grob name)
>>> (eq? name (assq-ref (ly:grob-property grob 'meta) 'name)))
>>>
>>> which of course does what it's supposed to. But I wonder if there's a
>>> more straightforward way, e.g. a built-in function doing the same?
>>
>> (ly:grob-name some-grob)
>
> Thanks, this was exactly the thing I was sure is available :-)
>
>>
>> Also:
>>
>> (grob::has-interface some-grob some-interface)
>>
>> See:
>> http://lilypond.1069038.n5.nabble.com/Make-Grob-name-accessible-to-Scheme-issue-203090043-by-david-nalesnik-gmail-com-td171933.html
>>
>>
>> (Would be better if we had better docs for scheme functions...)
>
> Hm ...
>
> Best
> Urs
>

You can get more info about public functions with the attached file.
I was planning on getting documentation into the manuals somehow, but
I got hung up with getting the parameters of curried functions.

Also, of course, publicizing a number of these probably won't do
anybody a bit of good.

In lieu of actual documentation, I could add a Scheme function?

HTH,
David
\version "2.19.17"

#(define (get-binding-list iface)
   (ly:module->alist (resolve-module iface)))

#(define (symbol-closure-list iface)
   (let* ((bindings (get-binding-list iface))
  (closures
   (filter
(lambda (b) (procedure? (cdr b))) ;; closure?
bindings))
  (closures
   (sort closures
 (lambda (x y) (symbolstring (car elt)) "markup"))
lst))

#(define (symbol-closure-doc-list iface omit-markups?)
   (let* ((closures (symbol-closure-list iface))
  (closures (if omit-markups?
(omit-markup-functions closures)
closures)))
 (map (lambda (c)
(list
 (car c)
 (cdr c)
 (or (procedure-documentation (cdr c))
 "DOCME")))
   closures)))

% UNCOMMENT THE FOLLOWING TO SEND TO A FILE:

%#(set-current-output-port (open-output-file "closures.txt"))

%% boolean determines whether markup commands (which are documented
%% in their Lily syntax) are included.

#(format #t "~:{~a~%~a~%~3t~s~%__~%~%~}" (symbol-closure-doc-list '(lily) #t))

%#(format #t "~:{~a~%~a~%~3t~s~%__~%~%~}" (symbol-closure-doc-list '(srfi srfi-1) #f))___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: checking grob type

2017-03-17 Thread David Nalesnik
On Fri, Mar 17, 2017 at 8:38 AM, David Nalesnik
 wrote:
> Hi,
>
> On Fri, Mar 17, 2017 at 7:18 AM, Urs Liska  wrote:
>> Hi Paul,
>>
>>
>> Am 17.03.2017 um 13:12 schrieb Paul:
>>> On 03/17/2017 07:37 AM, Urs Liska wrote:
>>>
 I order to check arguments for its type I've written this shorthand
 function:

 #(define (grob-type? grob name)
 (eq? name (assq-ref (ly:grob-property grob 'meta) 'name)))

 which of course does what it's supposed to. But I wonder if there's a
 more straightforward way, e.g. a built-in function doing the same?
>>>
>>> (ly:grob-name some-grob)
>>
>> Thanks, this was exactly the thing I was sure is available :-)
>>
>>>
>>> Also:
>>>
>>> (grob::has-interface some-grob some-interface)
>>>
>>> See:
>>> http://lilypond.1069038.n5.nabble.com/Make-Grob-name-accessible-to-Scheme-issue-203090043-by-david-nalesnik-gmail-com-td171933.html
>>>
>>>
>>> (Would be better if we had better docs for scheme functions...)
>>
>> Hm ...
>>
>> Best
>> Urs
>>
>
> You can get more info about public functions with the attached file.
> I was planning on getting documentation into the manuals somehow, but
> I got hung up with getting the parameters of curried functions.
>
> Also, of course, publicizing a number of these probably won't do
> anybody a bit of good.

It also reveals some omissions...

grob::has-interface
#
   "DOCME"

-DN

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


Re: How to get ties between voices

2017-03-17 Thread Phil Holmes
- Original Message - 
From: "Gerard" 

To: 
Sent: Friday, March 17, 2017 12:51 PM
Subject: How to get ties between voices



Dear All,
maybe you can help solving this problem.
I've attached a code with two examples.

Example 1 is the desired output, except for the missing ties in the
right hand of the last quarter.
Example 2 is an alternative. Now the ties are correct, but the beams
between right and left hand are splitted.

The notation of the 32nd in Example 1 is the preferred notation by the
composer.
Is there a solution to get the missing ties?

Thanks for any comment.
Regards,
Gerard


A bit of a hack, but how about making your third voice as follows:

{ s4 s4 \override Tie.minimum-length = #3 \set tieWaitForNote = ##t 
\hideNotes a'32 [ e ~ c ~ a ~ ] \unHideNotes \stemDown 8 }


--
Phil Holmes 



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


Re: checking grob type

2017-03-17 Thread Paul

cc'ing lilypond-devel to move discussion there.

On 03/17/2017 09:38 AM, David Nalesnik wrote:


You can get more info about public functions with the attached file.
I was planning on getting documentation into the manuals somehow, but
I got hung up with getting the parameters of curried functions.


Hi David,  Thanks for your work on this.  Is there an easy way to just 
omit any curried functions in a first-pass at this?  (I wonder what 
percentage are curried?)



Also, of course, publicizing a number of these probably won't do
anybody a bit of good.


Maybe we could just have a list of functions to document publicly (or to 
not document)?



In lieu of actual documentation, I could add a Scheme function?


Seems like actual docs would be better in the long run, but I guess it 
depends on how much they would take to implement.


Thanks again,
-Paul

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


Re: checking grob type

2017-03-17 Thread David Nalesnik
On Fri, Mar 17, 2017 at 9:50 AM, Paul  wrote:
> cc'ing lilypond-devel to move discussion there.
>
> On 03/17/2017 09:38 AM, David Nalesnik wrote:
>
>> You can get more info about public functions with the attached file.
>> I was planning on getting documentation into the manuals somehow, but
>> I got hung up with getting the parameters of curried functions.
>
>
> Hi David,  Thanks for your work on this.  Is there an easy way to just omit
> any curried functions in a first-pass at this?  (I wonder what percentage
> are curried?)

I never found it.

The problem is that a parameter isn't shown:

#(define ((curried arg) grob) '())
#(display curried)

==> #

>
>> Also, of course, publicizing a number of these probably won't do
>> anybody a bit of good.
>
>
> Maybe we could just have a list of functions to document publicly (or to not
> document)?

I suppose a metric could be usage in the code base, but I'd hate to
get into a function-by-function discussion for the rest!

>
>> In lieu of actual documentation, I could add a Scheme function?
>
>
> Seems like actual docs would be better in the long run, but I guess it
> depends on how much they would take to implement.
>

Yes, real documentation would certainly be best.  Shouldn't have
implied "instead of": I meant in the meantime (and later, in addition)
it would be nice to have a convenience function to return everything
available.  And it would need to be in C++ so it wouldn't need to be
invoked to reveal itself :)

David.

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


Re: (Git users) Please test a Fresocbaldi Feature

2017-03-17 Thread Federico Bruni



Il giorno ven 17 mar 2017 alle 9:06, Urs Liska  ha 
scritto:

Hi all,

there's a pull request for Frescobaldi, submitted by a new 
contributor (https://github.com/wbsoft/frescobaldi/pull/905), and I 
have a problem with it: The contributor states it works for him, I 
can't see anything wrong in the code, but it doesn't work for me. So 
I'd be happy if others could give it a try to see if we've missed 
something in the code or if it's an issue with my set-up.


Steps to do so:

Be sure that you run Frescobaldi from its Git repository
Add https://github.com/prabhanshuguptagit/frescobaldi.git as a remote
Pull from that remote
checkout the midiinput_addshortcut branch from that remote
(Re-)Start Frescobaldi
Open the MIDI Input tool
Try Ctrl+Shift+3
This should toggle the "Accidentals" radio button between sharps and 
flats and so improve the handling when using MIDI input.





Hi Urs

It works for me: it toggles between sharps and flats. I'll add a 
comment on the pull request.


My computer is running:

Frescobaldi: 3.0.0
Python: 3.5.3
python-ly: 0.9.4
Qt: 5.7.1
PyQt: 5.7
sip: 4.18.1
poppler: 0.45.0
python-poppler-qt: 0.24.2
OS: Linux-4.9.13-201.fc25.x86_64-x86_64-with-fedora-25-Twenty_Five


Let me add that you can test a github PR without adding the remote.
In this case I did:

git fetch origin pull/905/head:midiinput_addshortcut



git checkout midiinput_addshortcut





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


Re: checking grob type

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

> On Fri, Mar 17, 2017 at 9:50 AM, Paul  wrote:
>> cc'ing lilypond-devel to move discussion there.
>>
>> On 03/17/2017 09:38 AM, David Nalesnik wrote:
>>
>>> You can get more info about public functions with the attached file.
>>> I was planning on getting documentation into the manuals somehow, but
>>> I got hung up with getting the parameters of curried functions.
>>
>>
>> Hi David,  Thanks for your work on this.  Is there an easy way to just omit
>> any curried functions in a first-pass at this?  (I wonder what percentage
>> are curried?)
>
> I never found it.
>
> The problem is that a parameter isn't shown:
>
> #(define ((curried arg) grob) '())
> #(display curried)
>
> ==> #

What problem?  `arg' _is_ the only parameter of the function `curried'.
The function `curried', when called, returns a function taking a single
parameter `grob'.

But that's a detail of the description.  Remember that the above
currying is just short for

(define (curried arg)
  (lambda (grob)
 '()))

which is short for

(define curried
  (lambda (arg)
(lambda (grob) '(

-- 
David Kastrup

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


Partial

2017-03-17 Thread Joseph Austin
I've been experimenting with \partial, the command for scoring anacrusis, and 
discovered some apparently undocumented features.

First of all, although I did not see it in the documentation, 
the form \partial DUR*NUM, such as \partial 8*5, seems to work, where NUM is an 
integer multiplying DUR.
This seems to be sufficient to accommodate any arbitrary anacrusis,
(except possibly partial tuplets, but I'm not sure such rhythms occur in 
practice).

Also, durations specified with dots also work, e.g  \partial 4..

Should these options be added to the documentation?
(Or perhaps it's already there but I missed it.)

Joe Austin


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


inconsistent bar number placement

2017-03-17 Thread Juan Cristóbal Cerrillo
Dear all,

I’m having trouble understanding why the barnumber in measures 5, 6, 9 and 10 
in the following example are placed so differently as the other bar numbers.
What causes this behaviour?
Any help would be greatly appreciated.

all best,

jc

\version "2.18.2"

\layout {
  \context {\type "Engraver_group"
\consists "Time_signature_engraver"
\consists "Axis_group_engraver"
\name "TimeSig"
\alias "Staff"
\override TimeSignature.style = #'numbered
\override TimeSignature.font-size = #6
\override TimeSignature.break-align-symbol = ##f
\override TimeSignature.X-offset =
#ly:self-alignment-interface::x-aligned-on-self
\override TimeSignature.self-alignment-X = #CENTER
\override TimeSignature.after-line-breaking =
#shift-right-at-line-begin
  }
  \context {\Score
\accepts TimeSig
tupletFullLength = ##t 
  }
  \context {\StaffGroup
\accepts TimeSig 
  }
  \context {\Staff
\remove "Time_signature_engraver"
tupletFullLength = ##t
  }
}

music = \relative c''
{
  \tupletUp
  \repeat unfold 5 {
\time 4/4
\tuplet 3/2 {
  c2 c c 
}\pageBreak
\time 3/4
\tuplet 4/3 {
  c,,4 c c c
}
\break
  }
}

\score {
  \new StaffGroup 
  <<
\new TimeSig 
\new Staff \music
\new Staff \music
  >> 
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Partial

2017-03-17 Thread David Kastrup
Joseph Austin  writes:

> I've been experimenting with \partial, the command for scoring
> anacrusis, and discovered some apparently undocumented features.
>
> First of all, although I did not see it in the documentation, 
> the form \partial DUR*NUM, such as \partial 8*5, seems to work, where
> NUM is an integer multiplying DUR.

Multipliers are an optional part of _all_ durations, so DUR*NUM would be
redundant.

> This seems to be sufficient to accommodate any arbitrary anacrusis,
> (except possibly partial tuplets, but I'm not sure such rhythms occur
> in practice).

Multipliers can be fractions.  \partial 4*3/7 will also work.

> Also, durations specified with dots also work, e.g  \partial 4..
>
> Should these options be added to the documentation?
> (Or perhaps it's already there but I missed it.)

All those can be part of _any_ duration.  Nothing specific to \partial .

-- 
David Kastrup

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


Re: Partial

2017-03-17 Thread David Kastrup
u...@openlilylib.org writes:

> Am 2017-03-17 21:48, schrieb David Kastrup:
>> Joseph Austin  writes:
>>
>>> I've been experimenting with \partial, the command for scoring
>>> anacrusis, and discovered some apparently undocumented features.
>>>
>>> First of all, although I did not see it in the documentation,
>>> the form \partial DUR*NUM, such as \partial 8*5, seems to work, where
>>> NUM is an integer multiplying DUR.
>>
>> Multipliers are an optional part of _all_ durations, so DUR*NUM
>> would be
>> redundant.
>>
>>> This seems to be sufficient to accommodate any arbitrary anacrusis,
>>> (except possibly partial tuplets, but I'm not sure such rhythms occur
>>> in practice).
>>
>> Multipliers can be fractions.  \partial 4*3/7 will also work.
>
> Not at LilyPond ATM, but I'm sure  \partial 12*2 will also work,
> amounting to 2 eight note triplets.

Too bad, because 12 is not an unscaled duration.  You need to write
\partial 8*2/3 here (for example).

-- 
David Kastrup

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


can we pass in header variables as CLI parameters?

2017-03-17 Thread Ian Ring
Hi, sorry if this has been asked before...

Is it possible to pass in header variables in via the CLI?

For example, I would like to pass the copyright date in via a parameter, 
instead of it being saved in the .LY file.

This can be done in LaTeX, so I hope there is a way to do something similar in 
lilypond.

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


Re: Partial

2017-03-17 Thread David Kastrup
David Kastrup  writes:

> u...@openlilylib.org writes:
>
>> Am 2017-03-17 21:48, schrieb David Kastrup:
>>> Joseph Austin  writes:
>>>
 I've been experimenting with \partial, the command for scoring
 anacrusis, and discovered some apparently undocumented features.

 First of all, although I did not see it in the documentation,
 the form \partial DUR*NUM, such as \partial 8*5, seems to work, where
 NUM is an integer multiplying DUR.
>>>
>>> Multipliers are an optional part of _all_ durations, so DUR*NUM
>>> would be
>>> redundant.
>>>
 This seems to be sufficient to accommodate any arbitrary anacrusis,
 (except possibly partial tuplets, but I'm not sure such rhythms occur
 in practice).
>>>
>>> Multipliers can be fractions.  \partial 4*3/7 will also work.
>>
>> Not at LilyPond ATM, but I'm sure  \partial 12*2 will also work,
>> amounting to 2 eight note triplets.
>
> Too bad, because 12 is not an unscaled duration.  You need to write
> \partial 8*2/3 here (for example).

Uh, this should be \partial 8*2/3*2 (8*2/3 being _one_ eighth note
triplet).

-- 
David Kastrup

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


Re: inconsistent bar number placement

2017-03-17 Thread Malte Meyn


Am 17.03.2017 um 21:47 schrieb Juan Cristóbal Cerrillo:
> the barnumber in measures 5, 6, 9 and 10 in the following example are placed 
> so differently as the other bar numbers.

Cannot reproduce any inconsistencies. Are you sure you’re using LilyPond
2.18.2?

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


Re: Partial

2017-03-17 Thread Malte Meyn


Am 17.03.2017 um 21:08 schrieb Joseph Austin:
> First of all, although I did not see it in the documentation, 
> the form \partial DUR*NUM, such as \partial 8*5, seems to work, where NUM is 
> an integer multiplying DUR.
> This seems to be sufficient to accommodate any arbitrary anacrusis,
> (except possibly partial tuplets, but I'm not sure such rhythms occur in 
> practice).

Section 1.2.3 of the notation reference says that \partial takes a
duration as an argument. Section 1.2.1 describes what a duration can
look like (so I don’t think \partial’s capabilities are undocumented):
Not only powers of 2 but also \breve, \longa, \maxima, dotted durations
and scaled durations. You can scale a duration not only by integer
factors but also by fractions and even multiple factors are allowed.

So “upbeat/anacrusis of three notes of a dotted-sixteenth quintuplet”
can be written as

\partial 16.*4/5*3

> Also, durations specified with dots also work, e.g  \partial 4..

There is an example at section 1.2.3 which uses “\partial 4.”

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


Re: inconsistent bar number placement

2017-03-17 Thread Juan Cristóbal Cerrillo
Hello Malte,

Yes, my version is 2.18.2
This is what the top of page 3 looks like with ragged-right and ragged-bottom 
##t

Are you not seeing the same?





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


Re: inconsistent bar number placement

2017-03-17 Thread Malte Meyn


Am 17.03.2017 um 22:54 schrieb Juan Cristóbal Cerrillo:
> Yes, my version is 2.18.2
> This is what the top of page 3 looks like with ragged-right and
> ragged-bottom ##t

The code you posted doesn’t contain these settings.

> Are you not seeing the same?

No, even if I add

\paper {
  ragged-right = ##t
  ragged-bottom = ##t
}

to your code there’s no problem. You should provide code that actually
produces the output you describe, else it’ll be difficult to help ;)

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


Re: inconsistent bar number placement

2017-03-17 Thread Jeffery Shivers
On Fri, Mar 17, 2017 at 5:59 PM, Malte Meyn  wrote:
>
>
> Am 17.03.2017 um 22:54 schrieb Juan Cristóbal Cerrillo:
>> Yes, my version is 2.18.2
>> This is what the top of page 3 looks like with ragged-right and
>> ragged-bottom ##t
>
> The code you posted doesn’t contain these settings.
>
>> Are you not seeing the same?
>
> No, even if I add
>
> \paper {
>   ragged-right = ##t
>   ragged-bottom = ##t
> }
>
> to your code there’s no problem. You should provide code that actually
> produces the output you describe, else it’ll be difficult to help ;)

I *do* get the output they describe.

It looks like it is caused by:

  \override TimeSignature.after-line-breaking = #shift-right-at-line-begin

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



-- 

Jeffery Shivers
 jefferyshivers.com
 soundcloud.com/jefferyshivers

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


Re: inconsistent bar number placement

2017-03-17 Thread Juan Cristóbal Cerrillo
Thank you Jeffery.

If I change the TimeSignature.break-align-symbol override to #’staff-bar and 
get rid of the after-line-breaking override, bar number placement is 
consistent, but is too high.

Is there a way of specifying that the bar number should be placed just above 
the StaffGroup bracket other that doing a score override for BarNumber.Y-offset 
?

Many thanks for your insight!

jc




\version "2.18.2"

\paper {
  ragged-bottom = ##t
  ragged-right = ##t
}

\layout {
  \context {\type "Engraver_group"
\consists "Time_signature_engraver"
\consists "Axis_group_engraver"
\name "TimeSig"
\alias "Staff"
\override TimeSignature.style = #'numbered
\override TimeSignature.font-size = #6
\override TimeSignature.break-align-symbol = #'staff-bar
\override TimeSignature.X-offset =
#ly:self-alignment-interface::x-aligned-on-self
\override TimeSignature.self-alignment-X = #CENTER
  }
  \context {\Score
\accepts TimeSig
tupletFullLength = ##t 
  }
  \context {\StaffGroup
\accepts TimeSig 
  }
  \context {\Staff
\remove "Time_signature_engraver"
tupletFullLength = ##t
  }
}

music = \relative c''
{
  \tupletUp
  \repeat unfold 5 {
\time 4/4
  c2 c 
\pageBreak
\time 3/4
  c4 c c 
\break
  }
}

\score {
  \new StaffGroup 
  <<
\new TimeSig 
\new Staff \music
\new Staff \music
  >> 
}



How could I get rid of the staff space under the time signatures

> On Mar 17, 2017, at 4:32 PM, Jeffery Shivers  wrote:
> 
> On Fri, Mar 17, 2017 at 5:59 PM, Malte Meyn  wrote:
>> 
>> 
>> Am 17.03.2017 um 22:54 schrieb Juan Cristóbal Cerrillo:
>>> Yes, my version is 2.18.2
>>> This is what the top of page 3 looks like with ragged-right and
>>> ragged-bottom ##t
>> 
>> The code you posted doesn’t contain these settings.
>> 
>>> Are you not seeing the same?
>> 
>> No, even if I add
>> 
>> \paper {
>>  ragged-right = ##t
>>  ragged-bottom = ##t
>> }
>> 
>> to your code there’s no problem. You should provide code that actually
>> produces the output you describe, else it’ll be difficult to help ;)
> 
> I *do* get the output they describe.
> 
> It looks like it is caused by:
> 
>  \override TimeSignature.after-line-breaking = #shift-right-at-line-begin
> 
>> 
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
> 
> 
> 
> -- 
> 
> Jeffery Shivers
> jefferyshivers.com
> soundcloud.com/jefferyshivers


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


Re: inconsistent bar number placement

2017-03-17 Thread Kieren MacMillan
Hi Juan,

> If I change the TimeSignature.break-align-symbol override to #’staff-bar and 
> get rid of the after-line-breaking override, bar number placement is 
> consistent, but is too high.
> Is there a way of specifying that the bar number should be placed just above 
> the StaffGroup bracket other that doing a score override for 
> BarNumber.Y-offset ?

This has been a long-time frustration for me as well. I’ve usually just moved 
the BarNumber engraver to the uppermost Staff context… but that only works if 
your score isn’t frenched.

If you find a complete solution, I’ll be interested to see it.

Thanks,
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: inconsistent bar number placement

2017-03-17 Thread Jeffery Shivers
On Fri, Mar 17, 2017 at 7:16 PM, Juan Cristóbal Cerrillo
 wrote:
> Thank you Jeffery.
>
> If I change the TimeSignature.break-align-symbol override to #’staff-bar and 
> get rid of the after-line-breaking override, bar number placement is 
> consistent, but is too high.
>
> Is there a way of specifying that the bar number should be placed just above 
> the StaffGroup bracket other that doing a score override for 
> BarNumber.Y-offset ?
>

If I understand, does making the following two changes do what you want?

1) remove bar numbers from the score:
  \context {\Score
\accepts TimeSig
tupletFullLength = ##t
\remove "Bar_number_engraver"
  }

2) include the bar number engraver only with the staff you want:
\score {
  \new StaffGroup
  <<
\new TimeSig
\new Staff \with {
  \consists "Bar_number_engraver"
}
\music
\new Staff \music
  >>
}

Best,
Jeffery

> Many thanks for your insight!
>
> jc
>
>
>
>
> \version "2.18.2"
>
> \paper {
>   ragged-bottom = ##t
>   ragged-right = ##t
> }
>
> \layout {
>   \context {\type "Engraver_group"
> \consists "Time_signature_engraver"
> \consists "Axis_group_engraver"
> \name "TimeSig"
> \alias "Staff"
> \override TimeSignature.style = #'numbered
> \override TimeSignature.font-size = #6
> \override TimeSignature.break-align-symbol = #'staff-bar
> \override TimeSignature.X-offset =
> #ly:self-alignment-interface::x-aligned-on-self
> \override TimeSignature.self-alignment-X = #CENTER
>   }
>   \context {\Score
> \accepts TimeSig
> tupletFullLength = ##t
>   }
>   \context {\StaffGroup
> \accepts TimeSig
>   }
>   \context {\Staff
> \remove "Time_signature_engraver"
> tupletFullLength = ##t
>   }
> }
>
> music = \relative c''
> {
>   \tupletUp
>   \repeat unfold 5 {
> \time 4/4
>   c2 c
> \pageBreak
> \time 3/4
>   c4 c c
> \break
>   }
> }
>
> \score {
>   \new StaffGroup
>   <<
> \new TimeSig
> \new Staff \music
> \new Staff \music
>   >>
> }
>
>
>
> How could I get rid of the staff space under the time signatures
>
>> On Mar 17, 2017, at 4:32 PM, Jeffery Shivers  
>> wrote:
>>
>> On Fri, Mar 17, 2017 at 5:59 PM, Malte Meyn  wrote:
>>>
>>>
>>> Am 17.03.2017 um 22:54 schrieb Juan Cristóbal Cerrillo:
 Yes, my version is 2.18.2
 This is what the top of page 3 looks like with ragged-right and
 ragged-bottom ##t
>>>
>>> The code you posted doesn’t contain these settings.
>>>
 Are you not seeing the same?
>>>
>>> No, even if I add
>>>
>>> \paper {
>>>  ragged-right = ##t
>>>  ragged-bottom = ##t
>>> }
>>>
>>> to your code there’s no problem. You should provide code that actually
>>> produces the output you describe, else it’ll be difficult to help ;)
>>
>> I *do* get the output they describe.
>>
>> It looks like it is caused by:
>>
>>  \override TimeSignature.after-line-breaking = #shift-right-at-line-begin
>>
>>>
>>> ___
>>> lilypond-user mailing list
>>> lilypond-user@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>
>>
>>
>> --
>>
>> Jeffery Shivers
>> jefferyshivers.com
>> soundcloud.com/jefferyshivers
>



-- 

Jeffery Shivers
 jefferyshivers.com
 soundcloud.com/jefferyshivers

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


Re: inconsistent bar number placement

2017-03-17 Thread Juan Cristóbal Cerrillo
Yes, exactly.

Many thanks Jeffery.

all best,

jc


> On Mar 17, 2017, at 5:49 PM, Jeffery Shivers  wrote:
> 
> If I understand, does making the following two changes do what you want?
> 
> 1) remove bar numbers from the score:
>  \context {\Score
>\accepts TimeSig
>tupletFullLength = ##t
>\remove "Bar_number_engraver"
>  }
> 
> 2) include the bar number engraver only with the staff you want:
> \score {
>  \new StaffGroup
>  <<
>\new TimeSig
>\new Staff \with {
>  \consists "Bar_number_engraver"
>}
>\music
>\new Staff \music
>>> 
> }
> 
> Best,
> Jeffery

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


Re: can we pass in header variables as CLI parameters?

2017-03-17 Thread David Wright
On Fri 17 Mar 2017 at 21:10:29 (+), Ian Ring wrote:
> Hi, sorry if this has been asked before...
> 
> Is it possible to pass in header variables in via the CLI?
> 
> For example, I would like to pass the copyright date in via a parameter, 
> instead of it being saved in the .LY file.
> 
> This can be done in LaTeX, so I hope there is a way to do something similar 
> in lilypond.

I'm not sure why that should be. Anyway, if you put some LP code
into a nonce file and then use:

lilypond -dinclude-settings=nonce-filename LP-source-filename

the nonce file will be interpreted first. So I assume any \header
code will be interpreted at top-level.

AFAICT the nonce file should either be in the working directory
or in an --include directory. If you specify it as a full pathname,
that pathname is checked for existence, but the directories appear
to be stripped off by LP. (That might be the normal behaviour for
\include files.)

Cheers,
David.

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


Re: inconsistent bar number placement

2017-03-17 Thread David Wright
On Fri 17 Mar 2017 at 15:54:24 (-0600), Juan Cristóbal Cerrillo wrote:
> Hello Malte,
> 
> Yes, my version is 2.18.2
> This is what the top of page 3 looks like with ragged-right and ragged-bottom 
> ##t
> 
> Are you not seeing the same?

Nope. How come your crochets are at the same pitch as the minims?
The first crochet is c,,4 in the source. So we can't actually
be compiling the same code.

Thank you, though, for the suggested \paper parameters. That gave
me something to use for testing my "include-settings" answer to
Ian Ring's query.

Cheers,
David.

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