]> git.donarmstrong.com Git - lilypond.git/commitdiff
* ly/engraver-init.ly: use Hara kiri by default for
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 Mar 2003 20:06:57 +0000 (20:06 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 Mar 2003 20:06:57 +0000 (20:06 +0000)
ChordNames, FiguredBass and Lyrics(Voice) context.

* lily/axis-group-engraver.cc (acknowledge_grob): use
rhythmic-grob-interface for selecting items not to hara-kiri'd

* scm/new-markup.scm (markup-function-list): add bracket,
vbracket.

* ly/engraver-init.ly (ChordNamesContext): set
minimumVerticalExtent

ChangeLog
Documentation/user/refman.itely
input/regression/new-markup-syntax.ly
lily/axis-group-engraver.cc
lily/molecule-scheme.cc
ly/engraver-init.ly
scm/grob-description.scm
scm/interface-description.scm
scm/new-markup.scm
scripts/midi2ly.py

index b333e272b2888ff4d50905187f8887b34d7ecae7..3e070f3a3f372f6b84d0cd953fd8f166a28ddfdc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2003-03-06  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
+       * ly/engraver-init.ly: use Hara kiri by default for 
+       ChordNames, FiguredBass and Lyrics(Voice) context. 
+
+       * lily/axis-group-engraver.cc (acknowledge_grob): use
+       rhythmic-grob-interface for selecting items not to hara-kiri'd 
+
+       * scm/new-markup.scm (markup-function-list): add bracket,
+       vbracket.
+
        * ly/engraver-init.ly (ChordNamesContext): set
        minimumVerticalExtent
 
index 4c30a5982c0e900c747f2259922ff1a308db89e9..5a4a5e6d53de9925c5f01e643006c438851519a5 100644 (file)
@@ -1291,7 +1291,6 @@ the object property @code{auto-knee-gap}.
 @cindex beams, kneed
 @cindex kneed beams
 @cindex auto-knee-gap
-@cindex hara kiri
 
 
 @c TODO -> why this ref? Document? 
@@ -1299,6 +1298,8 @@ the object property @code{auto-knee-gap}.
 
 @refbugs
 
+@cindex hara kiri
+
 Auto knee beams can not be used together with hara kiri staves.
 
 [TODO from bugs]
@@ -4025,6 +4026,10 @@ example disappears in the second line.
 }
 @end lilypond
 
+For @internalsref{Lyrics}, @internalsref{LyricsVoice},
+@internalsref{ChordNames} and @internalsref{FiguredBass}, hara-kiri is
+switched on by default.
+
 
 @node Sound output for transposing instruments
 @subsection Sound output for transposing instruments
@@ -5036,6 +5041,9 @@ measured in (global) staff spaces.
 Other commands taking  single arguments include
 @table @code
 
+@item \bracket, \hbracket
+ Bracket the argument markup.
+
 @item \musicglyph
 @cindex \musicglyph
   This is converted to a musical symbol, e.g. @code{\musicglyph
@@ -5061,6 +5069,7 @@ This sets the relative font size, eg.
 A \fontsize #2 @{ B C @} D
 @end example
 
+
 This will enlarge the B and the C by two steps.
 @item  \translate #(cons @var{x} @var{y})
 @cindex  \translate
index 2c4c27955c93359bd3ad2f760f4e5616ca40e435..8045888fe22b39c8f5e89c1d00b1c78af3980ae5 100644 (file)
@@ -11,8 +11,10 @@ texidoc = "New markup syntax."
     \property Voice.TextScript \set #'molecule-callback = #brew-new-markup-molecule
     f'-\markup {
                foo
-               \raise #0.2 \bold bar
-               \override #'(baseline-skip . 4) \column << baz bazr bla >>
+               \raise #0.2 \hbracket \bold bar
+               \override #'(baseline-skip . 4)
+
+               \bracket \column << baz bazr bla >>
                \hspace #2.0
                \override #'(font-family . music) {
                        \lookup #"noteheads-0"
index 286d42477b85b79fca6c760df20641a28302a5f6..90d9cc086149fa77ffd30f9593f70f566e2af9de 100644 (file)
@@ -154,15 +154,15 @@ void
 Hara_kiri_engraver::acknowledge_grob (Grob_info i)
 {
   Axis_group_engraver::acknowledge_grob (i);
-  if (Rhythmic_head::has_interface (i.grob_)
-      || i.grob_->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface"))
-      )
+  if (i.grob_->internal_has_interface (ly_symbol2scm ("rhythmic-grob-interface")))
     {
       Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob_);
     }
 }
 
-Hara_kiri_engraver::Hara_kiri_engraver(){}
+Hara_kiri_engraver::Hara_kiri_engraver()
+{
+}
 
 ENTER_DESCRIPTION(Hara_kiri_engraver,
 /* descr */       "Like Axis_group_engraver, but make a hara kiri spanner, and add "
index be94c0d8b634da129c4aff34213b34861dc5b177..6a611efcd4014c04fba9553e652dc917041cbccb 100644 (file)
@@ -60,7 +60,7 @@ LY_DEFINE(ly_translate_molecule,"ly:molecule-translate", 2, 0, 0,
   return q.smobbed_copy();
 }
 
-LY_DEFINE(ly_get_molecule_extent,
+LY_DEFINE(ly_molecule_get_extent,
          "ly:molecule-get-extent", 2 , 0, 0,  (SCM mol, SCM axis),
          "Return a pair of numbers signifying the extent of @var{mol} in "
 "@var{axis} direction (0 or 1 for x and y axis respectively)."
index c56d271b6fe91c2b09971627d6f6043365c7cf6b..3a4c4d764c11eb7590b0185efcb595e443e6ceba 100644 (file)
@@ -239,6 +239,7 @@ InnerStaffGroupContext= \translator {
        \accepts "Lyrics"
        \accepts "ChordNames"
 }
+
 StaffGroupContext = \translator {
        \InnerStaffGroupContext
        \name StaffGroup
@@ -252,7 +253,7 @@ StaffGroupContext = \translator {
 % UGH! JUNKME
 LyricsVoiceContext= \translator{
        \type "Engraver_group_engraver"
-       \consistsend "Axis_group_engraver"
+       \consistsend "Hara_kiri_engraver"
        minimumVerticalExtent = #'(-1.2 . 1.2)
        extraVerticalExtent = ##f
        verticalExtent = ##f 
@@ -287,7 +288,7 @@ LyricsContext = \translator {
        %% To get folded repeats right.
        \consists Vertical_align_engraver 
 
-       \consistsend "Axis_group_engraver"
+       \consistsend "Hara_kiri_engraver"
        minimumVerticalExtent = ##f
        extraVerticalExtent = ##f
        verticalExtent = ##f 
@@ -305,23 +306,13 @@ ChordNamesContext = \translator {
        \consists "Separating_line_group_engraver"
        \consists "New_chord_name_engraver"
        \consists "Skip_req_swallow_translator"
-       \consistsend "Axis_group_engraver"
+       \consistsend "Hara_kiri_engraver"
        minimumVerticalExtent = #'(0 . 2.5)
        extraVerticalExtent = ##f
        verticalExtent = ##f 
 }
 
 
-
-StupidScore = \translator {
-       \type "Score_engraver"
-       \name Score
-       \consists "Note_heads_engraver"
-}
-
-
-
-
 HaraKiriStaffContext = \translator {
        \StaffContext
        \remove "Axis_group_engraver"
@@ -483,10 +474,9 @@ FiguredBassContext = \translator {
        \consists "Figured_bass_engraver"
        \consists "Rest_swallow_translator"
        \consists "Note_swallow_translator"
-       \consistsend "Axis_group_engraver"
+       \consistsend "Hara_kiri_engraver"
 }
 
-
 TabVoiceContext =   \translator {
       \VoiceContext
       \name "TabVoice"
@@ -527,7 +517,5 @@ TabStaffContext = \translator {
       % Special "TAB" clef
       clefGlyph = #"clefs-tab"
       clefPosition = #0
-      
-
 }
    
index 8501bed6efec8f212b88a8a1784c8663dccf93b2..61be7083c4dcc4049f81a0d6a80b57c9156e41fa 100644 (file)
        (padding . 0.1)
        (kern . 0.2)
        (thickness . 1.0)
-       (meta . ((interfaces . (text-interface bass-figure-interface item-interface self-alignment-interface font-interface))))
+       (meta . ((interfaces . (text-interface                                                  rhythmic-grob-interface
+                                                                                               bass-figure-interface item-interface
+                                                                                               self-alignment-interface font-interface))))
        ))
     (Beam
      . (
        (after-line-breaking-callback . ,Chord_name::after_line_breaking)
        (word-space . 1.0)
        (font-family . roman)
-       (meta . ((interfaces . (font-interface text-interface chord-name-interface item-interface ))))
+       (meta . ((interfaces . (font-interface                                                  rhythmic-grob-interface
+                                                                                               text-interface chord-name-interface item-interface ))))
        ))
 
     (Custos
        (style . default)
        (glyph-name-procedure . ,find-notehead-symbol)
        (meta . ((interfaces . (ligature-head-interface rhythmic-head-interface
+                                                       rhythmic-grob-interface
                                                        font-interface
                                                        note-head-interface staff-symbol-referencer-interface))))
        ))
        (font-shape . upright)
        
        ;; duh, side-position-interface?
-       (meta . ((interfaces . (lyric-syllable-interface self-alignment-interface text-interface font-interface item-interface ))))
+       (meta . ((interfaces . (rhythmic-grob-interface lyric-syllable-interface self-alignment-interface text-interface font-interface item-interface ))))
        ))
 
     (MensuralLigature
        (glyph-name-procedure . ,find-notehead-symbol)
        (Y-offset-callbacks  . (,Staff_symbol_referencer::callback))
        (stem-attachment-function . ,note-head-style->attachment-coordinates)
-       (meta . ((interfaces . (rhythmic-head-interface font-interface note-head-interface staff-symbol-referencer-interface item-interface ))))
+       (meta . ((interfaces . (rhythmic-grob-interface rhythmic-head-interface font-interface note-head-interface staff-symbol-referencer-interface item-interface ))))
        ))
 
     (Glissando
        (meta . (
                 (interfaces . (font-interface
                                rhythmic-head-interface
+                                                                                       rhythmic-grob-interface
+
                                staff-symbol-referencer-interface
                                rest-interface item-interface ))
                ))))
index 67dad51a1d21fa4eb78a44344bcda50742a48634..8294fab6ec0fae794dbbaa0b25f459e253aa30d5 100644 (file)
  '()
  )
 
+(ly:add-interface
+ 'rhythmic-grob-interface
+ "Any object with a rhythmic basis. Used to determine which grobs 
+are interesting enough to maintain a hara-kiri staff."
+ '()
+ )
+
 (ly:add-interface
  'ligature-interface
  "A ligature"
@@ -36,7 +43,6 @@
  "A bracket indicating a ligature in the original edition"
  '(width thickness height ligature-primitive-callback))
 
-
 (ly:add-interface
  'mark-interface
  "a rehearsal mark"
index dea79e240459afa3c498192c9dead10a8332b8eb..7afe63a25a4bb349e5746ea257d770c52aba97f8 100644 (file)
@@ -223,6 +223,26 @@ for the reader.
                              Y)
   )
 
+(define-public (hbracket-markup grob props . rest)
+  (let*
+      (
+       (th 0.1) ;; todo: take from GROB.
+       (m (interpret-markup grob props (car rest)))
+       )
+
+    (bracketify-molecule m X th (* 2.5 th) th)  
+))
+
+(define-public (bracket-markup grob props . rest)
+  (let*
+      (
+       (th 0.1) ;; todo: take from GROB.
+       (m (interpret-markup grob props (car rest)))
+       )
+
+    (bracketify-molecule m Y th (* 2.5 th) th)  
+))
+
 
 ;; todo: fix negative space
 (define (hspace-markup grob props . rest)
@@ -405,7 +425,8 @@ for the reader.
    (cons italic-markup (list markup?))
    (cons roman-markup (list markup?))
    (cons number-markup (list markup?))
-   
+   (cons hbracket-markup  (list markup?))
+   (cons bracket-markup  (list markup?))
    
    (cons column-markup (list markup-list?))
    (cons center-markup (list markup-list?))
index aab73dde087f4f10e50042b0f0b882812876fe08..7a6c4988ba14922fb9a2a77403076c46bbc10990 100644 (file)
@@ -447,9 +447,9 @@ class Note:
                        s = s + "," * -commas
 
                ## FIXME: compile fix --jcn
-               if (dump_dur and explicit_durations_p) \
+               if dump_dur and (explicit_durations_p \
                   or Duration.compare (self.duration,
-                                       reference_note.duration):
+                                       reference_note.duration)):
                        s = s + self.duration.dump ()
 
                reference_note = self