Re: Paper default margins

2009-10-26 Thread Michael Käppler

Hi Neil,
I hope I've lost nothing.

Regards,
Michael
From aa34f02a9eb85aaa39d3ff45f31597d279330461 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Michael=20K=C3=A4ppler?= xmichae...@web.de
Date: Sat, 12 Sep 2009 21:55:17 +0200
Subject: [PATCH] Let default margins depend on paper size.

* Make indent and short-indent defaults accessible in paper-defaults-init.ly

* Default margins apply to the paper size set by (ly:set-option 'paper-size)
  and are linearly scaled for other paper sizes

* Modify input/regression/page-turn-page-breaking-auto-first-page.ly to work
  with the new margin sizes
---
 .../page-turn-page-breaking-auto-first-page.ly |4 +-
 input/regression/paper-default-margins-a6.ly   |   24 +++
 input/regression/paper-default-margins-def.ly  |   23 +++
 input/regression/paper-margins-consistency.ly  |4 +-
 input/regression/paper-margins-left-margin.ly  |4 +-
 input/regression/paper-margins-line-width.ly   |4 +-
 input/regression/paper-margins-no-checks.ly|4 +-
 input/regression/paper-margins-overrun.ly  |4 +-
 input/regression/paper-margins-right-margin.ly |4 +-
 input/regression/paper-margins.ly  |4 +-
 lily/output-def.cc |4 +-
 ly/paper-defaults-init.ly  |   14 +++-
 scm/lily-library.scm   |   37 +---
 scm/paper.scm  |   66 +---
 14 files changed, 169 insertions(+), 31 deletions(-)
 create mode 100644 input/regression/paper-default-margins-a6.ly
 create mode 100644 input/regression/paper-default-margins-def.ly

diff --git a/input/regression/page-turn-page-breaking-auto-first-page.ly b/input/regression/page-turn-page-breaking-auto-first-page.ly
index a9c3f31..0aa5570 100644
--- a/input/regression/page-turn-page-breaking-auto-first-page.ly
+++ b/input/regression/page-turn-page-breaking-auto-first-page.ly
@@ -17,6 +17,6 @@ number to 2 in order to avoid a bad page turn.
 
 \book {
   \score {
-{\repeat unfold 40 {a b c d}}
+\relative c' {\repeat unfold 60 {a b c d}}
   }
-}
\ No newline at end of file
+}
diff --git a/input/regression/paper-default-margins-a6.ly b/input/regression/paper-default-margins-a6.ly
new file mode 100644
index 000..163a9bf
--- /dev/null
+++ b/input/regression/paper-default-margins-a6.ly
@@ -0,0 +1,24 @@
+\version 2.13.7
+
+\header {
+  texidoc = Default margin values are accessible in paper-defaults-init.ly
+and apply to the default paper size returned by (ly:get-option
+'paper-size). For other paper sizes, they are scaled linearly.
+This also affects head- and foot-separation as well as indents.
+}
+
+someNotes = \repeat unfold 30 { c4 d e f }
+
+\paper {
+  #(set-paper-size a6)
+}
+
+\book {
+  \markup { For other paper sizes, margins are scaled accordingly. }
+  \score {
+\relative c' {
+  \someNotes
+}
+  }
+}
+
diff --git a/input/regression/paper-default-margins-def.ly b/input/regression/paper-default-margins-def.ly
new file mode 100644
index 000..82afc4d
--- /dev/null
+++ b/input/regression/paper-default-margins-def.ly
@@ -0,0 +1,23 @@
+\version 2.13.7
+
+\header {
+  texidoc = Default margin values are accessible in paper-defaults-init.ly
+and apply to the default paper size returned by (ly:get-option
+'paper-size). For other paper sizes, they are scaled linearly.
+This also affects head- and foot-separation as well as indents.
+}
+
+someNotes = \repeat unfold 30 { c4 d e f }
+
+\paper { }
+
+\book {
+  \markup { If the paper size remains default, the margin values from
+paper-defaults-init.ly remain unchanged. }
+  \score {
+\relative c' {
+  \someNotes
+  \someNotes
+}
+  }
+}
diff --git a/input/regression/paper-margins-consistency.ly b/input/regression/paper-margins-consistency.ly
index 1b58b15..a3a7a40 100644
--- a/input/regression/paper-margins-consistency.ly
+++ b/input/regression/paper-margins-consistency.ly
@@ -16,4 +16,6 @@ someNotes = \relative c' { \repeat unfold 40 { c4 d e f } }
   line-width = 100 \mm
 }
 
-\score { \someNotes }
+\book {
+  \score { \someNotes }
+}
diff --git a/input/regression/paper-margins-left-margin.ly b/input/regression/paper-margins-left-margin.ly
index 5876196..efb9981 100644
--- a/input/regression/paper-margins-left-margin.ly
+++ b/input/regression/paper-margins-left-margin.ly
@@ -10,4 +10,6 @@ someNotes = \relative c' { \repeat unfold 40 { c4 d e f } }
   left-margin = 40 \mm
 }
 
-\score { \someNotes }
+\book {
+  \score { \someNotes }
+}
diff --git a/input/regression/paper-margins-line-width.ly b/input/regression/paper-margins-line-width.ly
index bf6e14d..e38f57f 100644
--- a/input/regression/paper-margins-line-width.ly
+++ b/input/regression/paper-margins-line-width.ly
@@ -10,4 +10,6 @@ someNotes = \relative c' { \repeat unfold 40 { c4 d e f } }
   line-width = 100 \mm
 }
 
-\score { \someNotes }
+\book {
+  \score { \someNotes }
+}

Re: support of `to-barline' property in \Dynamics

2009-10-26 Thread Werner LEMBERG

Ping!


Werner


==


From: Werner LEMBERG w...@gnu.org
Subject: support of `to-barline' property in \Dynamics
Date: Fri, 25 Sep 2009 21:06:18 +0200 (CEST)

 I think something like the following patch should be applied so that
 the \Dynamics context supports the `to-barline' property of hairpins.
 However, I haven't tested whether it has any negative side effects.
 
 
 Werner
 
 
 ==
 
 
 --- engraver-init.ly.old2009-09-16 22:22:31.0 +0200
 +++ engraver-init.ly2009-09-25 21:03:23.0 +0200
 @@ -350,6 +350,7 @@
\name Dynamics
\alias Voice
\consists Output_property_engraver
 +  \consists Bar_engraver
\consists Piano_pedal_engraver
\consists Script_engraver
\consists New_dynamic_engraver
 
 
 ___
 lilypond-devel mailing list
 lilypond-devel@gnu.org
 http://lists.gnu.org/mailman/listinfo/lilypond-devel


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


Re: line breaks and broken beams

2009-10-26 Thread Werner LEMBERG

Ping!


Werner


==


From: Werner LEMBERG w...@gnu.org
Subject: Re: line breaks and broken beams
Date: Sun, 27 Sep 2009 16:08:31 +0200 (CEST)

 
 What's the reason that line breaks are by default forbidden if
 there is a broken beam crossing the bar line, and that you have to
 set the `breakable' flag manually to override it?

 BTW, it is very unpleasant that lilypond doesn't emit any kind of
 warning if it produces an overlong staff caused by that issue.  It
 silently accumulates unbreakable bars and happily walks out of the
 right margin.  I would consider this behaviour a bug.

 +1.

 (I've always felt this way, too.)
 
 Then let's drop the IMHO unfounded limitation of not breaking at beams
 crossing a barline.
 
 
 Werner


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


NEWS/changes entry for font switching

2009-10-26 Thread Graham Percival
Could we get an entry in Documentation/changes.tely  about the font
switching?  I guess we can't show an actual example of it working
(unless we make the new font required for compiling lilypond), but it
would be nice to have a bullet point about this, at least.

Cheers,
- Graham


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


tracking patches

2009-10-26 Thread Graham Percival
Could we get a volunteer to keep track of patches?  The idea is that
whenever somebody sends a patch, if nobody does anything to it within,
say, 3 days, you add it to the google issue tracker.  If you already
read the mailists, I estimate it will take 1 hour each month.

That's not much time to volunteer, but it could make a *huge*
difference for new contributors.  It's really discouraging when you
submit something, nobody replies, and you're left wondering if your
email client ate the patch or if everybody hates you or something.

Absolutely no programming skills or understanding of the patch in
question is required; anybody capable of recognizing the English word
patch can do this job!

Cheers,
- Graham


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


Re: tracking patches

2009-10-26 Thread Marek Klein
Hi,
I will do it.
-- 
Marek Klein
http://gregoriana.sk

2009/10/26 Graham Percival gra...@percival-music.ca

 Could we get a volunteer to keep track of patches?  The idea is that
 whenever somebody sends a patch, if nobody does anything to it within,
 say, 3 days, you add it to the google issue tracker.  If you already
 read the mailists, I estimate it will take 1 hour each month.

 That's not much time to volunteer, but it could make a *huge*
 difference for new contributors.  It's really discouraging when you
 submit something, nobody replies, and you're left wondering if your
 email client ate the patch or if everybody hates you or something.

 Absolutely no programming skills or understanding of the patch in
 question is required; anybody capable of recognizing the English word
 patch can do this job!

 Cheers,
 - Graham


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

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


Re: Issue 872 in lilypond: Changes split-page has broken images

2009-10-26 Thread John Mandereau
Le samedi 24 octobre 2009 à 17:13 +, codesite-nore...@google.com a
écrit :
 We don't *have* to discuss it as a tracker issue,

Especially when it's not necessary, as Google Code sends text emails
with horrible indentation, or rather I'm not able to fill Google Code
tracker form in a way to avoid such horrible indentation.


 Maybe those aren't good reasons... I have no objection to keeping such TODO  
 items to
 myself in the future, if that's desired.

What about the wiki for this kind of stuff?


 Anyway, for this specific issue: if changes.tely is a non-splitted manual,  
 then the
 html page from general/manual.itexi @section Changes  will overwrite the  
 non-splitted
 version of changes.itely.  I figured that the simplest way to fix this  
 would be to
 make Changes a split manual, thereby putting changes-one-page.html in the  
 main doc
 source output, and also giving us changes/index.html.

How ugly, this gives two almost identical HTML documents
changes-one-page.html and changes/index.html.


 There was also an issue with the xref produced by @rchanges{Top,blah}  
 inside general,
 that has to do with the broken html refs that I'm avoiding with that  
 disgusting find
 | xargs sed trick.

One purpose of postprocess_html is avoiding messing with make and shell
to do such tricks.


 In general (umm, I mean, as a summary, not anything to do with  
 general.texi), I'd
 like to avoid manual-specific hacks; I like the idea of only having two  
 types of
 manuals: general.texi, which goes in the top output dir, and all the other  
 manuals,
 which are all treated the same.

There are two distinct documentation targets: online (lilypond.org) and
offline (downloadable docball).

As for the offline target, I don't understand why you want to make
General go at the top output dir: why should the directory structure
match the hierarchy between HTML Info manuals?  The only grounds I can
see for doing so would be
- navigating directories/typing URL by hand,
- reading the URL to see where you are because the docs structure is not
obvious from the HTML pages themselves.

I hope we put enough effort into the usability of our docs and new web
site so these grounds are not valid.

As for the online docs, we want
- the website in lilypond.org/web (IIRC you suggested lilypond.org,
which changes nothing to the issue)
- the docs in lilypond.org/doc/vX.Y/

Moving HTML output of General one directory up suits none of the two
targets, so it should be abandoned.  However, we should generate each
output of General twice, removing for the offline target the download
page and other pages that make sense only for the online web site; I'm
willing to take over this, but not for the to-be-dead build system.


 Long-term, I think it would be nice to have the older Changes in the same  
 document,
 but I haven't thought through all the issues involved in doing this.
 (namely, what
 happens if the syntax changes from 1.4 to 1.8, then again from 1.8 to 2.13  
 -- how do
 we generate the picture for the changes-1.8 page?)

Let's not have a headache for this :-)


 Now that I think about it some more, I'm leaning towards abandoning the  
 idea entirely.

I second this.  It's (and it should be with the new web site) easy to
see changes for each new stable branch from the page Documentation from
the web site.

Best,
John


signature.asc
Description: Ceci est une partie de message numériquement signée
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


[PATCH] Fix typo in build script

2009-10-26 Thread Francisco Vila
Hello,

this patch fixes a potential bug in scripts/build/grand-replace.py

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org
www.csmbadajoz.com
From f253378959983a4777c8169f0011eda5413c5c4e Mon Sep 17 00:00:00 2001
From: Francisco Vila francisco.v...@hispalinux.es
Date: Mon, 26 Oct 2009 13:05:50 +0100
Subject: [PATCH] Fix Spanish filename typo in update script.

---
 scripts/build/grand-replace.py |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/build/grand-replace.py b/scripts/build/grand-replace.py
index dc0697d..abd67ba 100644
--- a/scripts/build/grand-replace.py
+++ b/scripts/build/grand-replace.py
@@ -46,7 +46,7 @@ copied_files = [
 'txi-de.tex',
 'txi-en.tex',
 'txi-fr.tex',
-'txi-sf.tex',
+'txi-es.tex',
 ]
 
 def main ():
-- 
1.5.6.3

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


Re: documentation: unreadable html tables

2009-10-26 Thread -Eluze


Graham Percival-3 wrote:
 
 The languages involved are perl, texinfo, and html.  In
 particular, the documentation is written in texinfo; a perl script
 (called texi2html) interprets the texinfo files, and outputs html.
 
i have some experience with html; texinfo and perl are fully new to me!
furthermore i am working on windows - hope this is not a problem!?


 The first step is to reproduce the problem in a small example.
 Try making a tiny texinfo file, which contains the same kind of
 table as in pitches.itely.  I think it's a @multitable, but I'm
 not 100% certain.
 
i will need to know where i can download this file from!


 
 Verify that running texi2html 1.82 on your tiny texinfo file
 produces the bad output.  Then have a look at the output and see
 what exactly you want to change -- is it just removing the p
 tags?  Would it look better if there was some table attribute
 being set?  etc.
 
 Then you need to figure out how to get texi2html to produce the
 output you want to see.  As it happens, texi2html is relatively
 easy to extend (it's in perl, you can replace any of its built-in
 fuctions easily, etc).  We *could* just add a special overriding
 function to our texi2html init script, but in this case I'd
 recommend getting your fix integrated into texi2html itself.  This
 won't help us with 1.82, but when texi2html 1.84 comes out, it'll
 have the fix.
 
 
 I really hope that you'll take this up; we could really use
 somebody who's familiar with texi2html.  We have a few problems
 with our texi2html init scripts, and there's other parts of those
 scripts that work well, but I think other texi2html users could
 benefit from (like the sectioning-by-numbers), so it would be nice
 if we could send a patch for this upstream.
 
altogether i think it will take me some time to get familiar with these new
components and surroundings!
if anybody could advise a practical tutorial both for texinfo and perl this
could help a lot.


 If you're not familiar with perl... well, it's not as easy to
 learn as python, but I'd still say that it's on the easy side of
 programming languages.  It's much easier than scheme!  :)
 
 Cheers,
 - Graham
 
cheers
-Eluze

-- 
View this message in context: 
http://www.nabble.com/documentation%3A-unreadable-html-tables-tp26037552p26060704.html
Sent from the Gnu - Lilypond - Dev mailing list archive at Nabble.com.



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


Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Carl Sorensen



On 10/23/09 5:52 PM, Ian Hulin i...@hulin.org.uk wrote:

 init.ly - Add new parser variables book-output-suffix and book-filename
 initialized as #f and empty queue/stack structure.
 
 music-functions-init.ly adds three new functions
 * \bookOutputSuffix - to set the output suffix for the \book block
 * \bookOutputName - to set output filename for the current \book block
 * \bookOuptutNameRevert - to restore the the output filename to the value
 prior to that of the last \bookOuputName call.

I think these functions should be named

\setBookOutputSuffix
\setBookOutputName
\revertBookOutputName


 \bookOutputName and \bookOuptutNameRevert use the book-filename as a stack
 structure.  I have used this so we can we could eventually allow users to do
 stuff like the following (controlling the names used to open the midi files is
 not part of the current patch).
 \book {
     \bookOutputName My-Homeland
     \score {
        \bookOutputName Vysehrad
           music-declarations ...
           \midi{
           % midi file gets written to Vysehrad.mid(i)
           }
           \layout{
           }
        \bookOutputNameRevert
     }
     \score {
         \bookOuputName Vltava
         ...
         \midi {
         % midi file is written to Vltava.mid(i)
         }
     }
 .
 .
 .  

This code doesn't demonstrate the need for \bookOutputNameRevert; the same
thing would happen if the \bookOutputNameRevert were omitted, as far as I
can tell.

 
 lily-library.scm has changes to the filename generating code in
 print-book-with to pick up the current values of the new parser variables if
 set before using the current output-suffix or result of a call to
 ly:parser-output-name.
 The routine to get the name now uses as combination of the current output name
 and output suffix value to at as a key for the internal a-list of filenames
 being written to during a compilation.
 
 lily-guile.hh, lily-guile.cc and parser.yy have code that I would like to use
 to re-initialize book-output-suffix and book-filename to initial values on
 encountering the end of a \book block, but  I've hit a dead-end currently in
 this  as the code I tried to use in parser.yy negates the effect of calling
 the new functions altogether.  If anyone with more experience of how bison
 works has any better ideas as to how do this I'd be interested in hearing
 them.

It would seem to me (this is a relatively poorly informed opinion) that
setting them to the initial values at the *start* of a book block would be a
more sane way to do it that to reset them at the end of a book block.  Or is
there something I'm missing?

HTH,

Carl



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


Re: [frogs] [PATCH] : Supply missing documentation strings in music-function-init.ly

2009-10-26 Thread Ian Hulin

Neil Puttock wrote:

2009/10/25 Ian Hulin i...@hulin.org.uk:

Thanks for the feedback, Neil.  Is this OK to push now?


Sure is.

Thanks,
Neil
Woo-hoo, green light! Could someone with the relevant privileges push 
this to the main git repository, please?


Cheers,

Ian
From 48d7cf640be9b78b398bc61d00aedbaa795cf540 Mon Sep 17 00:00:00 2001
From: Ian Hulin i...@hulin.org.uk
Date: Sun, 25 Oct 2009 22:42:37 +
Subject: [PATCH] [PATCH] Add missing documentation strings in property-init.ly and
  music-functions-init.ly.

---
 ly/music-functions-init.ly |   22 --
 ly/property-init.ly|   10 +-
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly
index 718615a..4283157 100644
--- a/ly/music-functions-init.ly
+++ b/ly/music-functions-init.ly
@@ -449,7 +449,7 @@ or @code{\GrobName\})
 %% because music identifiers are not allowed at top-level.
 pageBreak =
 #(define-music-function (location parser) ()
-   (_i Force a page break. May be used at toplevel (ie between scores or
+   (_i Force a page break. May be used at toplevel (i.e. between scores or
 markups), or inside a score.)
(make-music 'EventChord
 	   'page-marker #t
@@ -584,13 +584,16 @@ parenthesize =
 
 partcombine =
 #(define-music-function (parser location part1 part2) (ly:music? ly:music?)
-		(make-part-combine-music parser
-	 (list part1 part2)))
+   (_i Take the music in @var{part1} and @var{part2} and typeset so that they share a staff.)
+   (make-part-combine-music parser
+			(list part1 part2)))
 
 pitchedTrill =
 #(define-music-function
(parser location main-note secondary-note)
(ly:music? ly:music?)
+   (_i Print a trill with @var{main-note} as the main note of the trill and
+print @var{secondary-note} as a stemless note head in parentheses.)
(let*
((get-notes (lambda (ev-chord)
 		 (filter
@@ -622,8 +625,12 @@ pitchedTrill =
 
 quoteDuring =
 #(define-music-function
-  (parser location what main-music)
-  (string? ly:music?)
+   (parser location what main-music)
+   (string? ly:music?)
+   (_i Indicate a section of music to be quoted.  @var{what} indicates the name
+of the quoted voice, as specified in an @code{\\addQuote} command.
+...@var{main-music} is used to indicate the length of music to be quoted;
+usually contains spacers or multi-measure rests.)
   (make-music 'QuoteMusic
 	  'element main-music
 	  'quoted-music-name what
@@ -803,7 +810,10 @@ tweak =
 
 unfoldRepeats =
 #(define-music-function (parser location music) (ly:music?)
-		  (unfold-repeats music))
+   (_i Force any @code{\\repeat volta}, @code{\\repeat tremolo} or
+...@code{\\repeat percent} commands in @var{music} to be interpreted
+as @code{\\repeat unfold}.)
+   (unfold-repeats music))
 
 
 
diff --git a/ly/property-init.ly b/ly/property-init.ly
index 4983506..a73848e 100644
--- a/ly/property-init.ly
+++ b/ly/property-init.ly
@@ -278,7 +278,9 @@ phrasingSlurNeutral = \revert PhrasingSlur #'direction
 % dash-patterns (make-simple-dash-definition defined at top of file)
 phrasingSlurDashPattern =
 #(define-music-function (parser location dash-fraction dash-period)
-  (number? number?)
+   (number? number?)
+   (_i Set up a custom style of dash pattern for @var{dash-fraction} ratio of
+line to space repeated at @var{dash-period} interval.)
   #{
  \override PhrasingSlur #'dash-definition =
$(make-simple-dash-definition dash-fraction dash-period)
@@ -301,10 +303,16 @@ phrasingSlurSolid =
 
 pointAndClickOn  =
 #(define-music-function (parser location) ()
+   (_i Enable generation of code in final-format (e.g. pdf) files to reference the
+originating lilypond source statement;
+this is helpful when developing a score but generates bigger final-format files.)
(ly:set-option 'point-and-click #t)
(make-music 'SequentialMusic 'void #t))
+
 pointAndClickOff =
 #(define-music-function (parser location) ()
+   (_i Suppress generating extra code in final-format (e.g. pdf) files to point
+back to the lilypond source statement.)
(ly:set-option 'point-and-click #f)
(make-music 'SequentialMusic 'void #t))
 
-- 
1.6.0.4

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


Need interface/data structure design advice

2009-10-26 Thread David Kastrup

Hi,

I am working on accordion register symbol typesetting right now.  Up to
now, there are some font elements in the font, and some basic hackish
stuff in the snippets.

Right now I am stuck in the interfaces.  The focus right now is discant
registers, other registers have similar concerns.

Now here is the basic data I have to deal with:

The register symbols have a basic symbol, and they have dots that are on
or off.

(cf URL:http://en.wikipedia.org/wiki/Accordion_reed_ranks__switches)

The German page
URL:http://de.wikipedia.org/wiki/Register_(Akkordeon) has quite a few
more details with regard to naming schemes.

The dots correspond to reed banks.  For some accordions, there are
unusual reed banks (and dots), so the user should be able to add dot
coordinates and corresponding data.

For each dot, there will be a set of coordinates where to draw it on the
accordion symbol, a default midi instrument and a default pitch
adjustment: accordions have reed banks that are one octave off, but they
also have reed banks that are only a few cents off-pitch, usually with a
linear tuning curve (linear in cents/semitone, with the lower notes
being more cents off and the higher less).

So we want a default midi instrument per reed bank, with an optional
fine-tuning (translated in pitch bend).

Now to registers: a register is a combination of reed banks (and dots on
the symbol).  A register has a name.  I don't think that cleverness is
warranted for pulling apart register names like 101 or MM or
whatever else: the combinations are few enough that it is fine not to
pick apart those strings but just use them as identifier for one
register each.

Registers should have an override regarding the used midi instruments in
order to adapt them to available patches.

Now there is an additional complication: if the lowest used reed bank is
not at nominal pitch (namely either 16 or 4), notation and sound are
not in accord.  It is common to write at pitch and affix an 8 or more
wordy equivalent at the top or bottom (depending on whether to play one
octave lower or higher than written) of the register symbol to indicate
that one should play one octave higher/lower in order to get pitch.  If
this octavation (in playing) is dissolved, there is loco at the next
register symbol.

So usually the register symbol should interact in some manner with
\ottava specs.  Accordions are usually limited enough in range not to
need ottava notation in addition to registration: the keyboard for piano
accordions tends to go from f to a''', really big ones e to c.
Chromatic button accordions are a bit more impressive, mine has notes
from a, to bes, so some possible use for ottava changes that are not
directly related to register changes is there: those would likely use
ottava brackets independent of the current register.

It is common to have different registers for different repeats and write
that out.  That would be nice to have in Midi.  However, it is also
common to have different dynamics for different repeats, and Lilypond
has no way to deal with that right now IIRC.  So that's a different
topic and should likely be addressed in the context of repeats without
special consideration of accordions.

Ok, all this verbage: there need to be ways to specify the available
reed banks, their dot layout, their midi impact and audible octave.
Registers have a reed bank combination and a sounding octave of the
lowest reed bank, and should have an override for the chosen midi
output.

This situation is principally the same in bass registrations for free
bass, and with some modifications for standard bass
(cf. URL:http://www.accordions.com/index/art/stradella.shtml) where
some reed banks are used for chords, and some for single bass notes
(usually sounding the chord banks as well through mechanical couplers).

So the same mechanisms for tweaking, dot layout specification, register
naming, midi impact, and use should apply.

What kind of data structure can I use such that one can tweak with a
reasonable interface?

-- 
David Kastrup



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


Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Ian Hulin

Carl Sorensen wrote:



On 10/23/09 5:52 PM, Ian Hulin i...@hulin.org.uk wrote:


init.ly - Add new parser variables book-output-suffix and book-filename
initialized as #f and empty queue/stack structure.

music-functions-init.ly adds three new functions
* \bookOutputSuffix - to set the output suffix for the \book block
* \bookOutputName - to set output filename for the current \book block
* \bookOuptutNameRevert - to restore the the output filename to the value
prior to that of the last \bookOuputName call.


I think these functions should be named

\setBookOutputSuffix
\setBookOutputName
\revertBookOutputName


You're probably right.  It's just that in music-functions-init the 
source likes to group all the functions alphabetically, and this was a 
way of getting all the related things together.


It's a shame we haven't got a way of declaring generic functions with 
the parser so you could code  \bookCommand \OutputSuffix mysuffix. 
Well, I suppose we have if you imitate what \markup does in the parser 
but I'm not going to go there...


So I'll go with your suggestions.





\bookOutputName and \bookOuptutNameRevert use the book-filename as a stack
structure.  I have used this so we can we could eventually allow users to do
stuff like the following (controlling the names used to open the midi files is
not part of the current patch).
\book {
\bookOutputName My-Homeland
\score {
   \bookOutputName Vysehrad
  music-declarations ...
  \midi{
  % midi file gets written to Vysehrad.mid(i)
  }
  \layout{
  }
   \bookOutputNameRevert
}
\score {
\bookOuputName Vltava
...
\midi {
% midi file is written to Vltava.mid(i)
}
}
.
.
.  


This code doesn't demonstrate the need for \bookOutputNameRevert; the same
thing would happen if the \bookOutputNameRevert were omitted, as far as I
can tell.



Consider this in one file Smetana.ly:

;;  Music for Má Vlast
\book {
\bookOutputName My-Homeland
\score {
\bookOutputName Vyšehrad
...
}
\score {
\bookOutputName Vltava
...
}
%%   three more \score blocks setting the output name
\score {
\bookOutputName Blanik
...
}
}

;; Music for Bartered Bride Overure
\book {
% No \bookOutputName here
% Until scoping for \book blocks is sorted out,
% this block will get output to Blanik.pdf and Blanik.midi.
\score {
...
}
}   




lily-library.scm has changes to the filename generating code in
print-book-with to pick up the current values of the new parser variables if
set before using the current output-suffix or result of a call to
ly:parser-output-name.
The routine to get the name now uses as combination of the current output name
and output suffix value to at as a key for the internal a-list of filenames
being written to during a compilation.

lily-guile.hh, lily-guile.cc and parser.yy have code that I would like to use
to re-initialize book-output-suffix and book-filename to initial values on
encountering the end of a \book block, but  I've hit a dead-end currently in
this  as the code I tried to use in parser.yy negates the effect of calling
the new functions altogether.  If anyone with more experience of how bison
works has any better ideas as to how do this I'd be interested in hearing
them.


It would seem to me (this is a relatively poorly informed opinion) that
setting them to the initial values at the *start* of a book block would be a
more sane way to do it that to reset them at the end of a book block.  Or is
there something I'm missing?


D'oh, I was getting blown away by having to learn Bison and work out 
what was doing what, with which, to what, when, and by whom. . .


I'll try it out.



HTH,


Thank, you, yes it does,

Cheers,
Ian


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


Re: [PATCH] Fix typo in build script

2009-10-26 Thread Graham Percival
Thanks, applied.

Cheers,
- Graham

On Mon, Oct 26, 2009 at 01:13:17PM +0100, Francisco Vila wrote:
 Hello,
 
 this patch fixes a potential bug in scripts/build/grand-replace.py
 
 -- 
 Francisco Vila. Badajoz (Spain)
 www.paconet.org
 www.csmbadajoz.com

 From f253378959983a4777c8169f0011eda5413c5c4e Mon Sep 17 00:00:00 2001
 From: Francisco Vila francisco.v...@hispalinux.es
 Date: Mon, 26 Oct 2009 13:05:50 +0100
 Subject: [PATCH] Fix Spanish filename typo in update script.
 
 ---
  scripts/build/grand-replace.py |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/scripts/build/grand-replace.py b/scripts/build/grand-replace.py
 index dc0697d..abd67ba 100644
 --- a/scripts/build/grand-replace.py
 +++ b/scripts/build/grand-replace.py
 @@ -46,7 +46,7 @@ copied_files = [
  'txi-de.tex',
  'txi-en.tex',
  'txi-fr.tex',
 -'txi-sf.tex',
 +'txi-es.tex',
  ]
  
  def main ():
 -- 
 1.5.6.3
 

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



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


Re: documentation: unreadable html tables

2009-10-26 Thread Graham Percival
On Mon, Oct 26, 2009 at 07:18:54AM -0700, -Eluze wrote:
 
 Graham Percival-3 wrote:
  The languages involved are perl, texinfo, and html.  In
  particular, the documentation is written in texinfo; a perl script
  (called texi2html) interprets the texinfo files, and outputs html.
  
 i have some experience with html; texinfo and perl are fully new to me!
 furthermore i am working on windows - hope this is not a problem!?

Working on windows will be no problem.

  The first step is to reproduce the problem in a small example.
  Try making a tiny texinfo file, which contains the same kind of
  table as in pitches.itely.  I think it's a @multitable, but I'm
  not 100% certain.
 
 i will need to know where i can download this file from!

Please see the Contributor's Guide, particularly the section about
windows git.

 altogether i think it will take me some time to get familiar with these new
 components and surroundings!
 if anybody could advise a practical tutorial both for texinfo and perl this
 could help a lot.

You don't need a lot of texinfo; a seven-line file should be fine
for your testing.  As for perl, there are many tutorials on the
internet devoted to it.

Cheers,
- Graham


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


Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Graham Percival
On Mon, Oct 26, 2009 at 12:11:55PM -0600, Carl Sorensen wrote:
 
 On 10/23/09 5:52 PM, Ian Hulin i...@hulin.org.uk wrote:
 
  music-functions-init.ly adds three new functions
  * \bookOutputSuffix - to set the output suffix for the \book block
  * \bookOutputName - to set output filename for the current \book block
  * \bookOuptutNameRevert - to restore the the output filename to the value
  prior to that of the last \bookOuputName call.
 
 I think these functions should be named
 
 \setBookOutputSuffix
 \setBookOutputName
 \revertBookOutputName

No!  Having \set vs. \setBlahBlah is a nightmare for newbies.
Sorry, my brain is fried at the moment, so I have no alternative
suggestions.

Cheers,
- Graham


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


Re: Need interface/data structure design advice

2009-10-26 Thread Carl Sorensen



On 10/26/09 1:41 PM, David Kastrup d...@gnu.org wrote:

 
 
 Hi,
 
 I am working on accordion register symbol typesetting right now.  Up to
 now, there are some font elements in the font, and some basic hackish
 stuff in the snippets.
 
 Right now I am stuck in the interfaces.  The focus right now is discant
 registers, other registers have similar concerns.
 
 Now here is the basic data I have to deal with:
 
 The register symbols have a basic symbol, and they have dots that are on
 or off.
 
 (cf URL:http://en.wikipedia.org/wiki/Accordion_reed_ranks__switches
 http://en.wikipedia.org/wiki/Accordion_reed_ranks__switches )
 
 The German page
 URL:http://de.wikipedia.org/wiki/Register_(Akkordeon) has quite a few
 more details with regard to naming schemes.
 
 The dots correspond to reed banks.  For some accordions, there are
 unusual reed banks (and dots), so the user should be able to add dot
 coordinates and corresponding data.

I'd lean towards something like

bank-properties , an alist containing the properties of a bank:

((x-offset . bank-x-offset)
 (y-offset . bank-y-offset)
 (pitch-offset . bank-pitch-offset)
 (midi-intsrument . bank-midi-instrument))

By making it an alist, any of the properties can be left out and filled in
by default, and the order of the properties doesn't matter.  It's the way
most LilyPond properties are set.

Alternatively, bank-properties could be a list:

(bank-x-offset bank-y-offset bank-pitch-offset bank-midi-instrument)

This has less typing, but makes ordering important.  It also requires
non-standard accessor functions to get particular values, whereas the alist
can use standard LilyPond accessor functions (like chain-assoc-get).

The available banks would then be an alist of banks and bank-properties:
(define my-available-banks
'((bank1 . ((x-offset . x-offset1)
(y-offset . y-offset1)
(pitch-offset . pitch-offset1)
(midi-instrument . midi-instrument1)))
  (bank2 . ((x-offset . x-offset2)
(y-offset . y-offset2)
(pitch-offset . pitch-offset2)
(midi-instrument . midi-instrument2)))
  (bank3 . ((x-offset . x-offset3)
(y-offset . y-offset3)
(pitch-offset . pitch-offset3)
(midi-instrument . midi-instrument3)

And it's really straightforward to add an additional bank.


 
 For each dot, there will be a set of coordinates where to draw it on the
 accordion symbol, a default midi instrument and a default pitch
 adjustment: accordions have reed banks that are one octave off, but they
 also have reed banks that are only a few cents off-pitch, usually with a
 linear tuning curve (linear in cents/semitone, with the lower notes
 being more cents off and the higher less).
 
 So we want a default midi instrument per reed bank, with an optional
 fine-tuning (translated in pitch bend).
 
 Now to registers: a register is a combination of reed banks (and dots on
 the symbol).  A register has a name.  I don't think that cleverness is
 warranted for pulling apart register names like 101 or MM or
 whatever else: the combinations are few enough that it is fine not to
 pick apart those strings but just use them as identifier for one
 register each.

Here I'd have a register that's a list of the banks that apply:

(bank1 bank3 bank7)

accordion-registers would then be an alist that contains all of the
available registers:

(define my-accordion-registers
'((register1 . (bank1 bank3 bank7))
  (register2 . (bank2))
  (register3 . (bank4 bank6))
  (register4 . (bank 5

Again, it's really straightforward to add an additional register.

An accordion could be defined as an alist containing available banks and
available registers:

(define my-accordion
  '((available-banks . my-available-banks)
(available-registers . my-accordion-registers)))


One could either define a set of different accordions, each with the
appropriate banks and registers; or define a full set of accordion banks and
accordion registers that cover all possible accordions.

 
 Registers should have an override regarding the used midi instruments in
 order to adapt them to available patches.

I'm not sure what this means, so I can't really comment on it.
 
 Now there is an additional complication: if the lowest used reed bank is
 not at nominal pitch (namely either 16 or 4), notation and sound are
 not in accord.  It is common to write at pitch and affix an 8 or more
 wordy equivalent at the top or bottom (depending on whether to play one
 octave lower or higher than written) of the register symbol to indicate
 that one should play one octave higher/lower in order to get pitch.  If
 this octavation (in playing) is dissolved, there is loco at the next
 register symbol.
 
 So usually the register symbol should interact in some manner with
 \ottava specs.  Accordions are usually limited enough in range not to
 need ottava notation in addition to registration: the keyboard for piano
 accordions tends to go from f 

Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Carl Sorensen



On 10/26/09 3:09 PM, Graham Percival gra...@percival-music.ca wrote:

 On Mon, Oct 26, 2009 at 12:11:55PM -0600, Carl Sorensen wrote:
 
 On 10/23/09 5:52 PM, Ian Hulin i...@hulin.org.uk wrote:
 
 music-functions-init.ly adds three new functions
 * \bookOutputSuffix - to set the output suffix for the \book block
 * \bookOutputName - to set output filename for the current \book block
 * \bookOuptutNameRevert - to restore the the output filename to the value
 prior to that of the last \bookOuputName call.
 
 I think these functions should be named
 
 \setBookOutputSuffix
 \setBookOutputName
 \revertBookOutputName
 
 No!  Having \set vs. \setBlahBlah is a nightmare for newbies.
 Sorry, my brain is fried at the moment, so I have no alternative
 suggestions.

You're right, of course.

The problem is that Ian wants to really have a revert option (and we can't
use revert either, because of confusion with \revert).

How about

\useBookOuptutSuffix
\useBookOutputName
\usePreviousBookOutputName

or 

\bookOutputSuffix
\bookOutputName
\bookOutputNameUsePrevious  (I hate the english of this, but it sorts where
it belongs and it captures the intent).

Carl



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


Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Graham Percival
On Mon, Oct 26, 2009 at 03:53:55PM -0600, Carl Sorensen wrote:
 
 On 10/26/09 3:09 PM, Graham Percival gra...@percival-music.ca wrote:
 
  No!  Having \set vs. \setBlahBlah is a nightmare for newbies.
  Sorry, my brain is fried at the moment, so I have no alternative
  suggestions.
 
 The problem is that Ian wants to really have a revert option (and we can't
 use revert either, because of confusion with \revert).
 
 \bookOutputSuffix
 \bookOutputName
 \bookOutputNameUsePrevious  (I hate the english of this, but it sorts where
 it belongs and it captures the intent).

I like these.  And it fits with some proposals for GLISS, which
will start when GUB or the new website is finished.

Cheers,
- Graham


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


Re: [frogs] [PATCH]: Tracker 836 - Allow output filename and output-suffix to be specified for a \book block

2009-10-26 Thread Carl Sorensen



On 10/26/09 1:47 PM, Ian Hulin i...@hulin.org.uk wrote:

 Carl Sorensen wrote:
 
 
 On 10/23/09 5:52 PM, Ian Hulin i...@hulin.org.uk wrote:
 

 
 \bookOutputName and \bookOuptutNameRevert use the book-filename as a stack
 structure.  I have used this so we can we could eventually allow users to do
 stuff like the following (controlling the names used to open the midi files
 is
 not part of the current patch).
 \book {
 \bookOutputName My-Homeland
 \score {
\bookOutputName Vysehrad
   music-declarations ...
   \midi{
   % midi file gets written to Vysehrad.mid(i)
   }
   \layout{
   }
\bookOutputNameRevert
 }
 \score {
 \bookOuputName Vltava
 ...
 \midi {
 % midi file is written to Vltava.mid(i)
 }
 }
 .
 .
 . 
 
 This code doesn't demonstrate the need for \bookOutputNameRevert; the same
 thing would happen if the \bookOutputNameRevert were omitted, as far as I
 can tell.
 
 
 Consider this in one file Smetana.ly:
 
 ;;  Music for Má Vlast
 \book {
 \bookOutputName My-Homeland
 \score {
 \bookOutputName Vyšehrad
 ...
 }
 \score {
 \bookOutputName Vltava
 ...
 }
 %%   three more \score blocks setting the output name
 \score {
 \bookOutputName Blanik
 ...
 }
 }
 
 ;; Music for Bartered Bride Overure
 \book {
 % No \bookOutputName here
 % Until scoping for \book blocks is sorted out,
 % this block will get output to Blanik.pdf and Blanik.midi.
 \score {
 ...
 }
 }  
 

Yes, I understand the issues with (the lack of) scoping of bookOutputNames.

But where in this example would you put \bookOutputNameRevert (or
\bookOutputNameUsePrevious)?

If you put it after the the last score in My-Homeland,  then I guess it
would go to the default values again.

It seems to me the problem could easily be resolved here by just giving a
bookOutputName to Bartered Bride Overture (and if one is using
bookOutputName in some of the books, it seems reasonable to use it for all
of the books).  It also seems that one could just set it to  in order to
use the default, and there wouldn't be a need for a separate revert.

Also, following on with the discussion we had on the earlier message, if
every \book block initializes the bookOutputName to the default value, that
implements a scoping rule, IIUC.

HTH,

Carl



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


Re: [frogs] [PATCH] : Supply missing documentation strings in music-function-init.ly

2009-10-26 Thread Carl Sorensen
Neil already pushed it yesterday.

Thanks,

Carl


On 10/26/09 12:47 PM, Ian Hulin i...@hulin.org.uk wrote:

 Neil Puttock wrote:
 2009/10/25 Ian Hulin i...@hulin.org.uk:
 Thanks for the feedback, Neil.  Is this OK to push now?
 
 Sure is.
 
 Thanks,
 Neil
 Woo-hoo, green light! Could someone with the relevant privileges push
 this to the main git repository, please?
 
 Cheers,
 
 Ian



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