Re: LilyPond 2.24.0 released!

2022-12-15 Thread Paul Scott

Great!  Thanks to everyone involved!!

Any idea when there will be a Debian package?  (Not that I can't install 
it the way I have done the all the other 2.23.x versions).


Paul


On 12/15/22 2:42 PM, Jonas Hahnfeld via Discussions on LilyPond 
development wrote:

We are proud to announce the release of GNU LilyPond 2.24.0. LilyPond
is a music engraving program devoted to producing the highest-quality
sheet music possible. It brings the aesthetics of traditionally
engraved music to computer printouts.

This version includes improvements and fixes since the branching of the
previous stable release in October 2020. A list of added features and
other user-visible changes can be found at
https://lilypond.org/doc/v2.24/Documentation/changes/
This release switches to Guile 2.2 and features a completely rewritten
infrastructure for creating the official packages, finally allowing us
to offer 64-bit binaries for macOS and Windows.

These pre-built binaries are linked from
https://lilypond.org/download.html and available from GitLab:
https://gitlab.com/lilypond/lilypond/-/releases/v2.24.0

LilyPond 2.24 is brought to you by

Main Developers:
Jean Abou Samra, Colin Campbell, Dan Eble, Jonas Hahnfeld, Phil Holmes,
David Kastrup, Werner Lemberg, Han-Wen Nienhuys, Francisco Vila

Core Contributors:
Erlend E. Aasland, Kevin Barry, Martín Rincón Botero, Tim Burgess,
Thibaut Cuvelier, Jefferson Felix, David Stephen Grant, Jordan
Henderson, Masamichi Hosoda, Nihal Jere, Martin Joerg, Michael Käppler,
Doug Kearns, Mark Knoop, Thomas Morley, Lukas-Fabian Moser, Martin
Neubauer, Knut Petersen, Valentin Petzel, Pete Siddall, Alen Šiljak,
Samuel Tam, Timofey, Nathan Whetsell

Font Contributors:
Johannes Feulner, David Stephen Grant, Owen Lamb

Documentation Writers:
Michael Käppler, Daniel Tobias Johansen Langhoff, Thomas Morley, John
Wheeler

Translators:
Federico Bruni, Walter Garcia-Fontes, Dénes Harmath, Masamichi Hosoda,
Guyutongxue, Chengrui Li, Jean-Charles Malahieude, Benkő Pál

and numerous other contributors.




Re: LilyPond 2.23.7 released

2022-03-26 Thread Paul Scott
I just downloaded the Linux version from from Lily web site and got a tar.gz 
version instead of the .sh version I expected.  Is this a change or  a mistake?

Thank you,

Paul
 

> On Mar 26, 2022, at 2:36 PM, Jonas Hahnfeld via LilyPond user discussion 
>  wrote:
> 
> We are happy to announce the release of LilyPond 2.23.7. This is termed
> a development release, but these are usually reliable. If you want to
> use the current stable version of LilyPond, we recommend using the
> 2.22.2 version.
> 
> Starting with this release, LilyPond requires Guile 2.2 and the
> official binaries were created with the new infrastructure developed
> over the past months. Issues reported for the previous release have
> been addressed, in particular regarding performance (by integrating
> compiled bytecode) and on Windows, where it is now possible to extract
> the provided zip archive with the Windows Explorer and use special
> characters in filenames. Please test this release and let us know about
> problems that you encounter.




Re: Need to remove links to lilypondblog.org

2021-11-14 Thread Paul Morris

On 11/13/21 2:53 AM, Federico Bruni wrote:

Paul, do you have a backup of lilypondblog.org?
I might try converting it to a static site generator and host it on 
some free platform.


Hi Federico, Thanks for your message. I'd like to help with this.

Unfortunately, I don't have an up-to-date backup on my local machine.  I 
tried logging into my shared hosting account and I can still access the 
WordPress database for the site.  (I could export the database to 
something like JSON or other options, but I'm not sure that raw data is 
very useful.)


I haven't confirmed but it looks like the domain has expired but the 
WordPress installation is still there. So what I'd like to try (when I 
can find time) is setting up a temporary subdomain somewhere and 
pointing it at the WordPress installation.  If that works to let me log 
into the WP site, then I could use a plugin to do an "export to static 
html and css files" which could then be hosted somewhere or converted to 
a static site generator, etc.


-Paul


\fixed and \relative

2021-03-18 Thread Paul Scott
Would it be reasonable to have \fixed optionally take it's starting 
point from its first pitch like \relative does?  I jumped on this when 
this feature was added to \relative.  \fixed was the important reason I 
have now switched completely from \relative to \absolute.


Am I missing anything that \absolute does that \fixed doesn't?

Thank you for commenting on this,

Paul




Re: Charles Winston's GSoC code: Chord Semantics (issue 337870043 by chazwi...@gmail.com)

2019-04-02 Thread Paul Morris

Hi Carl,

On 4/2/19 12:14 AM, carl.d.soren...@gmail.com wrote:

https://codereview.appspot.com/337870043/diff/40001/input/regression/chord-name-exceptions.ly#newcode29 


input/regression/chord-name-exceptions.ly:29: chExceptions = #(append
(chordmode->exception-entry chordVar markupVar) chExceptions)
Hmm, chExceptions is used in its own definition here?  Does that 
work? This is

not making sense to me.


chExceptions is previously defined to be a couple of new chords
prepended to ignatzekExceptions, so it can be used this way.


Ah, right, okay.


https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode238 


scm/chord-entry.scm:238: 'chord-semantics chord-semantics))
Hmm, so there's a single 'chord-semantics property under a 
'ChordSemanticsEvent
?  Seems like we could avoid that extra step of nesting and just have 
the
subproperties of 'chord-semantics under 'ChordSemanticsEvent ?  And 
that would

be more like NoteEvent and other events. Or maybe I'm missing something?


We could do that, but it would pollute the global namespace with all the
properties
that are part of 'chord-semantics and are only used for chord semantics.
 By putting them
in a single property, we avoid polluting the namespace.  Similar to the
way we do fret-diagram-details.


Okay, I see.


https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode243 

scm/chord-entry.scm:243: (ly:pitch-octave (entry-pitch 
original-inv-pitch

Would be more clear and consistent if original-inv-pitch were renamed to
original-inv-entry or similar.


Why?  Not to be argumentative, but I wonder what about this name is more
clear and consistent, in your opinion?


Should have said more at the time.  Here's what I think I was thinking.

Having 'pitch' in the name conveys that it is a LilyPond 'pitch' data 
structure, but that isn't the case.  Here you have to call `entry-pitch` 
on it to get a pitch out of it to pass to `ly:pitch-octave`.


`entry-pitch` works on `chord-entry` type things:

;; Return pitch of a chord-entry
(define (entry-pitch chord-entry)
  (car chord-entry))

So it seems to be more like a type of 'entry' structure, and avoiding 
using 'pitch' in the name (like with original-inv-entry or similar) 
makes it easier to understand what it is and what you can and can't do 
with it.



https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode399 


scm/chord-entry.scm:399: ((= alteration FLAT) (set! quality 'dim)
Instead of all of these (set! quality ...) why not just let the 
result of this
cond be assigned to 'quality' and add an 'else' 'maj at the end? 
Basically:

(quality (cond ((= alteration SHARP) 'aug) ...))


I think it's because for some intervals, you set a zero alteration as
perfect, while
for others, the zero alteration is 'maj.  So it doesn't drop easily into
an else, I think.


Ah, right, so we still need to take step-number into account. But 
there's still refactoring that can be done along the lines I suggested, 
as there are basically two cases, the major/minor and the perfect.  
Here's an untested refactor:


 (define (get-quality step-number alteration)
   (cond
    ;; major/minor
    ;; note from Paul: I added 7 and 14 which weren't in the original
    ((member step-number '(2 9 3 10 6 13 7 14))
 (case alteration
  ((SHARP) 'aug)
  ((0) 'maj)
  ((FLAT) 'min)
  ((DOUBLE-FLAT) 'dim)))
    ;; perfect
    ;; TODO: will 11 have the same qualities as 4?
    ((member step-number '(1 8 4 11 5 12))
 (case alteration
  ((SHARP) 'aug)
  ((0) 'perfect)
  ((FLAT) 'dim)))
    ;; default fallback
    (else 'maj)))

 (define (make-chord-entry-from-pitch pitch)
   (let* ((step-number (pitch-step pitch))
  (alteration (ly:pitch-alteration pitch))
  (quality (get-quality step-number alteration)))
 (make-chord-entry pitch (make-chord-step step-number quality


https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode411 


scm/chord-entry.scm:411: (if (= step-number 7) (set! quality 'min))
Defining quality using cond or case would be a more idiomatic 
Scheme-ish way to

do it, avoiding the mutation of set!.


I totally agree with you; I'll try to work this out for a future patch.
For now, I want
to just get it into review.


Okay, makes sense.  Thanks for working on this.

-Paul



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


Re: Please test new lilypond installers

2019-01-29 Thread Paul Morris

On 1/29/19 1:24 PM, David Kastrup wrote:


Paul Morris  writes:


On 1/29/19 4:19 AM, Knut Petersen wrote:


lilypond-2.21.0-1.linux-64.sh

Installed on Ubuntu 18.04.1 LTS and tested with a couple of
pieces. Everything appears to be working fine.

Thanks to all for the work on GUB and the next stable LilyPond release!

Well, 21.0 is the next unstable release...


Ah, yes, I didn't intend to imply otherwise, but I see how what I wrote 
could have been misleading.  (I was just thinking along the lines of 
'work on GUB contributes to the release of the next stable', but I may 
not be fully aware of all the details there.)


Thanks for the clarification.

-Paul


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


Re: Please test new lilypond installers

2019-01-29 Thread Paul Morris

On 1/29/19 4:19 AM, Knut Petersen wrote:


lilypond-2.21.0-1.linux-64.sh


Installed on Ubuntu 18.04.1 LTS and tested with a couple of pieces. 
Everything appears to be working fine.


Thanks to all for the work on GUB and the next stable LilyPond release!

-Paul


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


Re: guilev1/2 musing

2019-01-26 Thread Paul Morris

Hi Jan-Peter,

On 1/26/19 1:36 PM, Jan-Peter Voigt wrote:
sorry for missing to mention your contribs! And thank you for the XML 
port.



Oh, no problem, and you're welcome!

I didn't look into the gsoc code lately, but perhaps the two projects 
dont need to compete?


Yeah, it would be nice to consolidate the two efforts somehow.  If you 
have a chance, it might be worth taking a look at the gsoc code.


Basically, the gsoc approach doesn't collect events with an engraver and 
then build up a data structure from them.  It rather converts a music 
expression into an s-expression data structure, same/similar as what you 
see when you do \displayMusic.  This is where its approach seems 
potentially simpler.


Then it uses the pattern matching and SXML modules to transform the 
s-expression data into MusicXML.  This part (transforming some data into 
MusicXML) seems fairly similar in both approaches (either using the 
pattern matching module or just vanilla Scheme).  So the first part of 
how to get at the data seems like the key question.


I'm not sure what the impact of these approaches is for how the user 
might ultimately use the feature.  Maybe not much.  Having export blocks 
like layout and midi, as you mentioned, seems like a nice consistent 
interface.


The functions to build XML are copied from guile 2 so they can be 
easily adapted if they are included in a guile 1 fork or via guile 2.



Some more detail on this: these copied functions are only a small part 
of the SXML module, just the ones to convert from sxml to XML.  These 
were easy to copy.  The gsoc code uses the pattern matching module and I 
think more of the SXML module, which didn't appear to be as easy to copy 
and use with guile1.


Here are links for anyone curious:

GSOC code: https://sourceforge.net/p/testlilyissues/issues/665/#6428
OpenLilyLib code: https://github.com/openlilylib/lilypond-export

Cheers,
-Paul


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


Re: guilev1/2 musing

2019-01-26 Thread Paul Morris

Hi Harm,

On 1/25/19 3:17 PM, Thomas Morley wrote:


If you do a regtest-comparison between builds with guile-1 and
guile-2, nothing serious is visible in the images. So far one could
say "well enough".
Though, looking through the other results, some other flaws are noticeble.
One I remember immediately is the not working 'procedure-source'. It's
simply disabled in guile-2, see
https://lists.gnu.org/archive/html/guile-user/2012-09/msg00020.html

So with guile-2:

\void
\displayLilyMusic
\applyContext #(lambda (ctx) (ly:context-set-property ctx 'fontSize 6))

-> \applyContext ##f

I think there were more, but I would need to redo the regtest to be sure.



Ah, okay, thanks for the info on what works and what doesn't with guile2.

-Paul


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


Re: guilev1/2 musing

2019-01-26 Thread Paul Morris

On 1/25/19 10:43 AM, David Kastrup wrote:


Paul Morris  writes:

One area where guile2 (and upcoming guile3) would be useful is for
MusicXML export.  David Garfinkle's summer of code project (mentored
by David Kastrup) made a start on using guile2's sxml and pattern
matching procedures (which aren't in guile1)

They exist as Guile1 library, it's just that they are by default in
Guile2.  If we decided prepackaging Guile1 was the way to go, including
the respective library version should be feasible as well.

No guarantees, but that was my impression.



Ah, good to know they exist as guile1 libraries.  (I just assumed that 
since guile2 was used for the gsoc project, that they didn't exist for 
guile1.)


Does anyone know where to locate them?  I did some searching and came up 
short.  They are "Pattern Matching (ice-9 match)" and "SXML" modules in 
the current guile2: 
https://www.gnu.org/software/guile/manual/html_node/Guile-Modules.html




Since guile2 appears to work well enough at this point, aside from
performance, would it be worth setting up a "guile2 and musicxml
export" branch where we could land David Garfinkle's code and enable
further work on MusicXML export?  It seems like a guile2 branch
already exists to some extent?

Not really, and I don't think it makes sense to commit functionality to
Guile2-only at this moment.



Okay, and since the needed libraries exist for guile1, then work on 
(that approach to) musicxml export doesn't need to be blocked waiting on 
guile2.



Then at some future point... either LilyPond moves to a future guile
or we back-port the guile2 procedures to guile1.

"some future point" is just going to cause additional work.  We don't
really have the personnel to do non-essential/non-trivial work on two
separate implementations.


Makes sense, and sounds like we don't need to wait for guile2 anyway.


(Jan-Peter Voigt has also done separate work on MusicXML export, but
my sense is that in the long run, the approach in the summer of code
project would be preferable.)

I haven't looked at Jan-Peter's approach.  David Garfinkle's code is
mostly in the state of a solid first sketch, so a distribution-viable
production-ready code is still quite a bit of work away.  Without
anybody committed to take it considerably further, making decisions
based on its existence would seem to be a bit premature.  Like with many
open ends, this is more or less the "who decides to invest significant
work gets to decide on the approach".  There is not much of a point in
planning out in detail what nobody will pick up.



Indeed, although, I've contributed a bit to Jan-Peter's code for this, 
and would like to contribute more (as time allows) to see this feature 
added to LilyPond.  But I've wondered which approach would make more 
sense for eventual landing in LilyPond.  More consensus about the 
approach, could encourage contributions by removing such questions.


Cheers,
-Paul


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


Re: guilev1/2 musing

2019-01-25 Thread Paul Morris

On 1/24/19 3:08 PM, Thomas Morley wrote:


 From my point of view (and limited knowledge) other newly implemented
guilev2-procedures are not _that_ important.


One area where guile2 (and upcoming guile3) would be useful is for 
MusicXML export.  David Garfinkle's summer of code project (mentored by 
David Kastrup) made a start on using guile2's sxml and pattern matching 
procedures (which aren't in guile1) to convert LilyPond's internal music 
data structures into MusicXML output.


One option would be to 'back-port' those procedures to a guile1 
implementation, then further work on MusicXML export could happen with 
guile1, and the code would also work with guile2.  However, when I took 
a cursory look, rewriting those procedures looks non-trivial, and the 
effort would probably be better spent in other ways.


Since guile2 appears to work well enough at this point, aside from 
performance, would it be worth setting up a "guile2 and musicxml export" 
branch where we could land David Garfinkle's code and enable further 
work on MusicXML export?  It seems like a guile2 branch already exists 
to some extent?


Then at some future point... either LilyPond moves to a future guile or 
we back-port the guile2 procedures to guile1.


(Jan-Peter Voigt has also done separate work on MusicXML export, but my 
sense is that in the long run, the approach in the summer of code 
project would be preferable.)


Thanks for the insights into the guile1/2 situation and what's causing 
the performance hit.


-Paul



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


Re: LilyDev 0.3 sha256sum

2018-12-13 Thread Paul Morris

On 12/13/18 8:47 PM, Paul Morris wrote:


I also recommend the container approach.


Here are the steps for the container setup:

https://github.com/fedelibre/LilyDevOS/tree/v0.3/mkosi#container

-Paul



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


Re: LilyDev 0.3 sha256sum

2018-12-13 Thread Paul Morris

Hi Andrew,

On 12/13/18 6:17 PM, Andrew Bernard wrote:

[I don't know anything about containers, but I am willing to learn. But it
would be goodo to get the VM machine going alos.]


I also recommend the container approach.  I hadn't used them before 
Federico brought them to LilyDev.


Basically after following the setup steps you end up with an open 
terminal and that is how you access and use the container environment 
(there's no GUI like with VirtualBox VM).  In that container terminal 
you run make, make doc, etc., anything that needs the dependencies, and 
that's basically all you need to use the container for.


You can access the source code files and edit them in your usual (host) 
OS using your usual tools.  Also using git and pushing patches up to 
Reitveld can be done in the host environment (where you have access to a 
browser, etc.).


It's nicer to use than a VM because you work in your familiar OS with 
familiar tools, and you basically get the full power of your machine (in 
terms of RAM, etc.) when compiling.


I'd like to add details like this on how it works to the LilyDev 
documentation if I can find time.


Thanks for working on the Python migration, BTW.

Cheers,
-Paul



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


Re: GSoC Proposal - SVG Export

2018-12-04 Thread Paul Morris

On 12/3/18 10:07 AM, Richard Shann wrote:


what seems strange is that there seems to be no concept of "backgound
color" in SVG (logical in a way as SVG is about things you can draw)
allowing for the possibility of drawing white on white.



Easily setting a background color would be a nice option to have.  
There's this snippet, and it works for SVG (but there's room for 
improvement):


http://lsr.di.unimi.it/LSR/Item?id=699



yes, you add stuff to the LilyPond input to color everything explicitly
black. IIRC you can specify extra stuff to be included from the command
line too.



Ah, right, like this: http://lsr.di.unimi.it/LSR/Item?id=443

That wraps everything in  tags with a color property, like so:


  



Would probably be better if it did this instead:




Cheers,
-Paul


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


Re: GSoC Proposal - SVG Export

2018-12-03 Thread Paul Morris

Hi Carl and everyone,

On 12/2/18 8:02 PM, Carl Sorensen wrote:


We used to have black be the color of the glyphs.  We made a very specific and 
intentional move from black to currentColor.  And it was an improvement, IMO.  
That is why I feel strongly about moving away from currentColor.


currentColor sounds like the right default.  It also seems reasonable to 
allow the user to override that default and set it to black or another 
color, depending on their use case.  Maybe that's already possible?  
Maybe it's even already possible from the command line?  If not, giving 
users the option should address the concerns, and would make sense in 
this kind of GSOC proposal.


Étienne, I really like your proposal.  I'd love to see improvements to 
SVG, moving towards giving it first-class support in LilyPond.  And 
kudos for planning ahead.


Cheers,
-Paul


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


Re: Export to MusicXML

2018-10-26 Thread Paul Morris

On 10/17/18 2:55 AM, Jan-Peter Voigt wrote:


2. the MusicXML is created "manually" with simple string-concatenation.
[...]
It would be very helpful to have an XML-lib at hand for the export.


Hi all,  I've done some work on this.  See this PR:

https://github.com/jpvoigt/lilypond-export/pull/9

Cheers,
-Paul


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


Re: Export to MusicXML

2018-10-16 Thread Paul Morris

On 10/16/2018 10:48 AM, Paul Morris wrote:

I don't know if the code he wrote was ever checked in somewhere, on a 
branch or something.  (It's not mentioned in the issue for this feature.)


I've now added the GSOC 2015 code to the issue and put a link to 
Jan-Peter's work there as well. 
https://sourceforge.net/p/testlilyissues/issues/665/


-Paul

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


Re: Export to MusicXML

2018-10-16 Thread Paul Morris

For Google Summer of Code 2015 David Garfinkle worked on MusicXML export.

(See mailing list archives: 
https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=Garfinkle&submit=Search%21&idxname=lilypond-devel&max=20&result=normal&sort=score 
)


I don't know if the code he wrote was ever checked in somewhere, on a 
branch or something.  (It's not mentioned in the issue for this 
feature.)  I have a copy of it somewhere that he sent me, but I'd assume 
that Jan-Peter's work on this would be the better place to start / 
collaborate.


-Paul

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


Re: #5355 Doc: document grob metadata in SVG output in Notation Reference

2018-07-04 Thread Paul Morris

James,

On 07/04/2018 09:41 AM, James Lowe wrote:


On Sun, 1 Jul 2018 17:52:02 -0400, Paul Morris  wrote:
  

Thanks.  It turned out I had a new SSH key that I hadn't added to
Savannah yet.  So I got it to work by following CG 3.4.9
http://lilypond.org/doc/v2.19/Documentation/contributor/commit-access

I noticed that where the CG says:

"
SSH should issue the following warning:

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

Make sure the RSA key fingerprint displayed matches the one above.
"

This did not match what I saw in my terminal.  (I saved what I saw if
that's useful.)  It may have been a bad move but I lived dangerously and
went ahead anyway.  But the CG may need an update?
  
I checked and using the command


ssh-keygen -E md5 -lf <(ssh-keyscan git.sv.gnu.org 2>/dev/null)

I get this for MD5 hashes

1024 MD5:80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5 git.sv.gnu.org (RSA)


and for SHA256

...
1024 SHA256:FYkx0iik+iBeCLRzvUyUSTRT98TEBBJoYuQsTXbyGL8 git.sv.gnu.org (RSA)

So the CG prints the MD5 hash - and it looks OK to me.

If you didn't get either of those can you attach what you did get?

James


Below is what I got, which doesn't match what you have above.  Looks 
like I have ECDSA instead of RSA, or something?


$ git pull --verbose

The authenticity of host 'git.sv.gnu.org (208.118.235.201)' can't be 
established.

ECDSA key fingerprint is SHA256:qRLLJ4w/GAeiDyYnbx4yWJbZXwGiYYxgNty7lAfUyuM.

Are you sure you want to continue connecting (yes/no)?


My .git/config file has this in it (except with my actual savannah 
username):


[remote "origin"]

    url = ssh://usern...@git.sv.gnu.org/srv/git/lilypond.git

    fetch = +refs/heads/*:refs/remotes/origin/*


-Paul

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


Re: #5355 Doc: document grob metadata in SVG output in Notation Reference

2018-07-01 Thread Paul Morris

On 07/01/2018 02:43 AM, David Kastrup wrote:


Edit your .git/config file and change the repository address according
to the Git repository clone command given for developers on LilyPond's
Savannah page.


Thanks.  It turned out I had a new SSH key that I hadn't added to 
Savannah yet.  So I got it to work by following CG 3.4.9

http://lilypond.org/doc/v2.19/Documentation/contributor/commit-access

I noticed that where the CG says:

"
SSH should issue the following warning:

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

Make sure the RSA key fingerprint displayed matches the one above.
"

This did not match what I saw in my terminal.  (I saved what I saw if 
that's useful.)  It may have been a bad move but I lived dangerously and 
went ahead anyway.  But the CG may need an update?


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


Re: #5355 Doc: document grob metadata in SVG output in Notation Reference

2018-06-30 Thread Paul Morris

On 06/28/2018 03:35 AM, pkx166h wrote:


  * *Patch*: countdown --> push
  * *Comment*:

Patch counted down - please push



I tried pushing my patch to staging and got the following error:

$ git push origin HEAD:staging
fatal: remote error: access denied or repository not exported: /lilypond.git

This worked for me before in years past, but it's possible I didn't set 
up my git credentials exactly the same when I moved to using the 
LilyDevOS container?


How to proceed?

Thanks,
-Paul





*[issues:#5355] 
<https://sourceforge.net/p/testlilyissues/issues/5355/> Doc: document 
grob metadata in SVG output in Notation Reference*


*Status:* Started
*Created:* Thu Jun 21, 2018 06:35 PM UTC by Paul Morris
*Last Updated:* Mon Jun 25, 2018 09:41 AM UTC
*Owner:* Paul Morris

Doc: document grob metadata in SVG output in Notation Reference

I.e. using the 'output-attributes' grob property to add id, class,
and other attributes to the SVG output for a given grob.

http://codereview.appspot.com/357720044



Sent from sourceforge.net because you indicated interest in 
https://sourceforge.net/p/testlilyissues/issues/5355/


To unsubscribe from further messages, please visit 
https://sourceforge.net/auth/subscriptions/




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


Re: \class grob property

2018-05-18 Thread Paul Morris
Huh, looks like I already created a changes entry and regtests for this 
output-attributes feature.


https://codereview.appspot.com/308430043

https://sourceforge.net/p/testlilyissues/issues/4974/

I think I didn't do user documentation because the previous ID-only 
functionality didn't have any.  So I can work on adding that somewhere.


Looks like the infrastructure for really testing svg output is an open 
issue:


https://sourceforge.net/p/testlilyissues/issues/5185/

(And since this functionality is not visible in the svg (by itself), 
tests would need to check the svg source code rather than its visual 
result.)


Cheers,
-Paul

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


Re: \class grob property

2018-05-17 Thread Paul Morris

On 05/17/2018 09:00 AM, David Kastrup wrote:


Man, I must have slept through this.  "this is already supported in
2.19" is misleading if it's actually only supported _outside_ of 2.19,
namely by chancing upon people in the know in the mailing lists.

The problem with that kind of support is that it's unreliable.  Stuff
might get reimplemented because people cannot find what they are looking
for, and the old code might get removed as bit rot at any point of time.

To actually move it to "supported" state inside of LilyPond, there need
to be regression tests (which also stop bit rot), user-level
documentation and a Changes entry.  That gives a new feature a
reasonable chance of getting tested and consolidated in order to be
useful for more than a single application (often by a single person) in
its region of interest.

Do you feel up to getting that kind of support into LilyPond?


Hi David,  I agree that this deserves to have regression tests, 
user-level docs, and a changes entry (to go with its current 
documentation in the internals reference).  I'll try to find time to 
work on those things in the next weeks.


Cheers,
-Paul

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


Re: \class grob property

2018-05-17 Thread Paul Morris

Hi Urs,

On 05/13/2018 02:02 PM, Urs Liska wrote:

1) for SVG output the objects would get the class assigned (along with 
an id). I don't have any idea yet how that is implemented, though. 
This will make it possible to work with CSS in a display environment.


You'll be glad to know this is already supported in 2.19.  Check out 
this grob property:


|output-attributes| (list)

   An alist of attributes for the grob, to be included in output files.
   When the SVG typesetting backend is used, the attributes are
   assigned to a group () containing all of the stencils that
   comprise a given grob. For example, |'((id . 123) (class . foo)
   (data-whatever . “bar”))| will produce | … |. In the Postscript backend, where there
   is no way to group items, the setting of the output-attributes
   property will have no effect.


It's only documented in the internals reference.  I think it probably 
gives you what you need to do what you want?


I added this functionality to LilyPond awhile back while working on 
'lilypond-html-live-score'.  (Would like to find more time to do more 
work with that, but...)  This code might be of interest: 
https://gitlab.com/sigmate/lilypond-html-live-score/blob/master/grob-inspector.ily


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


Re: new LilyDev, 0.2 release

2017-11-05 Thread Paul Morris

Congrats and thanks Federico!  Glad to know there's a Debian container now.

-Paul


On 11/03/2017 01:13 PM, Federico Bruni wrote:

Hi all

Few days ago I made a new release (version 0.2):
https://github.com/fedelibre/LilyDevOS/releases/tag/v0.2

I chose to keep calling the final images LilyDev, even if the 
repository is called LilyDevOS.
Next week I'll send a patch to update the link in the CG to point to 
this new repository.


I had planned to make also a new release of the old LilyDev (hopefully 
the last one), but I ran out of time. I'll do it next week.



New in this release:

   Added a Debian container, based on stretch.
   Fedora images upgraded to version 27.
   Added all dependencies needed to build LilyPond without any 
warning: extractpdfmark, URW-35 OpenType font files (thanks to 
@karlinhigh for his script).
   GUI apps can now be run from the container out of the box. This is 
based on a couple of assumptions, which should be correct most of the 
times (see the README).






___
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: Enhance the -dpreview method for SVG output (issue 326960043 by pkx1...@gmail.com)

2017-08-01 Thread Paul

On 07/27/2017 03:21 AM, pkx1...@gmail.com wrote:


This is a first attempt to merge the
dump-page and dump-preview methods
so that there is an option for
cropping pages that are not just
previews.


I wonder... is the desired functionality already provided by 
one-page-breaking and/or one-line-auto-height-breaking?


http://lilypond.org/doc/v2.19/Documentation/notation/page-breaking#one_002dpage-page-breaking

http://lilypond.org/doc/v2.19/Documentation/notation/page-breaking#one_002dline_002dauto_002dheight-page-breaking

I haven't had time to look at the patch, and I'm still not sure exactly 
what it's trying to do.


-Paul

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


Re: LilyDevOS, a LilyDev container + full VM image

2017-07-21 Thread Paul

On 07/17/2017 04:58 AM, Federico Bruni wrote:


$ sudo systemd-nspawn -bD lilydevos-0.1
sudo: unable to resolve host t440s


This is not causing any problem, right?
Anyway, here you can find some hints on how to fix it:
https://askubuntu.com/questions/59458/error-message-when-i-run-sudo-unable-to-resolve-host-none 



Thanks, I've seen this for awhile, but everything has seemed to work 
fine.  I've now fixed it with the info in that link.  (My machine name 
in /etc/hosts was off.)


Spawning container lilydevos-0.1 on 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1.

Press ^] three times within 1s to kill container.
Failed to create directory 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: 
Read-only file system
Failed to create directory 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: 
Read-only file system


I think you can safely ignore it.

This may happen when selinux is disabled, according to this:
https://github.com/systemd/systemd/issues/3711

But I have selinux disabled and I'm not getting those messages...

# sestatus
SELinux status: disabled


Huh, odd.  I'll just ignore it for now.

[gitk] can work also from the guest if you use the correct DISPLAY 
environment variable.

Find it in your host with this command:

$ echo $DISPLAY
:0

Then launch gitk from the container with:

$ DISPLAY=:0 gitk 



You can use an alias and forget the special command.
Add this line to ~/.bashrc:

# Let gitk work on host display
alias gitk="DISPLAY=:0 gitk"

As .bashrc is the same for container and full VM, I won't add this 
configuration.
I'll add only a suggestion in the README. 


Great!  This is working for me now.  Same display value of `:0`


I've now updated the instructions about the container.

I've also added instructions on setting up the virtual machine in 
libvirt (i.e. also GNOME Boxes and virt-manager) with a single command.


Looks good.  Nice additions about libvirt use.

A suggestion: it might be worth clarifying the steps for first setup vs 
repeat use of the container?  I think the main (only?) difference is 
that you don't need to run the setup script after you've already done it.



Also, the authentication in git-cl opens a web page in a browser so 
I'm not sure how that will work from the container?


w3m and elinks accept cookies by default, so login to google is easy 
and saved across different sessions.


I just need to check if the redirect from /get-access-token?port=8001 
works.


I want to avoid installing a regular browser, as it would add some 
dependencies and increase the final size of the container.


Cool, glad there's a good solution for this.

BTW, let me know if the password is working. I'm not sure I've 
uploaded the correct version..


It wasn't working for me (e.g. when I tried to install guile-devel).


If it doesn't, use this command as root:

 echo 'dev:lilypond'|chpasswd


This fixed it for me.  And I was able to install guile-devel.  (GNU 
Guile 2.0.14)


Thanks again.  It's coming together well!

-Paul


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


Re: Any objections to branching off a stable branch for 2.20?

2017-07-19 Thread Paul

On 07/17/2017 02:14 PM, David Kastrup wrote:


Currently there is a bit of a lull (not entirely graceful due to me not
keeping up with things all the best), so the time seems convenient.


No objections here.  What's the latest thinking/status for issue 3884?  
Anything I can / should do?


Patch: Add on-page-greater-than, -less-than (on-the-fly)
https://sourceforge.net/p/testlilyissues/issues/3884/


There are a few "critical" bugs outstanding, the "Changes" document
should be reordered to be systematic rather than in reverse time order,
and I'd want to add a bit of syntactic Scheme and LilyPond sugar of the

\markup blabla = \markup \with-color #red \etc


I like the goal of defining named markup functions via \etc  but I find 
this syntax a bit odd, with the `=` to the right of `\markup` .  I can't 
think of other cases in LilyPond like this:


\onething another =

where a '\' is to the left of an `=`.  It's usually `a = b` or `\a b` 
but not `\a = b` or `\a b = c`.


Are there other options that wouldn't introduce this new pattern? Would 
something like this work?


\define-markup blabla \markup \with-color #red \etc


variety in order to define named markup functions via \etc .  Basically,
this would split define-markup-command into a definition part called by

\markup blabla = ...

and a function part, say
(markup-lambda (layout props arg) (markup?)
#:properties )

that can be generated by a \markup ... \etc expression or other means.

Basically, that's mainly for avoiding the current "ugh" of

blabla-markup = \markup ... \etc


I agree this is "ugh".

-Paul



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


Re: Duplication of pages with slight changes to color of grobs?

2017-07-17 Thread Paul

Hi Knut,

Nice work on the videos.  Just a couple quick thoughts.

On 07/17/2017 02:30 AM, Knut Petersen wrote:
B) Is there a practical way to redefine color? within a .ly file in a 
way that it is recognized

by lilyponds code?


I take it you have tried this?

#(define (color? ...) ...)

In the after-line-breaking function I give color the objects ... well, 
not really:

I abuse the color property to encode the moment and duration of the
color change.


Would it help to define your own custom properties (grob or context) to 
avoid overloading the color property.  I have this in my include file 
for Clairnote:


#(let*
  ;; translator-property-description function
  ;; from "scm/define-context-properties.scm" (modified)
  ((context-prop
(lambda (symbol type?)
  (set-object-property! symbol 'translation-type? type?)
  (set-object-property! symbol 'translation-doc "custom context 
property")
  (set! all-translation-properties (cons symbol 
all-translation-properties))

  symbol))

   ;; define-grob-property function
   ;; from "scm/define-grob-properties.scm" (modified)
   (grob-prop
(lambda (symbol type?)
  (set-object-property! symbol 'backend-type? type?)
  (set-object-property! symbol 'backend-doc "custom grob property")
  symbol)))

  (context-prop 'myfoo list?)

  (grob-prop 'mybar integer?)
  ;; etc...
  )

Then I can use my custom properties just like the built-in ones.

-Paul


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


Re: LilyDevOS, a LilyDev container + full VM image

2017-07-15 Thread Paul

On 07/15/2017 02:43 PM, Paul wrote:

Also, the authentication in git-cl opens a web page in a browser so 
I'm not sure how that will work from the container?


I suppose one could just install git-cl in the host os and use it from 
there, (assuming the two uids match allowing access to the files).


-Paul

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


Re: LilyDevOS, a LilyDev container + full VM image

2017-07-15 Thread Paul

On 07/14/2017 05:52 AM, Federico Bruni wrote:
https://github.com/fedelibre/LilyDevOS/releases/tag/v0.1 


Hi Federico,

This looks great!  I downloaded the one for linux (I'm on Ubuntu 16.04 
LTS) and gave it a try.  I ran into a few things but got it working and 
successfully built LilyPond in the container.  Details below.


One issue was that I had systemd installed, but not systemd-container, 
so I had to install that.  So maybe we should add that to the 
dependencies in the instructions?


$ sudo systemd-nspawn -bD lilydevos-0.1
sudo: unable to resolve host t440s
sudo: systemd-nspawn: command not found

$ systemd-nspawn --help
The program 'systemd-nspawn' is currently not installed. You can install 
it by typing:

sudo apt install systemd-container


After that, things worked, although I saw some "Failed to..." messages, 
not sure if they are a problem or not:


$ sudo systemd-nspawn -bD lilydevos-0.1
sudo: unable to resolve host t440s
Spawning container lilydevos-0.1 on 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1.

Press ^] three times within 1s to kill container.
Failed to create directory 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: 
Read-only file system
Failed to create directory 
/home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: 
Read-only file system
systemd 233 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR 
+SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 
+SECCOMP +BLKID +ELFUTILS +KMOD +IDN default-hierarchy=hybrid)

Detected virtualization systemd-nspawn.
Detected architecture x86-64.

Welcome to Fedora 26 (Twenty Six)!

Set hostname to .
Initializing machine ID from random generator.
Failed to install release agent, ignoring: File exists
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Created slice User and Session Slice.
[  OK  ] Reached target Swap.
[  OK  ] Listening on Process Core Dump Socket.
[  OK  ] Created slice System Slice.
[  OK  ] Created slice system-getty.slice.
 Mounting Huge Pages File System...
 Mounting FUSE Control File System...
[  OK  ] Reached target Slices.
 Mounting POSIX Message Queue File System...
[  OK  ] Listening on Journal Socket.
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
 Starting Rebuild Journal Catalog...
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
 Starting Rebuild Dynamic Linker Cache...
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Encrypted Volumes.
 Starting Create System Users...
 Starting Journal Service...
[  OK  ] Reached target Remote File Systems.
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Started Create System Users.
[  OK  ] Started Journal Service.
 Starting Flush Journal to Persistent Storage...
[  OK  ] Started Rebuild Journal Catalog.
[  OK  ] Started Flush Journal to Persistent Storage.
 Starting Create Volatile Files and Directories...
[  OK  ] Started Create Volatile Files and Directories.
 Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Rebuild Dynamic Linker Cache.
 Starting Update is Completed...
[  OK  ] Started Update is Completed.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Started dnf makecache timer.
[  OK  ] Reached target Timers.
[  OK  ] Reached target Basic System.
 Starting Permit User Sessions...
[  OK  ] Started D-Bus System Message Bus.
 Starting Login Service...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Console Getty.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Login Service.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
 Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Fedora 26 (Twenty Six)
Kernel 4.4.0-83-generic on an x86_64 (console)

lilydev login:


Next I found that the uid for the dev user in the container was not the 
same as my host user uid, so I wasn't able to access the files from the 
host user account.  But I was able to use the instructions in this blog 
post to change the dev user uid and that fixed it:

https://muffinresearch.co.uk/linux-changing-uids-and-gids-for-user/

And I was able to successfully build lilypond in the container. (Look 
mom, no VM!)


So this is really nice.  I can edit files using my usual desktop 
environment and text editor, then just do git and git-cl via the command 
line

Re: Using/requiring Cairo

2017-06-27 Thread Paul

On 06/26/2017 02:36 PM, David Kastrup wrote:


Interestingly, "Cairo uses hardware acceleration when available."

Well, to be fair this just concerns display backends.  So it might be
interesting for Denemo and Frescobaldi interfacing but will not
otherwise affect output.  I think it would be quite interesting for
creating "live" output "rolls" for editing.


Ah, good to know.  That would indeed be cool if it could be used by 
front-ends like that.



Yes.  That is what suggests eventual retirement of the existing backends
to be an option that could end up reducing the amount of ongoing
developer effort for keeping the backends in uniformly coherent shape.

Cairo doesn't do stuff like skylines and page layout, so finding good
ways for fudging stuff together will still be necessary.


I assume users would still be able to make their own stencils (or 
equivalent cairo data structures), via the guile-cairo wrapper or 
otherwise.  Also it would be good to still be able to include ids or 
other metadata in svg output.  Just to put those things on the radar.


-Paul

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


Re: Using/requiring Cairo

2017-06-26 Thread Paul
I can't speak to the technical questions, but I see the appeal of this 
idea.  Cairo looks like a mature, well-supported, and widely-used library.


https://en.wikipedia.org/wiki/Cairo_%28graphics%29

Interestingly, "Cairo uses hardware acceleration 
<https://en.wikipedia.org/wiki/Hardware_acceleration>^[3] 
<https://en.wikipedia.org/wiki/Cairo_%28graphics%29#cite_note-3> when 
available."


I see that it can produce Postscript as well as PDF, among its various 
backends.  "The vector graphics application Inkscape 
<https://en.wikipedia.org/wiki/Inkscape> uses the Cairo library for its 
outline mode display, as well as for PDF 
<https://en.wikipedia.org/wiki/Portable_Document_Format> and PostScript 
<https://en.wikipedia.org/wiki/PostScript> export..."


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


Re: What is the point of \on-the-fly ?

2017-06-13 Thread Paul

On 06/13/2017 11:16 AM, David Kastrup wrote:


(define-markup-command bla)

does not define bla, but rather bla-markup, make-bla-markup and bits and
pieces used for signatures and the markup macro.

Even then, creating music functions on the fly _and_ using them requires
use of $(define-music-function ...) since #(define-music-function ...)
does not call the generated music function (would be hard assigning a
music function if it got called right away...).


Ah ok, thanks for the explanation.  (I need to brush up on my $ vs #.)


I actually just proposed an issue where you _can_ call markup functions
on the fly when defined properly.


Sounds good.  This is the $ one.


But the process of assigning a markup
command with all that it entails cannot be done in the same manner.

Since we can generate markup commands "on the fly" with \markup
... \etc, assigning them in a manner corresponding to
define-markup-command might be nice.

I suggested

\markup bla = ...

for it without being all too clear about whether this implied \markup
mode, allowing for

\markup bla = \bold \large \etc

rather than

\markup bla = \markup \bold \large \etc

There were no real comments (and I am fuzzy on the details of the
ensuing non-discussion as far as I remember it) so this proposal petered
out.


Hmm, I must have missed this, but sounds promising.

-Paul

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


Re: What is the point of \on-the-fly ?

2017-06-13 Thread Paul

On 06/12/2017 01:00 AM, David Kastrup wrote:


The use case is similar to that of lambda: creating a procedure on the
fly without giving it a name.


Ah, got it.  Then makes sense to avoid having to use on-the-fly, by 
converting those named on-the-fly procedures into actual markup commands.


Just thinking out loud, but if define-markup-command worked like 
define-music-function and friends (i.e. like lambda) so that they 
returned a procedure, like this:


  command-name = #(define-markup-command (layout props args...) ...

  (define command-name (define-markup-command (layout props args...) ...

Rather than the current form:

  (define-markup-command (command-name layout props args...) ...

Would that remove the need for on-the-fly or am I missing something?  
I'm sure that would not be a trivial change -- again just thinking out loud.


-Paul

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


Re: lilypond-manuals.css: edit color scheme and some spacing (issue 322070043 by paulwmor...@gmail.com)

2017-06-12 Thread Paul

On 06/12/2017 06:24 AM, fedel...@gmail.com wrote:


I like a lot the new color scheme! More elegant and easier for the eyes.


Thanks, glad you like it!

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


Re: lilypond-manuals.css: edit color scheme and some spacing

2017-06-12 Thread Paul

On 06/12/2017 03:02 PM, Flaming Hakama by Elaine wrote:


CSS is happy with both properties set:
width as a percentage and min-width as an absolute value.

There is no conflict and they should work together well.


Hi, yes, thanks, but... I glossed over the details.  If you look at the 
css file you'll find that the main content div is positioned so that its 
"left" property is a percentage that corresponds with the sidebar's 
"right" property.  There is actually no "width" property in use and I 
don't think there is a maximum left/right css property to use, thus... 
what I wrote in my previous email.


-Paul

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


Re: lilypond-manuals.css: edit color scheme and some spacing (issue 322070043 by paulwmor...@gmail.com)

2017-06-12 Thread Paul

On 06/10/2017 07:30 PM, carl.d.soren...@gmail.com wrote:


I don't feel strongly about the old design being bad.


What got me motivated to work on it was the bright (fully saturated) 
colored borders around the code blocks, which I found distracting.



The new design looks mostly fine to me.


Glad to hear it.


I feel like the table of contents bar at the left is too wide.


I agree; it can get a bit wide especially on wider monitors/windows.  
(Note I have not changed its width in this patch.)  Currently the size 
is a percentage of the window width.  We could make that smaller, but at 
the risk that it gets too narrow on smaller screens/windows.


Another way would involve a different approach in the css, allowing us 
to set a maximum and minimum width to it.  But this would entail more 
work/changes to the css and maybe the html.  (e.g. to use floats, 
flexbox, or grid positioning rather than the current "position: fixed;" 
approach.)


Or... we could keep the "position: fixed;" approach and set the width to 
a constant amount rather than a percentage.  And/or we could also set 
media query break points to change that constant for different window 
widths.  This could even be combined with the percentages so it could 
effectively have a max and min width and be set by percent in between.


In any case this would warrant its own issue.


But I would be fine with it being like this.


Glad to hear, and thanks for the feedback.

-Paul

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


Re: Releasing 2.20

2017-06-09 Thread Paul

On 06/08/2017 03:31 PM, David Kastrup wrote:


Sounds good to me.  I have a few things I'd like to get into the
stable release, one way or another, if possible.

- Some CSS edits for the docs that I started but havent
finished/submitted for review yet.  I'll try to get that done in the
next few days if I can.

Shouldn't matter a lot regarding stable/unstable but we should get the
bikeshedding finished by release time.


Sounds good.


- Might be worth looking again at issue 3884, either to just go with
the initial patch for now, or try for one of the other approaches in
that discussion?
https://sourceforge.net/p/testlilyissues/issues/3884/

Ugh, looks like another ball I dropped.  I'll take to pencil and paper
some time tomorrow.


I see you already have a proposal/fix.  That was fast!  I'll try to take 
a look and reply in the other thread.



- This doesn't really matter, but it might be worth renaming the
"staffLineLayoutFunction" context property (which is not really about
staff lines...) to something better, maybe
"pitchToStaffPositionFunction" or pitchToStaffPositionProcedure"? (It
takes a pitch and returns an integer indicating a vertical staff
position.  It's used in note-heads-engraver.cc)

Well, discussion needs to have converged really well for changes to
preexisting conventions to get into stable: we don't really want to do
gratuitous changes that might get changed again or do not provide a
definite payback for the hassle.


OK, sounds like a discussion to have for 2.21 / 2.22 then.

A few other possibilities, for later:

  pitchToStaffLayoutFunction

  pitchToStaffLayoutProcedure

  staffPitchLayoutFunction

  staffPitchLayoutProcedure

Cheers,
-Paul


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


Re: Releasing 2.20

2017-06-08 Thread Paul

On 06/07/2017 04:34 PM, David Kastrup wrote:


tomorrow I am leaving for physical therapy.


Hope it goes well David!


So how is it going to end up?  Barring objections, I'll probably branch
off a stable release branch early next week.  I'll have to see what to
cherry-pick into this branch as fixes proceed, and possibly what to
revert when it is not clear that functionality provided by recent
patches/changes can be considered stable in use and interface.

I don't think that we should need much more than the 3-week maturing
period corresponding to the expected physical therapy duration.

The alternative of releasing 2.18.3 since 2.18.2 does not even compile
using gcc-7 anymore is something I want to avoid.

So I'd rather pitch for a timely release of 2.20.  There have been a few
critical bugs flagged, however.  I'll take a look at them eventually but
if someone else has a good idea...


Sounds good to me.  I have a few things I'd like to get into the stable 
release, one way or another, if possible.


- Some CSS edits for the docs that I started but havent 
finished/submitted for review yet.  I'll try to get that done in the 
next few days if I can.


- Might be worth looking again at issue 3884, either to just go with the 
initial patch for now, or try for one of the other approaches in that 
discussion?

https://sourceforge.net/p/testlilyissues/issues/3884/

- This doesn't really matter, but it might be worth renaming the 
"staffLineLayoutFunction" context property (which is not really about 
staff lines...) to something better, maybe 
"pitchToStaffPositionFunction" or pitchToStaffPositionProcedure"? (It 
takes a pitch and returns an integer indicating a vertical staff 
position.  It's used in note-heads-engraver.cc)


Let me know any thoughts on these things,
-Paul


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


Re: Scheme in LilyPond

2017-06-01 Thread Paul

On 06/01/2017 11:03 AM, Charles Winston wrote:


And I get an error saying that make-note-ev is an unbound variable. I thought 
that we could call Scheme procedures from the source in lilypond files. What am 
I missing here?


I'll just add that generally you can call scheme procedures defined in 
source files when they are defined with 'define-public'.  If they are 
defined with 'define' then they probably won't be callable.  In the 
latter case you can often just copy/paste them into your .ly file 
(adding # at the beginning of the opening paren(s)) and use them that way.


Cheers,
-Paul

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


Re: Calling in for sickness

2017-05-18 Thread Paul

Hi David,

I'm really sorry to hear your news and I hope your health improves.

All my best,
-Paul


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


Re: Help with building LilyPond

2017-05-14 Thread Paul

Welcome Charles!

On 05/14/2017 03:02 PM, Thomas Morley wrote:


Wait, you wrote about using LilyDev. Did you take LilyDev 5.2? This one is
for the guile2-work.
Choose LilyDev 4.1 from
https://github.com/fedelibre/LilyDev/releases/tag/v4.1
and all should be fine.


This must be the trouble.  Looks like the contributor's guide needs to 
be updated to point to both LilyDev5 and LilyDev4 and explain why to use 
one or the other.  Currently it just points to the latest (LilyDev5).


Charles, once you get your dev environment set up, updating the 
contributor's guide would make a good "first bug" if you'd like to get 
familiar with the process.  (Changes to the docs and website work the 
same way as patches to the source code.)


Cheers,
-Paul

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


Re: LilyDev4 and Guile2.2 ?

2017-04-13 Thread Paul

On 04/13/2017 02:23 PM, Thomas Morley wrote:


Hi Paul,

meanwhile I do most on my host, not in the VB.

I compiled guile-1.8 and guile-2.0.14 from the released tarball and
2.2.0 from the guile-repository.
Once compiled it's pretty unexpensive to do 'make install' on the
guile-version you wish.

Also, I have three times the lilypond-repository, each compiled with a
different guile-version.

So I can check quickly whatever I need with different versions of
lilypond/guile.


Probably not the way for you, but very convenient in my eyes.


Hi Harm,  Thanks for the info.  I thought there were problems with 
having guile1 and guile2.x installed at the same time?  Or is that just 
if you're relying on package managers?


I cloned my working LilyDev4 virtual machine and upgraded it to debian9. 
The upgrade went fine, but trying to boot into it... same black screen 
forever after grub screen and 'loading initial ramdisk'...


But, using the advanced options on the grub screen I can select Linux 
3.16... (instead of 4.9.0...) and it successfully boots. So that's 
progress. :-)  Next step is to install guile2.2


Cheers,
-Paul


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


Re: LilyDev4 and Guile2.2 ?

2017-04-13 Thread Paul
Thanks Federico.  I'm debating whether to learn libvirt or take the 
LilyDev4 upgrade to Debian9 / Guile2.2 path...


When looking at this before I tried "Virtual Machine Manager" 
https://virt-manager.org/  but it didn't work for me (can't remember why 
now, I didn't go too far into it...).  So maybe I should just learn to 
use libvirt directly.


On the one hand VirtualBox is the path of least resistance and would 
minimize time spent on tooling (at least in short run).  On the other 
hand since you use libvirt, switching to that is probably better over 
the long-term.


-Paul


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


LilyDev4 and Guile2.2 ?

2017-04-12 Thread Paul

Hi all,

Having been unsuccessful at getting LilyDev5 running on my laptop using 
VirtualBox, I'm wondering how it would work to create a virtual machine 
with LilyDev4 (which is working for me) and then uninstalling guile1.8 
and installing guile2.2.


Is this a fool's errand?  I'm new to this dependency hell business, 
would be a good induction, maybe too good?


Thanks for any advice,
-Paul


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


Re: checking grob type

2017-03-17 Thread Paul

cc'ing lilypond-devel to move discussion there.

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


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


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



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


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



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


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


Thanks again,
-Paul

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


Re: Website upload

2017-03-07 Thread Paul

On 03/07/2017 05:47 AM, Davide Liessi wrote:


Maybe an HTTP permanent redirect (308) should be added instead of a symlink, see
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection


+1

Best policy would be whenever a page changes its file name we should 
create a permanent redirect to the new page/file/name.  Search engines 
can then follow these redirects and transfer their ranking data for the 
old page to the new page.


(The old GSOC page is likely still at the top of the search results 
because there are links to it out on the web and the search engines use 
those to rank that page relative to others.)


Cheers,
-Paul

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


Re: Web: nest GSOC project ideas under subsection/h3 (issue 314530043 by paulwmor...@gmail.com)

2017-02-22 Thread Paul

On 02/22/2017 02:07 PM, gra...@percival-music.ca wrote:


On that note, I wrote a tool for my job that does regression testing for
a website (very similar to our lilypond regression tests).  I'll try to
polish it and get my boss to OK open-sourcing it in the next few days.

This will help future CSS development by giving us confidence that
there's no unintended changes.


Nice!  That sounds great.

-Paul

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


Re: Web: nest GSOC project ideas under subsection/h3 (issue 314530043 by paulwmor...@gmail.com)

2017-02-22 Thread Paul

On 02/22/2017 02:32 PM, Urs Liska wrote:


Am 22.02.2017 um 20:04 schrieb gra...@percival-music.ca:

Sorry, I disagree.  I think the boxes make it easier to skim the page;
there horizontal gap makes it absolutely clear that each proposal is
distinct.


Myself, I don't find the skimmability or distinctness to be all that 
different.



I think the point in Paul's suggestion is to make a clear separation
between the project ideas and the last box with general information.


Yep.

Also I'd like to move what used to be the contents of the 'old news' to 
the attic page so that the news page doesn't have to load all of the 
news.  (What with it being just one click from the home page. That's a 
task left over from working on the home page last fall.)


So on the attic page as well it would be nice to be able to clearly 
group the GSOC entries somehow (and maybe the news entries too for that 
matter?).


But I did forgot to check other uses of  / @subsubheading on the 
site.  I just searched the source code to see which pages have  / 
@subsubheading, but the texinfo files contain more than one webpage each 
so that didn't really help.


With HTML it would be easy to create a separate style to use for these 
kinds of subheadings ().  But I don't think there's 
currently a way to assign a class to a @subsubheading.


Anyway, in general it would be nice to have a way to do nested 
headings/sections for cases like this.  I'm out of fresh ideas for how 
to do this, other than the way I did it.


Cheers,
-Paul

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


Re: Add lilypond version predicates/operators (issue 317270043 by g...@ursliska.de)

2017-02-15 Thread Paul

On 02/14/2017 10:48 AM, d...@gnu.org wrote:


It's not a "version-compare" as much as a "lexicographic-compare".


Indeed, even better, more multi-purpose.

(Now I'm imagining version schemes like Ubuntu's animal names, but 
nested... Werewolf.Yak.Groundhog)


-Paul

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


Re: Lily version operators documentation

2017-02-15 Thread Paul

On 02/15/2017 07:19 AM, Urs Liska wrote:


Yes, these are the functions created by LY_DEFINE in C++ files.

If I recall correctly there was discussion about auto-documenting "real" Scheme 
functions too, but I don't know where this went ...


David Nalesnik wrote a script for this.

http://lists.gnu.org/archive/html/lilypond-user/2015-04/msg00134.html

-Paul

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


Re: Cleaning up GSoC project ideas

2017-02-06 Thread Paul

On 02/02/2017 04:10 PM, Urs Liska wrote:


However, I suggest that we either remove such orphaned projects or at
least compress and move them down to the bottom of the page. A concise
page with actual and current projects is quite important for attracting
students, I think.


Sorry for the delay responding...  I'd rather not lose them from the 
website entirely just because they don't currently have a mentor (as 
long as we think they are viable student projects).  What if next year 
new/old mentors are available?


But since you think it's important to remove or demote those projects... 
Why don't we move them to the "attic" page.  Then next year we can 
easily look at them again to see if mentors are available and we want to 
promote them back up to the GSOC page?


Might also be worth putting the grace note one there with a note that we 
decided it was too much for a GSOC project.  Otherwise people may 
re-propose it in the future.



The question is what will remain, and I *strongly* encourage all of you
to consider the existing list and/or think about projects that could be
suitable for a student to tackle in three months of full-time work, and
where you could consider volunteering to be listed as a mentor.


I haven't been able to think of any new projects.  I'd consider being a 
mentor for something involving scheme, but I haven't had a chance to 
look at the list or think further about it.


-Paul

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


Re: ly2musicxml / possible sponsoring

2017-02-02 Thread Paul

Hello Christoph,

On 01/27/2017 08:14 AM, Christoph Hagemann wrote:

thanks for your interest. Please excuse my delayed reply, busy with
real life...


No worries, same here on my side...


Jan-Peter Voigt and Urs Liska replied off-list. They recommended
enhancing frescobaldi's export (python-ly). Which way is more apt?


I'd say in the long run, and maybe even in the shorter run, the 
LilyPond/Scheme approach is more promising.  As I understand it 
python-ly works on LilyPond's text input format so you're basically 
rewriting a chunk of LilyPond to process that into the musical data 
"itself".  Whereas the LilyPond/Scheme approach starts from LilyPond 
having already created that data from the input format.  (Not sure what 
Urs has in mind with combining the two approaches.)


Also, as I understand it the GSOC project got to a state that was 
starting to be useful.  I believe it was in basic working order for 
non-polyphonic music, the big challenge facing it was how to handle 
polyphony / simultaneous music.  And I understand your piece is not 
polyphonic, right?  So that improves the prospects for a useful outcome.


I'm cc'ing David Garfinkle, as it was his project.  David, it would be 
great to hear your input on the state of things.


One question is the release of LilyPond 2.20 and the level of guile2 
support.  (There are significant performance slow-downs with guile2 and 
some other issues...)  If guile2 works well enough, albeit as a slower, 
likely optional thing, then that paves the way for musicxml output.



There is no fixed deadline, but can't hold the publisher on standby
forever. As a guideline: I'd like the export to be working within six
month' time.


Ok, good to know.  I think that's at least within the realm of 
possibility, and worth further discussion.


Cheers,
-Paul


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


Re: LilyDev 5.0 released

2017-01-19 Thread Paul

On 01/19/2017 08:16 PM, Paul wrote:

Well, this is probably good and bad news, but I tried the netinst 
Debian testing iso (i386 with LXDE) and it's working fine.  (Oddly 
enough it works both with and without PAE/NX enabled.)


I spoke too soon.  Although it worked at first, I'm now having the same 
problem with the vanilla debian VM that I have with LilyDev5...  sigh...


-Paul

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


Re: LilyDev 5.0 released

2017-01-19 Thread Paul

Hi Federico,

On 01/19/2017 06:35 AM, Federico Bruni wrote:
If you have some time, can you try installing another Debian testing 
iso? Choose the netinst ISO for your architecture here:

https://www.debian.org/devel/debian-installer/

This would help to understand if the problem is in LilyDev or in 
Debian. I guess it's the latter.
Probably some hardware/kernel problem. I'm just guessing, I never 
experienced these problems.


Well, this is probably good and bad news, but I tried the netinst Debian 
testing iso (i386 with LXDE) and it's working fine.  (Oddly enough it 
works both with and without PAE/NX enabled.)


Maybe I'll use this as an opportunity to try setting up all the dev 
dependencies from scratch?


I tried installing LilyDev5 on my old mac laptop.  It installs fine, 
and I can boot into LXQT, entering my password, but then there seems 
to be some problem with the mouse/keyboard integration as I can't get 
it to respond to clicks or key presses after I have logged in.


This is a problem of Virtual Box. I'm afraid that you should ask for 
help on Virtual Box forums.


I installed it on this old laptop just to see if it would work, but it 
is too old and slow to be of any real use.



virt-manager logs:

A. When installing virt-manager and dependencies via synaptic package 
manager:


W: Can't drop privileges for downloading as file 
'/root/.synaptic/tmp//tmp_sh' couldn't be accessed by user '_apt'. - 
pkgAcquire::Run (13: Permission denied)


https://bugs.launchpad.net/ubuntu/+source/aptitude/+bug/1543280


Ah, thanks.


Unable to connect to libvirt.

Verify that:
 - The 'libvirt-bin' package is installed


$ aptitude show libvirt-bin


Synaptic package manager shows that it's installed.  (I tried that 
command but I don't have aptitude installed.)



 - The 'libvirtd' daemon has been started


$ systemctl status libvirtd


Looks like I did manage to get this started, as confirmed by this command.


- You are member of the 'libvirtd' group


$ groups


Looks like there is no libvirtd group.  So that's probably it.


Have you verified these points?
IIRC you are quite new to Linux and use Ubuntu in your host machine, 
right? Which version? 


Yes, still pretty new at it.  Ubuntu 16.04 is my host machine.


Read this guide:
https://help.ubuntu.com/lts/serverguide/libvirt.html

In later versions of libvirt the correct group is libvirt (instead of 
libvirtd). That's the case for Fedora25, libvirt version 2.2.0.


Thanks for the tips and all your work on LilyDev!  At this point I may 
just stick with VirtualBox rather than try to get up to speed with 
libvirt (assuming things go well with this new debian vm).


Thanks again,
-Paul


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


Re: LilyDev 5.0 released

2017-01-18 Thread Paul

Hi Federico,  Thanks for the ideas:

On 01/18/2017 12:36 AM, Federico Bruni wrote:

Some ideas to help isolate the problem:

- have you checked the integrity of LilyDev .iso file with md5sum?


Yes, it's ok.

- have you started the installation from scratch (i.e. not copied the 
.vdi file created with previous version of VirtualBox)?


Yes, same result.

- have you tried installing another Linux image on the same version of 
Virtualbox?


My LilyDev4 VM is working fine (I haven't tried re-installing it from 
scratch).


- please try also installing LilyDev with virt-manager: 
https://virt-manager.org/


I gave that a try but did not get far.  Seems to be a dependency or 
permissions issue I couldn't figure out.  Error messages below.


I hope to make a new release of LilyDev this week. I'd be interested 
to know if making LilyDev work for you requires some change to LilyDev 
itself (I don't think so, but let's see..).


I tried installing LilyDev5 on my old mac laptop.  It installs fine, and 
I can boot into LXQT, entering my password, but then there seems to be 
some problem with the mouse/keyboard integration as I can't get it to 
respond to clicks or key presses after I have logged in.


-Paul


virt-manager logs:

A. When installing virt-manager and dependencies via synaptic package 
manager:


W: Can't drop privileges for downloading as file 
'/root/.synaptic/tmp//tmp_sh' couldn't be accessed by user '_apt'. - 
pkgAcquire::Run (13: Permission denied)



B. When using virt-manager:


Unable to connect to libvirt.

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started

Libvirt URI is: lxc:///

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 903, 
in _do_open

self._backend.open(self._do_creds_password)
  File "/usr/share/virt-manager/virtinst/connection.py", line 148, in open
open_flags)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to 
'/var/run/libvirt/libvirt-sock': Permission denied



Unable to connect to libvirt.

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started
 - You are member of the 'libvirtd' group

Libvirt URI is: qemu:///system

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 903, 
in _do_open

self._backend.open(self._do_creds_password)
  File "/usr/share/virt-manager/virtinst/connection.py", line 148, in open
open_flags)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to 
'/var/run/libvirt/libvirt-sock': Permission denied



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


Re: LilyDev 5.0 released

2017-01-17 Thread Paul

On 01/03/2017 03:42 PM, Federico Bruni wrote:
Il giorno ven 23 dic 2016 alle 17:26, Paul  ha 
scritto:
Hi Federico, I double-checked and I do/did have the box checked to 
enable PAE.  I tried un-checking it and Virtual Box complained about 
it right away upon starting up the VM.


So when I get a chance I may try James' approach of using a newer 
version of Virtual Box, or else your approach with libvirt.  (No time 
at the moment though...)


Today I've installed Virtual Box 5.1.10 on Fedora from rpmfusion.
When I started the machine the first time I got an error about the 
kernel and I followed VB advice to run two commands as root user:


akmods
systemctl restart systemd-modules-load.service

Then it worked fine.
But Ubuntu doesn't use systemd, right?


Hi all, Following James' instructions I've upgraded to VirtualBox 5.1.13 
r112787 (Qt5.6.1)


And I tried creating and installing a new VM with LilyDev5 but I get the 
same problem. (Black screen after the 'loading initial ramdisk...')


I also tried the commands Federico mentioned, but they did not help. 
(akmods seems to be a fedora thing, not found on ubuntu, and the other 
command worked, but did not change anything.)


I tried opening in 'recovery mode' and got this far on the screen before 
it froze up:


rtc_cmos rtc_cmos: setting system clock to [...] UTC Freeing unused 
kernel memory: 740K Write protecting the kernel text: 5744k Write 
protecting the kernel read-only data: 1704k Loading, please wait...


In the Virtualbox log files it always gets to the same place shown below.

I'm at a loss on what to try next. Any ideas? Thanks in advance for any 
pointers or suggestions.


-Paul

[omitting earlier parts...]

00:00:23.677316 GIM: KVM: VCPU 0: Enabled system-time struct. at 
0x379fd000 - u32TscScale=0xcd47be37 i8TscShift=-1 uVersion=2 
fFlags=0x1 uTsc=0x0 uVirtNanoTS=0x0


00:00:23.677344 TM: Host/VM is not suitable for using TSC mode 
'RealTscOffset', request to change TSC mode ignored


00:00:23.922374 GIM: KVM: Enabled wall-clock struct. at 
0x1a8c1108 - u32Sec=1484682583 u32Nano=222082000 uVersion=2


00:00:24.056792 PIT: mode=2 count=0x12a5 (4773) - 249.98 Hz (ch=0)

00:00:24.242835 PATM: Disabling IDT 80 patch handler da599460

00:00:24.243921 PATM: Disabling IDT fd patch handler da599bb8

00:00:24.244665 PATM: Disabling IDT fc patch handler da599c30

00:00:24.245348 PATM: Disabling IDT fb patch handler da599ca8

00:00:24.246134 PATM: Disabling IDT 20 patch handler da599d20

00:00:24.246496 PATM: Disabling IDT f8 patch handler da599d58

00:00:24.246850 PATM: Disabling IDT f7 patch handler da599d94

00:00:24.247536 PATM: Disabling IDT f2 patch handler da599e0c

00:00:24.247907 PATM: Disabling IDT f1 patch handler da599e48

00:00:24.248251 PATM: Disabling IDT ef patch handler da599e84

00:00:24.248799 PATM: Disabling IDT fe patch handler da599efc

00:00:24.249499 PATM: Disabling IDT f0 patch handler da599f74

00:00:24.250016 PATM: Disabling IDT f6 patch handler da599fec

00:00:24.250329 PATM: Disabling IDT fa patch handler da59a064

00:00:24.250424 PATM: Disabling IDT f9 patch handler da59a0dc

00:00:24.250526 PATM: Disabling IDT f4 patch handler da59a154

00:00:24.250625 PATM: Disabling IDT 10 patch handler da59a1cc

00:00:24.250678 PATM: Disabling IDT 13 patch handler da59a1dc

00:00:24.250724 PATM: Disabling IDT 7 patch handler da59a1ec

00:00:24.250771 PATM: Disabling IDT 4 patch handler da59a200

00:00:24.250815 PATM: Disabling IDT 5 patch handler da59a210

00:00:24.250861 PATM: Disabling IDT 6 patch handler da59a220

00:00:24.250904 PATM: Disabling IDT 9 patch handler da59a230

00:00:24.250944 PATM: Disabling IDT a patch handler da59a240

00:00:24.250984 PATM: Disabling IDT b patch handler da59a250

00:00:24.251025 PATM: Disabling IDT c patch handler da59a260

00:00:24.251063 PATM: Disabling IDT 11 patch handler da59a270

00:00:24.251097 PATM: Disabling IDT 0 patch handler da59a280

00:00:24.251133 PATM: Disabling IDT 12 patch handler da59a290

00:00:24.251166 PATM: Disabling IDT f patch handler da59a2a0

00:00:24.251250 PATM: Disabling IDT e patch handler da59a48c

00:00:24.251287 PATM: Disabling IDT 1 patch handler da59a500

00:00:24.251319 PATM: Disabling IDT 2 patch handler da59a564

00:00:24.251353 PATM: Disabling IDT 3 patch handler da59a640

00:00:24.832869 PATM: Disabling IDT 30 patch handler da599578

00:00:24.937255 PIT: mode=0 count=0x1 (65536) - 18.20 Hz (ch=0)

00:00:25.247422 OHCI: Software reset

00:00:26.403126 PATM: Disabling IDT 3c patch handler da5995d8

00:00:26.411515 PATM: Disabling IDT 31 patch handler da599580

00:00:26.508906 PATM: Disabling IDT 14 patch handler da7ed120

00:00:26.508952 PATM: Disabling IDT 15 patch handler da7ed129

00:00:26.508972 PATM: Disabling IDT 16 patch handler da7ed132

00:00:26.508989 PATM: Disabling IDT 17 patch handler da7ed13b

00:00:26.509006 PATM: Disabling IDT 18 patch handler da7ed144

00:00:26

Re: ly2musicxml / possible sponsoring

2017-01-17 Thread Paul

Hello Christoph,

On 01/16/2017 04:24 AM, Christoph Hagemann wrote:


I'm a music professional in Germany. A few years ago I set a large-
scale orchestral project in lilypond (score around 200 pages). Now the
publisher wants MusicXML data. I understand there was some work done on
an export function during last year's GSoC.

Is there any chance for completion? If it helps, I'm willing to put an
resonable amount of money into this and fund the completion of this
feature.


I'd probably be interested in working on this, especially if you are 
willing and able to sponsor the work to some extent.  (Maybe others 
would also be willing to contribute?)


This was a GSOC 2015 project, and I have a copy of the code. Looking at 
it again, it seems that it should at least be possible to get it to 
where it could be used.  As is, it should cover some of the needs you 
listed[0], and perhaps more could be added.  (Now that guile2 support 
has reached a somewhat-usable state, that will help since guile2 is 
required for the musicxml conversion.)


We should discuss details and expectations, as I wouldn't want to 
over-promise and under-deliver.


I'm curious about your time frame.  Are there deadlines?

Kind regards,
-Paul Morris

[0] The README file says: "Currently limited to single-voice 
SequentialMusic contexts of notes, chords, articulations (not all are 
supported, such as early-music or instrument-specific examples), key 
signatures, time signatures, and clefs"


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


Re: official GNU LilyPond maintainer

2016-12-28 Thread Paul Scott
On Tue, Dec 27, 2016 at 05:25:08AM +, Graham Percival wrote:
> With David stepping down, LilyPond is left without an official GNU
> maintanier.  Does anybody want to do fill this role?  The relevant
> documentation is:
> https://www.gnu.org/prep/standards/html_node/index.html
> https://www.gnu.org/prep/maintain/html_node/index.htm
> 
> If nobody is interested in the position, I am willing to take it
> up again.

Great!  Welcome back!

Paul


> 
> Cheers,
> - Graham
> 
> ___
> 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: LilyDev 5.0 released

2016-12-23 Thread Paul

On 12/23/2016 12:00 AM, Federico Bruni wrote:

Il giorno gio 22 dic 2016 alle 18:48, Paul  ha 
scritto:
I gave it a try.  Installation seemed to go fine, but then on booting 
it up I get past the GRUB screen and then it goes to a black 
unresponsive screen at "loading initial ramdisk..."  Haven't had a 
chance to troubleshoot it further.  I'm attaching the log file in 
case anyone wants to take a look.


(I'm on Ubuntu 16.04 and Virtual Box version 5.0.24_Ubuntu r108355)  
(I'm using LilyDev on Ubuntu because I'm new to GNU/Linux and already 
familiar with LilyDev.)


Hi Paul

In the log I see this line:

00:00:00.447635   PAE - Physical Address 
Extension   = 0 (0)


which makes me think that you've not enabled PAE?
There's a warning in the CG about this:


Hi Federico, I double-checked and I do/did have the box checked to 
enable PAE.  I tried un-checking it and Virtual Box complained about it 
right away upon starting up the VM.


So when I get a chance I may try James' approach of using a newer 
version of Virtual Box, or else your approach with libvirt.  (No time at 
the moment though...)


Thanks,
-Paul

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


Re: LilyDev 5.0 released

2016-12-23 Thread Paul

On 12/22/2016 01:37 PM, James wrote:
I also tried to install LilyDev 5.0 last week - I use Ubuntu 16.0.4 
with the latest 64 bit vBox 5.1.x test build (112223 w Ext pack 112433).


Hi James,  Thanks for the info and tips.  I may try your approach with a 
newer version of Virtual Box when I get a chance.


Cheers,
-Paul



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


Re: LilyDev 5.0 released

2016-12-22 Thread Paul

Hi Federico,

Thanks and congrats on the new release!

I gave it a try.  Installation seemed to go fine, but then on booting it 
up I get past the GRUB screen and then it goes to a black unresponsive 
screen at "loading initial ramdisk..."  Haven't had a chance to 
troubleshoot it further.  I'm attaching the log file in case anyone 
wants to take a look.


(I'm on Ubuntu 16.04 and Virtual Box version 5.0.24_Ubuntu r108355)  
(I'm using LilyDev on Ubuntu because I'm new to GNU/Linux and already 
familiar with LilyDev.)


Cheers,
-Paul


VirtualBox VM 5.0.24_Ubuntu r108355 linux.amd64 (Jul  5 2016 08:17:21) release log
00:00:00.255348 Log opened 2016-12-22T17:42:07.876411000Z
00:00:00.255350 Build Type: release
00:00:00.255352 OS Product: Linux
00:00:00.255353 OS Release: 4.4.0-57-generic
00:00:00.255354 OS Version: #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016
00:00:00.255369 DMI Product Name: 20AQ005QUS
00:00:00.255373 DMI Product Version: ThinkPad T440s
00:00:00.255405 Host RAM: 7673MB total, 4419MB available
00:00:00.255408 Executable: /usr/lib/virtualbox/VirtualBox
00:00:00.255408 Process ID: 4534
00:00:00.255409 Package type: LINUX_64BITS_GENERIC (OSE)
00:00:00.259714 Installed Extension Packs:
00:00:00.259731   VNC (Version: 5.0.24 r108355; VRDE Module: VBoxVNC)
00:00:00.260408 Console: Machine state changed to 'Starting'
00:00:00.264780 GUI: UIMediumEnumerator: Medium-enumeration finished!
00:00:00.265173 Using XKB for keycode to scan code conversion
00:00:00.267600 SUP: Loaded VMMR0.r0 (/usr/lib/virtualbox/VMMR0.r0) at 0xc0b06020 - ModuleInit at c0b26d70 and ModuleTerm at c0b27260
00:00:00.267630 SUP: VMMR0EntryEx located at c0b2a940 and VMMR0EntryFast at c0b29fb0
00:00:00.295495 Guest OS type: 'Debian'
00:00:00.339378 File system of '/home/paul/VirtualBox VMs/LilyDev5Box/Snapshots' (snapshots) is unknown
00:00:00.339391 File system of '/home/paul/VirtualBox VMs/LilyDev5Box/LilyDev5Box.vdi' is ext4
00:00:00.355544 Shared clipboard service loaded
00:00:00.33 Shared clipboard mode: Off
00:00:00.356381 Drag and drop service loaded
00:00:00.356390 Drag and drop mode: Off
00:00:00.358443 Guest Control service loaded
00:00:00.359993 * CFGM dump *
00:00:00.360001 [/] (level 0)
00:00:00.360017   CSAMEnabled= 0x0001 (1)
00:00:00.360023   CpuExecutionCap= 0x0064 (100)
00:00:00.360025   EnablePAE  = 0x0001 (1)
00:00:00.360027   HMEnabled  = 0x0001 (1)
00:00:00.360029   MemBalloonSize = 0x (0)
00:00:00.360030   Name= "LilyDev5Box" (cb=12)
00:00:00.360033   NumCPUs= 0x0001 (1)
00:00:00.360034   PATMEnabled= 0x0001 (1)
00:00:00.360036   PageFusionAllowed  = 0x (0)
00:00:00.360038   RamHoleSize= 0x2000 (536 870 912, 512 MB)
00:00:00.360040   RamSize= 0xbdb0 (3 182 428 160, 2 GB)
00:00:00.360043   RawR0Enabled   = 0x0001 (1)
00:00:00.360044   RawR3Enabled   = 0x0001 (1)
00:00:00.360046   TimerMillies   = 0x000a (10)
00:00:00.360048   UUID = "de 48 55 bd 25 37 cf 4a b4 15 ca 1f 6f 40 c8 6f" (cb=16)
00:00:00.360054 
00:00:00.360057 [/CPUM/] (level 1)
00:00:00.360060   PortableCpuIdLevel  = 0x (0)
00:00:00.360061 
00:00:00.360066 [/DBGF/] (level 1)
00:00:00.360068   Path   = "/home/paul/VirtualBox VMs/LilyDev5Box/debug/;/home/paul/VirtualBox VMs/LilyDev5Box/;/home/paul/" (cb=96)
00:00:00.360070 
00:00:00.360070 [/Devices/] (level 1)
00:00:00.360072 
00:00:00.360072 [/Devices/8237A/] (level 2)
00:00:00.360074 
00:00:00.360075 [/Devices/8237A/0/] (level 3)
00:00:00.360077   Trusted  = 0x0001 (1)
00:00:00.360078 
00:00:00.360079 [/Devices/GIMDev/] (level 2)
00:00:00.360080 
00:00:00.360081 [/Devices/GIMDev/0/] (level 3)
00:00:00.360083   Trusted  = 0x0001 (1)
00:00:00.360084 
00:00:00.360085 [/Devices/VMMDev/] (level 2)
00:00:00.360086 
00:00:00.360087 [/Devices/VMMDev/0/] (level 3)
00:00:00.360089   PCIBusNo   = 0x (0)
00:00:00.360090   PCIDeviceNo= 0x0004 (4)
00:00:00.360091   PCIFunctionNo  = 0x (0)
00:00:00.360093   Trusted= 0x0001 (1)
00:00:00.360094 
00:00:00.360095 [/Devices/VMMDev/0/Config/] (level 4)
00:00:00.360097   GuestCoreDumpDir   = "/home/paul/VirtualBox VMs/LilyDev5Box/Snapshots" (cb=48)
00:00:00.360098   RamSize   = 0xbdb0 (3 182 428 160, 2 GB)
00:00:00.360100 
00:00:00.360101 [/Devices/VMMDev/0/LUN#0/] (level 4)
00:00:00.360103   Driver   = "HGCM" (cb=5)
00:00:00.360104 
00:00:00.360105 [/Devices/VMMDev/0/LUN#0/Config/] (level 5)
00:00:00.360107   Object  = 0x7fbb6c000910 (140 442 

Re: music function to be included somewhere in scm/*

2016-12-20 Thread Paul

Hi Knut, Werner, Alexander, and everyone,

On 12/20/2016 08:47 AM, Knut Petersen wrote:

Hi Werner!

  (length-limit-or-forced-length ,ly:dimension? "An automatically
generated lyric extender is suppressed if it would be shorter than
this length. A forced lyric extender is given this length if
possible.")

Sorry, but I strongly dislike collapsing two properties into one, even
if the values for the two properties are always the same.  So please
use `collapse-length' (`suppress-threshold', etc.) and
`forced-length'.


I'll implement whatever the majority agrees upon.

Nevertheless: two parameters would obfuscate the fact that
the internal logic would always decide to use only one  of those
lengths and to ignore the other.

For the case of two parameters I like best:

(forced-length ,ly:dimension? "A forced lyric extender
is given this length if possible.")
(collapse-length ,ly:dimension? "An automatically generated
lyric extender is suppressed if it would be shorter than
this length.")

Paul?


I'm fine with using two properties, as Werner prefers, and as in this 
suggestion from Knut.


When I suggested using fewer properties I didn't fully understand all 
the details.  (The music I typeset rarely involves lyric extenders.)  
Alexander's explanation and further discussions have helped me get it, 
but I hadn't had a chance to reply sooner.


Thanks again for working on this,
-Paul



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


Re: music function to be included somewhere in scm/*

2016-12-16 Thread Paul

Hi Knut and everyone,

Great to see your work which seems like a nice improvement.  I just have 
some thoughts on the implementation / use of properties.


We are just talking about grob properties and not context properties 
right?  In that case no need to also create context properties as you do 
in your patch, since the grob properties are sufficient.


What about a way to do this with fewer than 3 separate grob properties?

LyricExtender.minimum-length
LyricExtender.no-extender
LyricExtender.force-extender

If I understand correctly, only 1 of 3 kinds of behavior can be in 
effect at a given point:


1. no extensions
2. forced extensions
3. automatically added extension depending on a 'minimum-length' number

So why not one grob property (name to be determined) that can be a 
boolean or a number:


LyricExtender.extenders = ##f   % no extensions
LyricExtender.extenders = ##t   % forced extensions
LyricExtender.extenders = 2% a number, auto extensions

For example, it could be set to a number and then use \once to set it to 
##t to force (or ##f to suppress) a given extender.



Another possibility (2 properties) might be:

LyricExtender.stencil = ##f% no extensions
LyricExtender.force-extender = ##t  % forced extensions
LyricExtender.minimum-length = 2% auto extensions (if force-extender 
is not ##t and stencil is not ##f)



Am I missing something?  What do you think?

Cheers,
-Paul


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


Re: website: texinfo macros for both ID and classes

2016-12-13 Thread Paul

On 12/11/2016 01:32 AM, Graham Percival wrote:


I'm still not convinced that a div with ID and class is actually
needed.  Can you remember the specific example?


Well... I can't remember it at this point.  Basically a case where there 
were a number of items that each shared a style (via a class) but 
needing to style one of them differently (via id).  (I guess currently 
you could just use an additional class, as if it were an id, as a 
workaround.)



I'm just trying to smooth out a point of friction that I encountered, but
sure, there are probably other priorities.

Right, and that's a great move!  I'm just not convinced of the
details in this case.


Okay.  Although I would support making these kinds of changes, to make 
working with texinfo for the website more like working with HTML, to 
make things easier for new contributors, it's not that important.  We 
could always revisit it if/when the need arises from an actual case of 
working on the website.



I don't want this to be advertized on lilypond-user yet since it's
still too soon after the latest website fracas, but I've prepared
a repository so that people can easily experiment with CSS.  It
has the normal index.html, the pictures used by that file, and the
original CSS.  Anybody interested is encouraged to copy the "orig"
directory into a new one, then edit the new CSS as much as they
want.
https://github.com/gperciva/lilypond-web-css
You can see the results here:

http://percival-music.ca/lilypond-web-css/orig/
http://percival-music.ca/lilypond-web-css/simple/

(yes, I ran out of patience when I got to the point of choosing a
color for the "Beautiful Sheet Music" header)

Over the next few days / weeks, I'll continue to edit the "simple"
CSS, and maybe make one or two other examples.  None of this is
intended to be merged with lilypond; I just want to demonstrate
how easy it is to make huge changes with only the CSS.

This way, the next time somebody expresses interest in the
website, they'll have a much clearer idea of what's involved and
what the limitations are.


I think this is a good idea.  Some (most?) may be thwarted by the 
overhead of setting up the LilyPond build environment, so this gives 
them a simpler way to go.  If/when this gets used it might be nice to 
add other pages besides just the home page.


(I still have a little bit of follow-up to do on the work I did on the 
home page last fall.  I hope to get to that sooner than later.)


Cheers,
-Paul


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


Re: Lilypond python upgrade

2016-12-08 Thread Paul

On 12/07/2016 08:28 PM, Andrew Bernard wrote:


Moving a thread across from the user list, I just wanted to let people know
that I will be starting on the work of upgrading lilypond to use Python 3 -
yes, with all the complexity that entails. I am happy to have  a serious
shot at this task.


Just voicing my support and appreciation for taking this on!  Seems like 
auspicious timing now that Graham is available with his knowledge of GUB 
etc.


-Paul

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


Re: website: texinfo macros for both ID and classes

2016-12-05 Thread Paul

On 12/05/2016 12:35 PM, Graham Percival wrote:


On Mon, Dec 05, 2016 at 11:49:27AM -0500, Paul wrote:

For the website I'm thinking about adding a macro that can create a div with
both an ID and classes.

Why?  What problem would this solve?


That there's no way to create a div that has both an Id *and* one or 
more classes.  Currently you'd have to create two nested divs one with a 
class and one with an id (ugh).



This would be good to have in general and more intuitive for
those used to html.

I'm not convinced.


As someone who knew html and went through the process of figuring out 
how to contribute to the LilyPond website, I would have found it more 
intuitive and useful to have.  There was a point where a div with both 
Id and class was needed and there was no way to do it even though this 
is the most basic and common thing in html.


I'm just trying to smooth out a point of friction that I encountered, 
but sure, there are probably other priorities.



Before changing the underlying texinfo macros, much less the build
system or language used (which is not what Paul is suggesting, but
I know that those ideas are out there), I'd like to see somebody
make an honest effort at working on the CSS.


Well, I have already been doing that and plan to continue to work on the 
website as my time allows.



In particular, to make the website look acceptable on small
screens.  This would take 2-5 hours, depending on how familiar
that person is with CSS and web browser testing.

I don't think that's too much to ask.  If nobody is prepared to
even do that much, then we certainly don't want them to spend time
and effort on larger redesigns that may never be completed.  I'm
available to mentor this task.


I can't take this on at the moment given my other constraints and 
commitments.  (I suspect it would take more than 2-5 hours and might 
involve more than changing the CSS, but maybe I'm overestimating it.)


Cheers,
-Paul


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


website: texinfo macros for both ID and classes

2016-12-05 Thread Paul
For the website I'm thinking about adding a macro that can create a div 
with both an ID and classes.  This would be good to have in general and 
more intuitive for those used to html.  For example:


  @macro div {ID, CLASSES}
  @html
  
  @end html
  @end macro

Used like so:

  @div {an-id,first-class second-class}


Currently we have divId and divClass that could be replaced by such a macro.

  @div {an-id}  -->   

  @div {,first-class second-class}  -->   


Unfortunately there seems to be no conditionals in texinfo macros so I 
don't see a way to avoid the empty id="" and class="" in that scenario.  
To avoid that we would have to keep divId and divClass and add 
divIdClass.[0]  But I think having one macro for divs would be simpler 
and easier for contributors, which might be the best variable to 
optimize for.


If we did this for divs it would make sense to do the same for spans and 
our current spanClass.


Thoughts?

[0] Maybe pluralize divIdClasses and divClasses to make it clear that 
you can have more than one.


-Paul


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


Landing MusicXML export summer of code work into LilyPond?

2016-12-04 Thread Paul

Hello Davids Kastrup and Garfinkle,

Since we will soon be losing David K. to more lucrative pursuits, I 
thought I'd ask about the status of David G.'s summer of code work on 
MusicXML export.  I'd love to see that land in LilyPond (at least the 
part to generate an SXML file which could be manually post-processed to 
MusicXML with Guile 2 until LilyPond makes the transition to Guile 2).


What needs to be done and can I help with making it happen?

(Not just theoretical interest, as one of my bandmates uses MuseScore 
and would like MusicXML versions of my LilyPond files.)


Cheers and thanks,
-Paul

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


Re: Stepping up, contributor mentoring

2016-12-02 Thread Paul Scott
On Tue, Nov 29, 2016 at 03:11:42PM -0800, Graham Percival wrote:
> Hi all, I'm back.

Welcome back!!

> (I was planning on waiting until the new year, but David's news
> made me re-evaluate my health now, and I think I have the energy
> to take on more stuff.  To make a long story short: depression,
> burnout, quit academia, moved back to Vancouver, recovery.  Also,
> started ballroom and swing dancing!  Great fun, absolutely
> recommended, *especially* for other shy, socially anxious computer
> geeks.

+1   It's my main recreation.  It's country swing here in Tucson.

> Despite that help, I'm still not 100% recovered, but I'm
> content with my progress, and I think that doing more volunteer
> work will help.)

Great!

Paul



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


Re: Stepping up, contributor mentoring

2016-11-30 Thread Paul

Hi Graham,

Glad to hear you're back!

Cheers,
-Paul


On 11/29/2016 06:11 PM, Graham Percival wrote:

Hi all, I'm back.

So, are there any vacancies on the Bug Squad?  I've signed up for
sourceforge (username: gperciva).  Other than that, my primary
interest remains in organization / mentoring new contributors.
Has anything changed in regards to that in the past four years?
Or shall I jump straight in?  I see that "Contributor 1.4 Mentors"
hasn't changed.

Anything else I should know?  I've skimmed the past month of this
mailing list.


(I was planning on waiting until the new year, but David's news
made me re-evaluate my health now, and I think I have the energy
to take on more stuff.  To make a long story short: depression,
burnout, quit academia, moved back to Vancouver, recovery.  Also,
started ballroom and swing dancing!  Great fun, absolutely
recommended, *especially* for other shy, socially anxious computer
geeks.  Despite that help, I'm still not 100% recovered, but I'm
content with my progress, and I think that doing more volunteer
work will help.)


Cheers,
- Graham

___
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: guile-2.0 and debian

2016-11-25 Thread Paul

On 11/25/2016 06:13 PM, Thomas Morley wrote:


- Investigate why lilypond is a lot slower when using guile-2.0

This is the current main problem, I'd say.


From what I've read, the guile 2.0 interpreter is simply slower than 
the guile 1.8 interpreter (with the trade-off being that 2.0 has a 
compiler).  For example, a quote from:


https://wingolog.org/archives/2016/01/11/the-half-strap-self-hosting-and-guile

-begin-quote

Back in 2009 when we switched to the eval-in-Scheme, we knew that it 
would result in a slower interpreter. This is because instead of the 
interpreter being compiled to native code, it was compiled to bytecode. 
Also, Guile's Scheme compiler wasn't as good then, so we knew that we 
were leaving optimizations on the floor. Still, the switch to an 
evaluator in Scheme enabled integration of the compiler, and we thought 
that the interpreter speed would improve with time. I just took a look 
and with this silly loop:


(let lp ((n 0)) (if (< n #e1e7) (lp (1+ n

Guile 1.8's interpreter written in C manages to run this in 1.1 seconds. 
Guile 2.0's interpreter written in Scheme and compiled to the old 
virtual machine does it in 16.4 seconds. Guile 2.1.1's interpreter, with 
the closure-chaining optimization, a couple of peephole optimizations in 
the interpreter, and compiled using the better compiler and VM from 
Guile 2.2, manages to finish in 2.4 seconds. So we are definitely 
getting better, and by the time we compile eval.scm to native code I 
have no doubt that we will be as good as the old C implementation. (Of 
course, when compiled to Guile 2.2's VM, the loop finishes in 55 
/milli/seconds, but comparing a compiler and an interpreter is no fair.)


--end-quote

So I assume (as a non-authority in this area) that the best way to 
address the slowdown is to start using guile 2.0's compiler to compile 
LilyPond's scheme code.  And I suppose taking that step would make sense 
after the known bugs are fixed and things work using the interpreter, 
but are just slower.


-Paul



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


Re: guile-2.0 and debian

2016-11-23 Thread Paul

On 11/23/2016 06:09 PM, Thomas Morley wrote:


Currently it seems I'm the only one being able to test Antonio's patches.

This is not exactly optimal.

[...]

Having a LilyDev with guile 2.0.12/13 may help.


I for one would be more likely to help with testing if there were a 
LilyDev with guile 2.0.12/13


Thanks Antonio, Harm, David, Federico, et al, for your work on this.

-Paul

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


Re: PATCHES: Countdown for November 21st

2016-11-21 Thread Paul

Great thanks!  -Paul


On 11/21/2016 11:15 AM, James wrote:

Paul,


On 21/11/16 14:56, Paul wrote:
I just pushed the patches for issue 4752 (Add ly:one-page-breaking) 
to staging.  Hopefully they don't break staging this time, and if 
they do we can capture the logs to find out what's not working.


Thanks,
-Paul



This merged just fine.

Thanks

James



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


Re: PATCHES: Countdown for November 21st

2016-11-21 Thread Paul
I just pushed the patches for issue 4752 (Add ly:one-page-breaking) to 
staging.  Hopefully they don't break staging this time, and if they do 
we can capture the logs to find out what's not working.


Thanks,
-Paul


On 11/21/2016 07:58 AM, James wrote:

Hello,

Here is the current patch countdown list. The next countdown will be on
November 24th.

A quick synopsis of all patches currently in the review process can be
found here:

http://philholmes.net/lilypond/allura/


__


Push:


4752 Add ly:one-page-breaking - Paul Morris
https://sourceforge.net/p/testlilyissues/issues/4752
http://codereview.appspot.com/288910043


Countdown:


5000 Add using Extract PDFmark for document building - Masamichi Hosoda
https://sourceforge.net/p/testlilyissues/issues/5000
http://codereview.appspot.com/314130043


4999 Synchronize \layout and \midi definitions - David Kastrup
https://sourceforge.net/p/testlilyissues/issues/4999
http://codereview.appspot.com/316910043


Review: No patches in review at this time.


New: No New patches at this time.


Regards

James


___
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


Back to work on Issue 4752: Add ly:one-page-breaking

2016-11-14 Thread Paul

Hi all,

I have some time to work again on ly:one-page-breaking.  Ideally I'd 
like to land it before 2.20 is released.  I've just updated the patches 
so they apply to current master.


James (or anyone), one possible complication was different gcc versions 
on different machines giving different results.  If you have a chance, 
would you mind testing the patches to see if this is the case?  Assuming 
there are still problems can you save and post the full log?  For me 
make still succeeds on current LilyDev (gcc 4.9.2, g++ 4.9.2, Debian 
4.9.2-10).


https://sourceforge.net/p/testlilyissues/issues/4752/

https://codereview.appspot.com/288910043

http://lists.gnu.org/archive/html/lilypond-devel/2016-02/msg5.html

Thanks,
-Paul


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


Re: Fixing "id.ly" regtest file

2016-10-05 Thread Paul
Or maybe it's best if I just push a new commit (to staging) that fixes 
the error.  I'll do that later today unless I hear otherwise.


-Paul


On 10/04/2016 01:57 PM, Paul wrote:

Hi all,

I pushed my commits for issue 4974 to staging, and all went well, but 
then I noticed that the regtest "id.ly" was incorrect.  The diff for 
it has:


-{ \override NoteHead.id = #"foo" c }
+{ \override NoteHead.output-attributes.id = #"foo" c }

when this shouldn't have been changed.  (Running the 
scripts/auxiliar/...  convert-ly script made this change but I 
overlooked it because the header text in that file was also changed 
manually.  So I didn't manually correct it.)


To fix this, I'd propose reverting the last commit on master:
http://git.savannah.gnu.org/cgit/lilypond.git/commit/?id=03d47798d39bd9ce2a87376ea1585f1f31c1b81b 



and then I can re-upload an amended version of that commit that fixes 
the "id.ly" file.  Please let me know how best to proceed.


Sorry for not catching this before,
-Paul
___
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


Fixing "id.ly" regtest file

2016-10-04 Thread Paul

Hi all,

I pushed my commits for issue 4974 to staging, and all went well, but 
then I noticed that the regtest "id.ly" was incorrect.  The diff for it has:


-{ \override NoteHead.id = #"foo" c }
+{ \override NoteHead.output-attributes.id = #"foo" c }

when this shouldn't have been changed.  (Running the 
scripts/auxiliar/...  convert-ly script made this change but I 
overlooked it because the header text in that file was also changed 
manually.  So I didn't manually correct it.)


To fix this, I'd propose reverting the last commit on master:
http://git.savannah.gnu.org/cgit/lilypond.git/commit/?id=03d47798d39bd9ce2a87376ea1585f1f31c1b81b

and then I can re-upload an amended version of that commit that fixes 
the "id.ly" file.  Please let me know how best to proceed.


Sorry for not catching this before,
-Paul
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Don't merge non-overlapping ledger lines (issue 308560043 by paulwmor...@gmail.com)

2016-10-03 Thread Paul

On 10/03/2016 06:10 AM, thomasmorle...@gmail.com wrote:


I can't review C++, but I applied your patch and tested it with my code
from
http://lists.gnu.org/archive/html/lilypond-user/2012-07/msg00336.html
(A far more extreme example than your regtest)

Works nicely.

So far: LGTM


Now that's a good stress test!

Thanks for trying it out,
-Paul

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


Re: Proposal: support for custom grob and context properties

2016-09-28 Thread Paul

On 09/27/2016 09:24 PM, David Kastrup wrote:


Paul  writes:


1. Make those two procedures "define-public" so users can just use
them to define their own properties.  This requires very minimal
change to LilyPond code, and is convenient for users since existing
functions will just work for accessing and setting their custom
properties (e.g. ly:grob-property).

The problem with the current implementation is that such additions are
not limited in scope and will persist beyond the currently processed
file.


2. Define a "custom-properties" grob property and a "customProperties"
context property (or whatever name) that each holds an alist of user
properties.  This adds additional properties to LilyPond and is a
little more complex for the user to work with, but it provides
isolation from LilyPond's properties.  (For example, users would only
have to worry about conflicts with other user-defined properties, not
conflicts with current or future LilyPond properties.)

This will not work with current code checks working with object
properties.


I'm interested in implementing this one way or another.  Using the
same approach for grob and context properties would make sense.

Thoughts?

First you'd need to move is-grob? and its friends from the old "object
properties" interface to the new, function-calling one.  That's an
incompatible change.

Then you'd need to use a session-local defining function for defining
those properties, one that restores the startup state after each
session.

Here is some stone-age patch where you can see how the first step would
look in Scheme (the C++ part would no longer apply since
lily_module_constant has been superseded by the lily-imports.{cc,hh}
files).

All previous such "extensions" dabbling in internals would stop working.
So would previous checks for these properties (it's conceivable to
redefine the old object property accessor functions as they are not
likely to be used outside of LilyPond and a bit of performance impact
for legacy use would be tolerable).


Thanks for the explanation and details.  Looks like this is more 
involved than I thought...  I'll take a closer look, but I suspect this 
may be more than I want to take on right now, or at least there are some 
other things more within my reach that I'd like to work on first.


-Paul


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


Proposal: support for custom grob and context properties

2016-09-27 Thread Paul

Hi all,

It would be nice if LilyPond supported user-defined grob and context 
properties, for use in users' code -- in the spirit of practical 
software freedom and to further LilyPond's excellent extensibility. It 
would also be handy for prototyping code that might end up in LilyPond.


Harm recently used custom properties in his BendSpanner-engraver, and I 
use them in my code for alternative notation systems.


Currently this requires finding and copy/pasting the relevant scheme 
procedures so they can be used in your own files.  Namely, 
define-grob-property from scm/define-grob-properties.scm and 
translator-property-description from scm/define-context-properties.scm.


Here are two possibilities for making this easier:

1. Make those two procedures "define-public" so users can just use them 
to define their own properties.  This requires very minimal change to 
LilyPond code, and is convenient for users since existing functions will 
just work for accessing and setting their custom properties (e.g. 
ly:grob-property).


2. Define a "custom-properties" grob property and a "customProperties" 
context property (or whatever name) that each holds an alist of user 
properties.  This adds additional properties to LilyPond and is a little 
more complex for the user to work with, but it provides isolation from 
LilyPond's properties.  (For example, users would only have to worry 
about conflicts with other user-defined properties, not conflicts with 
current or future LilyPond properties.)


I'm interested in implementing this one way or another.  Using the same 
approach for grob and context properties would make sense.


Thoughts?
-Paul

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


Re: Add output-attributes grob property to replace id (issue 308430043 by paulwmor...@gmail.com)

2016-09-27 Thread Paul

On 09/27/2016 02:49 PM, Urs Liska wrote:


We will definitely want to have an 'id property to address elements from
elsewhere in a document, be it spanners or be it edition-engraver mods
or similar additions. Maybe in the context of partial recompilation
features IDs may become handy. So it might be an option to leave a
top-level 'id property in place right now instead of possibly adding it
back at a later point?


Ok, since there's hesitation about removing it, I'll leave it in. We can 
always remove it in a follow-up patch if that is desired.  I will keep 
the convert-ly rule that rewrites ".id" to ".output-attributes.id" to 
help keep the svg functionality working for existing user files.


For the doc string I'll just use "An id string for the grob."  I'm open 
to suggestions if anyone thinks it should say more, like "not currently 
used by LilyPond".


(This brings up some thoughts I've had about supporting custom 
properties.  I'll send another email about that.)


-Paul

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


Re: Updating news headline on home page

2016-09-26 Thread Paul

On 09/26/2016 03:51 AM, Phil Holmes wrote:

Paul - I assume that these updates to the news system mean that 
different edits will be needed for each release?  Could you confirm 
what will have to be done? Ta.


Sure thing.  First, add the news entry to news-front.itexi -- same as 
before.


Second, update the news-headlines.itexi file with a headline for the new 
entry.  For releases you can just update/edit the existing headline 
about the previous release.  This will look like my patch from yesterday:


http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blobdiff;f=Documentation/web/news-headlines.itexi;h=97689a68080a6a8679a22bc6c33278345bc96e4e;hp=e5154c6bde1ce35158de5f7eaae3146f41a49efc;hb=36e230cf09bf2755528d2252ee256f88f330e66d;hpb=c626c7105b3ae2ece4e4e678f9b9b495e4f8ffa6

There are two tricky parts:

A. The headlines file has one version of the headlines for the website 
which includes the anchor links, and another version for other formats 
that does not.  So you have to make the changes in both places.


B. For the website version you have to update both the headline text and 
the link (URL).  Both are inside the @uref{...}.  The URL will have some 
encoded characters, for example "_002e" is "." and "_002c" is ","  
(Spaces in the headline text become "-" in the URL.)


So to update the version part of the URL from 2.19.48 to 2.19.49 looks 
like 2_002e19_002e48  to  2_002e19_002e49  The release date would be 
like August-25_002c-2016 to September-13_002c-2016


For new entries, to get the exact URL you can "make website" and then 
open the resulting news.html file, then copy and paste the url from the 
name attribute of the  tag for that news entry. It should look 
something like this:


 name="Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016">class="subheading">Two LilyPond projects in Google Summer of Code 2016 
April 23, 2016We are happy to see two students... 




Probably this should go in the CG.  (It would be nice to have automated 
headline generation...  Maybe a script could be devised? It's 
unfortunate that the new setup adds some friction to the process of 
adding new entries...  at least for releases it is pretty straightforward.)


-Paul


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


Re: Updating news headline on home page

2016-09-25 Thread Paul

On 09/25/2016 11:17 AM, Phil Holmes wrote:

Assuming it does what you want, straight to staging. No point in 
messing about getting the home page right.  The website will update up 
to 2 hours after the patch arrives in master.


Ok, I've pushed the fix to staging.  Thanks again Phil.

-Paul

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


Updating news headline on home page

2016-09-25 Thread Paul

The new home page is working now that the htaccess redirect is fixed.

The news headline for the latest dev release needs updating.  I made a 
patch (attached).  Let me know if I should just push this directly to 
staging or go through review.


Thanks,
-Paul


>From 3ebfdff1bcb2e1daaa5052dba87a41d8c0f5c842 Mon Sep 17 00:00:00 2001
From: Paul Morris 
Date: Sun, 25 Sep 2016 09:52:54 -0400
Subject: [PATCH] Web: add/update news headline for LilyPond 2.19.48 release

---
 Documentation/web/news-headlines.itexi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Documentation/web/news-headlines.itexi b/Documentation/web/news-headlines.itexi
index e5154c6..97689a6 100644
--- a/Documentation/web/news-headlines.itexi
+++ b/Documentation/web/news-headlines.itexi
@@ -11,7 +11,7 @@
 @ifclear web_version
   @c no anchor links, just link to News page
 
-@ref{News, LilyPond 2.19.47 released - @emph{August 13, 2016}}
+@ref{News, LilyPond 2.19.48 released - @emph{September 13, 2016}}
 
 @ref{News, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
 
@@ -23,8 +23,8 @@
 @ifset web_version
   @c anchor links, link to individual news items by their  tag
 
-@uref{news.html#LilyPond-2_002e19_002e47-released-August-13_002c-2016,
-  LilyPond 2.19.47 released - @emph{August 13, 2016}}
+@uref{news.html#LilyPond-2_002e19_002e48-released-September-13_002c-2016,
+  LilyPond 2.19.48 released - @emph{September 13, 2016}}
 
 @uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
   Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
-- 
2.1.4

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


Re: Staging not merging with master - make website fails

2016-09-24 Thread Paul

On 09/24/2016 12:55 PM, Phil Holmes wrote:

And by the wonder that is the website build, you'll see that 
lilypond.org is already showing the new front page.


Indeed!  Very nice.

One problem... the news page is redirecting to the home page because the 
htaccess file here:


  Documentation/web/server/lilypond.org.htaccess

has these lines (46-47):

  # the new website has news on the main page
  RedirectMatch ^/news/

(Of course this didn't show up in local testing, and I didn't think to 
check the htaccess rewrite rules.  Sorry about that.)


So we should remove those lines to fix it.  How to proceed?  Let me know 
what I can do.  I'm can prepare a separate commit to remove those lines, 
or we can back out the current commit and I can make a new commit that 
has the htaccess changes.


-Paul

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


Re: Staging not merging with master - make website fails

2016-09-24 Thread Paul

On 09/24/2016 09:56 AM, Phil Holmes wrote:

I think you will definitely have to back out the current commit, add 
the images and repush to staging.  My notes on how to do this:


Thanks Phil!  That worked.  My new patch is now pushed to staging with 
the images added (commit message is the same as before).


-Paul

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


Re: Staging not merging with master - make website fails

2016-09-24 Thread Paul

Hello James,

Thanks for your message.  I was wondering what had gone wrong... What's 
the best way to fix things from here?  Should I back out my commit on 
staging and redo the push with a new patch with images included?  I'm 
not sure how to back out a commit on a remote branch...  Locally I would 
just do:


  git checkout staging
  git reset --hard HEAD~

Would it work to just do:

  git checkout origin/staging
  git reset --hard HEAD~

I'll wait until I hear back before doing anything.

Thanks again,
-Paul


On 09/24/2016 06:48 AM, James Lowe wrote:

Hello,

commit29941d96aa9942cfe914440b90b49ff7e015742e

 From Paul is missing its image files - they have been uploaded into
LilyPond Extra but need to be included in this commit in staging.

Regards




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


Re: Proposal: change Grob.id to Grob.output-properties

2016-09-16 Thread Paul

On 09/16/2016 09:43 AM, Paul wrote:


  % is \procE a string or a procedure?  No way to tell in convert-ly
  % and calling a string as if it were a procedure doesn't work
  % \override NoteHead.id = #(lambda (grob `((id . ,(procE grob)


On second thought, I guess the following rewrite would work for this 
issue, but I'm not sure it's doing users much of a favor...


  \override NoteHead.id =
  #(lambda (grob)
 `((id . ,(if (procedure? procE)
  (procE grob)
  procE

and there's still the issue of how to regex a lambda expression...

Carl's plan makes sense to me, so I'll go with that.

-Paul

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


Re: Proposal: change Grob.id to Grob.output-properties

2016-09-16 Thread Paul

On 09/16/2016 01:10 AM, Urs Liska wrote:


Doesn't a conversion to

#`(id . ,(existing-function))

suffice? Otherwise just follow Carl's suggestion.


Hi Urs, Almost, but you have to add a lambda wrapper to pass along the 
implicit grob argument, and then there are other more challenging 
complications if the user has supplied a lambda expression or a variable 
that may be a string or a procedure.  So most of the possibilities are 
non-trivial to impossible to handle well.  See below.


Cheers,
-Paul


\version "2.19.42"

#(define procA (lambda (grob) (display "a ") "myid"))

#(define (procB grob) (display "b ") "myid")

procC = #(lambda (grob) (display "c ") "myid")

procE = "myid"

{
  % ORIGINALS

  \override NoteHead.id = #procA
  c1
  \override NoteHead.id = #procB
  c1
  \override NoteHead.id = \procC
  c1
  \override NoteHead.id = #(lambda (grob) (display "d ") "myid")
  c1
  \override NoteHead.id = \procE
  c1

  % RE-WRITES

  % these are fine (as long as the variable is a procedure):
  \override NoteHead.id = #(lambda (grob) `(id . ,(procA grob)))
  c1
  \override NoteHead.id = #(lambda (grob) `(id . ,(procB grob)))
  c1
  \override NoteHead.id = #(lambda (grob) `(id . ,(procC grob)))
  c1

  % to regex a lambda expression, I think you'd have to count matching
  % parens to arbitrary depth.  Not sure that is possible with regex...
  \override NoteHead.id =
  #(lambda (grob) `(id . ,((lambda (grob) (display "d ") "myid") grob)))
  c1

  % is \procE a string or a procedure?  No way to tell in convert-ly
  % and calling a string as if it were a procedure doesn't work
  % \override NoteHead.id = #(lambda (grob `(id . ,(procE grob
  c1
}



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


Proposal: change Grob.id to Grob.output-properties

2016-09-15 Thread Paul
Hi all,  I'd like to improve on the "id" grob property but I wanted to 
ask about the best way to migrate users if/when we made the change I'm 
thinking of.


The "id" property was introduced [0] in January 2012 by commit:
  ad3a9e6531e32c4403f1bdc6d203d3c94c6d411e

  Adds an ID property to grobs.

  This property is intended to group visual elements of a grob in a given
  backend into a container that has `id' as its id.  Currently, it is only
  implemented for svg, where grobs are wrapped in a  tag with its `id'
  attribute set to `id.'

As far as I can tell that's still all it does.  I'd like to change its 
type from a string to an alist (well, "list?") and change its name to 
something like "output-properties".  And make it so users could do 
things like:


  \override NoteHead.output-properties =
#'((id . 324) (class . "bar") (data-custom-prop . "foo"))

Which would produce in the SVG output:

   ... 

(The SVG spec allows arbitrary custom properties that start with "data-".)

Looking at the code, the changes seem pretty straightforward to do.  
Assuming we agree this is a good improvement to make, the question I 
have is about migrating existing user files to the new property.  
Literal strings are easy enough to handle with convert-ly:  = "abc"  
converts to  = #'((id . "abc"))


The problem is when users have assigned a procedure (that returns a 
string) to this property, which is surely a common use case.  I don't 
see a reasonable way to handle that with convert-ly.  Maybe it is 
possible but seems like it would get ugly.


So we could make the new property's type be "string-or-list?". (We'd 
have to define that predicate.)  Then for strings, output a deprecation 
warning, but go ahead and handle the string as the user expects.  That 
would give users time to rewrite their code and then at some future 
point we change the type to just "list?" and only support alist values.


Is anyone opposed to this migration strategy?  Any better options I'm 
missing?


The motivation for the change is that lilypond-html-live-score[1] is 
overloading the id string with multiple properties and then 
post-processing that string (in the SVG output file) with python to 
expand it into different properties.  But I see no reason why LilyPond 
shouldn't be able to do this directly, saving the post-processing step.  
And it would generally increase the possible uses for SVG output.


(I considered introducing a separate property, but especially after 
looking at the code, it seems best to redefine the current one.)


(I suppose another option would be to just allow string values (which 
would be output as the id) in addition to alist values, but I'm not sure 
whether that would be best in the long run.)


Thanks,
-Paul

[0] 
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=ad3a9e6531e32c4403f1bdc6d203d3c94c6d411e

[1] https://gitlab.com/sigmate/lilypond-html-live-score



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


Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)

2016-09-13 Thread Paul

On 09/13/2016 09:52 AM, Phil Holmes wrote:

At this point it would probably be simplest to just inline the 
lilypond code for this example on the home page, like it is done in 
the essay. (Probably putting it in an include file to avoid 
duplication.)  We wouldn't get "click to enlarge" that way (which was 
the point of using the examples mechanisms) but maybe that's not 
needed on the home page and/or could be a future enhancement.


I don't think you can do that.  The reason for all the odd stuff with 
the image files is that the server we host lilypond on does not use 
lilypond to make the website - so all images must be pre-created to 
allow the website itself to be remade.  Note that much of the website 
it really made using make doc during a Gub run, but some of it (the 
homepage and the \web stuff) is made with make website and requires no 
upload.  The server has cron jobs that pull git and run make website.


Ah, ok...  hmm...  so it sounds like we would need to do this home page 
example like the other website images then.  (Assuming we're not using 
the examples scripts because of the -dpreview issue.)


-Paul

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


Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)

2016-09-13 Thread Paul

On 09/13/2016 10:02 AM, Phil Holmes wrote:

Just thinking about this bit some more - are you running make doc to 
create the images and make website after that?


Yes, at first after reading those docs you linked to, I thought maybe 
I'd run:


make
make website
make doc

(out of order) but then I ran

make website

got same result, and then

make doc
make website

and same result.

-Paul

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


Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)

2016-09-13 Thread Paul

On 09/13/2016 04:28 AM, Phil Holmes wrote:

I know understanding how images are used is a bit of a problem - which 
I might have understood once, but have now forgotten.  Is the 
information at 
http://lilypond.org/doc/v2.19/Documentation/contributor/other-repositories 
and 
http://lilypond.org/doc/v2.19/Documentation/contributor/website-build 
any help?


Thanks, those are helpful.  I'll have to remember that those build 
system notes are down there.  I see now that LilyPond is being run on 
the new file and the pdf and png files do end up in:


build/Documentation/ly-examples/out-www

but for some reason those files are not being copied into

build/out-website/website/ly-examples

Where they need to be for the website.

Also, there's another issue.  The scripts to create these example images 
(at two sizes to allow "click to enlarge") use -dpreview so only the 
first system of this bwv861 example makes it into the image.  (sigh)  So 
maybe trying to use this examples machinery is not helpful.  (Unless we 
want to edit all of the examples ly files so that they only output the 
content that should be in the images and then drop the -dpreview.)


At this point it would probably be simplest to just inline the lilypond 
code for this example on the home page, like it is done in the essay.  
(Probably putting it in an include file to avoid duplication.)  We 
wouldn't get "click to enlarge" that way (which was the point of using 
the examples mechanisms) but maybe that's not needed on the home page 
and/or could be a future enhancement.


-Paul

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


Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)

2016-09-12 Thread Paul

On 09/08/2016 12:53 PM, carl.d.soren...@gmail.com wrote:


How about the BWV 861 example from the essay?

http://lilypond.org/doc/v2.18/Documentation/essay/engraved-examples-_0028bwv-861_0029 



It shows fewer features (e.g. instrument names, score title) but shows a
beautiful and complex score.


That seems fine to me.

Carl, would you like me to hold off on pushing my patch until we sort 
out the example image, or is it ok with you to go ahead and push now and 
do a different example in a follow-up patch?


Last night I tried to get the BWV 861 example to work, without any 
luck.  I made a ly file for it in the Documentation/ly-examples 
directory, but I couldn't get the build scripts to make the images from 
it.  With the ly file in that directory and putting references to the 
example/image into the home page and the examples page, I would just get 
broken links to a non-existing image, even after running a fresh make, 
make website, and make doc.


Does anyone know what's needed?  How to get the build scripts to see my 
file and create the example image?


Thanks,
-Paul

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


Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)

2016-08-31 Thread Paul

On 08/30/2016 06:05 PM, carl.d.soren...@gmail.com wrote:


I'm not comfortable with the really long, scrolling, home page.


Ok, given these concerns that Carl and David raised, let me think some 
more and see what I can come up with.


Maybe just a single example, followed by a list of the other kinds of 
examples, to show the range of what LilyPond can do, with a link to the 
full example page.  (This is another place where @anchor would come in 
handy -- we could link the list items directly to the examples, 
"Tablature" to the tablature example etc.)


Later, if we wanted, we could turn that single example into a CSS slider 
/ slide show type thing where the user could click through some of the 
examples in-place on the home page, as Federico suggests.


Anyway, just some thoughts.  It may be some days before I get back to 
working on this.


-Paul

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


Re: GSoC spanners project

2016-05-15 Thread Paul

Hi Nathan and Jeffrey,

Great to have you on board for LilyPond GSoC!  I'll be working on a GSoC 
project for Mozilla Calendar, so won't be as active with LilyPond, but 
I'll try to help with development questions if I can.


Cheers,
-Paul

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


Re: Requesting write access to the LilyPond repository

2016-05-03 Thread Paul Morris
> On May 3, 2016, at 4:48 PM, John Gourlay  wrote:
> 
> Is there a more detailed description somewhere of how to go about this? For 
> example, how do I connect to the Savannah server and get a developer account 
> on it? How do I request membership in the LilyPond project there? What tool 
> should I use to get the public/private key pair, etc.?

This section of the contributor’s guide should spell it out in enough detail:

http://lilypond.org/doc/v2.19/Documentation/contributor/advanced-git-procedures

BTW, I took a quick look at your patch and wow, it's a lot of changes!  More 
than I realized.  So thanks again for taking this on.

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


Re: Rewriting the Translator definition framework

2016-04-22 Thread Paul Morris
> On Apr 22, 2016, at 8:07 AM, David Kastrup  wrote:
> 
> I am currently doing pitch 2 at first-class Scheme engravers and am
> sorely tempted to scratch the whole macro-based mess and do it via
> inheritance and templates.

I can’t comment on the implementation questions, but it will be great to have 
first-class scheme engravers.  So thanks for working on this!  (Also, while I’m 
at it, your recent dotted list work, allowing "violin.1” etc, is also really 
nice.)

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


  1   2   3   4   5   6   >