internal-type-checking set, abort if we find an unknown property.
* input/regression/GNUmakefile,input/test/GNUmakefile: be anal
with typechecks
* input/test/*.ly: remove or update files using deprecated
properties
* lily/beam.cc: add 'knee to interface
* lily/system.cc (spanner_count): new function
2002-08-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * lily/lily-guile.cc (type_check_assignment): if
+ internal-type-checking set, abort if we find an unknown property.
+
+ * input/regression/GNUmakefile,input/test/GNUmakefile: be anal
+ with typechecks
+
+ * lily/beam.cc: add 'knee to interface
+
+ * input/test/*.ly: remove or update files using deprecated
+ properties
+
* lily/system.cc (spanner_count): new function
* lily/break-substitution.cc (fast_fubstitute_grob_list): special
STEPMAKE_TEMPLATES=documentation texinfo tex
LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
+LILYPOND_BOOK_FLAGS=--extra-options '-e "(set-lily-option (quote internal-type-checking) \#t)"'
include $(depth)/make/stepmake.make
TITLE=LilyPond Regression Tests
\score { \notes {
c''4
cis''?4
- \property Staff.Accidental \override #'cautionary-style = #'parentheses
+ \property Staff.Accidental \override #'style = #'parentheses
cis''?4
}}
\header {
texidoc="
This shows how accidentals in different octaves are handled.
-Fixme: Shorten and docu
+FIXME: Shorten and docu
+
"
}
mus = \notes {
\mel
- \property Score.oneMeasureLazy = ##t
+
+%% FIXME.
+% \property Score.oneMeasureLazy = ##t
+
+
\property Score.autoAccidentals = #'(Staff (same-octave . 0))
< s1^""^""^"$\\backslash$property Score.autoAccidentals = \\#'(Staff (same-octave . 0))" \mel >
\property Score.autoAccidentals = #'(Staff (same-octave . 1))
<
\context Staff \transpose c''' {
\mel
- \property Score.oneMeasureLazy = ##t
+% \property Score.oneMeasureLazy = ##t
\property Score.autoAccidentals = #'(Staff (same-octave . 0))
< s1^"$\\backslash$property Score.autoAccidentals = \\#'((same-octave . 0))" \mel >
\property Score.autoAccidentals = #'(Staff (same-octave . 1))
-\header {
-texidoc = "Beam quanting can be twiddled using grob
-properties. The following example shows how Y and DY can be
-unquantised and quantised to 0 and 4 respectively."
-
-}
-
-\version "1.5.68"
-
-%{
-Have some fun beam quanting
-%}
-
-% no y quantising
-#(define (beam-vertical-position-quants m dy x y) '())
-
-% rediculous dy quanting
-#(define (beam-height-quants x y) '(0 4))
-
-\score {
- \notes\relative c'{
- \property Voice.Beam \override #'height-quant-function = #beam-height-quants
- \property Voice.Beam \override #'vertical-position-quant-function =
- #beam-vertical-position-quants
- c8 c c c
- c8 e g a
- c,8 f b e
- }
-}
\header {
texidoc = "Automatic fingering tries to put fingering instructions
-next to noteheads. scriptHorizontal puts the center fingerings horizontally next to
-the note heads.
-
-For this to function, you have to @code{\apply} pitchify-scripts to
-the music you're dealing with, and you have to do so outside of a
-@code{\relative} block. "
-
+next to noteheads.
+"
}
\score {
c4-4
<c-1 f-4>
< c-1 e-2 g-3 b-4 >
-\apply #pitchify-scripts \relative c' { c4-4
- <c-1 f-4>
- < c-1 e-2 g-3 b-4 >
- \property Voice.scriptHorizontal = ##t
- <c-1 f-4>
- <c-1 f-4 a-5>
- < c-1 e-2 g-3 b-4 >
- } } }
+}}
+
STEPMAKE_TEMPLATES=documentation texinfo tex
LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
+LILYPOND_BOOK_FLAGS=--extra-options '-e "(set-lily-option (quote internal-type-checking) \#t)"'
+
## Hmm, would this work? No -- if we really want examples, move
## to other dir (input/) comes to mind.
## examples = font20 ancient-font
#(define (make-script x)
(let ((m (ly-make-music "Articulation_req")))
(ly-set-mus-property! m 'articulation-type x)
- (ly-set-mus-property! m 'script x)
m))
#(define (add-script m x)
\property Staff.KeySignature \set #'font-family = #'ancient
\property Staff.KeySignature \override #'style = #'mensural
\property Staff.Accidental \set #'font-family = #'ancient
- \property Staff.Accidentalg \override #'style = #'mensural
+ \property Staff.Accidental \override #'style = #'mensural
\property Staff.Custos \set #'font-family = #'ancient
\property Staff.Custos \override #'style = #'mensural
\property Staff.Custos \override #'neutral-position = #3
\property Voice.Porrectus \override #'style = #'mensural
\property Voice.Porrectus \override #'solid = ##f
\property Voice.Porrectus \override #'add-stem = ##t
- \property Voice.Porrectus \override #'stem-direction = #1
\property Voice.Porrectus \override #'thickness = #0.7
% \property Voice.Porrectus \override #'auto-properties = ##t
% \property Voice.Porrectus \override #'width = #3.0
-\header {
-
-texidoc = "Beams in hang, straddle sit positions, forced there using
-quanting."
-
-}
-
-\version "1.5.68"
-
-#(define ps-testing #t)
-\score {
- \notes\relative c'{
- \property Voice.Beam \override #'vertical-position-quant-function
- = #(lambda (beam dy x staff-line)
- (let* ((thick (ly-get-grob-property beam 'thickness))
- (hang (- 1 (/ (- thick staff-line) 2))))
- (append (list hang) (list (+ hang 1)))))
- [d8 d]
-
- \property Voice.Beam \override #'vertical-position-quant-function
- = #(lambda (beam dy x staff-line) '(0 1))
- [d8 d]
-
- \property Voice.Beam \override #'vertical-position-quant-function
- = #(lambda (beam dy x staff-line)
- (let* ((thick (ly-get-grob-property beam 'thickness))
- (sit (/ (- thick staff-line) 2)))
- (append (list sit) (list (+ sit 1)))))
- [d8 d]
- }
- \paper{
- linewidth = 0.0
- }
-}
-\version "1.5.68"
-
-fragment = \notes {
- \property Voice.Beam \set #'direction = #1
- \property Voice.Beam \set #'height-hs = #0
- [a''8 e' d c]
-}
-
-\paper { linewidth = -1. }
-
-\score {
- \notes\relative c \fragment
- \paper { }
-}
-\version "1.5.68"
-\score{
- \notes\relative c''{
- \property Score.beamQuantisation = #'none
- % \property Score.beamQuantisation = #'normal
- % \property Score.beamQuantisation = #'traditional
- [g16 e f g]
- }
- \paper{
- linewidth = -1.
- }
-}
\score{
<
-% \property Score.beamQuantisation = #'none
\context GrandStaff <
\context Staff = SA \notes\transpose c' {
\version "1.5.68"
+%% FIXME
+
\score { \notes \context Staff \transpose c''' {
\key d \major
- \property Staff.autoReminders = #'cautionary
+% \property Staff.autoReminders = #'cautionary
\property Staff.Accidental \override #'font-relative-size = #0
<dis1 c> cis2 d
- \property Staff.Accidental \override #'cautionary-size = #-1
+% \property Staff.Accidental \override #'cautionary-size = #-1
<dis1 c> cis2 d
- \property Staff.Accidental \override #'paren-cautionaries = ##f
+% \property Staff.Accidental \override #'paren-cautionaries = ##f
<dis1 c> cis2 d
}
-\version "1.5.68"
-\score {
- \context Voice \notes\relative c {
-
- \relative c'' \context Staff <
- \context Voice = one {
- \property Staff.collisionMergeDotted = ##t
- \stemUp
- [c8 f g a]
- }
- \context Voice = two {
- \stemDown c,4. f8
-
- }>
-
- }
- \paper { }
- \midi { }
-}
-\version "1.5.68"
-%non of the dynamics properties work anymore
-
-\score {
- \context Voice \notes\relative c {
-% \stemDown\slurDown\tieDown
-
- \property Voice.dynamicDirection = #1
- \property Voice.dynamicPadding = #40
- c \p c \< \! c \ff\> c \!c-\p
-
- }
-}
\version "1.5.68"
+\header {
+ texidoc="Force hshift to override collisions"
+ }
\score {
\context Voice \notes\relative c {
\context Staff <
\context Voice = VA {
- \property Voice.NoteColumn \override #'forced-hshift = #0.1
+ \property Voice.NoteColumn \override #'force-hshift = #0.1
\stemUp
\property Voice.NoteColumn \override #'horizontal-shift = #1
<g' d'>
\context Voice = VB {
\stemDown
\property Voice.NoteColumn \override #'horizontal-shift = #1
- \property Voice.NoteColumn \override #'forced-hshift = #-0.1
+ \property Voice.NoteColumn \override #'force-hshift = #-0.1
<bes f'>
}
>
\header {
texidoc ="Test font selection and scm text markup"
-%% Note that the font-encoding trick only works when uning latex,
-%% ie, you must use ly2dvi.
-
}
TextScript \override #'font-shape = #'upright
TextScript \revert #'no-spacing-rods
TextScript \override #'direction = #1
- TextScript \override #'font-encoding = #'T1
}
}
}
\version "1.5.68"
+\header {
+ texidoc = "Control the number of rests in a collision with maximum-rest-count."
+}
\score{
\context Staff \notes\relative c''<
\context Voice = x {
a4
r
- \property Voice.maximumRestCount = #3
+ \property Staff. RestCollision \set #'maximum-rest-count = #1
r
- \property Staff.maximumRestCount = #2
+ \property Staff. RestCollision \set #'maximum-rest-count = #2
r
- \property Staff.maximumRestCount = #1
+ \property Staff. RestCollision \set #'maximum-rest-count = #3
r
r8 r8
c
\version "1.5.68"
-
+\header {
+ texidoc ="FIXME"
+ }
%% Chord gurus, is this ok now??
monstrous= \chords{
- \property Score.chordInversion = ##t
+
+%% fixme:
+%% \property Score.chordInversion = ##t
% /c is/was missing:
bes:6/+c
\version "1.5.68"
+\header {
+ texidoc = "Don't extend stems to cetner line."
+}
\score {
\context Voice \notes\relative c {
- % test noStemExtend
\context Staff <
\context Voice = "a" {
f2 f8 g a b
- \property Voice.noStemExtend = ##t
+ \property Voice.Stem \set #'no-stem-extend = ##t
f2 f8 g a b
}
\context Voice = "b" {
c''2 c8 b a g
- \property Voice.noStemExtend = ##t
+ \property Voice.Stem \set #'no-stem-extend = ##t
c2 c8 b a g
}
>
%% URG: this changes dynamics too
%%textStyle = #"italic"
TimeSignature \override #'style = #'C
- maximumRestCount = #1
+ RestCollision \set #'maximum-rest-count = #1
}
}
}
%% URG: this changes dynamics too
%%textStyle = #"italic"
TimeSignature \override #'style = #'C
- maximumRestCount = #1
+
+ RestCollision \set #'maximum-rest-count = #1
+
}
}
}
\score {
\context Voice \notes\relative c {
\context Voice=VoiceOne
- \property Voice.graceFraction = #(make-moment 1 4)
\grace c8 d4 d d d d
- \property Voice.graceFraction = #(make-moment 1 2)
\grace { e16 f e f } d4 d d d d
}
\version "1.5.68"
+\header {
+ texidoc ="mensural style rests."
+ }
\score {
\context Voice \notes\relative c {
r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
- \property Staff.restStyle = "mensural"
+ \property Staff.Rest \override #'style = #'mensural
\emptyText
r\longa^"restStyle = \"mensural\"" r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
c'1() g' () c () g () c |
}
-
-complex = \notes{
-\transpose c'{
- c,16( e,( g,( b,( d( f( a( c'())))))))c4 c4 |}
-\transpose c'''{
- c,16( a( f( d( b,( g,( e,( c,())))))))c4 c4 |}
-}
-
over = \notes\transpose c'{
% {
\shortlong
\dirs
- \complex
\over
\under
\eccentric
\version "1.5.68"
+\header{
+ texidoc ="Setting staff space on a staff "
+ }
\score {
\notes \relative c'' \context GrandStaff <
\context Staff = up { c4 c4 }
- \context Staff = down { \property Staff. staffSpace = #5.5 c4
+ \context Staff = down { c4
[<c8 d f g>
e]
[f c']
}
>
+\paper { \translator {
+ \StaffContext
+ StaffSymbol \set #'staff-space = #5.5
+ }}
}
\version "1.5.68"
-
+\header {
+ texidoc ="mensural note heads."
+ }
\score {
\notes {
\relative c'' {
-\property Voice . noteHeadStyle = #'mensural
-\property Voice. stemCentered = ##t
+\property Voice . NoteHead \set #'style = #'mensural
c\maxima*1/8
c\longa*1/4 c\breve*1/2 c1 c2 c4 c8
}
\score {
\context Voice \notes\relative c {
-
- g''4 \property Voice.stemLength = #14 g4 \property Voice.stemLength = #3 g4 g,,4
-
+ g''4 \property Voice.Stem \set #'length = #14 g4
+ \property Voice.Stem \set #'length = #3 g4 g,,4
}
\paper { }
\midi { }
\version "1.5.68"
-
+\header {
+texidoc = "ottava spanners."
+}
\score{
\notes\relative c''{
a \spanrequest \stop "text"
- \property Staff."c0-position" = #-13
+ \property Staff.centralCPosition = #-13
\property Voice.TextSpanner \override #'dash-length = #5
- \property Voice.TextSpanner \override #'line-thickness = #10
+ \property Voice.TextSpanner \override #'thickness = #10
a \spanrequest \start "text"
b c
a \spanrequest \stop "text"
- \property Staff."c0-position" = #-6
+ \property Staff.centralCPosition = #-6
}
}
-\version "1.5.68"
-\header {
-texidoc="Various warnings
-"
-}
-
-linebreak = \penalty #-1000
-
-\score {
- \notes {
- c''
- \property Voice.Stem \set #'length = #"foo"
- \property Voice.Stem \set #'longth = #2
- \property Staff.clefStyle = #"foo"
- \property Staff.clefStyle = #2
- }
-}
ADD_INTERFACE (Accidental_interface, "accidental-interface",
"a single accidental",
- "cautionary-style style tie accidentals");
+ "cautionary cautionary-style style tie accidentals");
take the best scoring combination.
",
- "french-beaming position-callbacks concaveness-gap concaveness-threshold dir-function quant-score auto-knee-gap gap chord-tremolo beamed-stem-shorten shorten least-squares-dy damping flag-width-function neutral-direction positions space-function thickness");
+ "knee french-beaming position-callbacks concaveness-gap concaveness-threshold dir-function quant-score auto-knee-gap gap chord-tremolo beamed-stem-shorten shorten least-squares-dy damping flag-width-function neutral-direction positions space-function thickness");
item_ = new Item (get_property ("KeySignature"));
item_->set_grob_property ("c0-position",
- get_property ("centralCPosition"));
+ get_property ("centralCPosition"));
// todo: put this in basic props.
item_->set_grob_property ("old-accidentals", get_property ("lastKeySignature"));
ly_symbol2string (type_symbol).to_str0 ()
));
+
+ /*
+ Be strict when being anal :)
+ */
+ if (internal_type_checking_global_b)
+ abort();
}
else
{
Interval hp = head_positions (me);
Real st = hp[dir] + dir * length_f;
+
+ /*
+ TODO: change name to extend-stems to staff/center/'()
+ */
bool no_extend_b = to_boolean (me->get_grob_property ("no-stem-extend"));
if (!grace_b && !no_extend_b && dir * st < 0) // junkme?
st = 0.0;
(grob-property-description 'breakable boolean? "boolean indicating if this is a breakable item (clef, barline, key sig, etc.).")
(grob-property-description 'c0-position integer? "integer indicating the position of central C.")
(grob-property-description 'cautionary-style symbol? "style of cautionary accidentals. Choices are 'smaller (one size smaller) or 'parentheses.")
+(grob-property-description 'cautionary boolean? "is this a cautionary accidentals.?")
+
(grob-property-description 'center-element ly-grob? "grob which will
be at the center of the group after aligning (when using
Align_interface::center_on_element). .")
For text, this is `relative'(?) to the current alignment.
For barline, space after a thick line.")
+(grob-property-description 'knee boolean? "Is this beam a knee?")
(grob-property-description 'knee-spacing-correction number? "optical correction amount for knees. 0: no correction; 1: full correction.")
(grob-property-description 'layer number? "The output layer [0..2]. The default is 1.")
then beams are generated automatically.")
(translator-property-description 'noDirection boolean? "Don't set directions by a2-engraver when part-combining.")
(translator-property-description 'oneBeat moment? " How long does one beat in the current time signature last?")
+(translator-property-description 'othersolo boolean? "FIXME")
(translator-property-description 'pedalSustainStrings list? "List of string to print for sustain-pedal. Format is
(UP UPDOWN DOWN), where each of the three is the string to print when
this is done with the pedal.")