]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.5.6
authorfred <fred>
Wed, 27 Mar 2002 01:20:50 +0000 (01:20 +0000)
committerfred <fred>
Wed, 27 Mar 2002 01:20:50 +0000 (01:20 +0000)
30 files changed:
Documentation/index.texi
buildscripts/lys-to-tely.py [new file with mode: 0644]
input/bugs/GNUmakefile
input/bugs/README [new file with mode: 0644]
input/no-notation/GNUmakefile
input/no-notation/README [new file with mode: 0644]
input/no-notation/denneboom.ly [new file with mode: 0644]
input/no-notation/die-staff.ly [new file with mode: 0644]
input/no-notation/pc-direction.ly [new file with mode: 0644]
input/no-notation/textcresc.ly [new file with mode: 0644]
input/regression/abe.ly [new file with mode: 0644]
input/regression/auto-beam-tuplets.ly [new file with mode: 0644]
input/regression/beamed-chord.ly [new file with mode: 0644]
input/regression/grace-dynamic.ly [new file with mode: 0644]
input/regression/grace-staff-length.ly [new file with mode: 0644]
input/regression/grace-stems.ly [new file with mode: 0644]
input/regression/hinterfleisch-gone.ly [new file with mode: 0644]
input/regression/markup-stack.ly [new file with mode: 0644]
input/regression/pc-mmrest.ly [new file with mode: 0644]
input/regression/pc-switch-slur.ly [new file with mode: 0644]
input/regression/slur-dots.ly [new file with mode: 0644]
input/regression/spacing-very-tight.ly [new file with mode: 0644]
input/regression/text-spanner.ly [new file with mode: 0644]
input/regression/tie-break-accidental.ly [new file with mode: 0644]
input/test/beam-stem-test.ly [new file with mode: 0644]
make/lilypond-vars.make
make/ly-rules.make
make/lysdoc-rules.make [new file with mode: 0644]
make/lysdoc-targets.make [new file with mode: 0644]
make/lysdoc-vars.make [new file with mode: 0644]

index d67c4ef2fdaf14c6386ee243185db3cfbeef995b..3a78e88b820b3b8d9391f84afe36525201ffc52b 100644 (file)
@@ -116,9 +116,12 @@ want to fine-tune output, you need the information in this document.
 @c Jan's site?
 
 @itemize @bullet
-@item @uref{../out-www/regression-test.html,regression-test}
-A large document that tests all kinds of features (in
+@item @uref{../out-www/regression-test.html,Regression Test}
+A large document that tests all kinds of features (also as
 @uref{../out-www/regression-test.ps.gz,Postscript}).
+@item @uref{../../input/bugs/out-www/bugs.html,Bugs}
+A document that shows bugs (also as
+@uref{../../input/bugs/out-www/bugs.ps.gz,Postscript}).
 @item
 @uref{http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=lilypond">Translations,lilypond
 textual domain
diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py
new file mode 100644 (file)
index 0000000..eac9293
--- /dev/null
@@ -0,0 +1,79 @@
+#!@PYTHON@
+
+import sys
+import os
+import string 
+import getopt
+
+program_name = 'lys-to-tely'
+
+def help ():
+       sys.stdout.write (r"""Usage: lys-to-tely [OPTION]... LY-FILE...
+Construct tely doc from LY-FILEs.
+
+Options:
+  -h, --help                print this help
+  -o,output=NAME            write tely doc to NAME
+  -t,title=TITLE            set tely tely doc title TITLE
+""")
+       sys.exit (0)
+
+(options, files) = getopt.getopt(sys.argv[1:], 'hn:t:', [
+       'help', 'name=', 'title='])
+
+name="ly-doc"
+title="Ly Doc"
+for opt in options:
+       o = opt[0]
+       a = opt[1]
+       if o == '-h' or o == '--help':
+               help ()
+       elif o == '-n' or o == '--name':
+               name = a
+       elif o == '-t' or o == '--title':
+               title = a
+       else:
+               raise 'unknown opt ', o
+
+def strip_extension (f, ext):
+       (p, e) = os.path.splitext (f)
+       if e == ext:
+               e = ''
+       return p + e
+
+if files:
+       dir = os.path.dirname (name)
+       if not dir:
+               dir = "."
+       name = strip_extension (os.path.basename (name), ".tely")
+
+       s = '''\input texinfo
+@setfilename %s.info
+@settitle %s
+
+@c fool ls-latex
+@ignore
+@author Han-Wen Nienhuys and Jan Nieuwenhuizen
+@title %s
+@end ignore
+
+@node Top, , , (dir)
+''' % (name, title, title)
+
+       def name2line (n):
+               # UGR
+               if string.find (n, '+') >= 0:
+                       s = "@lilypondfile{%s}" % n
+               else:
+                       s = "@lilypondfile[printfilename]{%s}" % n
+               return s
+
+       s = s + string.join (map (lambda x: name2line (x), files), "\n")
+       s = s + '\n@bye\n'
+       f = "%s/%s.tely" % (dir, name)
+       sys.stderr.write ("%s: writing %s..." % (program_name, f))
+       h = open (f, "w")
+       h.write (s)
+       h.close ()
+       sys.stderr.write ('\n')
+       
index 9c2b9f48fe6809a4c3508352db43adcc6be54aa7..51c90c814c3e565f0034eeafe5df1bf80fa4823b 100644 (file)
@@ -1,8 +1,9 @@
-# input/bugs/Makefile
-
 depth = ../..
 
-LOCALSTEPMAKE_TEMPLATES=ly mutopia
-include $(depth)/make/stepmake.make 
+STEPMAKE_TEMPLATES=documentation texinfo tex
+LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
+EXTRA_DIST_FILES=README
 
+include $(depth)/make/stepmake.make 
 
+TITLE=Assorted Possible Bugs
diff --git a/input/bugs/README b/input/bugs/README
new file mode 100644 (file)
index 0000000..2865bdf
--- /dev/null
@@ -0,0 +1,7 @@
+This directory holds a collection of examples that show all simple
+notation bugs known to exist in LilyPond.
+
+Bugs that make lilypond crash, or don't generate notation should go in
+
+   input/no-notation
+
index 9c2b9f48fe6809a4c3508352db43adcc6be54aa7..7bdc0ec4401250a3ea82b9088accc80d28579713 100644 (file)
@@ -1,8 +1,8 @@
-# input/bugs/Makefile
-
 depth = ../..
 
+EXTRA_DIST_FILES=README
 LOCALSTEPMAKE_TEMPLATES=ly mutopia
+
 include $(depth)/make/stepmake.make 
 
 
diff --git a/input/no-notation/README b/input/no-notation/README
new file mode 100644 (file)
index 0000000..357b673
--- /dev/null
@@ -0,0 +1,7 @@
+These examples make lilypond crash or exit prematurely.
+
+Some are bugs that should be fixed to generate output, andd then
+moved to ../bugs or ../regression.
+
+Some (notably parse*.ly) are just error/warning generation tests
+and should remain here.
\ No newline at end of file
diff --git a/input/no-notation/denneboom.ly b/input/no-notation/denneboom.ly
new file mode 100644 (file)
index 0000000..9b72cf4
--- /dev/null
@@ -0,0 +1,116 @@
+\version "1.3.148"
+\header{
+filename =      "denneboom.ly"
+enteredby =     "jcn"
+copyright =     "public domain"
+}
+%{ file tests silly line shapes %}
+
+\include "paper20.ly"
+
+
+
+oden = \lyrics{ 
+       O |
+       den- ne- boom, o | 
+       den- ne- boom  Wat |
+       zijn uw tak- ken | 
+       won- der- schoon 
+}
+
+ikheb = \lyrics{
+       Ik | 
+       heb u laatst in_'t |
+       bos zien staan  toen |
+       zat- en er geen |
+       kaars- jes aan 
+}
+
+ugloeit = \lyrics{
+       U |
+       gloeit in bar- re | 
+       win- ter- tijd, als |
+       sneeuw op aar- de | 
+       licht ge- spreid 
+}
+
+oboom = \notes\transpose c''{
+       g,8 |
+       c8. c16 c4. d8 | 
+       e8. e16 e4. e8 | 
+       d  e f4 b, | 
+       d8. c16 c4 r8
+}
+
+bos = \notes\transpose c''{
+       g8 | 
+       g e a4. g8 | 
+       g8. f16 f4 r8 f8 |
+       f d g4. f8 | 
+       f8. e16 e4 r8
+}
+
+
+melody = \notes{
+       \oboom
+       \oboom
+       \bos
+       \oboom
+}
+
+
+verseOne = \notes{
+       \oden
+       \oden
+       \ikheb
+       \oden
+}
+
+verseOneStaff = \context Lyrics = one 
+       \verseOne
+
+
+verseTwo = \notes{
+       \oden
+       \oden
+       \ugloeit
+       \oden
+}
+
+verseTwoStaff = \context Lyrics = two 
+       \verseTwo
+
+
+denneboomShape = \paper{ 
+       \paperTwenty
+       indent = 20. \mm
+
+       % UGH -- THIS IS HAIRY 
+       #'margin-shape = #(map
+               (lambda (x) (cons-map mm-to-pt x)) 
+               '((70.0 .  20.)
+                (65.0 .  30.0)
+                (57.5  .  45.0)
+                (50.0 .  60.0) 
+                (42.5  .  75.)  
+                (35.0 .  90.)
+                (27.5  .  105.)
+                (20.0 .  120.0)
+                (10.0 .  140.0) 
+                (65.0 .  30.0))
+       )
+
+       gourlay_maxmeasures = 30.
+       arithmetic_basicspace = 3.8
+       arithmetic_multiplier = 8.\pt
+}
+
+\score{
+       \addlyrics
+               \context Staff { \time 3/4 \melody }
+               \context Lyrics \verseOne
+       \paper{ 
+               \denneboomShape 
+       }
+       \midi{ \tempo 4 = 90 }
+}
diff --git a/input/no-notation/die-staff.ly b/input/no-notation/die-staff.ly
new file mode 100644 (file)
index 0000000..1f3b941
--- /dev/null
@@ -0,0 +1,23 @@
+\version "1.3.148"
+
+\header  {
+texidoc = "a staff should really die, if no one's referencing it."
+}
+\score {
+ {
+    \context Staff = q {
+      \notes { a' b' c' d' }
+    }
+
+    \break
+
+    \context PianoStaff <
+      \context Staff = i {
+        \notes { a' b' c' d' }
+      }
+      \context Staff = ii {
+        \notes { \clef "bass" a b c d }
+      }
+    >
+  }
+}
diff --git a/input/no-notation/pc-direction.ly b/input/no-notation/pc-direction.ly
new file mode 100644 (file)
index 0000000..ead2769
--- /dev/null
@@ -0,0 +1,140 @@
+\version "1.3.148"
+
+% move to regtest once it works?
+
+
+% still not workign ? --hwn.
+
+\header {
+texidoc = "
+On their own staff, staffcombined voices should be stemboth (not up/down)
+while voicecombined threads should get their direction set (up/down)
+
+"
+}
+
+
+End = { \skip 1*8 }
+
+violaI = \notes\relative c'' {
+  c c e4. e8
+}
+violaII = \notes\relative c'' {
+  c4 b a a
+}
+
+
+violoncello = \notes\relative c' {
+   c8 c c c    c8 c c c\break
+   a1
+}
+
+contrabasso = \notes\relative c {
+   a4 a8 a   a8 a a a\break
+   a1
+}
+
+violeStaff = \notes \context Staff = viole <
+ \context Voice=oneViole <
+               \property Staff.instrument = #"Viola"
+               \property Staff.instr = #"Vla."
+
+ \End
+ >
+ \context Voice=twoViole <
+               \property Staff.instrument = #"Viola II"
+               \property Staff.instr = #"Vla. II"
+ \End
+ >
+  \context Voice=oneViole \partcombine Voice
+    \context Thread=oneViole \violaI
+    \context Thread=twoViole \violaII
+>
+
+staffCombinePianoStaffProperties = {
+       \property PianoStaff.devNullThread = #'()
+       \property PianoStaff.soloADue = ##t
+       \property PianoStaff.soloText = #""
+       \property PianoStaff.soloIIText = #""
+       % This is non-conventional, but currently it is
+       % the only way to tell the difference.
+       \property PianoStaff.aDueText = #"\\`a2"
+       \property PianoStaff.splitInterval = #'(1 . 0)
+       \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+       \property PianoStaff.noDirection = ##t
+}
+
+
+\score {
+  <
+  \context StaffGroup <
+   \violeStaff
+
+  \context PianoStaff = bassi_group \notes <
+    \staffCombinePianoStaffProperties
+    \context Staff=oneBassi < \clef bass
+               \property Staff.instrument = #'(lines
+                 "Violoncello" "    e" "Contrabasso")
+
+               \property Staff.instr = #"Vc."
+               \End >
+    \context Staff=twoBassi < \clef bass
+               \property Staff.instrument = #"Contrabasso"
+               \property Staff.instr = #"Cb."
+
+    \End >
+  
+    \context Staff=oneBassi \partcombine Staff
+      \context Voice=oneBassi { \violoncello }
+      \context Voice=twoBassi { \contrabasso }
+ >
+>
+ >
+  \paper {
+    % \paperSixteen
+    linewidth = 80 * \staffspace
+    textheight = 200 * \staffspace
+    \translator{
+      \ThreadContext
+      \consists "Rest_engraver"
+      
+      % Set value for engraver at thread level,
+      % to override the default that is set in ScoreContext
+      % for added engraver at Voice level
+      devNullThread = #'()
+    }
+    \translator{
+      \VoiceContext
+      \remove "Rest_engraver"    
+
+      % The staff combine (bassi part) needs a
+      % thread_devnull_engraver here.
+      % Instead of maintaining two separate hierarchies,
+      % we switch add it, but switch it off immideately.
+      % The staff combine parts switch it on.
+      % devNullThread = #'never
+      \consists "Thread_devnull_engraver"
+    }
+    \translator{
+      \HaraKiriStaffContext
+      \consists "Mark_engraver"
+    }
+    \translator {
+      \OrchestralScoreContext
+      skipBars = ##t
+      soloText = #"I."
+      soloIIText = #"II."
+      % By default, turn off the Thread_devnull_engraver
+      % at Voice level
+      devNullThread = #'never
+
+      % Hmm
+      currentBarNumber = #218
+      BarNumber \override #'padding = #3
+      RestCollision \override #'maximum-rest-count = #1
+      marginScriptHorizontalAlignment = #1
+      TimeSignature \override #'style = #'C
+    }
+  }
+}
+
diff --git a/input/no-notation/textcresc.ly b/input/no-notation/textcresc.ly
new file mode 100644 (file)
index 0000000..533877f
--- /dev/null
@@ -0,0 +1,15 @@
+\version "1.3.148"
+\header{
+texidoc="crashes lily"
+}
+
+\score { \notes {
+  \context Voice {
+    \property Voice.crescendoText = "cresc."
+    \property Voice.crescendoSpanner = #'dashed-line
+    c2. r8 c8 \< \break \! c1
+  }
+}
+\paper { linewidth = 5.\cm}
+}
+
diff --git a/input/regression/abe.ly b/input/regression/abe.ly
new file mode 100644 (file)
index 0000000..5da6abc
--- /dev/null
@@ -0,0 +1,23 @@
+\header {
+texidoc="Automatic beamer behaves nicely."
+}
+\version "1.3.148"
+
+
+% Generated by mudela-book.py options are 
+\include "paper16.ly"
+\paper  { linewidth = 390.000000 \pt } 
+
+\score {
+  \notes \relative c'' {
+    a\longa a\breve  
+    a1 a2 a4 a8 a16 a32 a64 a64 
+  }
+  \paper {
+    \translator {
+      \StaffContext
+       \remove "Clef_engraver"
+       \remove "Staff_symbol_engraver"
+    }
+  }
+}
diff --git a/input/regression/auto-beam-tuplets.ly b/input/regression/auto-beam-tuplets.ly
new file mode 100644 (file)
index 0000000..f70c00f
--- /dev/null
@@ -0,0 +1,14 @@
+\version "1.3.148"
+
+\header {
+texidoc = "Tuplet-spanner should not put (visible) brackets on
+beams even if they're auto generated."
+}
+
+\score { \notes \relative c' {
+  \property Voice.tupletSpannerDuration = #(make-moment 1 4)
+  \property Voice.TupletBracket \override #'tuplet-bracket-visibility = #'if-no-beam
+  \times 2/3 {
+       [f8 f f ][f8 f f ] f f f f f f 
+ }
+}}
diff --git a/input/regression/beamed-chord.ly b/input/regression/beamed-chord.ly
new file mode 100644 (file)
index 0000000..f1836d2
--- /dev/null
@@ -0,0 +1,17 @@
+\version "1.3.148"
+
+\header{
+texidoc = "Hairy case for beam, chord, and automatic knees."
+
+%texidoc = "Beam thinks that first two notes should be stem down.  Can
+%be fixed by uncommenting \stemUp"
+}
+
+\score{
+  \notes\relative c'{
+    %\stemUp
+    \clef alto
+    \time 3/4
+    r8 <d ( bes > ) bes' d <e-> g, c, c,> r |
+  }
+}
diff --git a/input/regression/grace-dynamic.ly b/input/regression/grace-dynamic.ly
new file mode 100644 (file)
index 0000000..37d9c89
--- /dev/null
@@ -0,0 +1,8 @@
+\version "1.3.148"
+\header{
+ % ?
+% niet zo onschuldig!  je hebt graces gefixt in 1.5, zie maar eens 1.3.150
+texidoc="Dynamics on grace notes are small and behave nicely (don't crash into to main note)."
+}
+ \score { \notes \context Voice {\grace {c'_\f} d e f g}}
diff --git a/input/regression/grace-staff-length.ly b/input/regression/grace-staff-length.ly
new file mode 100644 (file)
index 0000000..548afba
--- /dev/null
@@ -0,0 +1,20 @@
+\version "1.3.148"
+\header{
+texidoc = "Stripped version of trip.ly.  Staffs should be of correct length."
+}
+\score{
+  \context PianoStaff \notes <
+    \context Staff = treble {
+       r1
+       r1
+       \bar "|."
+    }
+    \context Staff = bass {
+      r1
+      \context Staff {
+       \grace { c16 } c1
+      }
+    }
+  > 
+  \paper { }
+}
diff --git a/input/regression/grace-stems.ly b/input/regression/grace-stems.ly
new file mode 100644 (file)
index 0000000..6b401ff
--- /dev/null
@@ -0,0 +1,24 @@
+\version "1.3.148"
+\header{
+texidoc = "startGraceMusic should no-stem-extend to true;
+the two grace beams should be the same here.
+"
+}
+
+
+\score { 
+  \context Voice \notes\relative c {
+    \grace { 
+      [f8 e8] 
+      \property Voice.Stem \override #'no-stem-extend = ##t
+      [f8 e8] 
+      \property Voice.Stem \revert #'no-stem-extend
+    }
+    a4
+       
+  }
+  \paper {
+    linewidth=-1.0
+  }  
+  \midi { }
+}
diff --git a/input/regression/hinterfleisch-gone.ly b/input/regression/hinterfleisch-gone.ly
new file mode 100644 (file)
index 0000000..e24bbee
--- /dev/null
@@ -0,0 +1,16 @@
+\version "1.3.148"
+\header {
+texidoc="The first and last notes of a measure should be spaced nicely."
+}
+% jij had zoon mooi tight spacing example,
+% kan zo'n harde space ook niet voor en na maatstreep!
+\score {
+       \notes \relative c'' {
+       \time 2/4
+       \property Voice.noAutoBeaming=##t
+       a4 a8
+       a32 a a a
+}
+%%set bit wide
+\paper {linewidth = 100.\mm}
+}
diff --git a/input/regression/markup-stack.ly b/input/regression/markup-stack.ly
new file mode 100644 (file)
index 0000000..cee7ebe
--- /dev/null
@@ -0,0 +1,5 @@
+\version "1.3.148"
+\header {texidoc="Stacking of markup scripts."}
+\paper { linewidth=-1. }
+\score { \notes { c^#`(columns "" (lines "1" (bold "2") "3"))}}
+
diff --git a/input/regression/pc-mmrest.ly b/input/regression/pc-mmrest.ly
new file mode 100644 (file)
index 0000000..6dc4bbf
--- /dev/null
@@ -0,0 +1,59 @@
+\version "1.3.148"
+\header {
+texidoc="Multi measure rests of second voice should not disappear."
+}
+
+
+#(set! point-and-click line-column-location)
+one = \notes\relative c'' {
+
+       f4 \!e-.\f r2|
+       R1|
+       f2\p()es|
+       \property Voice.crescendoText = #'(lines " " "cresc." " ")
+       \property Voice.crescendoSpanner = #'dashed-line
+       d1\<|
+       d1|
+       d2 d2|
+       d2 d2|
+       \!f1\ff  |
+       f1
+}
+
+two = \notes \relative c'' {
+       r4 c r2|
+       R1*6|
+       c1 ~|
+       c1
+}
+       
+\score {
+  \notes <
+    \context Staff = Viole <
+       \context Voice=one \partcombine Voice
+               \context Thread=one \one
+               \context Thread=two \two
+    > ~
+  >
+  \paper {
+    \translator {
+      \ThreadContext
+      \consists "Rest_engraver"
+    }
+    \translator {
+      \VoiceContext
+      \remove "Rest_engraver"
+      \consists Multi_measure_rest_engraver
+      \consists Bar_engraver
+    }
+    \translator {
+      \HaraKiriStaffContext
+      \remove Multi_measure_rest_engraver
+      \remove Bar_engraver
+    }
+    \translator {
+      \OrchestralScoreContext
+      RestCollision \override #'maximum-rest-count = #1
+    }
+  }
+}
\ No newline at end of file
diff --git a/input/regression/pc-switch-slur.ly b/input/regression/pc-switch-slur.ly
new file mode 100644 (file)
index 0000000..39e6ac4
--- /dev/null
@@ -0,0 +1,26 @@
+\version "1.3.148"
+\header{
+texidoc="The partcombiner should not combine two small slurs into a big one."
+}
+
+\score{
+       \context Staff <
+               \context Voice=one\skip 1
+               \context Voice=two\skip 1
+               \context Voice=one \partcombine Voice
+                       \context Thread=one \notes\relative c'' {
+                               c4( c b )a 
+                               a( b c )d
+                       }
+                       \context Thread=two \notes\relative c'' {
+                               a4( c b )a
+                               a( b c )a
+                               
+                       }
+       >
+       \paper{
+               linewidth=140.\mm
+       }
+}
+
+
diff --git a/input/regression/slur-dots.ly b/input/regression/slur-dots.ly
new file mode 100644 (file)
index 0000000..adc652e
--- /dev/null
@@ -0,0 +1,13 @@
+\version "1.3.148"
+\header{
+texidoc="Slurs should not get confused by augmentation dots.  We use a lot
+of dots here, to make problems more visible."
+}
+\score {
+  \notes\relative c'' {
+    c4.............()c
+  }
+  \paper {
+    linewidth = -1.
+  }
+} 
diff --git a/input/regression/spacing-very-tight.ly b/input/regression/spacing-very-tight.ly
new file mode 100644 (file)
index 0000000..b6fdb49
--- /dev/null
@@ -0,0 +1,17 @@
+\version "1.3.148"
+\header {
+ When tightly spaced, hinterfleisch -> 0.
+ Stems may touch the bar lines, opposite stems may touch eachother.
+ We need a mininum of about a note-width/interline space in these
+ situations, so that in tightly spaced music all vertical lines
+ are about equally spaced.
+}
+\score {
+       \notes \relative c''{ 
+               r1 e4 f, e' f,
+       }
+       \paper { 
+               linewidth = 25.0 \mm
+               indent = 0.0\mm
+       }
+}
diff --git a/input/regression/text-spanner.ly b/input/regression/text-spanner.ly
new file mode 100644 (file)
index 0000000..e4b875e
--- /dev/null
@@ -0,0 +1,15 @@
+\version "1.3.148"
+
+% text spanners should not repeat start text when broken
+
+\score {
+  \notes \relative c'' {
+    \property Voice.crescendoText = #"cresc."
+    \property Voice.crescendoSpanner = #'dashed-line
+    c1\< c \break
+    c1 \!c \break
+    }
+  \paper {
+    linewidth = 40*\staffspace
+  }
+}
diff --git a/input/regression/tie-break-accidental.ly b/input/regression/tie-break-accidental.ly
new file mode 100644 (file)
index 0000000..b89660d
--- /dev/null
@@ -0,0 +1,19 @@
+\version "1.3.148"
+
+\header {
+texidoc = "First and second bes (tied across line break)
+should get an accidental, but others should not.
+Only first B should get natural sign."
+}
+
+\score {
+  \notes {
+    bes1 ~ | \break
+    bes2 ~ bes4 ~ bes4 ~ | bes1
+    \key  f\major
+    bes1 ~|bes2 b ~|b ~ b ~|b1
+  }
+  \paper {
+    linewidth = 40*\staffspace
+  }
+}
diff --git a/input/test/beam-stem-test.ly b/input/test/beam-stem-test.ly
new file mode 100644 (file)
index 0000000..639bc51
--- /dev/null
@@ -0,0 +1,16 @@
+\version "1.3.148"
+\header {
+  texidoc="Beam-stem attachment test.  Helper file for ps/dvips problems."
+}
+       
+\score {
+  \context RhythmicStaff \notes {
+    \stemUp [c8 c]
+    \stemDown [c8 c]
+    \stemUp [c8. c16]
+  }
+  \paper {
+    linewidth = -1.0
+    magnification = 64
+  }
+}
\ No newline at end of file
index 1634bdbcf0388f00a6a45dbfc21df9ee92019374..55162760aafbf91b374b52b41536e7905c0b5674 100644 (file)
@@ -30,6 +30,7 @@ LILYPOND = $(depth)/$(builddir)/lily/$(outconfbase)/lilypond
 LILYPOND_BOOK = $(script-dir)/lilypond-book.py
 LILYPOND_BOOK_INCLUDES = -I $(pwd) -I $(outdir) -I$(input-dir) -I $(input-dir)/tricks/ -I $(input-dir)/regression/ -I $(input-dir)/test/ -I $(input-dir)/tutorial/
 LY2DVI = $(script-dir)/ly2dvi.py
+LYS_TO_TELY = $(buildscript-dir)/lys-to-tely.py
 PS_TO_GIFS = $(buildscript-dir)/ps-to-gifs.sh
 PS_TO_PNGS = $(buildscript-dir)/ps-to-pngs.sh
 
@@ -43,6 +44,7 @@ LILYPOND = $(shell $(SHELL) -c 'type -p lilypond')
 LILYPOND_BOOK = $(shell $(SHELL) -c 'type -p lilypond-book')
 LILYPOND_BOOK_INCLUDES = -I. -I.. -I$(outdir)
 LY2DVI = $(shell $(SHELL) -c 'type -p ly2dvi')
+LYS_TO_TELY = $(shell $(SHELL) -c 'type -p lys-to-tely')
 PS_TO_GIFS = $(shell $(SHELL) -c 'type -p ps-to-gifs')
 PS_TO_PNGS = $(shell $(SHELL) -c 'type -p ps-to-pngs')
 
index 4c238e1fb6e75e0387676010adbed166cec9c49b..81cb51cb6d6edd4fa4a65941ec30aed92f301f47 100644 (file)
@@ -5,7 +5,6 @@
 
 $(outdir)/%.latex: %.doc
        rm -f $@
-#      LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) $<
        $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) $<
        chmod -w $@
 
@@ -13,15 +12,19 @@ $(outdir)/%.latex: %.doc
 # it is not, for --srcdir builds
 $(outdir)/%.texi: %.tely
        rm -f $@
-#      LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $<
        $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $<
        chmod -w $@
 
+$(outdir)/%.texi: $(outdir)/%.tely
+       rm -f $@
+       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $<
+       rm -f $<
+       chmod -w $@
+
 # nexi: no-lily texi
 # for plain info doco: don't run lily
 $(outdir)/%.nexi: %.tely
        rm -f $@
-#      LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi --no-lily $<
        $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi --no-lily $<
        mv $(@D)/$(*F).texi $@
        chmod -w $@
diff --git a/make/lysdoc-rules.make b/make/lysdoc-rules.make
new file mode 100644 (file)
index 0000000..5c77bbd
--- /dev/null
@@ -0,0 +1,3 @@
+
+$(outdir)/$(NAME).tely: $(LY_FILES)
+       $(PYTHON) ../../buildscripts/lys-to-tely.py --name=$(outdir)/$(NAME) --title="$(TITLE)" $(LY_FILES)
\ No newline at end of file
diff --git a/make/lysdoc-targets.make b/make/lysdoc-targets.make
new file mode 100644 (file)
index 0000000..51d4aac
--- /dev/null
@@ -0,0 +1,2 @@
+
+local-WWW: $(outdir)/$(NAME).html
\ No newline at end of file
diff --git a/make/lysdoc-vars.make b/make/lysdoc-vars.make
new file mode 100644 (file)
index 0000000..b314383
--- /dev/null
@@ -0,0 +1,4 @@
+TITLE=LYs Doc
+LY_FILES = $(wildcard *.ly)
+NAME=$(notdir $(pwd))
+