website issue

2020-03-25 Thread David Nalesnik
I'm getting some spurious characters at
http://lilypond.org/manuals.html.  Screenshot attached.

Here's some of the page source:
  b’Learning’:
a “must-read” gentle introduction to LilyPond.
(details of Learning)

Thanks,
David


Re: 2.21.0 released

2020-04-09 Thread David Nalesnik
On Thu, Apr 9, 2020 at 1:42 PM Valentin Villenave
 wrote:
>
> On 4/9/20, Carl Sorensen  wrote:
> > Thank you so much for your dedication!
>
> Ditto; Phil, you and James may both have the most thankless and yet
> crucial jobs in the LilyPond community, so praises to you both! (And
> obviously to Jonas, David, Han-Wen & al.).
>

Yay!!



Re: RFC: rethink horizontal alignment of mid-staff bar numbers

2020-11-15 Thread David Nalesnik
On Sun, Nov 15, 2020 at 6:11 AM Michael Käppler  wrote:
>
> Am 15.11.2020 um 12:36 schrieb Werner LEMBERG:
> >> I will be the first responder and say that, of the options in the
> >> pdf, I think Gould is the most appropriate.
> > Yep.
> +1
> >
> >
> >  Werner
> >
>
>

Another vote for Gould.  (Though does she have anything to say about
the normally unshown measure numbers which are stranded beyond the
line here?)

David



Fix typos in \offset documentation (issue 322040043 by david.nales...@gmail.com)

2017-06-07 Thread david . nalesnik

Reviewers: ,

Description:
Fix typos in \offset documentation

- Fix errors in description of OttavaBracket example
- Minor improvements in wording

Please review this at https://codereview.appspot.com/322040043/

Affected files (+5, -4 lines):
  M Documentation/notation/changing-defaults.itely


Index: Documentation/notation/changing-defaults.itely
diff --git a/Documentation/notation/changing-defaults.itely  
b/Documentation/notation/changing-defaults.itely
index  
7fad344bb6ee3cc4d281e36d49e55bbf77363115..5373e4f399fa3fcb17d7775032be5b7d801894c6  
100644

--- a/Documentation/notation/changing-defaults.itely
+++ b/Documentation/notation/changing-defaults.itely
@@ -2783,10 +2783,11 @@ The following example displaces the @q{broken}  
@code{OttavaBracket}

 object through its @code{staff-padding} property.  Since the property
 takes a @code{number}, @var{offsets} is provided with a list of
 @code{number}s to account for the two segments created by the line
-break.  The slur piece on the first line is effectively untouched since
-@code{0} is added to its default value.  The segment on the second
-line is raised two staff-spaces from its default height.  The default
-height happens to be @code{2}, though it is not necesssary to know this.
+break.  The bracket piece on the first line is effectively untouched
+since @code{0} is added to its default value of @code{staff-padding}.
+The segment on the second line is raised three staff-spaces from its
+default height.  The default height happens to be @code{2}, though it is
+not necessary to know this to achieve the desired positioning.

 @lilypond[quote,verbatim]
 {



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


Re: lyrics hyphens question

2017-06-13 Thread David Nalesnik
Hi Kieren,

On Tue, Jun 13, 2017 at 3:21 PM, Kieren MacMillan
 wrote:
> Hi David (et al.),
>
> These are questions regarding the "lyric-word-reconstituter" in the thread 
> which includes the post 
> .
>
> I'd love to use it (or something like it) in my engravings going forward.
>
> 1. It doesn't seem to work with 2.19.61 (at least), and convert-ly doesn't 
> seem to help. The error is
>
> warning: type check for `LyricWord' failed; value `#' 
> must be of type `list'
>
> My instinct (and a quick search on -user) led me to believe that changing
>
> (set-object-property! grob-name 'translation-type? list?)
>
> to
>
> (set-object-property! grob-name 'translation-type? ly:grob-properties?)
>
> might fix the problem. The file/example now compiles without error. Did I fix 
> it correctly?

Yes, that's right.

>
> 2. This is a workaround/hack/fix from 2014. At the time, there was some 
> question as to whether Janek might roll this (or similar) into the GSoC Lyric 
> project… but that is, I believe, dead in the water. Is there any hope of 
> getting this into the codebase? I'm happy to take this "stub" (much more than 
> a stub, of course!) and shepherd it through the dev process to the goal line 
> — but I don't want to start down a track that will ultimately lead to 
> frustration or nowhere at all.
>

>

It's not suitable as is, but easily remedied.  The grob LyricWord is
defined in a hackish way so that it can fit in an LY file.

In my opinion, it's potentially useful to have a grob which organizes
whole Lyric words, so lyrics are not simply a collection of isolated
syllables.  (Makes short work of the compression in this instance.)

I can't say what problems there are with the compression routine.  I
know there have been complaints, but I haven't looked into them.  (See
openlilylib, I believe.)

DN

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


Re: lyrics hyphens question

2017-06-13 Thread David Nalesnik
On Jun 13, 2017 9:55 PM, "Kieren MacMillan" 
wrote:

Hi David (et al.),

> It's not suitable as is, but easily remedied.  The grob LyricWord is
> defined in a hackish way so that it can fit in an LY file.

So in C++, it would be non-hackish…?


No, just parceling out the chunks to various .scm files.  Not hard at all.


> it's potentially useful to have a grob which organizes whole Lyric words,
> so lyrics are not simply a collection of isolated syllables.

Agreed.

> I can't say what problems there are with the compression routine.
> I know there have been complaints, but I haven't looked into them.

I’ve just discovered that using lyric-word-compressor makes the last line
of my score unexpectedly (and unpredictably) shorter, as if I had set
ragged-last = ##t. I'll see if I can make an MWE that demonstrates this
issue; in the meantime, I'll have to crank out this score without it…

Thanks,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Should we have a from-barline property in analogy to to-barline ?

2017-07-24 Thread David Nalesnik
On Jul 24, 2017 10:50 AM, "Kieren MacMillan" 
wrote:

Hi Simon,

> On 24.07.2017 13:58, David Kastrup wrote:
>> Seems like an obvious addition.  Would make stuff (like slurs, hairpins
>> and so on) starting at the bar move backwards to the bar line.  Probably
>> also useful for non-spanners like a \fermata ?
>
> I have difficulty imagining use cases.

Measure-attached spanners (e.g. "<--  Safety -->" ) comes to mind
immediately.


I've got a patch for these.  I can post it but it ought to wait for 2.20 to
be locked in.


> Is to-barline really used for anything else than hairpins?

Pedals?

> I certainly can imagine that _attaching_ spanners

Ah… there it is.  =)

Cheers,
Kieren.


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


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


Re: rest/mm-rest-markup

2017-07-31 Thread David Nalesnik
On Mon, Jul 31, 2017 at 9:08 AM, David Kastrup  wrote:
> Thomas Morley  writes:
>
>> Hi David,
>>
>> this refers to
>> http://lists.gnu.org/archive/html/lilypond-devel/2017-07/msg00144.html
>> I opened a new thread, because this one will be about rest-markups only.
>>
>> rest-by-number-markup and rest-markup were impemented by myself
>> commit ffa21bb1a55d2436bb432c4dff7ec04df95dc6f0
>> My second patch at all.
>
> Ah, I thought that it wasn't quite in the line of code I see you doing
> these days.  A few corners looked like copying idioms of David Nalesnik
> in cases for which they appeared overengineered.

Goodness!  Hopefully, I'm not as guilty of "open coding" these days.

DN

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


Re: rest/mm-rest-markup

2017-08-10 Thread David Nalesnik
On Mon, Jul 31, 2017 at 11:53 AM, Thomas Morley
 wrote:
> 2017-07-31 18:09 GMT+02:00 David Kastrup :
>> David Nalesnik  writes:
>>
>>> On Mon, Jul 31, 2017 at 9:08 AM, David Kastrup  wrote:
>>>> Thomas Morley  writes:
>>>>
>>>>> Hi David,
>>>>>
>>>>> this refers to
>>>>> http://lists.gnu.org/archive/html/lilypond-devel/2017-07/msg00144.html
>>>>> I opened a new thread, because this one will be about rest-markups only.
>>>>>
>>>>> rest-by-number-markup and rest-markup were impemented by myself
>>>>> commit ffa21bb1a55d2436bb432c4dff7ec04df95dc6f0
>>>>> My second patch at all.
>>>>
>>>> Ah, I thought that it wasn't quite in the line of code I see you doing
>>>> these days.  A few corners looked like copying idioms of David Nalesnik
>>>> in cases for which they appeared overengineered.
>>>
>>> Goodness!  Hopefully, I'm not as guilty of "open coding" these days.
>>
>> Anybody else needs his toes stepped on while I'm on a run?
>
>
> rofl

I laughed too.

>
> More seriously. I learned a lot studying your code, David N and David
> K and from several others.
> And I plan to continue this behaviour ;)
>

Can't say how much I've learned from studying code on the lists and
from feedback.  Best computer course I've had.

Best,
DN

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


Re: Issue 5187 Add command for Thin Aiken noteheads (issue 326510043 by karlinh...@gmail.com)

2017-09-22 Thread David Nalesnik
Hi Karlin,

On Fri, Sep 22, 2017 at 5:29 PM, Karlin High  wrote:
> On Fri, Sep 22, 2017 at 2:37 PM, Karlin High  wrote:
>> All right, I'm giving up and asking for help.
>
> I got good help from Carl Sorenson; thanks! Changed patch for review,
> now contains both code and documentation.
> --

Glad you got this squared away!  Just for reference you might look at
the email I got when I had a similar problem myself:

https://www.mail-archive.com/lilypond-devel@gnu.org/msg51407.html

Best,
David

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


Re: Anybody has a good explanation for _this_ use of grob-transformer?

2018-01-29 Thread David Nalesnik
Hi,

On Mon, Jan 29, 2018 at 6:10 PM, David Kastrup  wrote:
> David Kastrup  writes:
>
>>>   %% no fail
>>>   \override TupletNumber.Y-offset =
>>>#(ly:make-unpure-pure-container
>>>   (lambda (grob) (+ (ly:tuplet-number::calc-y-offset grob) 1))
>>>   (lambda (grob start end) 1))
>>>   \tuplet 3/2 4 {
>>> c,,8 d e f g a b c d e f g
>>> c,,8^> d e f^> g a b^> c d e^> f g }
>>> }
>>
>> Ok, this means that at pure time, ly:tuplet-number::calc-y-offset must
>> not be called at all or it will ride roughshod over the X offset.  We'll
>> get the hang of it yet.
>
> At any rate, one point of grob-transformer is that it should work for
> any kind of value/callback, and it clearly doesn't here.  So either the
> theory underlying it is wrong, or the implementation.
>


I don't have time to look into the details at the moment, just to go
by my memory, having worked on TupletNumber's interaction with kneed
beams.  The callbacks for X-offset and Y-offset are not independent.
I forget which callback calls the other.  The rationale for this
yuckiness was tuplet number/accidental collision avoidance, for which
both axes are necessary,

I don't know whether this entanglement is the culprit, but I have my
strong suspicions...

David

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


Re: Can alternateTextSpannerEngraver now completely replace Text_spanner_engraver in a public release?

2019-02-13 Thread David Nalesnik
On Wed, Feb 13, 2019 at 7:49 AM Trevor Bača  wrote:
>
> On Wed, Feb 13, 2019 at 4:58 AM James Lowe  wrote:
>
> > Hello Trevor,
> >
> > On Tue, 12 Feb 2019 16:45:35 -0600, Trevor Bača 
> > wrote:
> >
> >
> > >
> > > Question: is it now possible to replace Text_spanner_engraver with David
> > > N.'s extended implementation, in a coming public release of LilyPond?
> > >
> > >
> > > Trevor.
> > >
> >
> >
> > If you have a patch based on current master I can at least test that for
> > you.]
> >
> > James
> >
>
> Hi James,
>
> I have no patch.
>
> Could somebody else possibly provide James a patch of David N.'s
> alternateTextSpannerEngraver?
>
> Trevor.

The issue which would come up is that it is written in Scheme, rather
than C++.  This has implications for documentation.  I could work this
into the existing C++ code and present a patch, if that's best.

DN

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


Re: Can alternateTextSpannerEngraver now completely replace Text_spanner_engraver in a public release?

2019-02-13 Thread David Nalesnik
David,

On Wed, Feb 13, 2019 at 8:35 AM David Kastrup  wrote:
>
> David Nalesnik  writes:
>
> > On Wed, Feb 13, 2019 at 7:49 AM Trevor Bača  wrote:
> >>
> >> Could somebody else possibly provide James a patch of David N.'s
> >> alternateTextSpannerEngraver?
> >>
> >> Trevor.
> >
> > The issue which would come up is that it is written in Scheme, rather
> > than C++.  This has implications for documentation.
>
> It does?  What kind of documentation cannot be achieved in Scheme that
> would be possible in C++?
>
> Here is some page from the Internals reference:
>
> File: lilypond-internals.info,  Node: Merge_rests_engraver,  Next: 
> Metronome_mark_engraver,  Prev: Mensural_ligature_engraver,  Up: Engravers 
> and Performers
>
> 2.2.71 Merge_rests_engraver
> ---
>
> Engraver to merge rests in multiple voices on the same staff.  This
> works by gathering all rests at a time step.  If they are all of the
> same length and there are at least two they are moved to the correct
> location as if there were one voice.
>
>Properties (read)
>
>  ‘suspendRestMerging’ (boolean)
>   When using the Merge_rest_engraver do not merge rests when
>   this is set to true.
>
>‘Merge_rests_engraver’ is not part of any context.
>
>
> This is an engraver written in Scheme.

Ah, OK, thanks for the update.  I must be thinking of a past state of affairs.

David N

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


can't update makeinfo from 5.1

2019-10-31 Thread David Nalesnik
Hi all,

I've been out of the loop for a while, and recently decided to finish
work on a patch I had put off.  When I run configure, an error is
returned saying that makeinfo is too old (5,2).  When I run sudo
apt-get install texinfo, I'm told that I have the latest version.
makeinfo --version still returns 5.2.

I realize that there is a thread devoted to this topic.  However, I
find that I will need a little more guidance.

In ~/,bashrc, I find

# This is useful when installing the LilyPond binary
if [ -d $HOME/bin ]; then
export PATH="$HOME/bin:$PATH"
fi

Is this what needs altering?

Thanks, and sorry for what must be a basic question

Best,
David



Re: can't update makeinfo from 5.1

2019-11-01 Thread David Nalesnik
On Fri, Nov 1, 2019 at 5:12 AM Werner LEMBERG  wrote:
>
>
> > When I run configure, an error is returned saying that makeinfo is
> > too old (5,2).  When I run sudo apt-get install texinfo, I'm told
> > that I have the latest version.  makeinfo --version still returns
> > 5.2.
>
> Ouch.  `makeinfo` is part of texinfo.  Version 5.2 was published
> September 2013!
>
> The current version is 6.6, published February 2019.
>
> So please either use an add-on repository for your GNU/Linux
> distribution to get a newer texinfo version, or install it directly
> from the tarball.
>

Will try and report back.

Thanks!



problems with SSH key

2019-11-14 Thread David Nalesnik
Hi all,

I'm having difficulty getting my LilyDev machine to work with SSH.
I've followed the steps in the Contributor's Guide.  Below is what
happens.  I've included my config file, too.

If anyone can help, I'd be very grateful.  I've got a patch to submit
but I've been struggling for days to reinstall LilyDev.

Thanks,
David

BTW: ssh is not installed in the latest LilyDev release; perhaps a
note is needed in the manual

[dev@lilydev:lilypond-git]$ git pull --verbose
The authenticity of host 'git.sv.gnu.org (209.51.188.201)' can't be established.
ECDSA key fingerprint is SHA256:qRLLJ4w/GAeiDyYnbx4yWJbZXwGiYYxgNty7lAfUyuM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'git.sv.gnu.org,209.51.188.201' (ECDSA) to
the list of known hosts.
error: object file
.git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8 is empty
error: object file
.git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8 is empty
fatal: loose object 76008183503d70d4b37a73f19e60c2438112a5a8 (stored
in .git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8) is corrupt
[dev@lilydev:lilypond-git]$ fatal: The remote end hung up unexpectedly


__CONFIG___
[dev@lilydev:lilypond-git]$ git config --list
user.name=David Nalesnik
user.email=david.nales...@gmail.com
color.ui=auto
rietveld.server=codereview.appspot.com
rietveld.cc=lilypond-devel@gnu.org
branch.staging.remote=origin
branch.staging.merge=refs/heads/staging
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=ssh://dnales...@git.sv.gnu.org/srv/git/lilypond.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
allura.tracker=https://sourceforge.net/p/testlilyissues/issues/



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 9:23 AM David Kastrup  wrote:
>
> David Nalesnik  writes:
>
> > Hi all,
> >
> > I'm having difficulty getting my LilyDev machine to work with SSH.
> > I've followed the steps in the Contributor's Guide.  Below is what
> > happens.  I've included my config file, too.
> >
> > If anyone can help, I'd be very grateful.  I've got a patch to submit
> > but I've been struggling for days to reinstall LilyDev.
> >
> > Thanks,
> > David
> >
> > BTW: ssh is not installed in the latest LilyDev release; perhaps a
> > note is needed in the manual
> >
> > [dev@lilydev:lilypond-git]$ git pull --verbose
> > The authenticity of host 'git.sv.gnu.org (209.51.188.201)' can't be 
> > established.
> > ECDSA key fingerprint is SHA256:qRLLJ4w/GAeiDyYnbx4yWJbZXwGiYYxgNty7lAfUyuM.
> > Are you sure you want to continue connecting (yes/no)? yes
>
> I read "yes" so this does not look like a problem with the key.

Well, the Contributor's Guide description doesn't match what I got (an
ECDSA instead of an RSA fingerprint), so my "yes" may have been
wishful thinking?

Here's the output the CG quotes:

The authenticity of host 'git.sv.gnu.org (140.186.70.72)' can't
be established.
RSA key fingerprint is
80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5.
Are you sure you want to continue connecting (yes/no)?

>
> > Warning: Permanently added 'git.sv.gnu.org,209.51.188.201' (ECDSA) to
> > the list of known hosts.
>
> Again, this looks like the right reaction.  Should work without this
> prompt next time.
>
> > error: object file
> > .git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8 is empty
> > error: object file
> > .git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8 is empty
> > fatal: loose object 76008183503d70d4b37a73f19e60c2438112a5a8 (stored
> > in .git/objects/76/008183503d70d4b37a73f19e60c2438112a5a8) is corrupt
> > [dev@lilydev:lilypond-git]$ fatal: The remote end hung up unexpectedly
>
> Rather sounds like a different problem like a dead server/connection.
> Try again?

Same result



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 9:34 AM David Nalesnik  wrote:
>
> On Thu, Nov 14, 2019 at 9:23 AM David Kastrup  wrote:
> >
> > Rather sounds like a different problem like a dead server/connection.
> > Try again?
>
> Same result

And in fact any git command I try yields these fatal errors.  (I tried
to create a patch to back up my work, to no avail.)



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 10:17 AM David Nalesnik
 wrote:
>
> On Thu, Nov 14, 2019 at 9:34 AM David Nalesnik  
> wrote:
> >
> > On Thu, Nov 14, 2019 at 9:23 AM David Kastrup  wrote:
> > >
> > > Rather sounds like a different problem like a dead server/connection.
> > > Try again?
> >
> > Same result
>
> And in fact any git command I try yields these fatal errors.  (I tried
> to create a patch to back up my work, to no avail.)

I think I will try the upvoted solution here later today:
https://stackoverflow.com/questions/11706215/how-to-fix-git-error-object-file-is-empty



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 10:19 AM David Nalesnik
 wrote:
>
> On Thu, Nov 14, 2019 at 10:17 AM David Nalesnik
>  wrote:
> >
> > On Thu, Nov 14, 2019 at 9:34 AM David Nalesnik  
> > wrote:
> > >
> > > On Thu, Nov 14, 2019 at 9:23 AM David Kastrup  wrote:
> > > >
> > > > Rather sounds like a different problem like a dead server/connection.
> > > > Try again?
> > >
> > > Same result
> >
> > And in fact any git command I try yields these fatal errors.  (I tried
> > to create a patch to back up my work, to no avail.)
>
> I think I will try the upvoted solution here later today:
> https://stackoverflow.com/questions/11706215/how-to-fix-git-error-object-file-is-empty

Unless you can think of a better idea!



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 10:21 AM Federico Bruni  wrote:

>
>
> Il giorno gio 14 nov 2019 alle 10:17, David Nalesnik
>  ha scritto:
> > On Thu, Nov 14, 2019 at 9:34 AM David Nalesnik
> >  wrote:
> >>
> >>  On Thu, Nov 14, 2019 at 9:23 AM David Kastrup  wrote:
> >>  >
> >>  > Rather sounds like a different problem like a dead
> >> server/connection.
> >>  > Try again?
> >>
> >>  Same result
> >
> > And in fact any git command I try yields these fatal errors.  (I tried
> > to create a patch to back up my work, to no avail.)
> >
>
> git format-patch doesn't work either?
>
> Perhaps you need to upgrade the system? In particular the package
> ca-certificates
>

Nor did git log.  I will see about updates, but I imagine I need to clean
up the empty objects manually.

Thanks,
David

>
>
>
>


Re: problems with SSH key

2019-11-14 Thread David Nalesnik
Good god

On Thu, Nov 14, 2019 at 6:36 PM David Kastrup  wrote:

>
> There is git-fsck .
>

[dev@lilydev:lilypond-git]$ git fsck
Segmentation faultrectories:  45% (116/256)



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 9:49 PM Werner LEMBERG  wrote:
>
>
> >> There is git-fsck .
> >>
> >
> > [dev@lilydev:lilypond-git]$ git fsck
> > Segmentation faultrectories:  45% (116/256)
>
> Ouch.  I've never experienced such a thing with git.  Maybe something
> is broken with your installation?  Does removing and installing again
> help?
>
>
> Werner

Do you mean removing git itself?  I'd like to be able to get back to
the work I just did, if at all possible.

I deleted the empty object that git commands complained about, and now
git fsck works.

I get this output
:
[dev@lilydev:lilypond-git]$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (402883/402883), done.
error: HEAD: invalid sha1 pointer 76008183503d70d4b37a73f19e60c2438112a5a8
error: refs/heads/dev/measure_spanner: invalid sha1 pointer
76008183503d70d4b37a73f19e60c2438112a5a8
Checking connectivity: 401781, done.

(dev/measure_spanner is the name of my branch)

By the way, git reflog gives me this:

[dev@lilydev:lilypond-git]$ git reflog
fatal: bad object HEAD

Any ideas how to fix this?

Thanks,
David



Re: problems with SSH key

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 9:58 PM David Nalesnik  wrote:
>
> On Thu, Nov 14, 2019 at 9:49 PM Werner LEMBERG  wrote:
> >
> >
> > >> There is git-fsck .
> > >>
> > >
> > > [dev@lilydev:lilypond-git]$ git fsck
> > > Segmentation faultrectories:  45% (116/256)
> >
> > Ouch.  I've never experienced such a thing with git.  Maybe something
> > is broken with your installation?  Does removing and installing again
> > help?
> >
> >
> > Werner
>
> Do you mean removing git itself?  I'd like to be able to get back to
> the work I just did, if at all possible.
>
> I deleted the empty object that git commands complained about, and now
> git fsck works.
>
> I get this output
> :
> [dev@lilydev:lilypond-git]$ git fsck
> Checking object directories: 100% (256/256), done.
> Checking objects: 100% (402883/402883), done.
> error: HEAD: invalid sha1 pointer 76008183503d70d4b37a73f19e60c2438112a5a8
> error: refs/heads/dev/measure_spanner: invalid sha1 pointer
> 76008183503d70d4b37a73f19e60c2438112a5a8
> Checking connectivity: 401781, done.
>
> (dev/measure_spanner is the name of my branch)
>
> By the way, git reflog gives me this:
>
> [dev@lilydev:lilypond-git]$ git reflog
> fatal: bad object HEAD
>
> Any ideas how to fix this?
>
> Thanks,
> David

OK, I think I got things operational again, through Googling and blind faith...

I manually checked the reflog for my branch:
[dev@lilydev:lilypond-git]$ tail -n 2 .git/logs/refs/heads/dev/measure_spanner
de92385d89cfbbe5f0aa95a907c5fb98496fcb28
e949231cdff5d174e76af47c49e0b2fd60e912eb Federico Bruni
 1573594713 +0100reset: moving to HEAD^
e949231cdff5d174e76af47c49e0b2fd60e912eb
ec0f38486e4aedcd28a89cca28464ef4f226b7bb David Nalesnik
 1573595114 +0100commit: Add regression
tests

(Note: both commits above are authored by me; I was just a little late
in updating my config.)

I reset HEAD to point to the last commit on my branch:
git update-ref HEAD ec0f38486e4aedcd28a89cca28464ef4f226b7bb

git fsck then gave this:

[dev@lilydev:lilypond-git]$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (402883/402883), done.
error: refs/heads/dev/measure_spanner: invalid reflog entry
76008183503d70d4b37a73f19e60c2438112a5a8
error: HEAD: invalid reflog entry 76008183503d70d4b37a73f19e60c2438112a5a8
Checking connectivity: 401781, done.

I then did:

[dev@lilydev:lilypond-git]$ git reflog expire --stale-fix --all
[dev@lilydev:lilypond-git]$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (402883/402883), done.
Checking connectivity: 401781, done.

___
Something must have happened when I attempted to use git rebase -i to
squash those two commits.  That rebase is gone.

Ugh.  I hope this does the trick...

Thanks,
David



git-cl command not found

2019-11-14 Thread David Nalesnik
Trying to get git-cl going I run into an interesting problem.  I've
installed LilyDev, so I should have git-cl.

I update:
[dev@lilydev:lilypond-git]$ cd ~/git-cl/
[dev@lilydev:git-cl]$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 2), reused 3 (delta 2), pack-reused 0
Unpacking objects: 100% (4/4), done.
>From git://github.com/gperciva/git-cl
   9511426..1994c03  master -> origin/master
Updating 9511426..1994c03
Fast-forward
 allura_issues.py | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)


Make sure ca-certificates is there:

[dev@lilydev:~]$ apt --installed list | grep ca-certificates

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

ca-certificates/oldstable,oldstable,now 20161130+nmu1+deb9u1 all [installed]

But then I can't use git-cl:

[dev@lilydev:~]$ cd $LILYPOND_GIT
[dev@lilydev:lilypond-git]$ git-cl config
bash: git-cl: command not found


What am I doing wrong?

Thanks!
David



Re: git-cl command not found

2019-11-14 Thread David Nalesnik
On Thu, Nov 14, 2019 at 7:05 PM David Kastrup  wrote:
>
> David Nalesnik  writes:
>
> > Trying to get git-cl going I run into an interesting problem.  I've
> > installed LilyDev, so I should have git-cl.
> >
> > I update:
> > [dev@lilydev:lilypond-git]$ cd ~/git-cl/
> > [dev@lilydev:git-cl]$ git pull
> > remote: Enumerating objects: 4, done.
> > remote: Counting objects: 100% (4/4), done.
> > remote: Compressing objects: 100% (2/2), done.
> > remote: Total 4 (delta 2), reused 3 (delta 2), pack-reused 0
> > Unpacking objects: 100% (4/4), done.
> > From git://github.com/gperciva/git-cl
> >9511426..1994c03  master -> origin/master
> > Updating 9511426..1994c03
> > Fast-forward
> >  allura_issues.py | 15 ---
> >  1 file changed, 8 insertions(+), 7 deletions(-)
> >
> >
> > Make sure ca-certificates is there:
> >
> > [dev@lilydev:~]$ apt --installed list | grep ca-certificates
> >
> > WARNING: apt does not have a stable CLI interface. Use with caution in 
> > scripts.
> >
> > ca-certificates/oldstable,oldstable,now 20161130+nmu1+deb9u1 all [installed]
> >
> > But then I can't use git-cl:
> >
> > [dev@lilydev:~]$ cd $LILYPOND_GIT
> > [dev@lilydev:lilypond-git]$ git-cl config
> > bash: git-cl: command not found
> >
> > 
> > What am I doing wrong?
>
> It's not in your PATH ?
>
Ah yes.  Duh.  Didn't think to check b/c I figured this would just
work out of the box.

Thanks...



shepherd a patch?

2019-11-14 Thread David Nalesnik
Hi all,

I have a patch which implements measure-attached spanners.  I am
having a devil of a time getting the patch up for review.  I simply
can't get git-cl to upload it.  (I suspect this has something to do
with the number of files it touches--my system times out before
everything can be uploaded.)

Would someone be willing to shepherd the patch for me?

Attached is a PNG which shows the output of one of the regtests.

This would _really_ be appreciated.  Thanks!

David


Re: shepherd a patch?

2019-11-15 Thread David Nalesnik
On Fri, Nov 15, 2019 at 2:19 AM Jonas Hahnfeld  wrote:
>
> Hi David,
>
> Am Donnerstag, den 14.11.2019, 21:10 -0600 schrieb David Nalesnik:
>
> Hi all,
>
>
> I have a patch which implements measure-attached spanners.  I am
>
> having a devil of a time getting the patch up for review.  I simply
>
> can't get git-cl to upload it.  (I suspect this has something to do
>
> with the number of files it touches--my system times out before
>
> everything can be uploaded.)
>
>
> based on your other messages, you're using LilyDev when running git-cl? If 
> you say it times out, I would guess that git-cl waiting for you to authorize 
> the tool. Usually, it opens a browser for that, but that's probably not going 
> to work under a headless VM / container?
> Did you try running git-cl from your host system?
>
> Jonas

Ugh.  My failing memory.  Several years ago I did need to upload the
patch from git-cl on an Ubuntu machine outside of LilyDev.  The output
I got on the Win10 machine that hosts LilyDev would give me output
similar to the following:

[dev@lilydev:lilypond-git]$ git-cl upload origin/master
 input/regression/measure-spanner-spacing-pair.ly |  33 +
 input/regression/measure-spanner.ly  |  30 +
 lily/bracket.cc  |  10 +-
 lily/enclosing-bracket.cc|   4 +-
 lily/include/bracket.hh  |   3 +-
 lily/include/measure-attached-spanner.hh |  34 +
 lily/measure-attached-spanner.cc | 151 +++
 ly/spanners-init.ly  |   4 +
 scm/define-event-classes.scm |   1 +
 scm/define-grobs.scm |  22 
 scm/define-music-types.scm   |   6 +
 scm/scheme-engravers.scm |  63 ++
 12 files changed, 353 insertions(+), 8 deletions(-)
Upload server: codereview.appspot.com (change with -s/--server)
Your browser has been opened to visit:

https://codereview.appspot.com/get-access-token?port=8001

If your browser is on a different machine then exit and re-run
upload.py with the command-line parameter

  --no_oauth2_webbrowser

Issue created. URL: http://codereview.appspot.com/566970043
Uploading base file for input/regression/measure-spanner-spacing-pair.ly
Uploading base file for scm/define-event-classes.scm
Uploading base file for scm/scheme-engravers.scm
Uploading base file for scm/define-grobs.scm
Traceback (most recent call last):
  File "/home/dev/git-cl/git-cl", line 628, in 
sys.exit(main(sys.argv))
  File "/home/dev/git-cl/git-cl", line 622, in main
return func(argv[2:])
  File "/home/dev/git-cl/git-cl", line 335, in CmdUpload
issue, patchset = upload.RealMain(['upload'] + upload_args + args)
  File "/home/dev/git-cl/upload.py", line 2693, in RealMain
vcs.UploadBaseFiles(issue, rpc_server, patches, patchset, options, files)
  File "/home/dev/git-cl/upload.py", line 1220, in UploadBaseFiles
print t.get(timeout=60)
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get
raise self._value
urllib2.URLError: 
[dev@lilydev:lilypond-git]$

--

I see now that a Rietveld issue is created with all my changes present.
https://codereview.appspot.com/571180043/
However, no issue is created on the Allura tracker.

I presume that it is possible to do what remains in the issue tracker
without having to run git-cl successfully?

Thanks for your help!
David



Re: shepherd a patch?

2019-11-15 Thread David Nalesnik
On Fri, Nov 15, 2019 at 4:31 AM James Lowe  wrote:
>
> David et al.
>
> On Fri, 15 Nov 2019 07:33:01 +0100, Urs Liska  wrote:
>
> > Hi David,
> >
> > I feel responsible for this because I know where this is coming from  ;-)
> >
> > You can send me the patch. However, it's a long time since I uploaded
> > anything, so I'm not sure my set-up still works. But I'll try.
> >
> > Best
> > Urs
> >
> > Am 15.11.19 um 04:10 schrieb David Nalesnik:
> > > Hi all,
> > >
> > > I have a patch which implements measure-attached spanners.  I am
> > > having a devil of a time getting the patch up for review.  I simply
> > > can't get git-cl to upload it.  (I suspect this has something to do
> > > with the number of files it touches--my system times out before
> > > everything can be uploaded.)
> > >
> > > Would someone be willing to shepherd the patch for me?
> > >
> > > Attached is a PNG which shows the output of one of the regtests.
> > >
> > > This would _really_ be appreciated.  Thanks!
> > >
> > > David
>
> What I would suggest (generally to anyone on this list that ever needs a 
> patch shepherding) is to make sure a tracker exists - @David, as I know you 
> have access to create tickets you can at least do this - and then attach your 
> patch to that and set the tracker to 'started' so that at the very least if 
> (for example) Urs forgets, goes on holiday, has some emergency, that I can at 
> least pick it up/detect it on the countdown and put it up for review myself.
>
> I do this all the time for 'drive by' patches.
>
> James
>

Thanks for this explanation.  I discovered that my patch had gone to
Rietveld, only no ticket was created.  So the error has to do with the
issue tracker.  Here's hoping that it's possible to do what's left
manually without too much trouble!

Best,
David



Re: shepherd a patch?

2019-11-15 Thread David Nalesnik
On Fri, Nov 15, 2019 at 12:33 AM Urs Liska  wrote:
>
> Hi David,
>
> I feel responsible for this because I know where this is coming from  ;-)

Hah! :)  (Seriously, though, this is something that I've wanted and
Kieren has clamored for...)

>
> You can send me the patch. However, it's a long time since I uploaded
> anything, so I'm not sure my set-up still works. But I'll try.
>
> Best
> Urs

I appreciate this very much!  Turns out, I may be able to do this
manually.  (A Rietveld issue is
created--https://codereview.appspot.com/571180043/  just no tracker
issue.)

I will let you know!

David



Re: shepherd a patch?

2019-11-15 Thread David Nalesnik
Federico,

On Fri, Nov 15, 2019 at 6:39 AM Federico Bruni  wrote:

>
> This is what's recommended in the README:
> https://github.com/fedelibre/LilyDev/tree/master/mkosi#running-graphical-applications-from-the-container
>

I saw this, but I'm running LilyDev from a Win10 host.

David



Re: shepherd a patch?

2019-11-15 Thread David Nalesnik
James and all,

On Fri, Nov 15, 2019 at 7:31 AM David Nalesnik  wrote:
>
> On Fri, Nov 15, 2019 at 4:31 AM James Lowe  wrote:
> >
> > David et al.

> > >
> > > Am 15.11.19 um 04:10 schrieb David Nalesnik:

> > > > Would someone be willing to shepherd the patch for me?

> >
> > What I would suggest (generally to anyone on this list that ever needs a 
> > patch shepherding) is to make sure a tracker exists - @David, as I know you 
> > have access to create tickets you can at least do this - and then attach 
> > your patch to that and set the tracker to 'started' so that at the very 
> > least if (for example) Urs forgets, goes on holiday, has some emergency, 
> > that I can at least pick it up/detect it on the countdown and put it up for 
> > review myself.
> >
> > I do this all the time for 'drive by' patches.
> >
> > James
> >
>
> Thanks for this explanation.  I discovered that my patch had gone to
> Rietveld, only no ticket was created.  So the error has to do with the
> issue tracker.  Here's hoping that it's possible to do what's left
> manually without too much trouble!
>
> Best,
> David

OK, I _think_ all is well.  I created this issue
https://sourceforge.net/p/testlilyissues/issues/5602/
and provided a link to the Rietveld issue.

Best,
David



Re: shepherd a patch?

2019-11-16 Thread David Nalesnik
Thanks, James!

On Sat, Nov 16, 2019 at 4:07 AM James  wrote:
>
> David,
>
> On 15/11/2019 13:31, David Nalesnik wrote:
> > On Fri, Nov 15, 2019 at 4:31 AM James Lowe  wrote:
> >> David et al.
> >>
> >> On Fri, 15 Nov 2019 07:33:01 +0100, Urs Liska  
> >> wrote:
> >>
> >>> Hi David,
> >>>
> >>> I feel responsible for this because I know where this is coming from  ;-)
> >>>
> >>> You can send me the patch. However, it's a long time since I uploaded
> >>> anything, so I'm not sure my set-up still works. But I'll try.
> >>>
> >>> Best
> >>> Urs
> >>>
> >>> Am 15.11.19 um 04:10 schrieb David Nalesnik:
> >>>> Hi all,
> >>>>
> >>>> I have a patch which implements measure-attached spanners.  I am
> >>>> having a devil of a time getting the patch up for review.  I simply
> >>>> can't get git-cl to upload it.  (I suspect this has something to do
> >>>> with the number of files it touches--my system times out before
> >>>> everything can be uploaded.)
> >>>>
> >>>> Would someone be willing to shepherd the patch for me?
> >>>>
> >>>> Attached is a PNG which shows the output of one of the regtests.
> >>>>
> >>>> This would _really_ be appreciated.  Thanks!
> >>>>
> >>>> David
> >> What I would suggest (generally to anyone on this list that ever needs a 
> >> patch shepherding) is to make sure a tracker exists - @David, as I know 
> >> you have access to create tickets you can at least do this - and then 
> >> attach your patch to that and set the tracker to 'started' so that at the 
> >> very least if (for example) Urs forgets, goes on holiday, has some 
> >> emergency, that I can at least pick it up/detect it on the countdown and 
> >> put it up for review myself.
> >>
> >> I do this all the time for 'drive by' patches.
> >>
> >> James
> >>
> > Thanks for this explanation.  I discovered that my patch had gone to
> > Rietveld, only no ticket was created.  So the error has to do with the
> > issue tracker.  Here's hoping that it's possible to do what's left
> > manually without too much trouble!
>
> Status = 'started'
>
> Patch = 'new'
>
> Those two things will get it on the radar.
>
>
> James
>



problem with git pull -r

2019-11-21 Thread David Nalesnik
Below is the console output.  Any ideas?

Thanks,
David

[dev@lilydev:lilypond-git]$ git pull -r
error: cannot lock ref
'refs/remotes/origin/dev/jmandereau/merge-make-and-stepmake':
'refs/remotes/origin/dev/jmandereau' exists; cannot create
'refs/remotes/origin/dev/jmandereau/merge-make-and-stepmake'
>From ssh://git.sv.gnu.org/srv/git/lilypond
 ! [new branch]dev/jmandereau/merge-make-and-stepmake ->
origin/dev/jmandereau/merge-make-and-stepmake  (unable to update local
ref)
error: cannot lock ref
'refs/remotes/origin/dev/jmandereau/stable-2.20-201902':
'refs/remotes/origin/dev/jmandereau' exists; cannot create
'refs/remotes/origin/dev/jmandereau/stable-2.20-201902'
 ! [new branch]dev/jmandereau/stable-2.20-201902 ->
origin/dev/jmandereau/stable-2.20-201902  (unable to update local ref)



Re: problem with git pull -r

2019-11-21 Thread David Nalesnik
On Thu, Nov 21, 2019 at 9:45 AM Jonas Hahnfeld  wrote:
>
> Am Donnerstag, den 21.11.2019, 16:30 +0100 schrieb Werner LEMBERG:
> > > Below is the console output.  Any ideas?
> >
> >
> > Clone the repository anew, and everything should be fine again.
>
> This works of course but is pretty destructive. A simple
>  $ git fetch --prune
> did the job for me. T
> Regards,
> Jonas

Did the trick for me too.  Thanks!

David N



Re: Implement MeasureAttachedSpanner (issue 571180043 by david.nales...@gmail.com)

2019-11-21 Thread david . nalesnik
Reviewers: lemzwerg, carl.d.sorensen_gmail.com, Dan Eble, thomasmorley651,  
t.daniels_treda.co.uk, kieren_kierenmacmillan.info, c_sorensen, checkma,


Message:
Name has been changed to MeasureSpanner, and all references (including
file names) have been adjusted. Thanks for the reviews!


https://codereview.appspot.com/571180043/diff/565230043/input/regression/measure-spanner.ly
File input/regression/measure-spanner.ly (right):

https://codereview.appspot.com/571180043/diff/565230043/input/regression/measure-spanner.ly#newcode5
input/regression/measure-spanner.ly:5: Measure attached spanners can
span single and multiple
On 2019/11/15 17:49:24, lemzwerg wrote:

Shouldn't this be rather



   Measure-attached spanners ...



?


Changed to reflect new name

https://codereview.appspot.com/571180043/diff/565230043/lily/include/measure-attached-spanner.hh
File lily/include/measure-attached-spanner.hh (right):

https://codereview.appspot.com/571180043/diff/565230043/lily/include/measure-attached-spanner.hh#newcode4
lily/include/measure-attached-spanner.hh:4: Copyright (C) 1997--2015 Jan
Nieuwenhuizen 
On 2019/11/16 18:07:37, Dan Eble wrote:

When you add a new file, I think you're supposed to use (C) 
year> 
name>.  At least, that's what I was once told.


Done.

https://codereview.appspot.com/571180043/diff/565230043/lily/include/measure-attached-spanner.hh#newcode20
lily/include/measure-attached-spanner.hh:20: #ifndef
Measure_attached_spanner_HH
On 2019/11/16 18:07:37, Dan Eble wrote:

all caps, please


Done.

https://codereview.appspot.com/571180043/diff/565230043/lily/include/measure-attached-spanner.hh#newcode24
lily/include/measure-attached-spanner.hh:24: #include "std-vector.hh"
On 2019/11/16 18:07:37, Dan Eble wrote:

I don't see anything in this header that uses a vector.  Unless I'm

wrong, this

should be moved to whichever cc files require it.  Same goes for any

other

unnecessary headers.


Done.  (Unnecessary includes pruned from lily/measure-spanner.cc as
well.)

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc
File lily/measure-attached-spanner.cc (right):

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc#newcode45
lily/measure-attached-spanner.cc:45: //Direction dir =
get_grob_direction (me);
On 2019/11/16 18:07:37, Dan Eble wrote:

remove


Done.

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc#newcode53
lily/measure-attached-spanner.cc:53: Spanner *orig_spanner =
dynamic_cast (me->original ());
On 2019/11/16 18:07:37, Dan Eble wrote:

If I understand correctly, me->original () can only ever be either

null or

another instance of the same type as me; therefore, use static_cast

here.


Also, if it's logically possible for me->original () to be null in

this case,

check for it before dereferencing below.


Done.  (Updated according to your recently pushed patch.)

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc#newcode93
lily/measure-attached-spanner.cc:93: : ly_symbol2scm ("staff-bar"));
On 2019/11/16 18:41:00, thomasmorley651 wrote:

If I understand correctly (and I may be wrong, because my knowledge

about c++ is

more or less zero), then "staff-bar" is a fall-back.
I'd create an entry for 'spacing-pair' in define-grobs.scm, too.

Similar to

MeasureCounter, MultiMeasure Rest and PercentRepeat.


Done.

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc#newcode96
lily/measure-attached-spanner.cc:96: }
On 2019/11/15 17:49:24, lemzwerg wrote:

The `}' is not aligned with `{'.  Maybe incorrect use of tabs?


Done.

https://codereview.appspot.com/571180043/diff/565230043/lily/measure-attached-spanner.cc#newcode141
lily/measure-attached-spanner.cc:141: "break-overshoot "
On 2019/11/16 18:41:00, thomasmorley651 wrote:

Probably add a regtest for break-overshoot.
Or extent input/regression/spanner-break-overshoot.ly


break-overshoot is not a supported property; removed from interface list

https://codereview.appspot.com/571180043/diff/565230043/ly/spanners-init.ly
File ly/spanners-init.ly (right):

https://codereview.appspot.com/571180043/diff/565230043/ly/spanners-init.ly#newcode25
ly/spanners-init.ly:25:
On 2019/11/16 14:42:02, thomasmorley651 wrote:

"View side-by-side diff with in-line comments" is broken for this

file.

Yeah, this happened to me in the past.  Not sure what to do about it.

https://codereview.appspot.com/571180043/diff/565230043/scm/define-grobs.scm
File scm/define-grobs.scm (right):

https://codereview.appspot.com/571180043/diff/565230043/scm/define-grobs.scm#newcode1457
scm/define-grobs.scm:1457: ;(font-size . -2)
On 2019/11/16 14:42:02, thomasmorley651 wrote:

Mmh, this is commented. Why?
Same below.


Just some test code.  Removed.

https://codereview.appspot.com/571180043/diff/565230043/scm/define-music-types.scm
File scm/define-music-types.scm (right):

https://coderevie

Re: shepherd a patch?

2019-12-02 Thread David Nalesnik
Hi Trevor,

On Sun, Dec 1, 2019 at 9:24 PM Trevor Bača  wrote:
>
> Hi David (and Kieren and Urs),
>
> Awesome. I'll look forward to using measure-attached spanners, too.
>
> Trevor.
>

If you build from current master, you can use them now.  Patch has been pushed!

David



Re: [Notensatz im 21. Jahrhundert] Lily+Scheme bootcamp?

2020-01-15 Thread David Nalesnik
On Tue, Jan 14, 2020 at 10:38 PM Kieren MacMillan
 wrote:
>
> Hi Harm,
>
> > my talk would be probably of some interest for you.
>
> It absolutely is.  =)
>
> > Alas, it will be in german, so I can't imagine how helpful it would be for 
> > you.
>
> Ja, es ist so lange her, dass ich Deutsch gesprochen habe, dass ich fast 
> alles vergessen habe!! Doch ich werde da sein.

Ich auch, but oh, I wish I could be there!  Good luck to you and all!

Best,
David



Re: Janek is coming back to LilyPond! :-)

2020-01-20 Thread David Nalesnik
On Mon, Jan 20, 2020 at 10:37 AM Janek Warchoł  wrote:
>
> Hi everyone,
>
> for those who don't know me: I was an active member of the community
> several years ago, contributed patches, co-authored LilyPond blog, and 
> together
> with Urs Liska 
> typeset
> an award-winning publication
> 
> with
> LilyPond. Since then I've pursued a career in software development.
>
> I just came back from music engraving conference organized by Werner and
> Urs (kudos to them!!), and - inspired by the people present there (most
> importantly Han-Wen, Mike Solomon and Kieren MacMillan) - I decided to get
> involved in the project again :-) I should be able to spend about 5-10
> hours a week on LilyPond.
>
> One of the topics discussed in Salzburg was making it easier to contribute
> to LilyPond. I have proposed to lead that effort, and the people present
> agreed to it. I would like to ask the full developer community for your
> trust*,* too. I will share my plans in a separate thread.
>
> cheers,
> Janek

Welcome back, Janek!

David



Re: Add Code of Conduct (issue 575620043 by janek.lilyp...@gmail.com)

2020-02-05 Thread david . nalesnik
On 2020/02/05 18:17:25, c_sorensen wrote:
> 
> On 2/5/20, 7:40 AM, "lilypond-devel on behalf of David Kastrup"
> 
> wrote:
> 
> Mike Solomon  writes:
> 
> > Janek Warchoł  writes:
> >
> >> Hi,
> >>
> >> śr., 5 lut 2020, 00:34 użytkownik  napisał:
> >>
> >>> What problem are we trying to solve here?
> >>>
> >>
> >> In short, it's been found (I think Mike will be able to give
you 
> >> specific
> >> examples) that having code of conduct encourages contributions
from 
> >> newcomers.
> >
> >> I rather think that a friendly atmosphere encourages
contributions
> >> from newcomers.  Whether an upfront requirement to commit to a
set
> >> of rules with an enforcement team is perceived as a guarantee
of a
> >> friendly atmosphere is debatable.
> >
> > I personally would feel more comfortable if there were a code of
> > conduct, and I know within my company one employee will not
attend a
> > conference or participate in a project unless there is a code of
> > conduct.  I don't have any hard stats to prove this, but have a
gut
> > feeling that a code of conduct opens more doors than it closes.
> 
> My gut feeling is the opposite.  Upon reading the Code of Conduct, it
felt to me
> like it was proposing a private channel for a mean-spirited
passive-aggressive
> person to wreak havoc on the community.
> 
> Now, I do not feel like we have any such individuals in our community.
 So in
> the best of all possible worlds, there is no harm to a code of
conduct.  But in
> the best of all possible worlds, there is also no need for a code of
conduct.
> 
> In the worst of all worlds, the lack of a Code of Conduct can lead to
individual
> bullying. In the worst of all worlds, a Code of Conduct can lead to
systematic
> bullying, where an anonymous complainer gets the weight of a
bureaucracy behind
> the bullying.
> 
> I don't believe we have the worst of all worlds.  I don't believe that
any
> individual behind the proposal for the Code of Conduct has anything
but the best
> intentions.  I want to see the LilyPond community be a friendly,
welcoming place
> for all.  I believe that it largely is a friendly, welcoming place for
all.
> 
> For me, personally, I find the Code of Conduct approach with its
implied threat
> (if you don't obey, we'll punish you -- in fact, we've spelled out the
> punishments in the document) to be much less friendly than a public
statement
> that we value an open, respectful, and friendly environment and we
call on all
> to participate in it.  The Code of Conduct approach feels like taking
a
> sledgehammer to squash a fly.

A statement about community values would be an excellent idea, but
channels for reporting and meting out punishment?  This makes me
uncomfortable.

And is this really such a large organization that we have room for
committees? 



https://codereview.appspot.com/575620043/



Re: Add Code of Conduct (issue 575620043 by janek.lilyp...@gmail.com)

2020-02-05 Thread David Nalesnik
On Wed, Feb 5, 2020 at 7:37 PM Thomas Morley  wrote:
>
> Hi all,
>
> Being on the lists for many years now I remember only a few posts
> which were inappropriate:
>
> Long time ago. there was a user with a post others felt uncomfortable
> with. But Graham denied a problem. But there was a followup which
> definitely was.
> And Graham told the user that it was not appropriate. As a result the
> problem was cured.
>
> I once told a user myself not to write about politics. As a result the
> problem was solved.
>
> There was a user definitely offending all, especially developers.
> Several complaints were posted, even the list-admin was called, but he
> didn't ban him. Iirc, he recommended everyone who can't bear him, to
> set him on a blacklist. I may recall wrongly, but that's what I
> finally did.
> Sometime later this user stopped posting...
>
> If I remember correctly these are _all_ problematic posts (ofcourse I
> may have missed some)
> Do we need a CoC for them?
> I doubt.
> While I think that the proposed CoC-behaviour should be naturally, I'm
> uncomfortable with the proposed consequences for violating it. At
> least in the past we got back on track more or less pretty easily,
> without CoC.
>
> Now to David and his communication.
> I'm aware people often feel offended by him.
> Though, we all know or at least should know about his communication
> problems, I'm absolutely sure he knows about them, likely better than
> we.
>
> I always found that most of the bad feelings resulted of misunderstandings.
> Sometimes David misunderstood, and replied strange. Once his
> misunderstanding is cleared he usually corrects his post.
> Sometimes the recipient of his post _misunderstands_ a post as
> offending, while it is meant most simply as a description or
> recommendation.
>
> As an example look at the review of one of my own patches
> https://codereview.appspot.com/270640043
> Quoting dak:
> "This looks like a total mess."
> "Total waste of effort."
> "Aaand another one."
>
> Ofcourse quotation is without any context (you may red it up, if you want)
> You can _interpret_ this as trashing my patch at the worst, but  I'm
> used to take his posts literal, i.e.:
> It _was_ a "total mess" -> I improved the patch
> I argued against "waste of effort" -> convinced him
> And there _was_ another issue -> I improved the patch
>
> Finally the patch came through.
>
> I'd like to recommend that everyone argues with him, if you think he is wrong.
> Otherwise take his posts literal and _not_ offending.
>
>
>
>
> Am Do., 6. Feb. 2020 um 00:32 Uhr schrieb Janek Warchoł
> :
>
> > śr., 5 lut 2020 o 14:41 David Kastrup  napisał(a):
> >
> > > Janek Warchoł  writes:
> > > > In short, it's been found (I think Mike will be able to give you 
> > > > specific
> > > > examples) that having code of conduct encourages contributions from
> > > > newcomers.
> > >
> > > I rather think that a friendly atmosphere encourages contributions from
> > > newcomers.  Whether an upfront requirement to commit to a set of rules
> > > with an enforcement team is perceived as a guarantee of a friendly
> > > atmosphere is debatable. [...]
> > > the principal impact [of Code of Conduct] to be expected on
> > > LilyPond development appears to have an official body entitled to
> > > censure my behavior and eventually, out of a sense of duty, remove me.
> > >
> >
> > Do you think that approaching other people with suspicion like this (i.e.
> > expecting they have worst intentions, which is getting close to a
> > conspiracy theory) contributes to a friendly atmosphere? I don't think so.
>
> I would take David post _literal_
> He simply told us from his previous bad experiences and his feelings
> it may happen again here, now based on the proposed CoC.
>
> I would be very sad to loose him.
>
> > And honestly, I'm very sorry to read something like this from you. It made
> > me regret coming back to the project, and almost made me want to resign
> > again.
>
> I would be very sad to loose you (again) as well!
> Janek, I always had the feeling you love a community with all people
> "on the same track", though David is "special".
>
> So to repeat myself, everyone should take his post literal, not offending!
>
>
> I'd love to see a community bearing different personalities, even
> personalities with problematic conversation skills.
> For me it's like strange english from a non-native speaker (like me).
> It's sometimes difficult and/or tedious to understand but mostly worth
> the attention.
>
>
> Well, long mail for a non-native speaker, and I still have the feeling
> I didn't express myself very well.
> Though, I did the best I could.
>

+1

Thank you, Harm.

The other David



Re: shape and chords

2012-06-26 Thread David Nalesnik
Hi Jan-Peter,

First of all, I agree with David Kastrup that this is a situation where a
deep fix is in order so that simultaneous ties may be tweaked directly.


Your example is working as expected :)
>

Glad to hear it!


>
> To make it (more) usable, I think, we need wrapper functions, to avoid
> twiggling with endless listoflistoflistofnumberpairs ;-)
>

+1


> In my short test, I thought of having tie-configuration and shape
> combined, so that one can set the direction of the ties, before shaping
> them. The downside is, that using this also needs the staff-positions to be
> set - so I doubt, this is useful:
>

This is a useful combination, and setting staff-positions really isn't all
_that_ inconvenient since you can include a "non-entry" for default ties.
 I'm delighted to see that overrides of the two work together!  It's nice
to be able to group both functionalities into one command.

One question I have here with your formulation concerns the way you've
expanded the overrides.  Why not use #{  . . . }# syntax here?  The only
drawback I see is that dollar-signs would be needed with 2.14.  I don't see
any issues in 2.15.40 with the replacement I've done below:


>
> --snip--
> confShapeTieColumn =
> #(define-music-function (parser location conf all-offsets)(list? list?)
>   (let ((alb-func (lambda (grob)
>
> (let ((ties (ly:grob-array->list (ly:grob-object grob
> 'ties
>   (for-each
>(lambda (tie offsets-for-broken-pair)
>  (let* ((orig (ly:grob-original tie))
> (siblings (ly:spanner-broken-into orig)))
>(for-each
> (lambda (piece offsets-for-piece)
>   (if (pair? offsets-for-piece)
>   (set! (ly:grob-property piece
> 'control-points)
> (map
>  (lambda (x y) (coord-translate x
> y))
> (ly:tie::calc-control-points piece)
>  offsets-for-piece))
>   ))
> (if (null? siblings)
> (list orig)
> siblings)
> offsets-for-broken-pair)))
>ties all-offsets)))
>   ))


  #{
  \once \override TieColumn #'tie-configuration = #conf
  \once \override TieColumn #'after-line-breaking = #alb-func
  #}))

To be complete, you would need to extend this so that the
'tie-configuration override applies to tie columns across a line break as
well.  Of course you could easily modify what you have above.

In the attached file, I've approached the problem in a different way.
 Rather than combining the two overrides as you do, I use two separate
overrides.  This enables me to override 'tie-configuration with a music
function which I made to modify broken spanners in a generalized way.   (If
you want to see more examples of usage of \alterBroken I can attach a file
demonstrating it.)  My example isn't the greatest, since I didn't use
'tie-configuration to change any directions--meaning that it's simple to do
it all with \shapeTieColumn--but you get the idea.

[BTW, I love how it's now possible to put \once before a music function!]


> For completeness I created drafts for RepeatTieColumns and
> LaissezVibrerTieColumns. Note that after-line-breaking is reasonably not
> called, so I used before-line-breaking here:
>

Nice!  Thank you for doing this!

Best,
David


shape-tie-columns.ly
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: utf-8-strings

2012-07-08 Thread David Nalesnik
Hi Harm,

 I managed to drop about 300 lines, reducing
> it to a quarter of the original.
>

Unfortunately, I'm getting "Invalid UTF-8 string..." warnings when I run
your revised file.  (I don't with the original...)

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


Re: utf-8-strings

2012-07-08 Thread David Nalesnik
On Sun, Jul 8, 2012 at 8:00 AM, David Kastrup  wrote:

> Thomas Morley  writes:
>
> > 2012/7/8 David Nalesnik :
> >> Hi Harm,
> >>
> >>>  I managed to drop about 300 lines, reducing
> >>> it to a quarter of the original.
> >>
> >>
> >> Unfortunately, I'm getting "Invalid UTF-8 string..." warnings when I run
> >> your revised file.  (I don't with the original...)
> >>
> >> -David
> >
> > Hi David,
> >
> > are you sure?
> > I tested it with "2.15.39", "2.15.40" and "2.15.42" without any problem.
>
> I also had no problem, so I would assume that something went wrong with
> saving the attachment.


Ah, OK...  Unfortunately, I've have no idea what is happening to the
attachment, but I get the same errors whether I run the file with
LilyPondTool,. Frescobaldi, or on the command line.  Possibly it has
something to do with Windows XP; I don't know. The file works without a
hitch within LilyDev.

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


Re: utf-8-strings

2012-07-08 Thread David Nalesnik
On Sun, Jul 8, 2012 at 6:21 PM, Thomas Morley  wrote:

> 2012/7/9 David Kastrup :
> > David Nalesnik  writes:
> >
> >> On Sun, Jul 8, 2012 at 8:00 AM, David Kastrup  wrote:
> >>
> >>
> >>     Thomas Morley  writes:
> >>
> >> > 2012/7/8 David Nalesnik :
> >> >> Hi Harm,
> >> >>
> >> >>>  I managed to drop about 300 lines, reducing
> >> >>> it to a quarter of the original.
> >> >>
> >> >>
> >> >> Unfortunately, I'm getting "Invalid UTF-8 string..." warnings
> >> when I run
> >> >> your revised file.  (I don't with the original...)
> >> >>
> >> >> -David
> >> >
> >> > Hi David,
> >> >
> >> > are you sure?
> >> > I tested it with "2.15.39", "2.15.40" and "2.15.42" without any
> >> problem.
> >>
> >>
> >> I also had no problem, so I would assume that something went wrong
> >> with
> >> saving the attachment.
> >>
> >>
> >> Ah, OK...  Unfortunately, I've have no idea what is happening to the
> >> attachment, but I get the same errors whether I run the file with
> >> LilyPondTool,. Frescobaldi, or on the command line.  Possibly it has
> >> something to do with Windows XP; I don't know. The file works without
> >> a hitch within LilyDev.
> >
> > Then it is no problem with the attachment, and indeed, the error message
> > from LilyPond is
> >
> > "non-UTF-8 input"
> >
> > and not "Invalid UTF-8 string".  Likely a Pango error message.  So it is
> > probable that the regexp "." matches just single bytes in your case.
> > The interesting question is whether this is due to a different version
> > of the regex matching library, or due to a different locale.
> >
> > Here is how the character set in my system declares itself:
> >
> > out/bin/lilypond scheme-sandbox
> > GNU LilyPond 2.15.42
> > Processing `/usr/local/tmp/lilypond/out/share/lilypond/current/ly/
> scheme-sandbox.ly'
> > Parsing...
> > guile> (setlocale LC_CTYPE)
> > "en_US.UTF-8"
> > guile>
> >
>

I get the same setting as you using within LilyDev.  At the Windows command
prompt, I get:
"English_United States.1252"


> Setting
> export LANG=en_US
> and compiling the file gives:
>
>
> GNU LilyPond 2.15.42
> Processing `utf-8-strings-rev-03.ly'
> Parsing...
> (process:10496): Pango-WARNING **: Invalid UTF-8 string passed to
> pango_layout_set_text()
>
> (process:10496): Pango-WARNING **: Invalid UTF-8 string passed to
> pango_layout_set_text()
>
>
These are very similar to the warnings I get.  (Sorry, I really should have
quoted these to begin with...)

(lilypond.exe:2376): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()

(lilypond.exe:2376): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()

[ . . . ]

How would I go about changing the locale in my Windows system?

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


Re: utf-8-strings

2012-07-10 Thread David Nalesnik
Hi Harm,

On Tue, Jul 10, 2012 at 3:07 PM, Thomas Morley <
thomasmorle...@googlemail.com> wrote:

>
> (2) The code using the regexp library does not work with windows so
> far (perhaps never).
>

Unfortunately, I'm still having no luck with Windows XP. (@David Kastrup:
thank you for your suggestions and the link)  I will be able to try the
files on a Windows 7 system soon, and I'll let you know what happens...

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


Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-17 Thread david . nalesnik

Reviewers: ,

Description:
Add function for overriding broken spanners to LilyPond.

The music function \alterBroken is intended to facilitate overrides
applied independently to the pieces of broken spanners--one of the
perennial difficulties faced by users of LilyPond (addressed in
Extending 2.6:"Difficult Tweaks").  The function aims at generalization
by allowing the user to specify the name of the spanner and the property
to be overridden.

The function will override unbroken spanners, but it will ignore
non-spanners with a warning.

The function calls \override and may be prefaced by \once (or followed
by
a \revert of the relevant property).

Please review this at http://codereview.appspot.com/6397054/

Affected files:
  A input/regression/alter-broken.ly
  M ly/music-functions-init.ly
  M scm/music-functions.scm


Index: input/regression/alter-broken.ly
diff --git a/input/regression/alter-broken.ly  
b/input/regression/alter-broken.ly

new file mode 100644
index  
..4f03f4d6e7fd0899450afc4ad1bf853988535a09

--- /dev/null
+++ b/input/regression/alter-broken.ly
@@ -0,0 +1,45 @@
+\version "2.15.42"
+
+\header {
+  texidoc = "The command @code{\\alterBroken} may be used to override the
+pieces of a broken spanner independently.  The following example  
demonstrates

+its usage with a variety of data types."
+}
+
+\layout {
+  ragged-right = ##t
+}
+
+#(ly:expect-warning (_ "not a spanner name"))
+
+\relative c'' {
+  \alterBroken Slur #'positions #'((3 . 3) (5 . 5))
+  \alterBroken Slur #'color #'((0 0 1) (1 0 0))
+  \alterBroken Slur #'dash-definition #'( ((0 1 0.4 0.75))
+  ((0 0.5 0.4 0.75) (0.5 1 1 1)) )
+  d4( d' b g
+  \break
+  d d' b g)
+  \alterBroken "Staff.OttavaBracket" #'padding #'(1 3)
+  % Spaces in spanner's name are disregarded.
+  \alterBroken "Staff . OttavaBracket" #'style #'(line dashed-line)
+  \ottava #1
+  % It is possible to use procedures as arguments.
+  \alterBroken Hairpin #'stencil #`(
+,ly:hairpin::print
+,(lambda (grob)
+  (ly:stencil-rotate (ly:hairpin::print grob) -5 0 0)))
+  c\< d e
+  % Since `NoteHead' is not the name of a spanner, the following has no
+  % effect on layout.  A warning (suppressed here) is issued.
+  \alterBroken NoteHead #'color #`(,red ,blue)
+  \alterBroken Tie #'color #`(() ,blue)
+  \alterBroken Tie #'control-points #'(
+ ((1 . 3) (2 . 4) (3 . 4) (4 . 3))
+ ((3 . 3) (4 . 4) (5 . 4) (6 . 3))
+)
+  f~
+  \break
+  f c a f\!
+  \ottava #0
+}
Index: ly/music-functions-init.ly
diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly
index  
9f7fcf8f9623a9c09fab707a0d5027be28c8bbc1..7cfe965047bd2930991dd803d2e222686aaaf821  
100644

--- a/ly/music-functions-init.ly
+++ b/ly/music-functions-init.ly
@@ -85,6 +85,37 @@ markups), or inside a score.")
   'elements (list (make-music 'PageTurnEvent
   'break-permission 'allow

+alterBroken =
+#(define-music-function (parser location name property arg)
+  (string? scheme? list?)
+  (_i "Override @var{property} for pieces of broken spanner @var{name} with
+values @var{arg}.")
+  (let* ((name (string-delete name char-set:blank)) ; remove any spaces
+ (name-components (string-split name #\.))
+ (context-name "Bottom")
+ (grob-name #f))
+
+(if (> 2 (length name-components))
+(set! grob-name (car name-components))
+(begin
+  (set! grob-name (cadr name-components))
+  (set! context-name (car name-components
+
+;; only apply override if grob is a spanner
+(let ((description
+(assoc-get (string->symbol grob-name) all-grob-descriptions)))
+  (if (and description
+   (member 'spanner-interface
+   (assoc-get 'interfaces
+  (assoc-get 'meta description
+  #{
+\override $context-name . $grob-name $property =
+  #(value-for-spanner-piece arg)
+  #}
+  (begin
+(ly:input-warning location (_ "not a spanner name, `~a'")  
grob-name)

+(make-music 'SequentialMusic 'void #t))
+
 appendToTag =
 #(define-music-function (parser location tag more music)
(symbol? ly:music? ly:music?)
Index: scm/music-functions.scm
diff --git a/scm/music-functions.scm b/scm/music-functions.scm
index  
a1d5557b857043b7c1980e79b508608f97b06660..747acbc9be09b25e6715d0024f0b2c866b2cd7a0  
100644

--- a/scm/music-functions.scm
+++ b/scm/music-functions.scm
@@ -1747,3 +1747,23 @@ yourself."
   "Return a list of all pitches from @var{event-chord}."
   (map (lambda (x) (ly:music-property x 'pitch))
(event-chord-notes event-chord)))
+
+;;
+;; The following is used by the alterBroken function.
+
+(define-public ((value-for-spanner-piece arg) grob)
+  "Associate a piece of broken spanner @var{grob}

Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-18 Thread David Nalesnik
Hi Janek,

On Wed, Jul 18, 2012 at 12:22 AM, Janek Warchoł wrote:

> On Wed, Jul 18, 2012 at 12:43 AM,   wrote:
> > The function will override unbroken spanners, but it will ignore
> > non-spanners with a warning.
>
> What about things like clef change at a line break - is it possible to
> override them using this approach?  It would be nice if i could, for
> example, paint a clef before the break in pink :)
>

Right now the function weeds out non-spanners, so this won't work now.  But
undoubtedly you've tried making the clef before the line break pink :) so
you know it won't work!  The music function could easily be adapted to
check for 'break-aligned-interface too, but beyond that point I'd have to
give this some thought.  Perhaps this is a candidate for a different
function, and possibly the name \alterBroken should be changed to something
more precise?  (I thought \alterBrokenSpanner or \overrideBrokenSpanner
would be an awful lot to type.)

At the moment there's this snippet:
http://lsr.dsi.unimi.it/LSR/Item?id=775

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


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-18 Thread David Nalesnik
On Wed, Jul 18, 2012 at 3:18 PM, David Kastrup  wrote:

> Thomas Morley  writes:
>
> > 2012/7/18 Janek Warchoł :
> >> On Wed, Jul 18, 2012 at 8:18 PM, Thomas Morley
> >>  wrote:
> >>> 2012/7/18 Janek Warchoł :
>  I haven't seen it before - looks awesome :)
>  (however, it would be even more awesome if it was one general function
>  for all purposes ;) )
> >>>
> >>> I wrote this snippet a year ago.
> >>> Give me some days and perhaps I come up with sth more elaborated.
>

I took a look at this--I couldn't resist!!--and actually it wasn't too hard
to incorporate Harm's (very cool) snippet into \alterBroken.  I've attached
a file which shows how his example would be expressed with that command.

I really like the idea of expanding the function like this.  For one thing,
it's a little confusing that the original \alterBroken would work with
grobs like SystemStartBar (somewhat unexpectedly classed as a spanner) and
not with a clef and its end-of-the-line cautionary.

This is a draft and I'd like to look over these revisions a bit before I
amend the patch.

What do you think?

-David


spanners-and-breakable-items.ly
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-19 Thread David Nalesnik
Hi Janek,

The only thing that
> worries me is the indentation - there are some tabs used and
> Frescobaldi displays them wrong (i suppose you meant 1 tab to be equal
> to 4 spaces, not 8).
>

Oops!  Usually I remember to convert tabs to spaces (and trim whitespace
from the ends of lines), but
not here.


> The examples are nice and pretty much self-explanatory.
> If fact, the only thing i don't like is that backticks are necessary
> in syntax - but that's not your fault, i suppose :)  It's just that i
> get pwned every time i see a backtick in scheme code.
>

I agree.  If you're inserting lambda expressions, that's one thing, but for
something as simple as using color variables, it's a little bizarre.  This
is probably better:

 \once \alterBroken "Staff.BarLine" #'color #(list green red)

I wish you could do #'(green red) for the last argument, but you can't.


> LGTM :)
>

Thanks for taking a look!

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


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-19 Thread David Nalesnik
David,

Why does this have to be a list?  Why not just make it two separate
> arguments?
>
> If, for whatever reason, you really really really have this information
> in a two-element list called whatever, you can still write
>
> \once \alterBroken "Staff.BarLine" #'color #@whatever
>
>
It certainly makes sense to use multiple arguments instead of a list for a
music function that applies an override to a breakable item like a clef,
since there are only two pieces to consider.  However, the function is
designed to apply to spanners as well, and these of course may have more
than two pieces (e.g., SystemStartBar).  I know it’s possible to have music
functions with optional arguments, but are they able to accept an
indeterminate number of arguments, one for each potential spanner sibling?

Regarding optional arguments:  I’ve been experimenting, and I’ve hit
several stumbling blocks.  In the following (very contrived) example, I
expect that both key signatures will be green.  Both are when all arguments
are present.  When the optional argument is omitted, both should again be
green because (scheme? arg2) still returns #t.  Instead, both key
signatures disappear.  I don’t understand this behavior.

test =
#(define-music-function (parser location property arg1 arg2)
  (symbol? scheme? (scheme?))
  (display (scheme? arg2)) ; returns #t even if arg2 omitted
  #{
\once \override Staff.KeySignature $property =
  #(lambda (grob)
(if (eq? (ly:item-break-dir grob) LEFT)
arg1
(if (scheme? arg2) arg1)))
  #})

{
  c''1
  \break
  \test #'color #green #red
  %% key signatures disappear if following line used:
  %\test #'color #green
  \key cis \major
  cis''
}

My second quandary is the fact that (scheme? arg2) returns #t when arg2 is
omitted, so it appears useless as a criterion for whether an optional
argument is there or not..  (I’ve chosen scheme? as my predicate so the
generalized function can accept a wide variety of data types.)

Am I doing something wrong here?  Any guidance you could give me would be
much appreciated.

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


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-20 Thread David Nalesnik
David,

On Fri, Jul 20, 2012 at 12:38 AM, David Kastrup  wrote:

> David Nalesnik  writes:
>
> > David,
> >
> > Why does this have to be a list?  Why not just make it two
> > separate
> > arguments?
> >
> > If, for whatever reason, you really really really have this
> > information
> > in a two-element list called whatever, you can still write
> >
> > \once \alterBroken "Staff.BarLine" #'color #@whatever
> >
> > It certainly makes sense to use multiple arguments instead of a list
> > for a music function that applies an override to a breakable item like
> > a clef, since there are only two pieces to consider.  However, the
> > function is designed to apply to spanners as well, and these of course
> > may have more than two pieces (e.g., SystemStartBar).  I know it’s
> > possible to have music functions with optional arguments, but are they
> > able to accept an indeterminate number of arguments, one for each
> > potential spanner sibling?
>
> No.
>

OK--so it makes sense to keep the list structure for the override in the
\alterBroken function (if it in fact the function ought to accept both
spanners and breakable items, which seems natural to me).


>
> > Regarding optional arguments:  I’ve been experimenting, and I’ve hit
> > several stumbling blocks.  In the following (very contrived) example,
> > I expect that both key signatures will be green.  Both are when all
> > arguments are present.  When the optional argument is omitted, both
> > should again be green because (scheme? arg2) still returns #t.
> >  Instead, both key signatures disappear.  I don’t understand this
> > behavior.
> >
> > test =
> > #(define-music-function (parser location property arg1 arg2)
> >   (symbol? scheme? (scheme?))
>
> An optional argument can be skipped only if there is some place in the
> argument list where it can go.  So in final position, optional arguments
> are indistinguishable from mandatory arguments (actually not quite,
> since they make preceding optional arguments also mandatory).  You can,
> however, still explicitly skip them by writing \default in the actual
> argument list, like commands like \key and \mark let you do.
>

Ah, OK!  So (for the record) writing

\test #'color #blue \default

works perfectly with the test function.  And

\test #'color #@(list green red)

does too.



> scheme? is a catchall predicate.  It will gladly also take a music
> expression.  If you want a predicate that doesn't, write
> (define (nomusic? x) (not (ly:music? x)))
> and use that.  It will then throw an error in this case instead of
> setting the color to a key signature.
>

Seems so simple!


> > My second quandary is the fact that (scheme? arg2) returns #t when
> > arg2 is omitted, so it appears useless as a criterion for whether an
> > optional argument is there or not..  (I’ve chosen scheme? as my
> > predicate so the generalized function can accept a wide variety of
> > data types.)
>
> scheme? always returns #t.  At the current point of time, the only
> argument predicates specially coded into the parser are ly:pitch? and
> ly:duration? so they don't mix with scheme? syntactically.  This will at
> some point of time get removed as well.  It is just somewhat tricky to
> do.
>
> The advantage of not special-casing argument predicates is that you can
> write predicates markup-or-music? or number-or-markup? and similar, and
> they will work fine.  It is just pitches and durations that have been
> somewhat resistant against this unification.
>

Thanks very much for your explanations.  This is much clearer to me now.

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


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-20 Thread david . nalesnik



> 2012/7/18 Janek Warchoł :
>> (however, it would be even more awesome if it was one general

function

>> for all purposes ;) )


Considering this some more, I think it's best at the moment to restrict
the function to spanners.  The expanded function encompassing spanners
and breakable items appears to work just fine with the examples I
adapted from Harm's snippet.  However, I'm concerned about other
overridable properties, for example those made available through the
'break-aligned-interface:
http://www.lilypond.org/doc/v2.15/Documentation/internals/break_002daligned_002dinterface

If this patch proves successful, it could later be enhanced to include
breakable items after more study.

What do you think?

-David

http://codereview.appspot.com/6397054/
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Add function for overriding broken spanners to LilyPond. (issue 6397054)

2012-07-21 Thread David Nalesnik
David,

This use of \default for skipping optional arguments even in end
> position may appear a bit contrived.
>
> However, \key \default and \mark \default existed (hardwired in the
> parser) even before music functions ever heard of optional arguments, so
> I consider it an accomplishment to have made this preexisting syntax fit
> into a coherent whole.


+1

(Thank you for the many improvements you've made! )

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


push patch for issue 2679

2012-07-24 Thread David Nalesnik
Hi,

I don't have push ability, so would someone who does please push my patch
for issue 2679 ("Add function for overriding broken spanners to LilyPond")
for me?

Thanks so much,
David
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
On Tue, Jul 24, 2012 at 8:56 AM, David Kastrup  wrote:

> "Phil Holmes"  writes:
>
> > I get the patch fails to apply - presumably because
> > music-functions.scm has been updated twice since the patch was
> > created?  Does this mean it needs rebasing, or somesuch?
>
> Likely.


So, in this case, would I do something like:

git pull -r

then submit a new patch set?

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
David,


> >
> > So, in this case, would I do something like:
> >
> > git pull -r
> >
> > then submit a new patch set?
>
> That's probably the easiest way.  You'll likely get a merge conflict
> with instructions.  Personally, I use Emacs and
>
> M-x smerge-ediff RET
>
> on the problematic file(s) for fixing the merge conflicts.  But any
> editor should do if you search for < the merge conflict marks.
>

OK, I get the merge conflict.

Is there any reason I can't manually remove the markers for the merge
conflict, namely the lines:

 <<< HEAD

===

>>> Function for overriding broken spanners


then continue on with the instructions I've been given:

git rebase --continue


?

(Please excuse my ignorance--working with git is quite new to me...)

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
David,

>
> > Is there any reason I can't manually remove the markers for the merge
> > conflict, namely the lines:
> >
> >  <<< HEAD
> >
> > ===
> >
>  Function for overriding broken spanners
>
> If the result is the intended result, sure.  You are getting the merge
> conflict because the history introduced changes on the same lines as you
> did.  If both changes only added lines, the conflict mainly consists in
> making a decision which lines are to go first in the resulting file.
>
> > then continue on with the instructions I've been given:
> >
> > git rebase --continue
>
> Likely.
>

OK, I succeeded in doing this and uploaded a new patch set.  I'm going to
redo this now as I see I failed to delete two newlines...

Thank you for your assistance.

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
> OK, I succeeded in doing this and uploaded a new patch set.  I'm going to
> redo this now as I see I failed to delete two newlines...
>
>
OK, all should be well now.  Patch corrected.

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
On Tue, Jul 24, 2012 at 11:34 AM, Graham Percival
wrote:

> On Tue, Jul 24, 2012 at 05:26:01PM +0100, Phil Holmes wrote:
> > I'd be happy to push this, but would like a little advice.  If I
> > go to Rietveld and download the raw patch set, it comes without
> > proper email addresses and formatting.  This means to push stuff
> > from Rietveld, I have to git apply the diff, then manually
> > update the author (assuming I remember).  Is there a way of
> > getting a formatted patch?
>
> Don't apply things directly from Rietveld.  Due to the problems
> that you discovered, we can only use it as a reviewing tool, not a
> patch management tool.
>
> David Nalesnik should send you the file he gets from
> git format-patch, after he fixed all merge conflicts etc.
>

Arggh...sorry for making a hash of this :(  Hopefully, this patch will be
properly formatted...

-David


0001-Function-for-overriding-broken-spanners.patch
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
David,

On Tue, Jul 24, 2012 at 11:50 AM, David Kastrup  wrote:

> David Nalesnik  writes:
>
> > On Tue, Jul 24, 2012 at 11:34 AM, Graham Percival
> >  wrote:
> >
> > On Tue, Jul 24, 2012 at 05:26:01PM +0100, Phil Holmes wrote:
> > > I'd be happy to push this, but would like a little advice.  If I
> > > go to Rietveld and download the raw patch set, it comes without
> > > proper email addresses and formatting.  This means to push stuff
> > > from Rietveld, I have to git apply the diff, then manually
> > > update the author (assuming I remember).  Is there a way of
> > > getting a formatted patch?
> >
> >
> > Don't apply things directly from Rietveld.  Due to the problems
> >     that you discovered, we can only use it as a reviewing tool, not a
> > patch management tool.
> >
> > David Nalesnik should send you the file he gets from
> > git format-patch, after he fixed all merge conflicts etc.
> >
> >
> > Arggh...sorry for making a hash of this :(  Hopefully, this patch will
> > be properly formatted...
>
> Yup.  A matter of personal taste (you can do that just with git commit
> --amend): the commit message is
>
> [PATCH] Function for overriding broken spanners
>
> We don't commit anything other than patches.  That's redundant.  But
>
> Issue 2679: Function for overriding broken spanners
>
> would make it easier to find the corresponding issue in case one needs
> to revisit the commit at one point of time.
>

I just tried to change the commit message as you said.  When I check the
amended patch, however, the subject line at the top of the file is:

Subject: [PATCH] Issue 2679: Function for overriding broken spanners

Apparently, [PATCH] is added automatically when I make a new patch with the
LilyDev interface.  (It doesn't appear in nano.)  I can, of course, just
remove "[PATCH]" manually and save.

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
On Tue, Jul 24, 2012 at 12:05 PM, David Kastrup  wrote:

> David Nalesnik  writes:
>
> > Arggh...sorry for making a hash of this :(
>
> By the way, you aren't.  You are dealing with flexible and powerful
> tools in action, and keeping up surprisingly well.  That's the reason
> nobody pipes up and says "I'll take it up from here and do all the rest,
> thank you", but rather people continue explaining how to do the next
> step using the available tools.
>
> Sure, the tools are in a better shape than when I was showing myself to
> the ropes.  But it took me much much longer.
>
> And frankly: I can't make the backend do the things you make them do in
> a reasonable amount of time.  I am more like a car mechanic, and it is
> nice seeing somebody who actually manages to drive that thing.
>
>
Thank you--this means quite a lot to me!

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
Phil,

On Tue, Jul 24, 2012 at 12:07 PM, Phil Holmes  wrote:

> **
> Pushed as 
> f7085cf9b2ff111b7d30c8a59e367c771a7e3c52.
> Patchy is now running.
>

Thank you very much for doing this!

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


Re: push patch for issue 2679

2012-07-24 Thread David Nalesnik
On Tue, Jul 24, 2012 at 12:57 PM, David Kastrup  wrote:
>
> "Phil Holmes"  writes:
>
> > BTW - apologies for top-posting and that, but my Windows email system
> > takes your mails as HTML and does this with them.
>
> His mails contain HTML and plain text as alternatives, and Gnus (which I
> use as my mail reader) lets me choose.  In general, anything with code
> in it is better handled using ASCII, since my HTML formatter rather
> lavishly applies line breaks and unbreakable spaces and similar things.
>
> If the mail reader has an option sending text-only mails (no HTML), that
> will usually be the preferred form on mailing lists.
>

Gmail has an plain-text option (which I'm using now), so this message
shouldn't contain any HTML.  I'll make sure to use this with Lilypond
correspondence from now on.

-David

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


installing needed file within LilyDev

2012-09-09 Thread David Nalesnik
Hi all,

I'm trying to compile the latest master within LilyDev, and I'm
running into a problem when I try to prepare the build directory.  I
get the following error:

ERROR: Please install required programs:  lh CTAN package
(texlive-lang-cyrillic or texlive-texmf-fonts)

Can someone give me pointers on what to do at this point?  I'm unsure
where the needed files ought to go and how to get them installed there
correctly...

Thanks so much,
David

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


Re: installing needed file within LilyDev

2012-09-09 Thread David Nalesnik
Phil,

On Sun, Sep 9, 2012 at 10:24 AM, Phil Holmes  wrote:

> I suspect this might be relevant:
>
> http://code.google.com/p/lilypond/issues/detail?id=2742
>

Piece of cake!

Thank you very much,
David

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


Re: [GLISS] turn xxx.yyy into ("xxx" "yyy")

2012-09-12 Thread David Nalesnik
On Wed, Sep 12, 2012 at 3:38 AM, David Kastrup  wrote:

[...]

>
> Basically, if a music function wants to provide a shorthand for an
> override, not being able to specify an optional context is a nuisance.
> I currently have just the same problem writing a \hide function that is
> supposed to be a shortcut for \override ??? #'stencil = ##f .
>
> Using periods to build a string list seems reasonably straightforward to
> me.  It would happen in the parser rather than the lexer, so spaces are
> allowed and it should not cause conflicts with chord modifiers and other
> awkward stuff.
>
> What do you think?
>

This would be a welcome change.  Besides eliminating the need for
string manipulation to get at the name of the context, this would
bring the syntax of \alterBroken and \overrideProperty more in line
with \override (though of course there's still the matter of the =
sign).

-David

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


Re: Doc: improve documentation of Bézier curves (2858) (issue 6561064)

2012-09-28 Thread david . nalesnik

Trevor--

Thank you so much for taking this on!  I've been pecking at documenting
this for awhile, but got hung up on finding the perfect examples... What
you have is clearer than what I cam up with.


https://codereview.appspot.com/6561064/diff/1/Documentation/notation/changing-defaults.itely
File Documentation/notation/changing-defaults.itely (right):

https://codereview.appspot.com/6561064/diff/1/Documentation/notation/changing-defaults.itely#newcode4027
Documentation/notation/changing-defaults.itely:4027:
Perhaps at this point it would be helpful to include an example of
\shape applied to a curve across a line break.  Something like this:

"The \shape function can also displace the control points of curves
which stretch across line breaks.  Each piece of the broken curve can
receive its own list of offsets.  In case changes to a particular
segment are not needed, the empty list can serve as a placeholder."

\relative c'' {
  % () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
  \shape Slur #'(() ((0.5 . -1.5) (1 . 0.5) (0 . 0.5) (0 . -1.5)))
  c4( f g c
  \break
  d,4 c' f, c)
}

\layout {
  ragged-right = ##t
}

https://codereview.appspot.com/6561064/

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


Allow \shape to tweak music, swap its arguments (issue 6585052)

2012-10-02 Thread david . nalesnik

LGTM


https://codereview.appspot.com/6585052/diff/1/input/regression/shape-other-curves.ly
File input/regression/shape-other-curves.ly (right):

https://codereview.appspot.com/6585052/diff/1/input/regression/shape-other-curves.ly#newcode18
input/regression/shape-other-curves.ly:18: \override PhrasingSlur
#'color = #blue
I wonder if it would be helpful to alter one or two of the following
applications of the function as override to the tweak form.

https://codereview.appspot.com/6585052/diff/1/input/regression/shape-slurs.ly
File input/regression/shape-slurs.ly (right):

https://codereview.appspot.com/6585052/diff/1/input/regression/shape-slurs.ly#newcode19
input/regression/shape-slurs.ly:19: g,8 f' e d c2)
What about adding a demonstration here of the ability to modify curves
beginning at the same timestep?  So possibly insert here something like
the following (paired with the alteration I've added below):

\break
\acciaccatura b8^( cis4 cis' fis, gis)

https://codereview.appspot.com/6585052/diff/1/input/regression/shape-slurs.ly#newcode33
input/regression/shape-slurs.ly:33: g,8 f' e d c2)
\break
\shape #'((0 . 0) (-0.1 . -0.25) (0.1 . -0.25) (0 . -0.25)) Slur
  \acciaccatura b8
-\shape #'((-0.5 . 0.5) (0 . 0.5) (0 . 0) (0 . 0)) ^( cis4 cis' fis,
gis)

https://codereview.appspot.com/6585052/

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


Re: Allow \shape to tweak music, swap its arguments (issue 6585052)

2012-10-03 Thread david . nalesnik

On 2012/10/03 13:57:25, dak wrote:

[...]


To those suggestions let me answer with the famous answer to the

question "Mr

Gandhi, what do you think of Western civilization?", namely with "I

would

consider it a good idea."


Oh, for just one zinger like that...


So the best I think I can do at the moment
is to crosslink your suggestion to issue 2858 (which is about

documenting

\shape) and see how and when and where Trevor thinks it should be

incorporated.

OK, thanks for doing this.  Here I was simply thinking that the reg
tests should cover as many situations as possible (within a modest
length), but I suppose that the changes I proposed aren't testing
anything that isn't covered elsewhere ("Tweaks work!")


https://codereview.appspot.com/6585052/

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


Re: Allow \shape to tweak music, swap its arguments (issue 6585052)

2012-10-03 Thread david . nalesnik

On 2012/10/03 15:17:26, dak wrote:

[...]


and I am currently immersed in parser work to make the

Context.GrobName thing

fly.


Thank you very much for working on this!  I am looking forward to being
able to fix the mess at the beginning of \alterBroken (and a general
offsetting function I hope to put up for comments at some point).


So any actual git-format-patch proposals to be folded into this issue

or

as a separate add-on issue would be more than welcome.  And it is

never wrong to

have the regtests for one feature test all aspects of that feature,

and not rely

on something else to prove that.


OK, I think I'll wait till this patch and the Trevor's documentation
patch is through, and then I'll create a new issue for the regtests.  I
may simply leave these two as they are, and add a short test along the
lines of, "\shape works independently on curves beginning at the same
timestep."



https://codereview.appspot.com/6585052/

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


Re: Doc: improve documentation of Bézier curves (2858) (issue 6561064)

2012-10-06 Thread david . nalesnik

Trevor--

This looks great to me.  I like the reordering, and I think the
explanations are very clear.

I've tweaked the curves a little in the examples (do what you like with
my suggestions!), but otherwise:

LGTM.


https://codereview.appspot.com/6561064/diff/6001/Documentation/notation/changing-defaults.itely
File Documentation/notation/changing-defaults.itely (right):

https://codereview.appspot.com/6561064/diff/6001/Documentation/notation/changing-defaults.itely#newcode4014
Documentation/notation/changing-defaults.itely:4014: @end lilypond
The PhrasingSlur looks a little distorted to me here.  What about
changing the example to something like this:

\relative c'' {
  c8(\( a) a'4 e c\)
  \shape #'((0.8 . -0.5) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
  \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
  c8(\( a) a'4 e c\)
}

https://codereview.appspot.com/6561064/diff/6001/Documentation/notation/changing-defaults.itely#newcode4052
Documentation/notation/changing-defaults.itely:4052: @end lilypond
I think the shaped PhrasingSlur should hug the contour of the line a
little more closely here.  I think this still shows collision avoidance
working with the accent marks:

\relative c'' {
  c8( e b-> f d' a e-> g)
  \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5))
PhrasingSlur
  c8\( e b-> f d' a e-> g\)
}

https://codereview.appspot.com/6561064/diff/6001/Documentation/notation/changing-defaults.itely#newcode4091
Documentation/notation/changing-defaults.itely:4091: @end lilypond
I think that the slurs shouldn't touch the notes in the alternatives.
Maybe the values here are too fine (whole numbers and 0.5 look nice as
input), but see what you think:

\relative c'' {
  c1
  \repeat volta 3 { c4 d( e f }
  \alternative {
{ g2) d }
{
g2
% create a slur and move it to a new position
-\tweak #'control-points #'((-2 . 3.7) (-1 . 4) (0 . 4) (1 . 3.4)) (
<> )
f,
}
{
e'2
% create a slur and move it to a new position
-\tweak #'control-points #'((-2 . 2.8) (-1 . 3.2) (0 . 3.2) (1 .
2.4)) ( <> )
f,
}
  }
}

https://codereview.appspot.com/6561064/

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


Re: Doc: improve documentation of Bézier curves (2858) (issue 6561064)

2012-10-07 Thread david . nalesnik

LGTM.

And thanks again for doing this!

-David

https://codereview.appspot.com/6561064/

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


Re: LilyPond 2.17.4 released

2012-10-08 Thread David Nalesnik
On Mon, Oct 8, 2012 at 7:19 AM, Joseph Rushton Wakeling
 wrote:

> -
> This version contains work in progress.  You will have access to the very
> latest features, but some may be incomplete, and you may encounter bugs and
> crashes. If you require a stable version of Lilypond, we recommend using the
> 2.16 version.
> -

+1

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


Re: [GLISS] turning strings to symbols (was: Issue 2883)

2012-10-11 Thread David Nalesnik
David,

On Thu, Oct 11, 2012 at 1:27 PM, David Kastrup  wrote:

[...]

> But the _point_ of the _invasive_ patch and convert-ly rules was to get
> feedback about what people think about a language change that
> essentially makes it unnecessary for users to write symbols like #'xxx
> or to even know the difference between symbols and strings, regardless
> of whether we are talking about using commands hard-wired into the
> parser or music functions.

Though I don't particularly mind writing cryptic symbols like #'xxx
anymore (by now they're my old friends), I'm pretty sure I did as I
was struggling to learn the program.  Eliminating the need for these
(at least partially) will definitely help attract new users to the
program.  Of course, there will still be plenty of head-scratching
among beginners at needing the hash (not to mention that inscrutable
apostrophe) before the value in overrides.  But that, I imagine, can't
be helped.

>And of course also to give \override-like
> music functions the option to get input like Staff.TimeSignature
> delivered as #'(Staff TimeSignature) automagically.

This is wonderful.  Thank you so much for doing this!

> So far, the attempt to get feedback on this language change has failed
> spectacularly, but that is the point of the current review at
> http://codereview.appspot.com/6635050>.

My inattention is only because this comes at a very busy time in the
teaching year for me.  But I would like to tell you that I approve
very much of these changes.

-David

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


Re: Still alive

2012-10-11 Thread David Nalesnik
On Thu, Oct 11, 2012 at 6:11 PM, Valentin Villenave
 wrote:
> On Tue, Oct 9, 2012 at 8:19 AM, m...@mikesolomon.org
>  wrote:
>> Just a quick ping to let you know that I'm not dead - I've been swamped w/ 
>> work recently and just got engaged so I'm planning out a wedding (w00t!).
>

Congratulations, Mike!!

Best wishes,
David

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread David Nalesnik
On Sat, Oct 13, 2012 at 6:39 AM, David Kastrup  wrote:
> "Phil Holmes"  writes:
>
>> Surely this points to the pop operation in \override as being at
>> fault?  If \override was simply push, rather than pop-push then the
>> code above would seem to work as intended.
>
> Sure.  The idea presumably was not to have stack buildup from things
> like
>
> \voiceOne c c \voiceTwo d d \voiceThree c c
>

Buildup of unwanted data or no, it would be useful to be able to write
something like

\toLast Accidental #'color

to restore the previous override

and \revert to restore the defaults

-David

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread David Nalesnik
On Sat, Oct 13, 2012 at 8:15 AM, David Kastrup  wrote:
> David Nalesnik  writes:

>>
>> Buildup of unwanted data or no, it would be useful to be able to write
>> something like
>>
>> \toLast Accidental #'color
>>
>> to restore the previous override
>
> But which is the "previous override" if you have several in a row?
>

I see your point.  I simply meant the immediately preceding override.  So:

\override Accidental color = #green
\override Accidental color = #red
\override Accidental color = #blue
[...]
\toLast Accidental color

would restore red

-David

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread David Nalesnik
On Sat, Oct 13, 2012 at 8:29 AM, David Kastrup  wrote:

[...]
>
> \override Accidental color = #green
> \override Accidental color = #red
> \push\override Accidental color = #blue
> [...]
> \revert Accidental color
>
> or, if you prefer
> \override Accidental color = #green
> \override Accidental color = #red
> \temporary\override Accidental color = #blue
> [...]
> \revert Accidental color
>
> \revert will go back to the value before the last \temporary/push
> override.
>

OK, I see,

I'm definitely a fan of \temporary here.

-David

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


problem uploading a patch

2012-10-16 Thread David Nalesnik
Hi,

I'm trying to upload a patch created in a branch to Rietveld, but I
seem to be creating an unholy mess.  I attempted to run
git-cl upload master
within my branch, but I end up with a huge list of recent commits not
my own.  The same thing happened when I ran
git format-patch master
and earlier, when I tried to merge several commits with
git rebase -i master

I'm not sure what's going on here.

I did manage to get a .patch file with my commits (in the midst of
dozens of others).  Is there a simple command to upload this to
Rietveld?

Thanks,
David

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


Re: problem uploading a patch

2012-10-16 Thread David Nalesnik
Hi Phil,

On Tue, Oct 16, 2012 at 3:11 PM, Phil Holmes

[...]

> If you have a record of changes you've made, then I tend to use
>
>git reset --hard origin/master
> which takes you back to the current state of master, and then
>git am your.patch
>
> which applies the patch you have.  Follow this with
>
>git cl issue your_issue_number
>
> in case git cl is confused, and finally
>
>git cl upload

Everything went fine until this point, but then I get a number of errors:

david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl issue 2445
Issue number: 2445 (http://codereview.appspot.com/2445)
david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl upload
Unable to determine default branch to diff against.
Either pass complete "git diff"-style arguments, like
  git cl upload origin/master
or verify this branch is set up to track another (via the --track argument to
"git checkout -b ...").
david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl
upload origin/master
 input/regression/measure-counter.ly |   41 
 ly/spanners-init.ly |4 +
 scm/define-event-classes.scm|6 +-
 scm/define-grob-interfaces.scm  |5 ++
 scm/define-grob-properties.scm  |1 +
 scm/define-grobs.scm|   18 +
 scm/define-music-types.scm  |5 ++
 scm/music-functions.scm |  117 +++
 8 files changed, 194 insertions(+), 3 deletions(-)
This branch is associated with issue 2445. Adding patch to that issue.
Traceback (most recent call last):
  File "/home/david/bin/git-cl", line 888, in 
sys.exit(main(sys.argv))
  File "/home/david/bin/git-cl", line 882, in main
return func(argv[2:])
  File "/home/david/bin/git-cl", line 584, in CmdUpload
desc = cl.GetDescription()
  File "/home/david/bin/git-cl", line 278, in GetDescription
self.description = urllib2.urlopen(url).read().strip()
  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
  File "/usr/lib/python2.6/urllib2.py", line 397, in open
response = meth(req, response)
  File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.6/urllib2.py", line 435, in error
return self._call_chain(*args)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found


I have no idea what's going on here :(  I don't want to nuke the build
directory and start again, branch-free.  Hopefully there's another
option!

-David

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


Re: problem uploading a patch

2012-10-16 Thread David Nalesnik
Hi Phil.

> david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl issue 2445
> Issue number: 2445 (http://codereview.appspot.com/2445)
> david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl upload
> Unable to determine default branch to diff against.
> Either pass complete "git diff"-style arguments, like
>   git cl upload origin/master
> or verify this branch is set up to track another (via the --track argument to
> "git checkout -b ...").
> david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl
> upload origin/master
>  input/regression/measure-counter.ly |   41 
>  ly/spanners-init.ly |4 +
>  scm/define-event-classes.scm|6 +-
>  scm/define-grob-interfaces.scm  |5 ++
>  scm/define-grob-properties.scm  |1 +
>  scm/define-grobs.scm|   18 +
>  scm/define-music-types.scm  |5 ++
>  scm/music-functions.scm |  117 
> +++
>  8 files changed, 194 insertions(+), 3 deletions(-)
> This branch is associated with issue 2445. Adding patch to that issue.
> Traceback (most recent call last):
>   File "/home/david/bin/git-cl", line 888, in 
> sys.exit(main(sys.argv))
>   File "/home/david/bin/git-cl", line 882, in main
> return func(argv[2:])
>   File "/home/david/bin/git-cl", line 584, in CmdUpload
> desc = cl.GetDescription()
>   File "/home/david/bin/git-cl", line 278, in GetDescription
> self.description = urllib2.urlopen(url).read().strip()
>   File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
> return _opener.open(url, data, timeout)
>   File "/usr/lib/python2.6/urllib2.py", line 397, in open
> response = meth(req, response)
>   File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
> 'http', request, response, code, msg, hdrs)
>   File "/usr/lib/python2.6/urllib2.py", line 435, in error
> return self._call_chain(*args)
>   File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
> result = func(*args)
>   File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
> urllib2.HTTPError: HTTP Error 404: Not Found
>

Looking into this further, I discovered a thread where Harm ran into a
similar situation:
http://www.mail-archive.com/lilypond-devel@gnu.org/msg47866.html

It's clearly not the same error, but it prompted me to look at the way
git cl is configured.  I get:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git://git.sv.gnu.org/lilypond.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[rietveld]
server = codereview.appspot.com
cc = lilypond-devel@gnu.org
[branch "dev/measure_counter"]
rietveldissue = 2445
[gui]
wmstate = normal


Is everything here OK?  I even tried adding http://  before the server
address, but this led to

[...]

File "/usr/lib/python2.6/httplib.py", line 682, in _set_hostport
raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
httplib.InvalidURL: nonnumeric port: ''


No idea what to do :(

-David

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


Re: problem uploading a patch

2012-10-17 Thread David Nalesnik
David,

On Wed, Oct 17, 2012 at 12:44 AM, David Kastrup  wrote:

> Try git rebase origin first

I tried this, and this is what happened:

david@david-desktop ~/lilypond-git (dev/measure_counter)$ git rebase origin
fatal: Needed a single revision
invalid upstream origin

Should I try something like
git rebase origin/master ?

-David

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


Re: problem uploading a patch

2012-10-17 Thread David Nalesnik
Julien,

On Wed, Oct 17, 2012 at 1:33 AM, Julien Rioux
 wrote:
> On 16/10/2012 4:36 PM, David Nalesnik wrote:
>>
>> david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl issue
>> 2445
>> Issue number: 2445 (http://codereview.appspot.com/2445)
>
>
> This should be the issue number from the Rietveld page, not the one from
> google code page.
>

OK, I see.  Thanks!

I figured that I'd need to create the Rietveld issue first, which I
attempted to do using the issue creation form.  Unfortunately, I can't
get past the requirement for a url or uploaded file.  What should I do
here?

-David

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


Issue 2445: Add measure counter to LilyPond (issue 6730044)

2012-10-17 Thread david . nalesnik

Reviewers: ,

Message:
Please review.

Thanks!

-David

Description:
Issue 2445: Add measure counter to LilyPond

This patch allows the user to number groups of successive measures,
which
is useful as an aid to the performer in keeping track of repetitions.
There
is no requirement that the counted measures be repeated, however.  The
number is centered on the measure (discounting prefatory material),
above
the staff by default.

A new grob, a spanner called `MeasureCounter,' is created.  Each element
of
a count is an independent instance of this grob.  A new event-class,
`measure-
counter-event,' is also defined.

At present, the engraver, `Measure_counter_engraver,' must be added
to the relevant context (probably Staff) in the .ly file.  This engraver
has been written in Scheme, following the precedent of
`Span_stem_engraver.'

The user uses the commands `\startMeasureSpanner' and
`\stopMeasureSpanner'
to frame the measures to count.  The initial number is read from a
new grob-property, 'count-from, which may be overridden.

Please review this at https://codereview.appspot.com/6730044/

Affected files:
  A input/regression/measure-counter.ly
  M ly/spanners-init.ly
  M scm/define-event-classes.scm
  M scm/define-grob-interfaces.scm
  M scm/define-grob-properties.scm
  M scm/define-grobs.scm
  M scm/define-music-types.scm
  M scm/music-functions.scm



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


Re: problem uploading a patch

2012-10-17 Thread David Nalesnik
David,

On Wed, Oct 17, 2012 at 8:04 AM, David Kastrup  wrote:
> David Nalesnik  writes:
>
>> Julien,
>>
>> On Wed, Oct 17, 2012 at 1:33 AM, Julien Rioux
>>  wrote:
>>> On 16/10/2012 4:36 PM, David Nalesnik wrote:
>>>>
>>>> david@david-desktop ~/lilypond-git (dev/measure_counter)$ git cl issue
>>>> 2445
>>>> Issue number: 2445 (http://codereview.appspot.com/2445)
>>>
>>>
>>> This should be the issue number from the Rietveld page, not the one from
>>> google code page.
>>>
>>
>> OK, I see.  Thanks!
>>
>> I figured that I'd need to create the Rietveld issue first, which I
>> attempted to do using the issue creation form.
>
> No, git cl does that automatically.
>
>> Unfortunately, I can't get past the requirement for a url or uploaded
>> file.  What should I do here?
>
> Probably you have done too much already.  If you don't have a Google
> issue created as a result of all the hassle so far (check the issue
> tracker), your best bet is likely to clear the issue again with
> git cl issue 0
> (I believe) and then restart with git cl upload, answering all questions
> except for your credentials just with return.
>

I did:

git rebase origin/master
git cl upload origin/master

and it worked like a charm.  The patch is uploaded, associated with
the right issue, and the announcement is sent.  Thanks so much for
your help!

-David

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


Re: problem uploading a patch

2012-10-17 Thread David Nalesnik
Julien,

On Wed, Oct 17, 2012 at 9:25 AM, Julien Rioux
 wrote:

> $ git cl issue 0
>
> to reset (remove any association to a Rietveld issue)
>
> $ git cl upload origin/master
>
> to upload (given that the branch is no longer associated to a Rietveld
> issue, it will create a new Rietveld issue)
>

Thanks, I managed to upload the patch successfully!

-David

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


Re: Issue 2445: Add measure counter to LilyPond (issue 6730044)

2012-10-24 Thread david . nalesnik

Thanks for your review, Janek!


https://codereview.appspot.com/6730044/diff/10001/input/regression/measure-counter-broken.ly
File input/regression/measure-counter-broken.ly (right):

https://codereview.appspot.com/6730044/diff/10001/input/regression/measure-counter-broken.ly#newcode6
input/regression/measure-counter-broken.ly:6: enclosed in parentheses."
On 2012/10/24 10:37:08, janek wrote:

Do you mean that the number before the break is not parenthesized, and

the

number of the part after the break is parenthesized?
It may be worth rewording this sentence.


Done.

https://codereview.appspot.com/6730044/diff/10001/scm/define-event-classes.scm
File scm/define-event-classes.scm (right):

https://codereview.appspot.com/6730044/diff/10001/scm/define-event-classes.scm#newcode49
scm/define-event-classes.scm:49: tremolo-span-event tuplet-span-event))
On 2012/10/24 10:37:08, janek wrote:

i think there's something wrong with the indentation here, but

considering how

nitpicking about indentation didn't do us any good in the past i'm

leaning

towards not caring about it.


Yes, it looks pretty bad, and the original doesn't appear to be right
either.  I made this consistent with `rhythmic-event' below.

https://codereview.appspot.com/6730044/diff/10001/scm/define-grob-properties.scm
File scm/define-grob-properties.scm (right):

https://codereview.appspot.com/6730044/diff/10001/scm/define-grob-properties.scm#newcode204
scm/define-grob-properties.scm:204: (count-from ,integer? "The number
beginning a measure count.")
On 2012/10/24 10:37:08, janek wrote:


I mean, count-from could work either like this
{
   \override MeasureCount count-from = 3
   \startMeasureCount
   a1 % no number
   b1 % no number
   a1 % 3
   b1 % 4
}
or like this
{
   \override MeasureCount count-from = 3
   \startMeasureCount
   a1 % 3
   b1 % 4
   a1 % 5
   b1 % 6
}


The second example above is the way it works.  Hopefully my revisions
make this a bit clearer!

https://codereview.appspot.com/6730044/diff/10001/scm/scheme-engravers.scm
File scm/scheme-engravers.scm (right):

https://codereview.appspot.com/6730044/diff/10001/scm/scheme-engravers.scm#newcode27
scm/scheme-engravers.scm:27: spanners.  Each spanner is bounded by the
first command column of successive
On 2012/10/24 10:37:08, janek wrote:

what is a command column?


In the IR we find:

currentCommandColumn (graphical (layout) object)
Grob that is X-parent to all current breakable (clef, key signature,
etc.) items.

I changed the capitalization and enclosed it in @code{ } elsewhere.
Hope this makes it clearer (or a search more fruitful).

https://codereview.appspot.com/6730044/diff/10001/scm/scheme-engravers.scm#newcode61
scm/scheme-engravers.scm:61: ; if this is not done, _all_ command
columns will be numbered
On 2012/10/24 10:37:08, janek wrote:

so, sometimes all command columns will be nubmered?



or do you mean that the code needs to make sure that we're in a new

bar because

if it didn't, all command columns would be numbered and that's

something we

don't want?


Yes, exactly.  If this check weren't in place, you would get many many
numbers.


In other words, maybe "_all_ command columns would be numbered" would

be a

better wording?



Yes, it would.  I made some more substantial changes here.

https://codereview.appspot.com/6730044/diff/10001/scm/scheme-engravers.scm#newcode67
scm/scheme-engravers.scm:67: ; first column of measure, even if grace
notes appear?
On 2012/10/24 10:37:08, janek wrote:

umm, i don't understand.  Is it a question about what this code

actually does?

Or some kind of rhethoric-question-comment? ;)


Oh, I was just mimicking the variable name with its question mark.  The
comment refers to the need to check for the first column of the measure.
 I made this a little less chatty :)

https://codereview.appspot.com/6730044/

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


Re: Issue 2445: Add measure counter to LilyPond (issue 6730044)

2012-10-25 Thread david . nalesnik

On 2012/10/24 20:28:36, janek wrote:

On Wed, Oct 24, 2012 at 4:10 PM,   wrote:
> Also, should we include
>
> Measure_counter_engraver
>
> in the Staff context by default?
>
> (it'd make documenting it simpler in the @lilypond if nothing else

:) )


+1 from me :)
Janek


OK--done!

https://codereview.appspot.com/6730044/

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


Change \alterBroken interface to match that of other tweak/overrides (issue 6784063)

2012-10-28 Thread david . nalesnik

LGTM!

Thanks very much for doing this, David.

https://codereview.appspot.com/6784063/

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


Re: Issue 2445: Add measure counter to LilyPond (issue 6730044)

2012-10-31 Thread david . nalesnik

David,

I don't mind making the changes, but I'm running into some problems.  I
used git pull -r before making a patch set and uploading to rietveld,
but looking over the patch set there I see that other changes have found
their way in--including your check-grob-path function.

I'm probably making some silly error here, and I appreciate any advice
you can give me for this.  (Unfortunately, I probably won't be able to
get this until some hours from now.)

https://codereview.appspot.com/6730044/

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


Re: Issue 2445: Add measure counter to LilyPond (issue 6730044)

2012-10-31 Thread david . nalesnik

Thank you--I am a bit worried!

Speaking of "patch," when I run git format-patch I get six separate
patches.  Is there any way to compress them into one so this is more
convenient for you?

-David

https://codereview.appspot.com/6730044/

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


Re: new markup-comand `draw-dashed-line´ was: lilypond-user Digest, Vol 119, Issue 90

2012-11-03 Thread David Nalesnik
Hi Harm,

On Thu, Nov 1, 2012 at 9:57 AM, Thomas Morley
 wrote:

> Hi David (N),
>
> attached my first try.
>
> If the markup-property full-length is set #t, some calculations ensure
> that no space occurs at line-end/begin. Some dashes will only be
> partly visible, but I think its ok.
> In addition I wrote a top-level-testing-function to minimize typing.
>
> Some comments are added.
> But I have no clue why I need 13 as a factor in a specific calculation.

I'm not sure.  Could it have something to do with 'blot-diameter of
the rounded edges?

>
> What do you think?

I like the option to have the dashed-line stencil function available
for the user to plug in whatever values and get those exact results
(full-length = #f).  As far as the adjusted line goes, however,  I'm
thinking that the segments at beginning and end could be complete, not
partly visible in some cases.  I see that you modify on and off in one
circumstance; why not do this whenever full-length is set to #t?  The
interface could take the settings of on and off as a wish list, and
shorten and lengthen them to fit the actual situation.  I suppose in
this circumstance phase would be set to 0.

You could assemble the dashed line from round-filled-boxes as dashed
bar lines are (as you mentioned earlier), but would there be any need
for that if all dashes and spaces are consistently sized?

I'll keep thinking about this, but I hope my comments here are helpful...

Best,
David

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


Re: Aleatoric / modern notation

2012-12-08 Thread David Nalesnik
Hi Jeffrey,

I'm copying this to the list since I myself am not sure about something here.

On Sat, Dec 8, 2012 at 5:13 AM, Jeffrey Trevino
 wrote:
> Hi David,
>
> Thanks for revising this more for me. I really appreciate your efforts, and
> I will take a look at this asap and write back. For my learning, could you
> please explain what exactly you changed between versions 4 and 5 that got it
> working in parallel?
>

Well, I must say that I was a bit mystified by this, and I don't
understand why the original form wouldn't work on multiple staves.

I spent a good deal of time trying to figure out the sequence of the
various "methods" within the engraver--i.e., when is "process-music"
called in relation to "listeners" and "acknowledgers".  The order
these methods appear is not necessarily the order in which they are
called in a timestep, and a method may be called more than once within
a single timestep--process-music, for example.  You have to understand
the sequence to know what information you have to work with at any
given time.  (For example, process-music will be called in a timestep
before any grobs are "acknowledged" and afterwards as well.  Trying to
work with grobs that aren't there yet necessitates some sort of check,
so you don't get errors.)

I don't see any problem with the engraver here.

I did notice something which I can't account for.  You'll notice that
`frameEngraver4.ly' uses a variable "event-drul".  When a frame-event
is heard (created by \frameStart/\frameEnd), that event is stored in
this variable.  I then use the contents of this variable to determine
what to do: start a frame, end a frame, create a stub (for spacing) at
the beginning, create a stub at the end.

This doesn't work here, and I don't know why.  The version of the
engraver I last sent you substitutes a system of setting variables
called "stop?" and "go?" to control the steps.  It works.  BUT... when
you substitute the earlier method, it doesn't work. I've attached this
simple substitution so you can see what I mean. (The "ignoring weird
minimum distance" stems from the fact that a FrameStub has nothing in
its 'elements array--it should contain the last grobs within the
frame--this info is used for assessing its dimensions).

[If anyone reading this knows how to get the event-storing method how
to work, please let me know.  This seems to be a better technique.]

I hope this is useful...

-David


frameEngraver_why_wont_this_work.ly
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Aleatoric / modern notation

2012-12-08 Thread David Nalesnik
Hi again,

On Sat, Dec 8, 2012 at 7:21 AM, David Nalesnik  wrote:
> Hi Jeffrey,
>
> I'm copying this to the list since I myself am not sure about something here.
>
> On Sat, Dec 8, 2012 at 5:13 AM, Jeffrey Trevino
>  wrote:
>> Hi David,
>>
>> Thanks for revising this more for me. I really appreciate your efforts, and
>> I will take a look at this asap and write back. For my learning, could you
>> please explain what exactly you changed between versions 4 and 5 that got it
>> working in parallel?
>>
>
> Well, I must say that I was a bit mystified by this, and I don't
> understand why the original form wouldn't work on multiple staves.
>

[snip]

>
> I did notice something which I can't account for.  You'll notice that
> `frameEngraver4.ly' uses a variable "event-drul".
>

It turns out that the my definition of event-drul as '(() . ()) was
the problem.  I substituted (cons '() '()) and everything works just
fine...even with the file that gave you the issues with multiple
staves.  I don't understand why '(() . ()) and (cons '() '()) aren't
equivalent.

Trying to work out the problem, I've done a little rewriting so I'll
include the engraver here.  You can just substitute this in the
problematic file.

frameEngraver =
#(lambda (context)
  (let ((span '())
(stub '())
(event-drul (cons '() '(
(make-engraver
  (listeners ((frame-event engraver event)
  (if (= START (ly:event-property event 'span-direction))
  (set-car! event-drul event)
  (begin
(set-cdr! event-drul event)
(set-car! event-drul '())
  (acknowledgers
((note-column-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (begin
   (ly:pointer-group-interface::add-grob span 'elements grob)
   (add-bound-item span grob)))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((script-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((dynamic-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((inline-accidental-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob

  ((process-music trans)
   (if (ly:stream-event? (car event-drul))
   (begin
 (set! span (ly:engraver-make-grob trans 'Frame (car event-drul)))
 (set! stub (ly:engraver-make-grob trans 'FrameStub (car
event-drul)))
 (ly:grob-set-object! stub 'frame span)
 (ly:grob-set-property! stub 'direction LEFT)
 (set-car! event-drul '(
   (if (ly:stream-event? (cdr event-drul))
   (if (null? span)
   (ly:warning "No start to this box.")
   (begin
 (set! stub (ly:engraver-make-grob trans 'FrameStub
(cdr event-drul)))
 (ly:grob-set-property! stub 'direction RIGHT)
 (ly:grob-set-object! stub 'frame span)
 (ly:engraver-announce-end-grob trans span (cdr event-drul))
 (set-cdr! event-drul '())

  ((stop-translation-timestep trans)
   (set! stub '())

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


Re: Aleatoric / modern notation

2012-12-10 Thread David Nalesnik
David,

On Sun, Dec 9, 2012 at 12:34 AM, David Kastrup  wrote:
> David Nalesnik  writes:
>
>> It turns out that the my definition of event-drul as '(() . ()) was
>> the problem.  I substituted (cons '() '()) and everything works just
>> fine...even with the file that gave you the issues with multiple
>> staves.  I don't understand why '(() . ()) and (cons '() '()) aren't
>> equivalent.
>
> The problem is rather that '(() . ()) is equivalent, like eq?, with
> itself.  It is a constant, meaning that on a second run, the _same_ cons
> cell is being used as in the first run, even if you changed its car and
> cdr in the mean time.
>
> (cons '() '()) allocates a new cons cell for every run.  '() itself is
> not a pair and so it is immutable and not susceptible to this problem.
>

Thank you for this explanation.  I've searched around for more
information about Scheme constants, and learned that an error message
ought to be returned when applying set-car! and the like to a
constant.  However, using the guile sandbox I'm able to do this:

guile> (define my-constant-pair '(73 . 88))
guile> (set-car! my-constant-pair 3)
guile> my-constant-pair
(3 . 88)

(I'm trying an example given here:
http://jayreynoldsfreeman.com/Aux/Tutorials/Modifying%20Lists.html)

I don't understand this--because clearly using set-car! and set-cdr!
with a constant led to problems within the engraver; why will the
sandbox allow me to do this?

-David

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


Re: Aleatoric / modern notation

2012-12-11 Thread David Nalesnik
On Mon, Dec 10, 2012 at 11:30 PM, David Kastrup  wrote:

> The behavior is undefined if I remember correctly: an error is not
> guaranteed by the standard.  I think Guilev2 will produce an error, but
> LilyPond is still at Guilev1.

OK, thanks!

-David

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


Re: Aleatoric / modern notation

2012-12-11 Thread David Nalesnik
On Sat, Dec 8, 2012 at 7:21 PM, David Nalesnik  wrote:

[...]

>
> Trying to work out the problem, I've done a little rewriting so I'll
> include the engraver here.  You can just substitute this in the
> problematic file.
>

Well, I did break something.  Here's the fix:

frameEngraver =
#(lambda (context)
  (let ((span '())
(stub '())
(event-drul (cons '() '(
(make-engraver
  (listeners ((frame-event engraver event)
  (if (= START (ly:event-property event 'span-direction))
  (set-car! event-drul event)
  (begin
(set-cdr! event-drul event)
(set-car! event-drul '())
  (acknowledgers
((note-column-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (begin
   (ly:pointer-group-interface::add-grob span 'elements grob)
   (add-bound-item span grob)))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((script-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((dynamic-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((inline-accidental-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob

  ((process-music trans)
   (if (ly:stream-event? (car event-drul))
   (begin
 (set! span (ly:engraver-make-grob trans 'Frame (car event-drul)))
 (set! stub (ly:engraver-make-grob trans 'FrameStub (car
event-drul)))
 (ly:grob-set-object! stub 'frame span)
 (ly:grob-set-property! stub 'direction LEFT)
 (set-car! event-drul '(
   (if (ly:stream-event? (cdr event-drul))
   (if (null? span)
   (ly:warning "No start to this box.")
   (begin
 (set! stub (ly:engraver-make-grob trans 'FrameStub
(cdr event-drul)))
 (ly:grob-set-property! stub 'direction RIGHT)
 (ly:grob-set-object! stub 'frame span)
 (ly:engraver-announce-end-grob trans span (cdr event-drul))

  ((stop-translation-timestep trans)
   (if (ly:stream-event? (cdr event-drul))
   (begin
 (set! span '())
 (set-cdr! event-drul '(
   (set! stub '())

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


Re: Allows for easier creation of many Lilypond objects via Scheme. (issue 7009047)

2012-12-24 Thread David Nalesnik
On Mon, Dec 24, 2012 at 7:22 AM, m...@mikesolomon.org
 wrote:
> On 24 déc. 2012, at 10:36, d...@gnu.org wrote:
>
> On 2012/12/24 07:28:17, mike7 wrote:
>
> On 24 déc. 2012, at 01:10, mailto:d...@gnu.org wrote:
>
>
>> All of this is absolutely devastatingly horrible code that is not
>> reconcilable with sane per-session semantics and tampers with
>
> LilyPond
>
>> internals in a way that has bleed-over effects into future files in
>
> the
>
>> same command line.
>>
>> In addition, the interfaces into the exposed internals are
>
> absolutely
>
>> horrific and cryptic and don't make any sense as a user interface.
>>
>
>
> I agree that the innards I'm exposing are not coded particularly
> well
>
>
> You don't get the point.  A user interface is not supposed to "expose
> innards", it is supposed to provide functionality.  Pulling data
> structures and some of the code accessing them into the open is not a
> user interface.
>
>
> I am certainly not saying that this type of task is for every user, but
> someone comfortable enough to do this should not have to copy and paste from
> define-*.scm every time.
>
>> This is taking everything that is broken with
>> input/regression/scheme-text-spanner.ly, magnifies it to a number of
>> other cases, and gives it a bad interface.
>
>
>
> I am of the opinion that it is better to have stuff like this that
> allows people to do creative and interesting things with LilyPond
> than not have it at all.
>
>
> But those "creative and interesting things" will break frequently on
> update.  We already have quite a bit of "why doesn't this stuff I
> based on [some version of] scheme-text-spanner.ly not work in my
> version of LilyPond?" questions.
>
>
> It seems like you'd rather not make something accessible rather than making
> it accessible in a fragile state.  I certainly prefer the latter, as it
> allows more people to experiment.  For example, David's work on the frame
> engraver would be a great trial ground for this sort of thing.
>

I've gotten a lot of use out of techniques in
scheme-text-spanner.ly--that's probably very evident--and I'm quite
appreciative that it's there.  I understand the problems that it
causes--I've seen evidence of bleed-over.  However, I'm using these
techniques as a convenient aid to developing new features.  I could
certainly work directly in LilyDev and alter the necessary files in
the proper way, but then I'm unable to get feedback from those users
who would actively use the new features but aren't comfortable
applying patches.  You can see just how much user feedback I got
during the creation of the measure counter (issue 2445).  As far as
the frame engraver goes, I've gotten a good sense of what such a thing
ought to do, and corrected several problems based on input from
lilypond-user.  My efforts here are still quite a way from producing a
formal patch and putting it up for review, but that is the end goal.

Best,
David

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


Re: Introducing two new markup-commands: draw-dashed-line and draw-dotted-line. (issue 7029045)

2012-12-31 Thread david . nalesnik

Harm--

This looks great!  Thank you for the 'full-length option.  I can't be
alone in hating lines ending with incomplete dashes.

All I have is a suggestion or two, and some quibbles.

Besides what I've pointed out inline, I should mention that I got a
number of whitespace errors when I applied your patch.  There are a
number of spots where you should trim the ends of lines (mostly in the
.scm file).


https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm
File scm/define-markup-commands.scm (right):

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode155
scm/define-markup-commands.scm:155: If @code{full-length} is set
@code{#t} (default) the dashed-line extends to the
set to #t

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode156
scm/define-markup-commands.scm:156: whole length given by @var{dest},
without white space at begin/end.
beginning or end.

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode169
scm/define-markup-commands.scm:169: (let* (;; Get the line-thickness.
I think your variable name is sufficient--no comment needed.

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode181
scm/define-markup-commands.scm:181: (begin
Branches of if expression should be aligned with test (here and
elsewhere).

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode195
scm/define-markup-commands.scm:195: (new-off (/ (- line-length corr (*
(+ 1 guess) on)) guess))
Why not use (1+ guess)

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode231
scm/define-markup-commands.scm:231: #f)
Could omit the boolean--value will be unspecified.

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode233
scm/define-markup-commands.scm:233: ;; If `on´ or `off´ is negative, or
both, `on´ and `off´ equals zero a
Possibly "...or the sum of `on' and `off' equals [is] zero..."

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode244
scm/define-markup-commands.scm:244: #f)
Here again, you could omit the alternate.

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode248
scm/define-markup-commands.scm:248: (interval-widen (ordered-cons 0 x)
half-thick)
You do such a thorough job of commenting everything, but you don't
explain why you need `half-thick' here.

https://codereview.appspot.com/7029045/diff/1/scm/define-markup-commands.scm#newcode264
scm/define-markup-commands.scm:264: Manual settings for @code{off} is
possible to get larger or smaller space
"are possible"

https://codereview.appspot.com/7029045/
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


  1   2   3   4   5   >