Re: how close are we to having an "addAt" or "insertAt" feature?

2014-03-01 Thread Jan-Peter Voigt
Hi Kieren,

I added a function editionMMod, which takes a list of positions.
Function name and argument order should be chenged ...
For now, the position-list replaces measure and moment.
So

\editionMod FTE-vocalbook 5 0/4 FTE-vocalbook-A.Score.A \break

should be equal to

\editionMMod FTE-vocalbook #'((5 0/4)) FTE-vocalbook-A.Score.A \break

More on that on tuesday.

Best, Jan-Peter


On 01.03.2014 13:36, Kieren MacMillan wrote:
> The other thing that would be very helpful is a listing function, so that 
>
> \editionMod FTE-vocalbook 5 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 9 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 13 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 16 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 22 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 25 0/4 FTE-vocalbook-A.Score.A \break
> \editionMod FTE-vocalbook 28 0/4 FTE-vocalbook-A.Score.A \pageBreak
> \editionMod FTE-vocalbook 58 0/4 FTE-vocalbook-A.Score.A \pageBreak
> \editionMod FTE-vocalbook 94 0/4 FTE-vocalbook-A.Score.A \pageBreak
> \editionMod FTE-vocalbook 110 0/4 FTE-vocalbook-A.Score.A \pageBreak
> …
>
> could rather be something like
>
> \editionMod FTE-vocalbook FTE-vocalbook-A.Score.A \break ‘((5 0/4) (9 
> 0/4) (13 0/4) (16 0/4) (22 0/4) (25 0/4))
> \editionMod FTE-vocalbook FTE-vocalbook-A.Score.A \pageBreak ‘((28 0/4) 
> (58 0/4) (94 0/4) (110 0/4))
>
> There are many, many duplicate/multiple tweaks that I would love to apply in 
> such a manner.

\version "2.18.0"
\include "util.ily"

#(use-modules (oop goops))

% custom string representation of a moment
#(define-public (moment->string mom)
   (if (ly:moment? mom)
   (let ((num (ly:moment-main-numerator mom))
 (den (ly:moment-main-denominator mom))
 (gnum (ly:moment-grace-numerator mom))
 (gden (ly:moment-grace-denominator mom)))
 (format "(~A/~A~A)" num den
   (cond
((> gnum 0)(format "+~A/~A" gnum gden))
((< gnum 0)(format "~A/~A" gnum gden))
(else "")
))
 )
   "(?:?)"
   ))

%
% class to store for example \set stanza = "1."

#(define-class  ()
   (once #:init-value #t #:accessor is-once #:setter set-once! #:init-keyword 
#:once)
   (symbol #:accessor get-symbol #:setter set-symbol! #:init-keyword #:symbol)
   (value #:accessor get-value #:setter set-value! #:init-keyword #:value)
   (previous #:accessor get-previous #:setter set-previous! #:init-value #f)
   (context #:accessor get-context #:setter set-context! #:init-keyword 
#:context)
   )
% apply set to context
#(define-method (do-propset context (prop ))
   (if (get-context prop)
   (let ((parctx (ly:context-find context (get-context prop
 (if (ly:context? parctx) (set! context parctx
   (set-previous! prop (ly:context-property context (get-symbol prop)))
   (ly:context-set-property! context (get-symbol prop) (get-value prop))
   )
%(export do-propset)
% apply unset to context
#(define-method (reset-prop context (prop ))
   (if (get-context prop)
   (let ((parctx (ly:context-find context (get-context prop
 (if (ly:context? parctx) (set! context parctx
   (ly:context-set-property! context (get-symbol prop) (get-previous prop))
   )
%(export reset-prop)

% predicate
#(define-public (propset? p)(is-a? p ))
% serialize to string
#(define-method (propset->string (ps ))
   (format "~A\\set ~A = ~A" (if (is-once ps) "once " "") (string-append (if 
(get-context ps) (format "~A." (get-context ps)) "") (format "~A" (get-symbol 
ps))) (get-value ps)))
%(export propset->string)
% implement display
#(define-method (display (o ) port) (display (propset->string o) port))

%

% store applyContext
#(define-class  ()
   (proc #:accessor procedure #:setter set-procedure! #:init-keyword #:proc)
   )
% apply stored function to context
#(define-method (do-apply ctx (a ))
   ((procedure a) ctx))
%(export do-apply)
% predicate
#(define-public (apply-context? a)(is-a? a ))

% store overrides
#(define-class  ()
   (once #:init-value #t #:accessor is-once #:setter set-once! #:init-keyword 
#:once)
   (revert #:init-value #f #:accessor is-revert #:setter set-revert! 
#:init-keyword #:revert)
   (grob #:accessor get-grob #:setter set-grob! #:init-keyword #:grob)
   (prop #:accessor get-prop #:setter set-prop! #:init-keyword #:prop)
   (value #:accessor get-value #:setter set-value! #:init-keyword #:value)
   (context #:accessor get-context #:setter set-context! #:init-keyword 
#:context)
   )
% serialize to string
#(define-method (oop->string (o ))
   (let* ((ctxn (get-context o))
  (ctxp (if ctxn (format "~A." ctxn) "")))
 (if (is-revert o)
 (string-append "\\revert " ctxp (format "~A " (get-grob o)) (format 
"#'~A" (get-prop o)))
 (string-append (if (is-once o) "\\once " "") "\\overri

Re: long-term goals (was: Lines and Ties and Slurs oh my!)

2014-03-01 Thread Graham Percival
On Sat, Mar 01, 2014 at 07:07:39PM -0500, Kieren MacMillan wrote:
> >>> I’ve know someone at Carnegie-Mellon University who is well-connected
> >>> in the computer and music departments (he is both a composer and a 
> >>> programmer).
> >>> I approached him recently with the idea of getting involved with Lilypond.
> >>> 
> >>> He said:
> >>> 
>  One possibility is that sometimes there are software engineering projects
>  looking for tasks, so I might be able to point a class project at 
>  Lilypond
>  in the future.
>  I'm curious if there's a short summary of the direction for large-scale 
>  work on Lilypond.
> >>> 
> 
> With all due respect for everyone’s time, I am bringing what is in my opinion 
> an unprecedented opportunity to the Lilypond team — and I’ve got no response 
> worthy of bringing back to my contact.
> 
> Can nobody give me an “official” answer for him?

My guess is that people are leery of "inviting" newcomers who
might expect mentoring, when there is clearly no "mentoring spots"
available.  Our code base is notoriously difficult to learn, and
if we specifically send a list of tasks to a professor, in my mind
there's an implicit offer to welcome (if not teach) a student who
tries to work on one of those tasks.

This doesn't bode well for the long-term survival of lilypond, but
that's something that's been discussed off and on for at least the
past 8 years, so I don't expect any immediate change on this
matter.

- Graham

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


Re: long-term goals (was: Lines and Ties and Slurs oh my!)

2014-03-01 Thread Kieren MacMillan
Hi Janek (et al.),

>>> I’ve know someone at Carnegie-Mellon University who is well-connected
>>> in the computer and music departments (he is both a composer and a 
>>> programmer).
>>> I approached him recently with the idea of getting involved with Lilypond.
>>> 
>>> He said:
>>> 
 One possibility is that sometimes there are software engineering projects
 looking for tasks, so I might be able to point a class project at Lilypond
 in the future.
 I'm curious if there's a short summary of the direction for large-scale 
 work on Lilypond.
>>> 
>>> Is there something we can forward to him, so that he can take it to his
>>> department and/or colleagues for consideration? If we could convince
>>> a major university to take on [some or all of the] programming —
>>> for single projects or the whole enchilada — I think it would be
>>> a big boost to the ‘Pond.
>> 
>> That would be extremely cool!
>> As for the list of long-term projects, i don't think we have any
>> (which is very bad for the project imo).  I would be happy to write
>> something down if there is at least one other developer interested in
>> reviewing and expanding it.
> 
> No volunteers?  :-(
> Kieren, i'm not sure if it's not too late for this, but _maybe_ i'll
> manage to write something down anyway.

With all due respect for everyone’s time, I am bringing what is in my opinion 
an unprecedented opportunity to the Lilypond team — and I’ve got no response 
worthy of bringing back to my contact.

Can nobody give me an “official” answer for him?

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


Re: Black mensural notation in current Lilypond

2014-03-01 Thread lpietsch
Just happened to see this post by chance, after being away from the list for
a long while. I've actually been working on the package again during the
last weeks. It's now implemented in a much less hackish fashion and works
decently well for me both for white and for black notation. I was going to
present a new draft of it to the community some time during the next months.
Michael, if you want to see the current state of it, please feel free to
contact me privately.

Lukas



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Black-mensural-notation-in-current-Lilypond-tp159959p160012.html
Sent from the Dev mailing list archive at Nabble.com.

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


Re: how close are we to having an "addAt" or "insertAt" feature?

2014-03-01 Thread Kieren MacMillan
Hi Jan-Peter,

> sorry, I missed to mention the zero-based counting

Yeah, that was probably an important point to bring to my attention…  ;)

> To add the empty barline, if there isn't one already, would be very nice.  We 
> should try to make it possible.

That would be great!

The other thing that would be very helpful is a listing function, so that 

\editionMod FTE-vocalbook 5 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 9 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 13 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 16 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 22 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 25 0/4 FTE-vocalbook-A.Score.A \break
\editionMod FTE-vocalbook 28 0/4 FTE-vocalbook-A.Score.A \pageBreak
\editionMod FTE-vocalbook 58 0/4 FTE-vocalbook-A.Score.A \pageBreak
\editionMod FTE-vocalbook 94 0/4 FTE-vocalbook-A.Score.A \pageBreak
\editionMod FTE-vocalbook 110 0/4 FTE-vocalbook-A.Score.A \pageBreak
…

could rather be something like

\editionMod FTE-vocalbook FTE-vocalbook-A.Score.A \break ‘((5 0/4) (9 0/4) 
(13 0/4) (16 0/4) (22 0/4) (25 0/4))
\editionMod FTE-vocalbook FTE-vocalbook-A.Score.A \pageBreak ‘((28 0/4) (58 
0/4) (94 0/4) (110 0/4))

There are many, many duplicate/multiple tweaks that I would love to apply in 
such a manner.

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


Re: Automated engraving benchmarks

2014-03-01 Thread Urs Liska

Am 01.03.2014 11:41, schrieb James:

On 01/03/14 10:35, Urs Liska wrote:




What do you think, where should such a set go? Of course it would be
easier to maintain it in a separate Git repository, hosted anywhere.
But I think it should be part of lilypond.org, which would
additionally add it to make doc.


We already have a location for those 'example' scores that appear on the
website

../Documentation/ly-examples/..


Sounds reasonable.



See:
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=0883ccf0f0d409365a9cc99bd2e62655f3ffd9be


For example. Why not use that?
http://lilypond.org/examples.html

Although why not just expand on that - although the point of that part
of the website is to show off LilyPond. How is what you want to do here
any different?


What I want is _not_ to show off LilyPond, but to provide material to 
seriously judge what is still lacking, and to see the development.

Something similar to the regtests, but on a different level.
That's why I wouldn't want to put it on lilypond.org/examples.html, or 
better not at all in the "Introduction" showcase.


Urs




James



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


Re: Automated engraving benchmarks

2014-03-01 Thread James

On 01/03/14 10:35, Urs Liska wrote:




What do you think, where should such a set go? Of course it would be 
easier to maintain it in a separate Git repository, hosted anywhere. 
But I think it should be part of lilypond.org, which would 
additionally add it to make doc.


We already have a location for those 'example' scores that appear on the 
website


../Documentation/ly-examples/..

See: 
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=0883ccf0f0d409365a9cc99bd2e62655f3ffd9be


For example. Why not use that?
http://lilypond.org/examples.html

Although why not just expand on that - although the point of that part 
of the website is to show off LilyPond. How is what you want to do here 
any different?



James

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


PATCHES: Countdown for March 4th - 06:00 GMT

2014-03-01 Thread James

Hello,







3868 
 
	Defect 	keith Ohara 	push 	line-breaking makes short lines   Regression 	













3239 
 
	Enhancement 	Janek Warchol 	waiting 	Patch: rewrite 
Self_alignment_interface 	May 2013
3186 
 
	Ugly 	Janek Warchol 	waiting 	Positioning of "8" under clef symbol in 
G_8 clef   Bounty 	Apr 2013
3156 
 
	Enhancement 	Mike Solomon 	waiting 	Patch: Prevents vertical axis 
groups with empty skylines 	Feb 2013
3134 
 
	Enhancement 	Mike Solomon 	waiting 	Patch: Removes the translate_axis 
call from axis-group-interface outside-staff positioning. 	Aug 18
2812 
 
	Documentation 	keith Ohara 	waiting 	Renaming to distinguish 
keySignature from KeySignature 	Nov 11
2716 
 
	Enhancement 	David Kastrup 	waiting 	Patch: Implement music functions 
in Scheme rather than C++ 	Aug 2012




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


Re: Automated engraving benchmarks

2014-03-01 Thread Urs Liska

Am 28.02.2014 22:29, schrieb Trevor Daniels:


Urs Liska wrote Thursday, February 27, 2014 8:44 AM



Hi, I just had an idea.

I suggest creating a set of "benchmark scores" and putting them
somewhere on the website.

But of course we should then have "default" scores like a classical
piano piece, a string quartet and a moderately complex orchestral score.


Plus an SATB score with piano reduction ("for rehearsal only")


+1




What do you think?


Go for it!


OK, I'll do that (slowly), starting with a request for contributed 
scores on lilypond-user.


I had already written an email with my suggested proposition, the 
mentioned dodecaphonic study - which wasn't delivered since it was too 
large. So here it is:


https://dl.dropboxusercontent.com/u/49478835/lily-examples/variations-and-theme-default.pdf
https://dl.dropboxusercontent.com/u/49478835/lily-examples/variations-and-theme-UE.pdf

The second one includes our (incomplete) UE style sheet and is compiled 
with our (even more incomplete) custom-built LilyPiond with UEesque Feta 
modifications (and the recently discovered G clef bug). This is rather 
for entertainment...
The first one is plain LilyPond, except for adapting the page size and 
margins to the UE style, which is actually better for that score. This 
is what I'd propose for the benchmark series.



What do you think, where should such a set go? Of course it would be 
easier to maintain it in a separate Git repository, hosted anywhere. But 
I think it should be part of lilypond.org, which would additionally add 
it to make doc.

Opinions?
For a start I can of course set up a repo on Github until we have a 
useful collection.


Urs



Trevor




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