---- ../lilypond-1.3.48/CHANGES Mon May 8 10:48:49 2000
-++ b/CHANGES Wed May 10 21:46:32 2000
-@@ -1,3 +1,9 @@
+1.3.48.uu1
+==========
+
+* Small fixes for \cresc and \endcresc
+
+* Release properties of unbroken spanners & items after doing
+handle_broken_smobs (); should conserve a little memory.
+
+* Fixed handling of orphaned score-elements. Any element that does
+not have its Line_of_score as a ancestor in both directions, is silently
+removed from the output. This guarantees that programming errors
+don't result in coredumps from Dimension_cache::common_refpoint ():
+element->line_l () is always a common reference point.
+
+* Bugfix: set visibility-lambda of clef and octavation-8 explicitly
+for default case. Now the octavation 8 is not printed at every
+barline.
+
1.3.48.mb1
===========
* Changed noteHeadStyle properties to symbols, for example
\property Voice.noteHeadStyle = #'cross
- 1.3.47.mb2
- ===========
- 1.3.47.jcn3
+1.3.47.jcn3
===========
* Rewrite of chord-name production in scheme. There are two major styles
* Added `Mark' interface to text-items that are marks (thanks, HW).
-1.3.46.jcn2
-===========
-
+1.3.48
+======
1.3.47.mb2
===========
"harmonic" and added "baroque" (normal note shapes except for
brevis and longa which are square).
-1.3.47.mb1
-===========
-
* Simplified ly2dvi using the power of the geometry package.
* Improved heuristic size calculation of TeX macros. Handles e.g.
* Bugfix: don't hang on zero-duration.
+* Various glossary updates (thanks, Christian)
+
1.3.47
======
@end example
+@subsubsection Can I make blank manuscript paper with LilyPond?
+
+Theoretically, yes but it is easier to do with TeX:
+
+@example
+\def\foo{\hbox{\vrule width 15.0cm height 0.5pt depth 0.0pt}
+\nointerlineskip
+\vskip 5pt\nointerlineskip}
+\def\musicline{\vbox {
+ \foo\foo\foo\foo\foo
+}\par}
+
+\musicline
+\musicline
+\musicline
+\musicline
+\bye
+
+@end example
+
+
@node Development, Running, How do I -, FAQ - GNU LilyPond FAQs
@section Development
putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the
net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is a
large archive of public domain sheet music under construction. Dirk
-Latterman also put some works <a
-href=http://www.alqualonde.de/lilypond.html>on the web</a>
+Latterman also put some works
+@uref{http://www.alqualonde.de/lilypond.html,on the web}.
@html
<a name="download">
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=48
-MY_PATCH_LEVEL=mb1
+PATCH_LEVEL=49
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
/* define if you have isinf */
#define HAVE_ISINF 0
+/* define if you have isinf */
+#define HAVE_ISINF 0
+
/* define if explicit instantiation is needed */
#undef NEED_EXPLICIT_INSTANTIATION
fi
-for ac_func in memmem snprintf vsnprintf gettext
+for ac_func in memmem snprintf vsnprintf gettext isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2910: checking for $ac_func" >&5
#endif
+#if !HAVE_ISINF // BSD extension
+int isinf (double x);
+
+#endif
+
Byte *memrchr (Byte const * p, int n, char c);
Byte *strrev (Byte* byte_l, int length_i);
}
#endif
+
+#if !HAVE_ISINF
+int
+isinf (double x)
+{
+ return x && ( x == x/ 2) ;
+}
+
+#endif
+++ /dev/null
-flauti = \notes \relative c' {
- c1
- \break c
-}
-
-
-timpani = \notes \relative c' {
- c1 c
-}
-
-
-
-\score {
- <
- \context StaffGroup ="legni" <
- \context Staff ="flauti" \flauti
- >
- \context StaffGroup ="timpani" <
- \notes {
- c1
- }
- >
- >
-
-}
-
\clef "tenor";c'1^"{tenor}" \bar "||";
\clef "baritone";c'1^"{baritone}" \bar "||";
\clef "varbaritone";c'1^"{varbaritone}" \bar "||";
- \clef "G_8";c'1^"{sub 8?}" \bar "||";
- \clef "G^8";c'1^"{sup 8?}" \bar "||";
+ \clef "G_8";c'1^"{sub 8?}" c'1 \bar "||";
+ \clef "G^8";c'1^"{sup 8?}" c'1 \bar "||";
\clef "bass";c'1^"{bass}" \bar "||";
\clef "subbass";c'1^"{subbass}" \bar "||";
\property Staff.clefStyle="transparent"
#include <math.h>
#include "config.h"
-/*
- IS_INF tests its floating point number for infiniteness
- Ripped from guile's number.c. Solaris has no isinf ().
- */
-#if ! HAVE_ISINF
- #define isinf(x) ((x) == (x) / 2)
-#endif
#include "bezier.hh"
#include "polynomial.hh"
}
+/*
+ JUNKME.
+ do something smarter.
+ */
Array<Musical_pitch>
Chord::base_arr (Musical_pitch p)
{
if (octavate_p_)
octavate_p_->set_elt_property("visibility-lambda", all);
}
+ else
+ {
+ SCM beg = scm_eval (ly_symbol2scm ("begin-of-line-visible"));
+
+ clef_p_->set_elt_property ("visibility-lambda", beg);
+ if (octavate_p_)
+ octavate_p_->set_elt_property ("visibility-lambda", beg);
+ }
typeset_element (clef_p_);
clef_p_ =0;
}
s = get_property (span_req_l_drul_[START]->span_type_str_ + "Spanner");
+
+
+ /*
+ TODO: Use symbols.
+ */
if (gh_string_p (s)) //&& ly_scm2string (s) != "hairpin")
{
cresc_p_->set_elt_property ("spanner", s);
Axis_group_interface (this).set_axes (Y_AXIS,X_AXIS);
}
+/*
+ Ugh. this is grossly hairy.
+ */
void
Line_of_score::typeset_element (Score_element * elem_p)
unsmob_element (gh_car (s))->do_break_processing ();
}
+ /*
+ fixups must be done in broken line_of_scores, because new elements are put over there.
+ */
+ for (int i=0; i < broken_into_l_arr_.size (); i++)
+ {
+ Score_element *se = broken_into_l_arr_[i];
+
+ for (SCM s = se->get_elt_property ("all-elements");
+ gh_pair_p (s); s = gh_cdr (s))
+ {
+ unsmob_element (gh_car (s))->fixup_refpoint ();
+ }
+ }
+
+ /*
+ needed for doing items.
+ */
+ for (SCM s = get_elt_property ("all-elements");
+ gh_pair_p (s); s = gh_cdr (s))
+ {
+ unsmob_element (gh_car (s))->fixup_refpoint ();
+ }
+
for (SCM s = get_elt_property ("all-elements");
gh_pair_p (s); s = gh_cdr (s))
{
void
Line_of_score::post_processing ()
{
- fixup_refpoints (get_elt_property ("all-elements"));
for (SCM s = get_elt_property ("all-elements");
gh_pair_p (s); s = gh_cdr (s))
{
status_i_= busy;
- for (SCM d= get_elt_property ("dependencies"); d != SCM_EOL; d = gh_cdr (d))
+ for (SCM d= get_elt_property ("dependencies"); gh_pair_p (d); d = gh_cdr (d))
{
unsmob_element (gh_car (d))
->calculate_dependencies (final, busy, funcptr);
}
else
{
- Score_element * ln = unsmob_element ( criterion);
- Line_of_score * line = dynamic_cast<Line_of_score*> (ln);
- Score_element * br =0;
- Line_of_score * dep_line = sc->line_l ();
+
+ Line_of_score * line = dynamic_cast<Line_of_score*> (unsmob_element ( criterion));
+ Line_of_score * dep_line = sc->line_l ();
if (dep_line != line)
{
- br = sc->find_broken_piece (line);
+ Score_element * br = sc->find_broken_piece (line);
return (br) ? br->self_scm_ : SCM_UNDEFINED;
}
if (!dep_line)
return SCM_UNDEFINED;
+
+ if (!sc->common_refpoint (line, X_AXIS)
+ || !sc->common_refpoint (line, Y_AXIS))
+ {
+ return SCM_UNDEFINED;
+ }
}
}
else if (gh_pair_p (src))
}
}
+
Line_of_score *line = line_l();
- element_property_alist_
- = handle_broken_smobs (element_property_alist_,
- line ? line->self_scm_ : SCM_UNDEFINED);
+
+ if (line && common_refpoint (line, X_AXIS) && common_refpoint (line, Y_AXIS))
+ {
+ element_property_alist_
+ = handle_broken_smobs (element_property_alist_,
+ line ? line->self_scm_ : SCM_UNDEFINED);
+ }
+ else
+ {
+ /*
+ This element is `invalid'; it has been removed from all dependencies, so
+ let's junk the element itself.
+
+ */
+ element_property_alist_ = SCM_EOL;
+ set_extent_callback (0, Y_AXIS);
+ set_extent_callback (0, X_AXIS);
+ }
+
+
}
{
Score_element * newparent = parent->find_broken_piece (line_l ());
set_parent (newparent, ax);
- if (!newparent)
- {
- programming_error ("Orphaned score-element.");
- }
}
if (Item * i = dynamic_cast<Item*> (this))
This should be more advanced, since relative heights of the note
heads also influence required correction.
- Also might not work correctly ico. multi voices or staff changing voices
+ Also might not work correctly in case of multi voices or staff
+ changing voices
TODO: lookup correction distances? More advanced correction?
Possibly turn this off?
- This routine reads the DIR_LIST property of both its L and R arguments.
-*/
+ This routine reads the DIR-LIST property of both its L and R arguments. */
Real
Spacing_spanner::stem_dir_correction (Paper_column*l, Paper_column*r) const
{
)
-}
+
\version "1.3.42";
Generic_property_list = #generic-staff-properties
- barSize = #'staff-height
+ barSize = 4.0 * \interline ;
\consists "Pitch_squash_engraver";
\consists "Separating_line_group_engraver";
\name RhythmicStaff;
#'Stem_tremolo::beam-width = 1.5 * \quartwidth ;
#'Left_edge_item::visibility-lambda = #begin-of-line-visible
-#'Clef_item::visibility-lambda = #begin-of-line-visible
+
#'Key_item::visibility-lambda = #begin-of-line-visible
#'Breathing_sign::visibility-lambda = #begin-of-line-invisible
dynamicStyle = #"dynamic"
};
\translator { \StaffContext }
+\translator { \StaffContext
+ \name RhythmicStaff;
+}
+
VoiceContext = \translator {
\type "Performer_group_performer";
GrandStaffContext = \translator {
\type "Performer_group_performer";
\name GrandStaff;
+ \accepts RhythmicStaff;
\accepts Staff;
};
\translator { \GrandStaffContext }
\accepts Lyrics;
\accepts StaffGroup;
\accepts ChoirStaff;
+ \accepts RhythmicStaff;
\accepts ChordNames;
\consists "Swallow_performer";
};
rc = \spanrequest \stop "crescendo"
rced = \spanrequest \stop "decrescendo"
-%% urg, these don't work yet.
-%% must set manually
-xcresc = {
-%\spanrequest \start "crescendo"
-\property Voice.crescendoText = "cresc."
-\property Voice.crescendoSpanner = "dashed"
+cresc = \notes {
+ \commandspanrequest \start "crescendo" ;
+ \property Voice.crescendoText = "cresc."
+ \property Voice.crescendoSpanner = "dashed-line"
}
-xendcresc = {
-%\spanrequest \start "crescendo"
+endcresc = \notes {
+\commandspanrequest \stop "crescendo";
\property Voice.crescendoText = ##f
\property Voice.crescendoSpanner = ##f
}
+%{
+
cresc = \spanrequest \start "crescendo"
endcresc = \spanrequest \stop "crescendo"
+%}
+
% better name sustainstart/stop?
sustaindown = \spanrequest \start "Sustain"
sustainup = \spanrequest \stop "Sustain"
Begin3
Title: LilyPond
-Version: 1.3.48
-Entered-date: 08MAY00
+Version: 1.3.49
+Entered-date: 11MAY00
Description:
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.3.48.tar.gz
+ 1000k lilypond-1.3.49.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.48.tar.gz
+ 1000k lilypond-1.3.49.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.3.48
+Version: 1.3.49
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.48.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.49.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# Icon: lilypond-icon.gif
+++ /dev/null
-
-;
-; Format:
-; (cons "Type name"
-; (list PROPERTYDESCRIPTIONS))
-;
-; where
-; PROPERTYDESCRIPTION
-; is
-;
-; (list 'translatorPropertySymbol type-predicate backend-property-symbol)
-;
-; Descriptions earlier in the list take precedence over later descriptions.
-;
-
-
-(define generic-beam-properties
- (cons "Beam"
- (list
- (list 'beamSlopeDamping number? 'damping)
- (list 'autoKneeGap number? 'auto-knee-gap)
- (list 'autoInterstaffKneeGap number? 'auto-interstaff-knee-gap)
- (list 'beamDirAlgorithm symbol? 'beam-dir-algorithm)
- (list 'beamHeight number? 'height-hs)
- (list 'beamVerticalPosition number? 'y-position-hs)
- )
- )
- )
-
-
-(define generic-stem-properties
- (cons "Stem"
- (list
- (list 'stemVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- (list 'stemLength number? 'length)
- (list 'flagStyle string? 'flag-style)
- (list 'stemCentered boolean? 'stem-centered)
- (list 'noStemExtend boolean? 'no-stem-extend)
- (list 'stemShorten number? 'shorten)
- ))
- )
-
-(define generic-dot-properties
- (cons "Dots" (list
- (list 'dotDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- )
- ))
-
-(define generic-script-properties
- (cons "Script" (list
- (list 'articulationScriptVerticalDirection dir? 'direction)
- (list 'articulationScriptPadding number? 'padding)
-
- ))
- )
-
-
-
-(define generic-text-properties
- (cons "Text_item" (list
- (list 'textStyle string? 'style)
- (list 'textScriptPadding number? 'padding)
- (list 'textVerticalAlignment dir? 'self-alignment-Y)
- (list 'textHorizontalAlignment dir? 'self-alignment-X)
- (list 'textScriptWordSpace number? 'word-space)
- )
- ))
-
-(define generic-sustain-pedal-properties
- (cons "Sustain_pedal" (list
- (list 'textScriptPadding number? 'padding)
- (list 'sustainPedalPadding number? 'padding))))
-
-(define generic-chord-name-properties
- (cons "Chord_name" (list
- (list 'textScriptWordSpace number? 'word-space)
- (list 'chordNameWordSpace number? 'word-space)
- (list 'chordNameStyle string? 'style))))
-
-(define generic-crescendo-properties
- (cons "Crescendo" (list
- (list 'dynamicDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- (list 'dynamicPadding number? 'padding)
- (list 'dynamicMinimumSpace number? 'minimum-space)
- )))
-
-(define generic-dynamic-line-spanner-properties
- (cons "Dynamic_line_spanner" (list
- (list 'dynamicDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- (list 'dynamicPadding number? 'padding)
- (list 'dynamicMinimumSpace number? 'minimum-space)
- )))
-
-(define generic-volta-spanner-properties
- (cons "Volta_spanner" (list
- (list 'voltaVerticalDirection dir? 'direction)
- (list 'voltaPadding number? 'padding)
- (list 'voltaMinimumSpace number? 'minimum-space)
- )))
-
-(define generic-bar-properties
- (cons "Staff_bar" (list
- (list 'barSize number? 'bar-size))
- )
- )
-
-; don't do this yet. Depends on whennn the staff is really announced
-(define generic-staff-symbol-properties
- (cons "Staff_symbol" (list
- )
- )
- )
-
-(define generic-breathing-sign-properties
- (cons "Breathing_sign"
- (list
- (list 'breathingSignVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- )))
-
-(define generic-clef-properties
- (cons "Clef_item"
- (list
- (list 'clefStyle string? 'style))
- )
- )
-
-(define generic-All-properties
- (cons "all" (list (list 'fontSize number? 'fontsize))))
-
-(define generic-rest-properties
- (cons "Rest" (list (list 'restStyle string? 'reststyle))))
-
-(define generic-rest-collision-properties
- (cons "Rest_collision" (list (list 'maximumRestCount number? 'maximum-rest-count))))
-
-(define generic-tie-properties
- (cons "Tie" (list
- (list 'tieVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
-(list 'tieDash number? 'dashed)
- )))
-
-(define generic-tie-column-properties
- (cons "Tie_column" (list
- (list 'tieVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- )))
-
-(define generic-note-column-properties
- (cons "Note_column"
- (list
- (list 'horizontalNoteShift number? 'horizontal-shift)
- (list 'forceHorizontalShift number? 'force-hshift)
- )))
-
-(define generic-collision-properties
- (cons "Collision"
- (list
- (list 'collisionMergeDotted boolean? 'merge-differently-dotted)
- )
- )
- )
-
-(define generic-slur-properties
- (cons "Slur"
- (list
- (list 'slurVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- (list 'slurDash number? 'dashed))))
-
-(define generic-timesig-properties
- (cons "Time_signature"
- (list
- (list 'timeSignatureStyle string? 'style))))
-
-(define (symbol-or-boolean? s)
- (or (boolean? s) (symbol? s)))
-
-(define generic-tuplet-spanner-properties
- (cons "Tuplet_spanner"
- (list
- (list 'tupletNumberVisibility symbol-or-boolean? 'tuplet-number-visibility)
- (list 'tupletBracketVisibility symbol-or-boolean? 'tuplet-bracket-visibility)
- ))
-)
-
-
-
-
-
-;;;;;;;;;;
-;; don't forget to add these to the Generic_property_list property in
-;; engraver.ly
-
-(define generic-voice-properties
- (list
- generic-stem-properties
- generic-breathing-sign-properties
- generic-crescendo-properties
- generic-dynamic-line-spanner-properties
- generic-tie-properties
- generic-tie-column-properties
- generic-tuplet-spanner-properties
- generic-rest-properties
- generic-slur-properties
- generic-beam-properties
- generic-text-properties
- generic-sustain-pedal-properties
- generic-note-column-properties
- generic-script-properties
- generic-All-properties
- ))
-
-(define generic-grace-properties generic-voice-properties)
-(define generic-staff-properties
- (list
- generic-text-properties
- generic-bar-properties
- generic-timesig-properties
- generic-clef-properties
- generic-collision-properties
- generic-sustain-pedal-properties
- generic-rest-collision-properties
- generic-volta-spanner-properties
-; generic-staff-symbol-properties
- generic-All-properties
- )
- )
-(define generic-grand-staff-properties
- (list
- generic-text-properties
- generic-bar-properties
- ))
-
-(define generic-thread-properties
- (list generic-All-properties
- generic-dot-properties
- )
-
- )
-
-(define generic-lyrics-properties
- (list generic-text-properties
- )
-)
-
-(define generic-chord-staff-properties
- (list generic-chord-name-properties
- )
-)
((Instrument_name Left_edge_item) . (extra-space 1.0))
((Left_edge_item Clef_item) . (extra-space 1.0))
((none Left_edge_item) . (extra-space 0.0))
- ((Left_edge_item Staff_bar) . (extra-space 0.0))
+ ((Left_edge_item Staff_bar) . (extra-space 0.0))
; ((none Left_edge_item) . (extra-space -15.0))
; ((none Left_edge_item) . (extra-space -15.0))
((none Clef_item) . (minimum-space 1.0))