merge from 1.6.4 on.
+2002-10-05 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * python/midi.c (midi_error): take two arguments.
+
+ * Merge 1.6.5 changes:
+
+2002-10-04 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * scm/grob-description.scm (minimum-beam-collision-distance): 0.75
+ staff-space. Previous 1.5 was probably meant as half-spaces.
+ (cautionary-style): parentheses (was: smaller). This is what doco
+ says, and it seems more logical.
+
+ * Documentation/user/refman.itely (Chromatic alterations): Bugfix
+ for 2nd sentence.
+
+2002-10-04 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * make/lilypond.redhat.spec.in: various fixes for RedHat 8.0
+
+2002-10-03 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * lily/beam.cc (rest_collision_callback): Fixed: partial rewrite.
+
+2002-09-30 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * scripts/lilypond-book.py (make_pixmap): don't produce empty pages.
+
+2002-09-28 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * scm/translator-property-description.scm (voltaOnThisStaff): add
+ property.
+
+2002-09-28 Werner Lemberg <wl@gnu.org>
+
+ * scm/tex.scm (header-end): Suppress page numbering.
+
+ * scripts/lilypond-book.py (output_dict) <output-texi-quoted>:
+ Fix quotation for HTML output.
+
+2002-09-28 Graham Percival <gperciva@sfu.ca>
+
+ * Documentation/user/refman.itely: grammar and phrasing
+ fixes to "Note Entry" section. Also adds a few new examples.
+
+2002-09-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * flower/include/string-data.icc: include string.h
+
+2002-09-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * scm/chord-name.scm (chord::inner-name-banter): remove space.
+
+2002-09-27 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * Documentation/user/GNUmakefile (extra-local-help): Add.
+
+ * stepmake/stepmake/www-targets.make (local-help): Add.
+
+2002-09-26 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * Documentation/topdocs/INSTALL.texi (Top): recommend binary
+ packages.
+
+ * Documentation/topdocs/README.texi (Top): building documentation
+ (not website.)
+
+2002-09-26 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * Documentation/user/refman.itely:
+ * Documentation/user/tutorial.itely:
+ * Documentation/user/music-glossary.tely: Merge changes.
+
+ * Documentation/user/glossary.html.in:
+ * Documentation/index.texi:
+ * Documentation/header.html.in: Accomodate renaming of glossary.
+
+ * Documentation/user/tutorial.itely: Add some glossary references.
+
+ * Documentation/user/refman.itely: Minor fixes.
+
+ * Documentation/user/lilypond.tely: Add glossary do direntry.
+
+ * Documentation/user/music-glossary.tely: Rename (previously:
+ glossary.tely). Fix anchor placement.
+
+ * Documentation/user/GNUmakefile: Make music-glossary.info too.
+
+2002-09-23 Werner Lemberg <wl@gnu.org>
+
+ * scripts/lilypond-book.py (output_dict): Fix handling of
+ various environments by avoid extraneous newlines.
+ Rename `output-all' regexp for html to `output-html'.
+ Replace `output-all' regexp for texi with `output-texi-quote'
+ and `output-texi-noquote'.
+ (compose_full_body): Don't override `linewidth' user option
+ for `singleline'.
+ (schedule_lilypond_block): Don't indent text specified with
+ `intertext' option.
+ Add new option `noquote'.
+ (compile_all_files): Use latex instead of tex to compile ly
+ files directly.
+
+ * Documentation/user/lilypond-book.itely: Updated and revised.
+ Improve layout.
+
+ * Documentation/user/glossary.tely,
+ Documentation/user/introduction.itely,
+ Documentation/user/tutorial.itely,
+ Documentation/user/refman.itely,
+ Documentation/user/appendices.itely: Fix overfull LilyPond
+ boxes caused by the new lilypond-book code. Other minor
+ fixes.
+
+ * Documentation/user/macros.itexi (@texiflat): Don't emit
+ trailing space.
+
+ * scm/tex.scm (end-output, header-end): Add preamble and
+ postamble to make lilypond output directly compilable with
+ latex.
+
+
+2002-09-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * Documentation/topdocs/INSTALL.texi (Top): bugfix for RH RPM
+ instructions.
+
+2002-09-25 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * Documentation/user/glossary.tely: Add titling and hyperlinks.
+
+2002-09-24 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * lily/beam.cc (connect_beams): don't crash if there are quarter
+ notes in beams.
+
+2002-09-24 Juergen Reuter <reuter@ipd.uka.de>
+
+ * Documentation/user/refman.itely: corrected ancient clef
+ docu; added docu on ligatures
+
+2002-09-21 Juergen Reuter <reuter@ipd.uka.de>
+
+ * Documentation/user/glossary.tely,
+ Documentation/user/refman.itely, input/les-nereides.ly,
+ input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly,
+ input/test/bagpipe.ly, lily/stem.cc, ly/grace-init.ly,
+ scm/grob-property-description.scm, scripts/convert-ly.py: renamed
+ Stem properties: flag-style -> stroke-style, style -> flag-style.
+
+
+2002-09-22 Werner Lemberg <wl@gnu.org>
+
+ * scripts/lilypond-book.py: Add option `notime' to suppress
+ printing of a time signature. Specify default indentation of 0pt
+ if single line fragment. Don't emit redundant `\paper{ }'.
+
+ * Documentation/user/lilypond-book.itely: Updated.
+
+ * Documentation/user/glossary.tely: Completely reformatting.
+
+2002-09-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * GNUmakefile.in (top-web): generate (possibly empty) examples.html
+
+2002-09-22 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * Documentation/user/tutorial.itely: Fix links.
+
+ * Documentation/topdocs/index.tely:
+ * Documentation/index.texi:
+ * Documentation/header.html.in: Small website fixes and updates.
+
+ * debian/: Debian patch by Anthony Fok.
+
+2002-09-21 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * Documentation/footer.html.in: How time flies: It's already 2002!
+
+ * Documentation/topdocs/index.tely: Stable/development fix. Use
+ more descriptive link names than 'here'.
+
2002-10-03 Jan Nieuwenhuizen <janneke@gnu.org>
* lily/beam.cc (rest_collision_callback): Fixed: partial rewrite.
2002-09-29 Jan Nieuwenhuizen <janneke@gnu.org>
-
* lily/: some (c) header fixes.
* lily/request-chord.cc: Remove.
@node Tuning per object
@subsection Tuning per object
+@cindex \once
Tuning a single object is most often done with @code{\property}. The
form,
@example
@ifnothtml
templates, examples and feature tests.
@end ifnothtml
-If you want to see real action LilyPond, head over to
+If you want to see real action lilypond then head over to
@uref{http://www.mutopiaproject.org}, which has many examples of
classical music typeset with LilyPond.
* Deeper integration of the input language and Scheme. You can now use
LilyPond identifiers in Scheme, and use Scheme expressions instead of
LilyPond identifiers.
+
+* Music types cleaned up and Schemified.
+
+New features in 1.6 since 1.4
+
+* Support for figured bass and tablature.
+
+* Completely rewritten beam formatting: provides much better output
+now.
+
+* Completely revised and improved music font.
+
+* Completely rewritten MIDI import support.
+
+* Completely rewritten grace note support. Practically speaking this
+means that grace notes can be slurred to normal normal notes.
+
+* Improved accidental handling and formatting: styles for producing
+cautionaries may vary, and complex collisions between accidentals of a
+chord are handled much better.
+
+* Better spacing: both globally and locally. This includes subtle
+details like optical stem spacing.
+
+* More support for ancient notation: mensural ligatures, ambitus
+(pitch range) of voices, more shapes, etc.
+
+* More support for piano notation: bracket pedals, directed arpeggios,
+arpeggio brackets.
+
+* Easier music polyphonic music entry.
+
+* More extensibility, many speedups and bugfixes
+
+* The manual has been thoroughly revised.
+
+* Development is now hosted at http://savannah.gnu.org, and sources
+can be downloaded through anonymous CVS.
+
+* Support for windows: LilyPond is part of the cygwin distribution,
+which comes with a user-friendly installer.
+
}
ENTER_DESCRIPTION(A2_engraver,
-/* descr */ "Part combine engraver for orchestral scores.
-
-The markings @emph{a2}, @emph{Solo} and @emph{Solo II}, are
-created by this engraver. It also acts upon instructions of the part
-combiner. Another thing that the this engraver, is forcing of stem,
-slur and tie directions, always when both threads are not identical;
-up for the musicexpr called @code{one}, down for the musicexpr called
-@code{two}.
+/* descr */ "Part combine engraver for orchestral scores. \
+ \
+The markings @emph{a2}, @emph{Solo} and @emph{Solo II}, are \
+created by this engraver. It also acts upon instructions of the part \
+combiner. Another thing that the this engraver, is forcing of stem, \
+slur and tie directions, always when both threads are not identical; \
+up for the musicexpr called @code{one}, down for the musicexpr called \
+@code{two}. \
",
/* creats*/ "TextScript",
};
IMPLEMENT_CTOR_CALLBACK(Bar_check_iterator);
+
Bar_check_iterator::Bar_check_iterator()
{
}
ENTER_DESCRIPTION(Grob_pq_engraver,
-/* descr */ "Administrate when certain grobs (eg. note heads) stop playing; this
-engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.
-",
-/* creats*/ "",
-/* accepts */ "",
-/* acks */ "grob-interface",
-/* reads */ "busyGrobs",
+
+/* descr */ "Administrate when certain grobs (eg. note heads) stop playing; this \
+engraver is a sort-of a failure, since it doesn't handle all sorts of \
+borderline cases very well. \
+", \
+
+/* creats*/ "", \
+/* accepts */ "", \
+/* acks */ "grob-interface", \
+/* reads */ "busyGrobs", \
/* write */ "busyGrobs");
ADD_INTERFACE (Hara_kiri_group_spanner,"hara-kiri-group-interface",
- " As Vertical_group_spanner, but keep track of interesting items. If
-we don't contain any interesting items after linebreaking, then
-gracefully commit suicide. Objective: don't disgrace Lily by
-typesetting empty lines in orchestral scores.",
+ " As Vertical_group_spanner, but keep track of interesting items. If \
+we don't contain any interesting items after linebreaking, then \
+gracefully commit suicide. Objective: don't disgrace Lily by \
+typesetting empty lines in orchestral scores.", \
"items-worth-living");
Music* make_music_by_name (SCM sym);
-
#endif // MUSIC_HH
scm_init_funcs_->push (f);
}
+
void
ly_init_ly_module (void *data)
{
#include "simple-music-iterator.hh"
#include "ly-smobs.icc"
+#include "ly-smobs.icc"
+
Music_iterator::Music_iterator ()
{
music_ = 0;
ENTER_DESCRIPTION(Note_head_line_engraver,
-/* descr */ "Engrave a line between two note heads, for example a glissando.
-If followVoice is set, staff switches also generate a line.",
+/* descr */ "Engrave a line between two note heads, for example a glissando. If
+followVoice is set, staff switches also generate a line.",
/* creats*/ "Glissando VoiceFollower",
/* accepts */ "glissando-event",
/* acks */ "rhythmic-head-interface",
*/
-#include <iostream.h>
#include <ctype.h>
#include "translator-def.hh"
}
+
bool
is_duration_b (int t)
{
THIS->parser_error (_ ("First argument must be a procedure taking one argument"));
}
- Music*m = MY_MAKE_MUSIC("OutputPropertySetMusic");
+ Music*m = MY_MAKE_MUSIC("OutputPropertySetMusic");
m->set_mus_property ("predicate", pred);
m->set_mus_property ("grob-property", $3);
m->set_mus_property ("grob-value", $5);
| AUTOCHANGE STRING Music {
Music*chm = MY_MAKE_MUSIC("AutoChangeMusic");
chm->set_mus_property ("element", $3->self_scm ());
+ chm->set_mus_property ("iterator-ctor", Auto_change_iterator::constructor_proc);
scm_gc_unprotect_object ($3->self_scm ());
chm->set_mus_property ("what", $2);
= gh_equal_p ($4, scm_makfrom0str ("autoBeamSettings"));
bool itc = internal_type_checking_global_b;
Music *t = MY_MAKE_MUSIC("OverrideProperty");
-
t->set_mus_property ("symbol", scm_string_to_symbol ($4));
t->set_mus_property ("pop-first", SCM_BOOL_T);
if (autobeam)
second_iter_ = 0;
first_until_ = 0;
second_until_ = 0;
-
state_ = 0;
}
Part_combine_music_iterator::construct_children ()
{
SCM lst = get_music ()->get_mus_property ("elements");
-
-
+
first_iter_ = unsmob_iterator (get_iterator (unsmob_music (gh_car (lst))));
second_iter_ = unsmob_iterator (get_iterator (unsmob_music (gh_cadr (lst))));
}
{
}
-
Moment
Sequential_music::get_length () const
{
Simultaneous_music::Simultaneous_music()
{
+
}
Pitch
SCM flag_style_scm = me->get_grob_property ("flag-style");
if (gh_symbol_p (flag_style_scm))
{
- flag_style = (ly_scm2string (scm_symbol_to_string (flag_style_scm)));
+ flag_style = ly_scm2string (scm_symbol_to_string (flag_style_scm));
}
else
{
static PyObject *Midi_warning;
static PyObject *
-midi_error (char *s)
+midi_error (char * func, char *s)
{
- PyErr_SetString (Midi_error, s);
+ char*dest = (char*) malloc (sizeof (char) * (strlen (func) + strlen (s) + 1));
+ strcpy (dest, func);
+ strcat (dest, s);
+ PyErr_SetString (Midi_error, dest);
+ free (dest);
+
return 0;
}
debug_print ("%s", "\n");
if (strcmp (*track, "MTrk"))
- return midi_error (__FUNCTION__ ": MTrk expected");
+ return midi_error (__FUNCTION__, ": MTrk expected");
*track += 4;
debug_print ("track end: %p\n", track + track_len);
if (track_len > track_size)
- return midi_error (__FUNCTION__ ": track size corrupt");
+ return midi_error (__FUNCTION__, ": track size corrupt");
pytrack = PyList_New (0);
return 0;
if (track_size < 0)
- return midi_error (__FUNCTION__ ": negative track size");
+ return midi_error (__FUNCTION__, ": negative track size");
track_end = track + track_size;
if (header_len < 6)
- return midi_error (__FUNCTION__ ": header too short");
+ return midi_error (__FUNCTION__, ": header too short");
format = get_number (midi, *midi + 2, 2);
tracks = get_number (midi, *midi + 2, 2);
if (tracks > 32)
- return midi_error (__FUNCTION__ ": too many tracks");
+ return midi_error (__FUNCTION__, ": too many tracks");
division = get_number (midi, *midi + 2, 2) * 4;
return 0;
if (strcmp (midi, "MThd"))
- return midi_error (__FUNCTION__ ": MThd expected");
+ return midi_error (__FUNCTION__, ": MThd expected");
midi += 4;
(grob-value . ,t)
(pop-first . #t)))
m
+
)
)
(use-modules (ice-9 regex))
+;;(write standalone (current-error-port))
+
+
;;; General settings
;; debugging evaluator is slower.