subsect(NEWS) label(news)
+description(
+ dit(BUG FIXES)
+ itemize(
+ it() Error: Python path: Python installation is required nl()
+ Users reported problems with the installer finding the python
+ path for some versions of Python namely 1.5. I am using a
+ slightly different approach so that problem should be solved.
+ Thanks to Mats Bengtsson and Wolfgang Fischler reporting and
+ helping with this issue.
+ it() Unable to find lilyponddefs.tex nl()
+ This was due to using version version 1.07 of MiKTeX. I have
+ add known working versions for all of the required software
+ packages, per Mats suggestion. See link(Required
+ Packages)(packages).
+ )
+)
+
+description(
+ dit(NOTES)
+ itemize(
+ it() Please use the Add/Remove program control panel entry to
+ unistall your current version of Lilypond before you attempt to
+ install this one.
+
+ it() If you are upgrading from a previous version of lilypond you will most
+ likely need to flush your font cache. I generally just toss
+ file(D:\localtexmf\fonts\tfm\public\ehrhardt) and
+ file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle
+ Bin. Your local font directory may be different, please refer to your
+ local installation of code(TeX).
+ )
+)
+
+
The FAT16, FAT32, and NTFS file system problems have been corrected.
I have tested various installations that are known to be operational.
The following configurations that have been tested.
it()convert-mudela
it()mudela-book
it()lilypond
- it()mi2mu
+ it()midi2ly
)
-If you are upgrading from a previous version of lilypond you will most
-likely need to flush your font cache. I generally just toss
-file(D:\localtexmf\fonts\tfm\public\ehrhardt) and
-file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle
-Bin. Your local font directory may be different, please refer to your
-local installation of code(TeX).
I have also converted the Manual Pages for the above tools to HTML for
easy browsing. This release has been tested on Windows NT 4.0sp3 and
clearpage()
-subsect(Required packages) label(packages)
+subsect(Required Packages) label(packages)
LilyPond uses the code(TeX) package as its rendering engine. code(TeX)
represents the state-of-the-art in computer typesetting. It is used to
LilyPond.
itemize(
- it()url(code(MiKTeX))(http://www.snafu.de/~cschenk/miktex/)
- it()url(code(Python))(http://www.python.org)
- it()url(code(gsview))(http://www.cs.wisc.edu/~ghost/gsview/index.html)
+ it()url(code(MiKTeX))(http://www.snafu.de/~cschenk/miktex/). Versions
+ 1.10b, 1.11, and 1.20b are known to work.
+ it()url(code(Python))(http://www.python.org). Version 1.5.1 and
+ possibly 1.5 work.
+ it()url(code(gsview))(http://www.cs.wisc.edu/~ghost/gsview/index.html).
+ Version 5.10 is known to work.
)
link(Back to top)(contents)
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl WARNING WARNING WARNING WARNING
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
operator Rational();
Scalar() {}
bool isnum_b() const;
+ bool isdir_b() const;
+ bool isint_b() const;
operator Real();
operator int();
bool to_bool () const;
return Rational (s1.value_i (), s2.value_i ());
}
+bool
+Scalar::isdir_b () const
+{
+ int conv = length_i ();
+ if (conv)
+ {
+ long l =0;
+ conv = sscanf (strh_.ch_C (), "%ld", &l);
+ conv = conv && (l >= -1 && l <= 1);
+ }
+ return conv;
+}
+
bool
Scalar::isnum_b () const
{
c' d e f |
\repeat semi 2 { g a b c }
-\alternative { { c b a g a g a g} { f e d c } } \break
-%c, d e f | % Assertion failure if this line is removed!!
+\alternative { { c b a g a g a g} { f e d c } }
\repeat semi 2 { g a b c }
-\alternative { { c b a g \break a g a g} { f e d c } } \break
+\alternative { { c b a g \break a g a g} { f e d c } }
c, d e f |
\repeat semi 2 { g a b c }
-\alternative { { c b a g \break a g a g \break a b a b } { f e d c } } \break
+\alternative { { c b a g \break a g a g \break a b a b } { f e d c } }
c, d e f |
\repeat semi 2 { g a b c }
-\alternative { { c b a g } { f e d c \break a g a g} } \break
+\alternative { { c b a g } { f e d c \break a g a g} }
c, d e f |
\repeat semi 2 { g a b c }
\alternative { { c b a g a g a g} { f e d c \bar "|.";} }
+#if 0
/*
abbreviation-beam.cc -- implement Abbreviation_beam
*/
return Beam::stem_beams (here, next, prev);
}
+#endif
*/
class Align_note_column_engraver: public Engraver
{
- Axis_align_item * align_item_p_;
+ Grace_align_item * align_item_p_;
Note_column * now_column_l_;
Local_key_item * accidental_l_;
void
Align_note_column_engraver::do_removal_processing ()
{
+ Scalar al = get_property ("graceAlignPosition", 0);
+ if (al.isdir_b ())
+ {
+ align_item_p_->notehead_align_dir_ = int (al);
+ }
+
typeset_element (align_item_p_);
align_item_p_ =0;
}
Dot_column::Dot_column ()
{
- align_dir_ = RIGHT;
+ notehead_align_dir_ = RIGHT;
set_axes(X_AXIS,X_AXIS);
}
representing a musical notation symbol. */
Protected_scm func_;
Protected_scm font_;
+
+ /*
+ TODO: move this into the font_ field.
+ */
Protected_scm magn_;
};
class Axis_group_element : public virtual Score_element,
public virtual Graphical_axis_group
{
+ Link_array<Score_element> extra_elems_;
+
protected:
virtual void do_print() const;
virtual Link_array<Score_element> get_extra_dependencies() const;
- virtual Interval do_height () const;
- virtual Interval do_width () const;
-public:
virtual void do_substitute_element_pointer (Score_element*,Score_element*);
virtual Link_array<Score_element> elem_l_arr() const;
+
+ virtual Interval do_height () const;
+ virtual Interval do_width () const;
+
+
+Interval extra_extent (Axis a ) const;
+
+public:
+ /**
+ add an element that only influences size, but does not have X/Y parent
+ relationship with THIS.
+ */
+ void add_extra_element (Score_element*);
+
+
Axis_group_element ();
virtual void set_axes (Axis,Axis);
#define LILY_PROTO_HH
#include "proto.hh"
-struct Absolute_dynamic_req;
-struct Stem_tremolo;
+
+
struct Abbreviation_beam;
-struct Abbreviation_beam_req;
struct Abbreviation_beam_engraver;
-struct Tremolo_req;
-struct Adobe_font_metric;
+struct Abbreviation_beam_req;
+struct Absolute_dynamic_req;
struct Adobe_font_char_metric;
+struct Adobe_font_metric;
+struct Align_element;
struct All_font_metrics;
struct Articulation_req;
struct Atom;
+struct Audio_column;
struct Audio_element;
struct Audio_element_info;
-struct Audio_column;
-struct Audio_item;
struct Audio_instrument;
+struct Audio_item;
struct Audio_key;
-struct Audio_text;
-struct Audio_time_signature;
struct Audio_note;
struct Audio_note_off;
-struct Audio_tie;
struct Audio_staff;
struct Audio_tempo;
+struct Audio_text;
+struct Audio_tie;
+struct Audio_time_signature;
struct Auto_beam_engraver;
-struct Axis_group_element;
-struct Axis_group_spanner;
-struct Axis_group_item;
struct Axis_align_item;
struct Axis_group;
+struct Axis_group_element;
+struct Axis_group_item;
+struct Axis_group_spanner;
struct Bar;
-struct Bar_column_engraver;
struct Bar_column;
+struct Bar_column_engraver;
struct Bar_engraver;
struct Bar_req;
struct Barcheck_req;
struct Bracket_req;
struct Break_align_item;
struct Break_req;
+struct CHyphen_req;
struct Cadenza_req;
struct Change_iterator;
struct Change_translator;
struct Chord;
struct Chord_name_engraver;
-struct CHyphen_req;
struct Clef_change_req;
-struct Clef_item;
struct Clef_engraver;
+struct Clef_item;
struct Clef_performer;
-struct Column_x_positions;
-struct Column_info;
-struct Column_spring;
struct Collision;
struct Collision_engraver;
+struct Column_info;
+struct Column_spring;
+struct Column_x_positions;
struct Command_req;
struct Command_script_req;
struct Command_tie_engraver;
-struct Time_scaled_music;
-struct Time_scaled_music_iterator;
struct Crescendo ;
-struct Dots;
-struct Dot_column;
struct Directional_spanner;
+struct Dot_column;
+struct Dots;
struct Durational_req;
struct Dynamic;
struct Dynamic_req;
struct Engraver_group_engraver;
struct Extender;
struct Extender_req;
-struct Script;
-struct Script_req;
-struct Staff_side_item;
-struct Text_item;
+struct Folded_repeat_iterator;
struct General_script_def;
-struct Graphical_element;
-
-struct Graphical_axis_group;
struct Global_translator;
-struct Hara_kiri_line_group_engraver;
+struct Grace_align_item;
+struct Graphical_axis_group;
+struct Graphical_element;
struct Hara_kiri_group_spanner;
+struct Hara_kiri_line_group_engraver;
struct Head_column;
-
struct Idealspacing;
struct Identifier;
struct Input_file;
struct Item;
struct Key;
struct Key_change_req;
-struct Key_item;
struct Key_engraver;
+struct Key_item;
struct Key_performer;
struct Keyword;
struct Keyword_table;
struct Line_spacer;
struct Linestaff;
struct Local_key;
-struct Local_key_item;
struct Local_key_engraver;
+struct Local_key_item;
struct Lookup;
struct Lyric_item;
struct Lyric_req;
struct Midi_header;
struct Midi_item;
struct Midi_key;
-struct Midi_time_signature;
struct Midi_note;
struct Midi_note_event;
struct Midi_note_off;
struct Midi_score;
struct Midi_stream;
struct Midi_tempo;
+struct Midi_time_signature;
struct Midi_track;
struct Midi_walker;
struct Mixed_qp;
struct Molecule;
struct Multi_measure_rest;
-struct Multi_measure_rest_req;
struct Multi_measure_rest_engraver;
+struct Multi_measure_rest_req;
struct Music;
struct Music_iterator;
-struct Musical_req;
-struct Musical_span_req;
-struct Musical_script_req;
struct Music_list;
struct Music_list_iterator;
struct Music_output;
struct Music_output_def;
-struct Musical_pitch;
struct Music_sequence;
struct Music_wrapper;
struct Music_wrapper_iterator;
+struct Musical_pitch;
+struct Musical_req;
+struct Musical_script_req;
+struct Musical_span_req;
struct My_lily_lexer;
struct My_lily_parser;
struct Note_column;
struct Note_column_engraver;
-struct Note_performer;
-struct Note_req;
struct Note_head;
struct Note_head_engraver;
+struct Note_performer;
+struct Note_req;
struct Notename_table;
-struct Repeated_music;
-struct Unfolded_repeat_iterator;
-struct Folded_repeat_iterator;
struct Offset;
struct Paper_column;
struct Paper_def;
struct Partial_measure_req;
struct Performance;
struct Performer;
-struct Tuplet_spanner;
-struct Piano_brace;
struct Performer;
struct Performer_group_performer;
+struct Piano_brace;
struct Property_iterator;
struct Rational;
-struct Request;
-struct Request_column;
-struct Relative_octave_music;
struct Re_rhythmed_music;
+struct Relative_octave_music;
struct Repeat_engraver;
struct Repeated_music;
+struct Repeated_music;
struct Repeated_music_iterator;
+struct Request;
+struct Request_chord;
+struct Request_column;
struct Rest;
struct Rest_collision;
struct Rest_collision_engraver;
struct Rest_req;
struct Rhythmic_grouping;
-struct Rhythmic_head;
struct Rhythmic_grouping_req;
+struct Rhythmic_head;
struct Rhythmic_req;
struct Scope;
-struct Separating_group_spanner;
struct Score;
struct Score_column;
struct Score_element;
struct Score_element_info;
struct Score_performer;
+struct Script;
+struct Script_req;
+struct Separating_group_spanner;
+struct Sequential_music;
struct Simple_music;
struct Simultaneous_music;
struct Single_malt_grouping_item;
struct Slur_engraver;
struct Spacing_spanner;
struct Span_bar;
-struct Span_score_bar;
struct Span_req;
+struct Span_score_bar;
struct Spanner;
struct Spring;
struct Spring_spacer;
struct Staff_bracket;
struct Staff_performer;
struct Staff_side;
+struct Staff_side_item;
struct Staff_symbol;
struct Stem;
struct Stem_beam_engraver;
struct Stem_req;
+struct Stem_tremolo;
struct String;
+struct Super_element;
struct Symtable;
struct Symtables;
-struct Super_element;
-struct Translation_property;
struct Tempo_req;
struct Tex_font_char_metric;
struct Tex_font_metric;
struct Tex_font_metric_reader;
struct Text_def;
+struct Text_engraver;
struct Text_gob;
struct Text_item ;
-struct Text_engraver;
+struct Text_item;
struct Text_req;
struct Text_spanner;
struct Tie;
struct Tie_engraver;
struct Tie_req;
struct Time_description;
+struct Time_scaled_music;
+struct Time_scaled_music_iterator;
struct Time_signature;
struct Time_signature_change_req;
struct Time_signature_engraver;
struct Time_signature_performer;
+struct Timing_engraver;
+struct Timing_req;
+struct Timing_translator;
struct Tonic_req;
+struct Translation_property;
struct Translator;
struct Translator_group;
-struct Timing_req;
-struct Timing_translator;
-struct Timing_engraver;
+struct Tremolo_req;
+struct Tuplet_spanner;
+struct Unfolded_repeat_iterator;
struct Vertical_brace;
struct Vertical_spanner;
-
struct Volta_spanner;
-struct Align_element;
-struct Sequential_music;
-struct Request_chord;
typedef Rational Moment;
typedef Scope Header;
#include "engraver.hh"
#include "key.hh"
#include "parray.hh"
-
+/**
+ Make accidentals. Catches note heads, ties and notices key-change
+ events. Due to interaction with ties (which don't come together
+ with note heads), this needs to be in a context higher than Tie_engraver.
+ (FIXME).
+ */
struct Local_key_engraver : Engraver {
Local_key_item *key_item_p_;
protected:
Link_array<Item > tied_l_arr_;
Local_key_engraver();
bool self_grace_b_;
-
+ Grace_align_item * grace_align_l_;
};
#endif // LOCALKEYGRAV_HH
{
Link_array<Item> support_l_arr_;
public:
- Direction align_dir_;
+ // naming to avoid conflict with Align_element
+ Direction notehead_align_dir_;
Note_head_side ();
void add_support (Item*);
)
*/
+ Real step = 1.0;
+ int minht = 2 * staff_size;
+ int maxht = 7 * minht;
+ int idx = ((maxht - step) <? y - minht) / step;
+ idx = idx >? 0;
- Atom at (gh_list (pianobrace_scm_sym,
- gh_double2scm (y),
- gh_int2scm (staff_size),
- SCM_UNDEFINED
- ));
+ SCM f = ly_symbol (String ("feta-braces" + to_str (staff_size)));
+ SCM e =gh_list (char_scm_sym, gh_int2scm (idx), SCM_UNDEFINED);
+ Atom at (e);
+ at.font_ = f;
m.dim_[Y_AXIS] = Interval (-y/2,y/2);
m.dim_[X_AXIS] = Interval (0,0);
if (x_int.empty_b ())
x_int = Interval(0,0);
- translate_axis (-extent(X_AXIS)[-align_dir_] + x_int[align_dir_], X_AXIS);
+ translate_axis (-extent(X_AXIS)[-notehead_align_dir_] + x_int[notehead_align_dir_], X_AXIS);
}
void
Note_head_side:: Note_head_side()
{
- align_dir_ = LEFT;
+ notehead_align_dir_ = LEFT;
}
\consists "Staff_symbol_engraver";
\consists "Collision_engraver";
\consists "Rest_collision_engraver";
+ \consists "Local_key_engraver";
+
\consistsend "Axis_group_engraver";
\type "Engraver_group_engraver";
\consists "Dynamic_engraver"; % must come before text_engraver.
\name Voice ;
- \consists "Local_key_engraver";
-
+
+ \consists "Tie_engraver";
\consists "Breathing_sign_engraver";
\consists "Rest_engraver";
\consists "Dot_column_engraver";
\consists "Rhythmic_column_engraver";
\consists "Font_size_engraver";
\consists "Slur_engraver";
- \consists "Tie_engraver";
\consists "Tuplet_engraver";
\consists "Grace_position_engraver";
\consists "Skip_req_swallow_translator";
\property Voice.slurdash = 1
-%{
- for grace note hack, see input/test/grace.ly
-%}
tupletoff = {
\property Voice.tupletVisibility = 0
}
}
tiny = {
\property Voice.fontSize= "-2"
- \tupletoff %urg
}
small = {
normalsize = {
\property Voice.fontSize= "0"
- \tupleton %urg
-}
-
-%{
- [urg: try at] temporary grace note hack
- the total visible duration of the grace notes must be half
- the duration of the 'at' note: e.g.:
-
- \grace b8 \graceat c4 \ecarg
- \grace c16 b16 \graceat c4 \ecarg
-
-grace = {
- \tiny
-% it would be so cool not to have to specify these factors each time...
-% :-(
- \property Voice.tupletVisibility = 0
- \[1/16
}
-graceat = \melodic {
- \normalsize
- \property Voice.tupletVisibility = 0
- \] \[31/32
-}
-
-ecarg = \melodic {
- \property Voice.tupletVisibility = 0
- \]
- \property Voice.tupletVisibility = 3
-}
-%}
-
normalkey = {
\property Staff.keyoctaviation = 1
}
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl WARNING WARNING WARNING WARNING
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
distdir=/tmp/${name}
-rm -f ${srcdir}/config.cache
-PYTHON=${PYTHON:-python} ${srcdir}/configure --prefix=${distdir} \
- --srcdir=${srcdir}
+#
+# Maybe we can get away without reconfiguring
+#
+# rm -f ${srcdir}/config.cache
+# PYTHON=${PYTHON:-python} ${srcdir}/configure --prefix=${distdir} \
+# --srcdir=${srcdir}
if ! make ; then
echo "make failed"
#
mkdir $distdir/doc
cp Documentation/man/out/*.html $distdir/doc
+
+#
+# copy web documentation to web directory
+#
+mkdir $distdir/web
+for i in index.html guile.patch angels.ly
+do
+ cp Documentation/ntweb/out/$i $distdir/web || exit 1
+done
+
+#
+# Zip it up
+#
cd $distdir/..
$ZIP_CMD $ZIP_FILE $name
echo "Wrote $ZIP_FILE"