*-systems.tex
*-midi.ly
a.out
+.dotest
@end lilypond
-@item @code{a\< a \!a}
+@item @code{a\< a a\!}
@tab crescendo
@tab
@lilypond[fragment,relative=2]
\set Score.timing = ##f
\override Staff.TimeSignature #'break-visibility = #all-invisible
\set Staff.autoBeaming = ##f
-a\< a \!a
+a\< a a\!
@end lilypond
@item @code{a\> a a\!}
@item @code{\lyricmode @{ twinkle @}}
@tab entering lyrics
@tab
+twinkle
@item @code{\new Lyrics}
@tab printing lyrics
@tab
-twinkle
@lilypond[fragment]
\new Lyrics \lyricmode { twinkle }
@end lilypond
@tab
@lilypond[fragment,relative=2]
<<
- { g'4 g }
+ { g'1 g }
\new Lyrics \lyricsto "" { twin -- kle }
>>
@end lilypond
\chords { c:dim f:maj7 }
@end lilypond
-@item @code{<<@{e f@} \\@{c d@}>>}
+@item @code{<<@{e f@} \\ @{c d@}>>}
@tab polyphony
@tab
@lilypond[fragment,relative=2]
+\header {
+ texidoc = "Slurs avoid clefs, but don't avoid barlines."
+ }
+
\paper {
ragged-right = ##t
- }
+
+}
\version "2.10.0"
-\new Staff { \clef bass c^( \clef "G" g') }
+\new Staff { \clef bass c4^( \clef "G" g'4) c''1_( f'') }
ADD_INTERFACE (Custos, "custos-interface",
"A custos object.",
- "style neutral-position neutral-direction");
+ "style "
+ "neutral-position "
+ "neutral-direction ");
public:
static void add_column (Grob *me, Grob *col);
static void add_extra_encompass (Grob *me, Grob *col);
+ static void replace_breakable_encompass_objects (Grob *me);
static void auxiliary_acknowledge_extra_object (Grob_info, vector<Grob*>&, vector<Grob*>&);
DECLARE_SCHEME_CALLBACK (print, (SCM));
DECLARE_SCHEME_CALLBACK (calc_control_points, (SCM));
pages_ = SCM_EOL;
SCM proc = paper_->c_variable ("page-breaking-wrapper");
- pages_ = scm_apply_0 (proc, scm_list_1(self_scm ()));
+ pages_ = scm_apply_0 (proc, scm_list_1 (self_scm ()));
/* set systems_ from the pages */
if (systems_ == SCM_BOOL_F)
slur_ = dynamic_cast<Spanner *> (me);
columns_
= internal_extract_grob_array (me, ly_symbol2scm ("note-columns"));
-
+
if (columns_.empty ())
{
me->suicide ();
return;
}
+ Slur::replace_breakable_encompass_objects (me);
staff_space_ = Staff_symbol_referencer::staff_space (me);
Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
thickness_ = robust_scm2double (me->get_property ("thickness"), 1.0) * lt;
#include "slur.hh"
-
+#include "grob-array.hh"
#include "beam.hh"
#include "bezier.hh"
#include "directional-element-interface.hh"
#include "tie.hh"
#include "warn.hh"
#include "slur-scoring.hh"
-
+#include "separation-item.hh"
#include "script-interface.hh"
return a.smobbed_copy ();
}
+
+/*
+ it would be better to do this at engraver level, but that is
+ fragile, as the breakabl items are generated on staff level, at
+ which point slur starts and ends have to be tracked
+*/
+void
+Slur::replace_breakable_encompass_objects (Grob *me)
+{
+ extract_grob_set (me, "encompass-objects", extra_objects);
+ vector<Grob *> new_encompasses;
+
+ for (vsize i = 0; i < extra_objects.size (); i++)
+ {
+ Grob *g = extra_objects[i];
+
+ if (Separation_item::has_interface (g))
+ {
+ extract_grob_set (g, "elements", breakables);
+ for (vsize j = 0; j < breakables.size (); j++)
+ if (breakables[j]->get_property ("avoid-slur") == ly_symbol2scm ("inside"))
+ new_encompasses.push_back (breakables[j]);
+ }
+ else
+ new_encompasses.push_back (g);
+ }
+
+ SCM encompass_scm = me->get_object ("encompass-objects");
+ if (Grob_array::unsmob (encompass_scm))
+ {
+ vector<Grob *> &arr =
+ unsmob_grob_array (encompass_scm)->array_reference ();
+ arr = new_encompasses;
+ }
+}
+
Bezier
Slur::get_curve (Grob *me)
{
r"\\override VerticalAxisGroup #'minimum-Y-extent",
str)
str = re.sub (r"\\set ([a-zA-Z]*\.?)extraVerticalExtent",
- r"\\override \1VerticalAxisGroup #'extra-Y-extent")
+ r"\\override \1VerticalAxisGroup #'extra-Y-extent", str)
str = re.sub (r"\\set ([a-zA-Z]*\.?)verticalExtent",
- r"\\override \1VerticalAxisGroup #'Y-extent")
+ r"\\override \1VerticalAxisGroup #'Y-extent", str)
return str
conversions.append (((2, 7, 14), conv,
(define-public (boolean-or-symbol? x)
(or (boolean? x) (symbol? x)))
+(define-public (string-or-symbol? x)
+ (or (string? x) (symbol? x)))
+
(define-public (number-or-string? x)
(or (number? x) (string? x)))
(stencil . ,ly:clef::print)
(glyph-name . ,ly:clef::calc-glyph-name)
(non-musical . #t)
+ (avoid-slur . inside)
(font-family . music)
(break-align-symbol . clef)
(break-visibility . ,begin-of-line-visible)
(KeySignature
. (
(stencil . ,ly:key-signature-interface::print)
+ (avoid-slur . inside)
(space-alist . (
(time-signature . (extra-space . 1.15))
(staff-bar . (extra-space . 1.1))
(stencil . ,ly:time-signature::print)
(break-align-symbol . time-signature)
(break-visibility . ,all-visible)
+ (avoid-slur . inside)
(space-alist . (
(first-note . (fixed-space . 2.0))
(right-edge . (extra-space . 0.5))
(ly:make-stencil '() '(1 . -1) '(1 . -1)))))
(define-markup-command (justify-field layout props symbol) (symbol?)
-- (let* ((m (chain-assoc-get symbol props)))
+ (let* ((m (chain-assoc-get symbol props)))
(if (string? m)
(interpret-markup layout props
(list justify-string-markup m))
on errors, and print a stack trace.")
(profile-property-accesses #f "keep statistics of get_property() calls.")
- (resolution 101 "resolution for generating bitmaps")
+ (resolution 101 "resolution for generating PNG bitmaps")
(read-file-list #f "Read files to be processed from command line arguments")
(safe #f "Run safely")
INSTALL=$(INSTALLPY)
group-dir = $(shell cd $(DEPTH);pwd)/..
-release-dir = $(group-dir)/releases
patch-dir = $(group-dir)/patches
rpm-sources = $(release-dir)
rpm-build = $(group-dir)/RedHat/BUILD
chmod -R a+r $(distdir)
chmod a+x `find $(distdir) -type d -print`
(cd ./$(depth)/$(outdir); $(TAR) -cf - --owner=0 --group=0 $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
-# ugh.
-# Can't compare "stage1" dist with "stage2" dist in this way?
- -ln -f $(depth)/$(outdir)/$(distname).tar.gz $(release-dir)
rm -rf $(distdir)/
#