improving cheatsheet appearance

2009-06-16 Thread Mark Polesky

In cheatsheet.itely

I propose changing line 70 (in "time signature") from
\override Staff.Clef #'transparent = ##t
to
\override Staff.Clef #'stencil = #empty-stencil

Also, in "key signature" (lines 95-102), 
the auto-generated \paper block is

\paper {
  #(define dump-extents #t)

  indent = 0\mm
  ragged-right = ##t
  force-assignment = #""
  line-width = #(- line-width (* mm  3.00))
}
but looks better as 

\paper {
  #(define dump-extents #t)
  
  indent = 0\mm
  left-margin = 20\mm
  ragged-right = ##f
  force-assignment = #""
  line-width = 15\mm
}

But, of course, I read this in the CG:
If you are making an
example demonstrating special
\paper{} values, contact the
Documentation Editor. 

So, I'll leave it at that. If someone wants to make
these changes, I think the cheatsheet will look 
nicer. I can patch a change for the first one, but
I don't know how to touch the auto-generated \paper
code for the second one.

HTH
- Mark



  


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


Re: [PATCH] Make some local functions public

2009-06-16 Thread Mark Polesky
Jay Anderson wrote:

> Also it should avoid length when a null? check will do. Here's the
> function with those changes:
> 
> (define-public (split-at-predicate predicate lst)
>   "Split a list into 2 lists at the first element that returns #f for
>   (predicate previous_element element). Return the two parts as a pair.
>   Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
>   (if (or (null? lst) (null? (cdr lst)))
> (list lst)
> (let loop ((lst-a (list (car lst))) (lst-b (cdr lst)))
>   (cond ((null? lst-b) (list lst))
> ((predicate (car lst-a) (car lst-b))
>   (loop (cons (car lst-b) lst-a) (cdr lst-b)))
> (else (cons (reverse lst-a) lst-b))


Jay and Joe,
thanks for you help. Now, if there are no more objections,
anyone want to apply the new patches? Thanks!

- Mark



  

0001-lily-library.scm-Rewrite-split-at-predicate-procedur.patch
Description: Binary data


0002-lily-library.scm-Make-some-local-functions-public.patch
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: some sort of suppress-accidental?

2009-06-16 Thread Mark Polesky

Graham Percival wrote:

> > I can't figure out how to use \tweak to get inside chords...
> > But the presence of the functionality (without the syntax)
> > should be enough for me (for the moment).
> 
> http://lilypond.org/doc/v2.12/Documentation/user/lilypond-learning/Tweaking-methods
> about 65% down the page.

Well, yes, I know how to use \tweak, but it won't work in
this case. Try:

\relative {  }

- Mark



  


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


Re: some sort of suppress-accidental?

2009-06-16 Thread Graham Percival
On Tue, Jun 16, 2009 at 09:18:16PM -0700, Mark Polesky wrote:
> 
> I can't figure out how to use \tweak to get inside chords...
> But the presence of the functionality (without the syntax)
> should be enough for me (for the moment).

http://lilypond.org/doc/v2.12/Documentation/user/lilypond-learning/Tweaking-methods
about 65% down the page.

Cheers,
- Graham


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


Re: some sort of suppress-accidental?

2009-06-16 Thread Mark Polesky

Han-Wen Nienhuys wrote:

> >> Something like 'suppress-accidental that would fit right where
> >> 'force-accidental goes in the scheme expression. Is that
> >> possible? Would it be difficult to implement?
> >
> > It's quite simple to do.
> >
> > Attached is a patch which uses an ampersand to hide accidentals.
> 
> Please don't extend the syntax lightly.   Try to make something based
> on music functions or \tweak first; if it finds wide spread adoption,
> you can always add cute syntax later.


Werner LEMBERG wrote:
> Given the infrequency of this request, I second this.

Han-Wen and Werner,
can we still apply it without the parser changes? At least
I'd be able to do this for single notes or entire chords:

_


\version "2.13.1"

#(define (EventChord? music)
  (eq? (ly:music-property music 'name) 'EventChord))

#(define (NoteEvent? music)
  (eq? (ly:music-property music 'name) 'NoteEvent))

#(define (hide-accidental music)
   (if (NoteEvent? music)
   (ly:music-set-property! music 'hide-accidental #t))
music)
  
hideAccidental = 
#(define-music-function (parser location mus) (ly:music?)
  (music-map hide-accidental mus))

\relative { \hideAccidental cs }

_

I can't figure out how to use \tweak to get inside chords...
But the presence of the functionality (without the syntax)
should be enough for me (for the moment).

Let me know.
- Mark



  


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


Re: [PATCH] Make some local functions public (was: Re: lily-library.scm question)

2009-06-16 Thread Jay Anderson
On Mon, Jun 15, 2009 at 3:03 AM, Joe Neeman wrote:
>
> On Mon, Jun 8, 2009 at 3:59 AM, Mark Polesky  wrote:
>>
>> my version:
>>
>> (define-public (split-at-predicate predicate lst)
>>  "Split LST (into 2 lists) at the first element that returns #f for
>>   (PREDICATE previous_element element), and return the 2 new lists as a
>>   pair. Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) 2 1)"
>>  (if (< (length lst) 2)
>>      (cons lst '())
>>      (let loop ((L0 (list (car lst))) (L1 (cdr lst)))
>>        (cond ((null? L1) (cons L0 L1))
>>              ((predicate (car (last-pair L0))
>
> last-pair is an O(n) operation, since it has to traverse the whole list,
> making split-at-predicate O(n^2) instead of O(n), as it should be. You'd be
> better off building L0 backwards and reversing it at the end, so that the
> element you need is always at the beginning of a list.
>

Also it should avoid length when a null? check will do. Here's the
function with those changes:

(define-public (split-at-predicate predicate lst)
  "Split a list into 2 lists at the first element that returns #f for
  (predicate previous_element element). Return the two parts as a pair.
  Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
  (if (or (null? lst) (null? (cdr lst)))
(list lst)
(let loop ((lst-a (list (car lst))) (lst-b (cdr lst)))
  (cond ((null? lst-b) (list lst))
((predicate (car lst-a) (car lst-b))
  (loop (cons (car lst-b) lst-a) (cdr lst-b)))
(else (cons (reverse lst-a) lst-b))


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


Re: some sort of suppress-accidental?

2009-06-16 Thread Werner LEMBERG

> Please don't extend the syntax lightly.  Try to make something based
> on music functions or \tweak first; if it finds wide spread
> adoption, you can always add cute syntax later.

Given the infrequency of this request, I second this.


 Werner


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


Re: [PATCH] Fix issue 778

2009-06-16 Thread Han-Wen Nienhuys
I think this can be neater.  By tracking the 'cause property
backwards, this could simply be a grob property callback, and the C++
does not need to touch the
'dot-count property.

See for example note-head::calc-duration-log

On Tue, Jun 16, 2009 at 7:58 PM, Patrick McCarty wrote:
> This patch fixes issue 778 in the tracker.  If I should add a
> regression test, I can do that.

-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen


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


[PATCH] Fix issue 778

2009-06-16 Thread Patrick McCarty
Hello,

This patch fixes issue 778 in the tracker.  If I should add a
regression test, I can do that.

Thanks,
Patrick
>From 5fa8f35cfeb215ba97af7a89cd77c5c31393fff8 Mon Sep 17 00:00:00 2001
From: Patrick McCarty 
Date: Mon, 15 Jun 2009 18:35:47 -0700
Subject: [PATCH] Fix #778

* Read the default value of 'dot-count for Dots.
  This also permits user overrides to 'dot-count.

Signed-off-by: Patrick McCarty 
---
 lily/dots-engraver.cc |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lily/dots-engraver.cc b/lily/dots-engraver.cc
index 9d1af77..81f74c1 100644
--- a/lily/dots-engraver.cc
+++ b/lily/dots-engraver.cc
@@ -43,7 +43,7 @@ Dots_engraver::acknowledge_rhythmic_head (Grob_info gi)
   Item *d = make_item ("Dots", note->self_scm ());
   Rhythmic_head::set_dots (note, d);
 
-  d->set_property ("dot-count", scm_from_int (dur->dot_count ()));
+  d->set_property ("dot-count", d->get_property ("dot-count"));
   d->set_parent (note, Y_AXIS);
 }
 }
-- 
1.6.3.2

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


Re: some sort of suppress-accidental?

2009-06-16 Thread Han-Wen Nienhuys
Please don't extend the syntax lightly.   Try to make something based
on music functions or \tweak first; if it finds wide spread adoption,
you can always add cute syntax later.

On Tue, Jun 16, 2009 at 6:41 PM, Neil Puttock wrote:
> 2009/6/16 Mark Polesky :
>>
>> Something like 'suppress-accidental that would fit right where
>> 'force-accidental goes in the scheme expression. Is that
>> possible? Would it be difficult to implement?
>
> It's quite simple to do.
>
> Attached is a patch which uses an ampersand to hide accidentals.




-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen


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


Re: some sort of suppress-accidental?

2009-06-16 Thread Neil Puttock
2009/6/16 Mark Polesky :

> I wish there were a similar way to suppress the printing of the
> accidental from within the NoteEvent expression.
>
> Something like 'suppress-accidental that would fit right where
> 'force-accidental goes in the scheme expression. Is that
> possible? Would it be difficult to implement?

It's quite simple to do.

Attached is a patch which uses an ampersand to hide accidentals.

Regards,
Neil
From 86eeeb51725d3f1752c0a75b7e024a93dca03927 Mon Sep 17 00:00:00 2001
From: Neil Puttock 
Date: Tue, 16 Jun 2009 22:39:43 +0100
Subject: [PATCH] Allow accidentals to be hidden using ampersand.

---
 lily/accidental-engraver.cc |3 ++-
 lily/parser.yy  |   34 ++
 2 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc
index f84e281..57905bd 100644
--- a/lily/accidental-engraver.cc
+++ b/lily/accidental-engraver.cc
@@ -436,7 +436,8 @@ Accidental_engraver::acknowledge_rhythmic_head (Grob_info info)
   Stream_event *note = info.event_cause ();
   if (note
   && (note->in_event_class ("note-event")
-	  || note->in_event_class ("trill-span-event")))
+	  || note->in_event_class ("trill-span-event"))
+  && !to_boolean (note->get_property ("hide-accidental")))
 {
   /*
 	string harmonics usually don't have accidentals.
diff --git a/lily/parser.yy b/lily/parser.yy
index 462a58d..992a717 100644
--- a/lily/parser.yy
+++ b/lily/parser.yy
@@ -312,6 +312,7 @@ If we give names, Bison complains.
 
 %type  bare_unsigned
 %type  figured_bass_alteration
+%type  ampersands
 %type  dots
 %type  exclamations
 %type  optional_rest
@@ -1443,15 +1444,18 @@ chord_body_elements:
 	;
 
 chord_body_element:
-	pitch exclamations questions octave_check post_events
+	pitch ampersands exclamations questions octave_check post_events
 	{
-		int q = $3;
-		int ex = $2;
-		SCM check = $4;
-		SCM post = $5;
+		int amp = $2;
+		int q = $4;
+		int ex = $3;
+		SCM check = $5;
+		SCM post = $6;
 
 		Music *n = MY_MAKE_MUSIC ("NoteEvent", @$);
 		n->set_property ("pitch", $1);
+		if (amp % 2)
+		   	n->set_property ("hide-accidental", SCM_BOOL_T);
 		if (q % 2)
 			n->set_property ("cautionary", SCM_BOOL_T);
 		if (ex % 2 || q % 2)
@@ -2050,28 +2054,30 @@ optional_rest:
 	;
 
 simple_element:
-	pitch exclamations questions octave_check optional_notemode_duration optional_rest {
+	pitch ampersands exclamations questions octave_check optional_notemode_duration optional_rest {
 		if (!PARSER->lexer_->is_note_state ())
 			PARSER->parser_error (@1, _ ("have to be in Note mode for notes"));
 
 		Music *n = 0;
-		if ($6)
+		if ($7)
 			n = MY_MAKE_MUSIC ("RestEvent", @$);
 		else
 			n = MY_MAKE_MUSIC ("NoteEvent", @$);
 		
 		n->set_property ("pitch", $1);
-		n->set_property ("duration", $5);
+		n->set_property ("duration", $6);
 
-		if (scm_is_number ($4))
+		if (scm_is_number ($5))
 		{
-			int q = scm_to_int ($4);
+			int q = scm_to_int ($5);
 			n->set_property ("absolute-octave", scm_from_int (q-1));
 		}
 
-		if ($3 % 2)
+		if ($2 % 2)
+			n->set_property ("hide-accidental", SCM_BOOL_T);
+		if ($4 % 2)
 			n->set_property ("cautionary", SCM_BOOL_T);
-		if ($2 % 2 || $3 % 2)
+		if ($3 % 2 || $4 % 2)
 			n->set_property ("force-accidental", SCM_BOOL_T);
 
 		$$ = n->unprotect ();
@@ -2270,6 +2276,10 @@ unsigned_number:
 	}
 	;
 	
+ampersands:
+		{ $$ = 0; }
+	| ampersands '&'	{ $$ ++; }
+	;
 
 exclamations:
 		{ $$ = 0; }
-- 
1.6.0.4

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


empty-stencil and point-stencil

2009-06-16 Thread Mark Polesky

Trevor, could you add a bit to your recent LM 4.3.1 patch about
empty-stencil and point-stencil? They are suitable substitutes for
#'stencil = ##f.

\override  #'stencil = #empty-stencil
\override  #'stencil = #point-stencil

See 
http://lists.gnu.org/archive/html/lilypond-devel/2009-06/msg00332.html
for a very recent discussion. I actually don't fully understand
the subtleties of discerning when one is more appropriate than 
the other, but it sounds like you might!

Thanks.
- Mark


  


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


Re: working on the new website

2009-06-16 Thread Graham Percival
On Tue, Jun 16, 2009 at 10:26:22AM +0200, Francisco Vila wrote:
> 2009/6/16 Graham Percival :
> 
> > split the css into multiple files (I think CSS supports that),
>
> Only if the styles are going to vary from directory to directory
> for the same elements, or if a single monolithic CSS file would
> be too complex, it worths to split the sheet.

I think a single file would be a _bit_ too complex.  In
particular, I'm thinking:

- CSS file for basic positions (such as the top navbar)
- CSS file for spoken text (as per your earlier email about blind
  users)
- CSS file for everything else (the graphics design stuff)

Cheers,
- Graham


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


Re: development on windows

2009-06-16 Thread Bertalan Fodor (LilyPondTool)

Jonathan Kulp wrote:

Bertalan Fodor (LilyPondTool) wrote:

Jonathan, only one issue:

- If a command is not found (like typing 'asdf' in the terminal 
window), some python script is telling errors. Is that intentional?




Can you post the terminal output from this?  The only message I see 
when I do this is as follows:


j...@bashtop:~/Desktop$ asdf
bash: asdf: command not found

Hm. Now the same for me...


This all sounds great.  I don't know what KDevelop is, though.  Is it 
something normally used in the KDE desktop?
KDevelop is a C/C++ IDE for Linux. After a 110MB download, it works on 
LilyBuntu as well. There is a Gnome IDE as well called Anjuta, but that 
doesn't seem so active.




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


Re: development on windows

2009-06-16 Thread Jonathan Kulp

Bertalan Fodor (LilyPondTool) wrote:

Jonathan, only one issue:

- If a command is not found (like typing 'asdf' in the terminal window), 
some python script is telling errors. Is that intentional?




Can you post the terminal output from this?  The only message I 
see when I do this is as follows:


j...@bashtop:~/Desktop$ asdf
bash: asdf: command not found

I tried it in lilybuntu in a Sun Vbox and the terminal output was 
the same.



Just for the record:

- On Asus EEE 901 KDevelop works very well using this VirtualBox + 
LilyUbuntu setup, running on a pen drive.
- I did some configuration in kdevelop: changing the debug target path 
to ., linked kdesudo to kdesu (as kdevelop looks for kdesu, which has 
been renamed). Then set up Debug configuration to use /usr/bin/libtool 
--mode=execute. This way make, make install works from inside the IDE.
- CTags integration works well, jumping to macro definitions is a matter 
of two clicks.
- Then I successfully installed a breakpoint in main.cc, and runned 
LilyPond step by step, having the variable values and so displayed in 
the IDE. Great!
- Also found that KDevelop supports syntax coloring for Scheme and 
LilyPond as well.




This all sounds great.  I don't know what KDevelop is, though.  Is 
it something normally used in the KDE desktop?


Jon
--
Jonathan Kulp
http://www.jonathankulp.com


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


Re: development on windows

2009-06-16 Thread Bertalan Fodor (LilyPondTool)

Jonathan, only one issue:

- If a command is not found (like typing 'asdf' in the terminal window), 
some python script is telling errors. Is that intentional?


Just for the record:

- On Asus EEE 901 KDevelop works very well using this VirtualBox + 
LilyUbuntu setup, running on a pen drive.
- I did some configuration in kdevelop: changing the debug target path 
to ., linked kdesudo to kdesu (as kdevelop looks for kdesu, which has 
been renamed). Then set up Debug configuration to use /usr/bin/libtool 
--mode=execute. This way make, make install works from inside the IDE.
- CTags integration works well, jumping to macro definitions is a matter 
of two clicks.
- Then I successfully installed a breakpoint in main.cc, and runned 
LilyPond step by step, having the variable values and so displayed in 
the IDE. Great!
- Also found that KDevelop supports syntax coloring for Scheme and 
LilyPond as well.


Bert



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


Re: RFC: new vertical layout engine

2009-06-16 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Dienstag, 16. Juni 2009 11:52:09 schrieb Joe Neeman:
> On Mon, Jun 15, 2009 at 9:05 PM, Reinhold Kainhofer
> > - -) Being able to set stretching factors on a StaffGroup-level. In
> > particular,
> > for full scores there are staff groups for woodwind, brass, vocal voices,
> > strings etc. When the whole system is stretched vertically, there is more
> > space in printed scores between the groups than between the staves inside
> > the
> > individual groups (i.e. the instrumental staff groups use a different
> > spring
> > constant than the staff group for the whole system). See e.g. a modern
> > Bärenreiter edition:
> >
> > http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/Schuber
> >t_StabatMater_0050.pdf >rticalStretching/Schubert_StabatMater_0050.pdf> Current bad lilypond
> > results (with huge stretching) are:
> >
> > http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/stretch
> >ing_oly_largestretch.pdf >VerticalStretching/stretching_oly_largestretch.pdf>
> >
> > This is really necessary for full scores for the conductor to get a quick
> > overview over the instrument groups. In particular, look at the
> > stretching_oly_vocalstaves.pdf file (current results with lilypond!),
> > hide the
> > group brackets at the left and try to guess which staves belong
> > together... Sample file (with hardly any stretching):
> >
> > http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/stretch
> >ing_oly_vocalstaves.pdf >erticalStretching/stretching_oly_vocalstaves.pdf>
> >
> > You would never guess which staves belong together..
>
> This will certainly the possible in the layout code, but I don't see how to
> make it nicely accessible through properties. Currently, the information
> about staff groups doesn't make it as far as the backend. 

Then that's the main problem. The staff groups are the prime key to vertical 
spacing, since they group the score, which should also be reflected in the 
vertical layout.

Would it be possible to derive appropriate properties for each staff from the 
grouping when the grouping is still available, so that the vertical alignment 
then has the correct settings derived from the grouping?

> If I can't find a
> nice way to do this, the functionality will be available anyway by setting
> 'previous-space on the first staff and 'next-space on the last staff of a
> staff group.

This is exactly what makes it infeasible currently. I've been writing ~10 full 
orchestral scores (13-21 instruments!), with multiple movements each (e.g. the 
Stabat Mater has 12 movements) so far, and doing this manually is just too 
much work, in particular, since the different kinds of scores can be 
automatically generated, but the vertical stretching can't. That's one of the 
reasons (apart from the part combiner and the missing lyrics with cue notes) 
why none of the scores are yet publically available, since they don't look 
professional.
Having to manually adjust each and every staff will rule lilypond out for 
serious editions of large works...

What's even worse is that with harakiri staves, the top-most or bottom-most 
staff of a group might change during the movement, so simply setting previous-
space or next-space for a staff will not work. It really has to be a property 
of the group and the grouping needs to play a part in the vertical spacing.


> > - -) Fixed positioning of staves/contexts should be possible, even if
> > some contexts are killed (in particular, when there are several measures
> > where a vocal voice is quiet, the lyrics context is automatically killed
> > meanwhile and
> > the explicit positioning is messed up right now.
>
> I'm not sure exactly what you mean by this. Do you mean that
> 'alignment-offsets in 'line-break-system-details should include the
> position of dead staves as well as live ones? 

No, I'm not talking about staves, I'm talking mainly about lyrics line, which 
are also included in the alignment-offsets. As an example, take the following 
sample score, which does not have any explicit positioning yet:
http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/alignment_offsets_lyrics_nosetting.pdf
http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/alignment_offsets_lyrics_nosetting.ly

Now assume that you want the staves on the exact same position (i.e. the exact 
same spacing, e.g. starting at 0, -15, -30 and -40. The first two staves have 
lyrics to be placed at -5 and -20 (but also have some lines with only rests 
and no lyrics). 
I've run into this situation when writing Vierne's Messe Sollennelle, which 
has four choir voices and two organs. I wanted the staves to be in the exact 
same position on every page...
So, of course you would set the alignment-offsets to:
\layout {
  \context { 

Re: RFC: new vertical layout engine

2009-06-16 Thread Joe Neeman
On Mon, Jun 15, 2009 at 9:05 PM, Reinhold Kainhofer
wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Am Montag, 15. Juni 2009 17:25:54 schrieb Joe Neeman:
> > I've started working on a new system for doing vertical layout in one
> pass
> > (ie. positioning and stretching the systems simultaneously).
>
> Since I have also attempted to improve the vertical stretching of
> orchestral
> (choir + full orchestra) full scores (but failed, since I couldn't get the
> springs-and-rods problem to return any useful solution), I spend a while
> thinking about what should be done:


Those are some comprehensive comments, thanks! Some remarks/questions
below...

>
> - -) Being able to set stretching factors on a StaffGroup-level. In
> particular,
> for full scores there are staff groups for woodwind, brass, vocal voices,
> strings etc. When the whole system is stretched vertically, there is more
> space in printed scores between the groups than between the staves inside
> the
> individual groups (i.e. the instrumental staff groups use a different
> spring
> constant than the staff group for the whole system). See e.g. a modern
> Bärenreiter edition:
>
> http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/Schubert_StabatMater_0050.pdf
> Current bad lilypond results (with huge stretching) are:
>
> http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/stretching_oly_largestretch.pdf
>
> This is really necessary for full scores for the conductor to get a quick
> overview over the instrument groups. In particular, look at the
> stretching_oly_vocalstaves.pdf file (current results with lilypond!), hide
> the
> group brackets at the left and try to guess which staves belong together...
> Sample file (with hardly any stretching):
>
> http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/stretching_oly_vocalstaves.pdf
>
> You would never guess which staves belong together..


This will certainly the possible in the layout code, but I don't see how to
make it nicely accessible through properties. Currently, the information
about staff groups doesn't make it as far as the backend. If I can't find a
nice way to do this, the functionality will be available anyway by setting
'previous-space on the first staff and 'next-space on the last staff of a
staff group.

- -) The stretching should not be done by simply inserting the same space
> between all the staves, since then staves with a high skyline (e.g. one
> staff
> has some dynamic signs, while other don't) will be spaced too much compared
> to
> staves with a low skyline. The stretching should rather attempt to space
> the
> center-line of the staves (almost) equally.


This is already done (assuming it works; I haven't checked carefully).


> - -) For staves with lyrics it might give better results to almost ignore
> the
> lyrics for spacing and then squeeze in the lyrics in the remaining space.
> Otherwise the vocal staves with lyrics will be spaced way too much compared
> to
> e.g. the strings section. For a hand-engraving, see e.g. the 1897 Breitkopf
> edition of Schubert's Stabat mater:
>
> http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/Partitur_Breitkopf1897-
> Seite2.pdf
> Compare this to the current LilyPond output:
>
> http://www.fam.tuwien.ac.at/~reinhold/LilyPond/VerticalStretching/stretching_oly_vocalstaves.pdf


Ok, I was planning anyway to divide VerticalAxisGroups into "spaceable" (eg.
staves) and "non-spaceable"
(eg.  dynamics in a piano staff) categories. The "spaceable" lines will
participate in the layout algorithm (ensuring that space is reserved for the
non-spaceable lines) and then the non-spaceable lines will be distributed
somehow in between the spaceable ones. This is how I intend to do centered
dynamics for piano staves; I could do something similar for lyrics (maybe
for figured bass also?).

- -) It should be possible to keep one context (in particular FiguredBass)
> as
> close as possible to another staff (yes, we have that already by disabling
> stretching above).
>
>
> - -) Fixed positioning of staves/contexts should be possible, even if some
> contexts are killed (in particular, when there are several measures where a
> vocal voice is quiet, the lyrics context is automatically killed meanwhile
> and
> the explicit positioning is messed up right now.


I'm not sure exactly what you mean by this. Do you mean that
'alignment-offsets in 'line-break-system-details should include the position

Re: working on the new website

2009-06-16 Thread Francisco Vila
2009/6/16 Graham Percival :

> split the css into multiple files (I think CSS supports that),

Yes, this is easily done just like include commands of lilypond.

@import "file.css";

that's why they call them "cascade style sheets". Only if the styles
are going to vary from directory to directory for the same elements,
or if a single monolithic CSS file would be too complex, it worths to
split the sheet.

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org


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


Re: working on the new website

2009-06-16 Thread Patrick McCarty
On Mon, Jun 15, 2009 at 09:35:50PM -0700, Graham Percival wrote:
> 
> Patrick, could you fiddle around in the texinfo/css/ dir?  Do
> whatever you want -- add images, remove images, change the css,
> split the css into multiple files (I think CSS supports that),
> etc.  Don't spend too long on it; I'm still not at all certain
> which s we'll end up keeping, what info will actually go on
> the front page (which is where most of the CSS will be useful),
> etc.  I'm just getting a bit tired of my garish design.  :)

Sure, I'll take a look at it.

Thanks,
Patrick


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


Re: working on the new website

2009-06-16 Thread Francisco Vila
2009/6/16 Graham Percival :
> Oh, and does anybody have any immediate comments (or experience)
> with blind users?  As a general rule, I'm quite keen to make
> things accessible.  For the specific case of LilyPond, we have at
> least one famous blind user, so we should make sure the new
> webpage is easy for him/them to navigate.

My immediate comment is that making a web page accessible by blind
users involves putting a section in the CSS file that defines the
voice styles for the spoken interface, if any. The section is specific
for the aural media and an usable example would be the following. Our
blind user could comment it in turn. For this to work, the content has
to rely on these elements, otherwise we can adapt it to match. This is
*not* by far the only thing we can do but it helps a lot.

@media aural {
   h1, h2, h3,
   h4, h5, h6{ voice-family: paul, male; stress: 20; richness: 90 }
   h1{ pitch: x-low; pitch-range: 90 }
   h2{ pitch: x-low; pitch-range: 80 }
   h3{ pitch: low; pitch-range: 70 }
   h4{ pitch: medium; pitch-range: 60 }
   h5{ pitch: medium; pitch-range: 50 }
   h6{ pitch: medium; pitch-range: 40 }
   li, dt, dd{ pitch: medium; richness: 60 }
   dt{ stress: 80 }
   pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 }
   em{ pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
   strong{ pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
   dfn   { pitch: high; pitch-range: 60; stress: 60 }
   s, strike { richness: 0 }
   i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
   b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
   u { richness: 0 }
   a:link{ voice-family: harry, male }
   a:visited { voice-family: betty, female }
   a:active  { voice-family: betty, female; pitch-range: 80; pitch: x-high }
}


I would like to help a bit with the webpage, but Vacations mean less
work time and more family time, which is bad for computing. I am a
medium-to-low level CSS connoisseur.

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org


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