From 9e57e9f817623460d2ee89496c4aff69accdaf47 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 02:04:19 +0000 Subject: [PATCH] lilypond-1.5.23 --- Documentation/topdocs/INSTALL.texi | 6 +- Documentation/user/converters.itely | 36 ++----- Documentation/user/refman.itely | 10 +- Documentation/windows/installing.texi | 124 +++++++++++++++++-------- lily/completion-note-heads-engraver.cc | 2 +- lily/grob.cc | 2 +- lily/lily-guile.cc | 6 ++ lily/note-heads-engraver.cc | 2 +- lily/paper-outputter.cc | 2 +- lily/text-engraver.cc | 3 +- scm/ascii-script.scm | 4 +- scm/lily.scm | 7 +- scm/ps.scm | 19 ++-- scm/pysk.scm | 5 +- scm/tex.scm | 27 +++--- scripts/abc2ly.py | 6 ++ scripts/etf2ly.py | 4 +- 17 files changed, 154 insertions(+), 111 deletions(-) diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index dd4b50599a..e542171569 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -171,12 +171,10 @@ configure something like: @item pktrace, [OPTIONAL], needed for generating PostScript Type1 -fonts. Get it from - @uref{http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz} +fonts. Get it from @uref{http://www.cs.uu.nl/~hanwen/pktrace/} @item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1 -fonts. You must apply the patch included pktrace-0.1 first. -@uref{http://autotrace.sourceforge.net}. +fonts. @uref{http://autotrace.sourceforge.net}. @item MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not include diff --git a/Documentation/user/converters.itely b/Documentation/user/converters.itely index 05e31d59ff..1d1e75b1b9 100644 --- a/Documentation/user/converters.itely +++ b/Documentation/user/converters.itely @@ -33,8 +33,10 @@ therefore not recommended to use midi2ly for human-generated midi files. Correcting the quantization mistakes of the human player takes a lot of time. -Hackers who know about signal processing are invited to write a more -robust midi2ly. +Hackers who know about signal processing are invited to write a more +robust midi2ly. midi2ly is written in Python, using a module written in +C to parse the MIDI files. + @subsection Invoking midi2ly @@ -75,12 +77,6 @@ robust midi2ly. @end table -Report bugs to @email{bug-lilypond@@gnu.org}. - - -Written by @email{Jan Nieuwenhuizen, janneke@@gnu.org}. - - @node etf2ly @section etf2ly @@ -111,11 +107,9 @@ version information @refbugs -Known: articulation scripts are buggy. Empty measures confuse etf2ly. - -Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}. +The list of articulation scripts is incomplete. Empty measures confuse +etf2ly. -Report bugs to @email{bug-lilypond@@gnu.org}. @node abc2ly @section abc2ly @@ -172,18 +166,12 @@ not. abc2ly ignores the ABC beaming. -Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}. -@c How about Laura? /MB - -Report bugs to @email{bug-lilypond@@gnu.org}. - @node pmx2ly @section pmx2ly PMX is a MusiXTeX preprocessor written by Don Simons, see @uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}. -Report bugs to @email{bug-lilypond@@gnu.org}. @subsection Invoking pmx2ly @@ -204,10 +192,6 @@ set output filename to FILE version information @end table -Report bugs to @email{bug-lilypond@@gnu.org}. - -Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}. - @node musedata2ly @section musedata2ly @@ -242,10 +226,6 @@ version information @var{REFFILE} @end table -Report bugs to @email{bug-lilypond@@gnu.org}. - -Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}. - @node mup2ly @section mup2ly @@ -287,9 +267,5 @@ print warranty and copyright. Mup2ly comes with absolutely @strong{NO WARRANTY} Currently, only plain notes (pitches, durations), voices and staves are converted. -Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly. - -Report bugs to @email{bug-lilypond@@gnu.org}. - diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 7acb95d58a..12adf9a8c4 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -329,7 +329,7 @@ r1 r2 r4 r8 r16 r32 r64 r64 @lilypond[] \score { \notes \relative c'' { - a\breve \autoBeamOff + a\breve \autoBeamOff a1 a2 a4 a8 a16 a32 a64 a64 r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r64 @@ -609,6 +609,7 @@ Shortcut for \property Staff.clefOctavation = @var{extra transposition of clefname} @end example + Any change in these properties creates a clef (A @internalsref{Clef} grob). Supported clef-names include @@ -640,7 +641,12 @@ G clef on 2nd line @end table By adding @code{_8} or @code{^8} to the clef name, the clef is -transposed one octave down or up, respectively. +transposed one octave down or up, respectively. Note that you have to +enclose @var{clefname} in quotes if you use underscores or digits in the +name. For example, +@example + \clef "G_8" +@end example Supported associated glyphs (for @code{Staff.clefGlyph}) are: diff --git a/Documentation/windows/installing.texi b/Documentation/windows/installing.texi index 2df724461a..daa584aca5 100644 --- a/Documentation/windows/installing.texi +++ b/Documentation/windows/installing.texi @@ -19,41 +19,30 @@ users. Please remember that we (the developers) rather dislike windows, and none of us use it. Don't complain to us that installing LilyPond is too difficult; rather, if you know something about your Windows, send us code that works better (see @uref{compiling.html,compiling}). +Nevertheless, detailed bug reports are appreciated; before you send a +report, make sure to read the section on bugreports below. -@section Windows binary setup - -Apart from LilyPond itself, you need Cygwin, GUILE, Python and a TeX -installation, but all this software be installed by running setup.exe: - -@table @asis -@item LilyPond -Download and run -@c let's do http, so that people read the README -@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe} -to install LilyPond. -This will install the minimal set of cygwin tools needed to run -LilyPond. Make sure to install in the default place, @file{c:/cygwin}, -and install everything. +@section Windows binary setup -As of version 1.3.150, you also have the option to install MiKTeX and -GSView from this installer, which is recommended. If you choose to -install these by hand (see below), make sure to install them -@strong{before} you install LilyPond, otherwise your LilyPond setup will -be broken. -If you already have cygwin installed, don't worry: nothing will be -installed twice. To expand on this minimal set, click -@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a -Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}. -@end table +All the software you need is installed by downloading and running +@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}. You +will be asked some questions. If you are unsure just click "Next". Do +not change the default install directory @file{c:/cygwin}. +This installs LilyPond, and Cygwin, GUILE, Python, MiKTeX and GSView If +you already have some of that software under @file{c:/cygwin}, then +don't worry: nothing will be installed twice. -@section Windows running setup +If you want to install any of this software by hand, do this +@strong{before} you run @file{setup.exe}, otherwise your LilyPond setup +will not work. -If you're lucky, after running @file{setup.exe} you're all set up. +@section Testing LilyPond -Open a LilyPond shell (or any bash shell), and type +Open a LilyPond shell (To open a a lilypond shell, click the "GNU +LilyPond" icon), and type @quotation @example @@ -61,7 +50,7 @@ lilypond --help @end example @end quotation -If you don't see something similar to +You should see something similar to @quotation @example @@ -79,25 +68,71 @@ Options: @end example @end quotation -you should try adding @file{/usr/lilypond-x.y.z/bin} to your @var{PATH}, -do: +Then, prepare a file called @file{foo.ly}, by issuing +@example +notepad foo.ly +@end example +Enter the following into the file +@example + +\score @{ \notes @{ c4 ( ) c4 @} @} + +@end example +Close the file and save it. Run the following command a few times until +it says @code{PS output to `foo.ps', DVI output to `foo.dvi'}. +@example + +ly2dvi -P foo + +@end example +You can now view the file using the following command +@example + +gsview32 foo.ps + +@end example + +If this works, then you can head to the +@uref{../../user/out-www/lilypond/Tutorial.html,Tutorial} to start using +LilyPond. + + +@section Removing LilyPond + +Start @file{setup.exe}, click Next, select "Install from Local +Directory". Then click next until you reach "Select packages to +install". Click "View". Now, for every package, click on the recycle +icon until it says "Uninstall". Then, click Next. + +(If you find this too tedious, you can also simply remove +@file{c:/cygwin}. This also removes the @file{/home/} directories under +cygwin (i.e. @file{C:\CYGWIN\HOME}, so make sure that you bring +important files in safety first.) + +@section Troubleshooting + + +@unnumberedsubsec invoking lilypond --help doesn't work + +Open the shell, and try adding @file{/usr/lilypond-x.y.z/bin} to your +@var{PATH}, do: @quotation @example PATH=/usr/lilypond-1.4.2/bin:$PATH @end example @end quotation -and try again. - - -@subsection Trouble +Now, invoke @file{lilypond --help} For problems and solutions see @uref{http://lilypond.org/wiki?TroubleshootingWindows,Troubleshooting Windows} + + +@ignore @subsection Additional software LilyPond needs a number of software packages to be really useful. These @@ -141,11 +176,8 @@ Click @uref{ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs650/gs650w32.exe @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}. or visit the @uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}. - @end table - - [TODO: @@ -154,9 +186,6 @@ emacs-on-cygwin setup. ] - -@ignore - guile -v Guile 1.4.1 @@ -188,4 +217,19 @@ in each corner. @end ignore +@ignore +@c irrelevant. + +If you want to install more of cygwnTo expand on this minimal set, +@section If you already have MikTeX, GSView or +If you already have cygwin installed, don't worry: nothing will be +installed twice. To expand on this minimal set, click +@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a +Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}. + + +This will install the minimal set of cygwin tools needed to run +LilyPond. Make sure to install in the default place, @file{c:/cygwin}, +and install everything. +@end ignore diff --git a/lily/completion-note-heads-engraver.cc b/lily/completion-note-heads-engraver.cc index 965f6cda80..85609c295a 100644 --- a/lily/completion-note-heads-engraver.cc +++ b/lily/completion-note-heads-engraver.cc @@ -302,5 +302,5 @@ ENTER_DESCRIPTION(Completion_heads_engraver, break long notes and automatically tie them into the next measure.", /* creats*/ "NoteHead Dots", /* acks */ "", -/* reads */ "", +/* reads */ "easyPlay centralCPosition measurePosition measureLength", /* write */ ""); diff --git a/lily/grob.cc b/lily/grob.cc index 3f35eb86b8..4251e16c5e 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -397,7 +397,7 @@ Grob::handle_broken_grobs (SCM src, SCM criterion) return SCM_UNDEFINED; } } - else if (SCM_CONSP (src)) + else if (ly_pair_p (src)) // SCM_CONSP (src)) // huh? { SCM oldcar =ly_car (src); /* diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 42d28ecdd5..e01fd24b30 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -266,8 +266,11 @@ init_lily_guile (String p ) // todo: junk this. We should make real modules iso. just loading files. prepend_load_path (p + "/scm/"); + +#if GUILE_MINOR_VERSION >= 5 SCM last_mod = scm_current_module (); scm_set_current_module (scm_c_resolve_module ("guile")); +#endif init_cxx_function_smobs (); for (int i=scm_init_funcs_->size () ; i--;) @@ -276,7 +279,10 @@ init_lily_guile (String p ) if (verbose_global_b) progress_indication ("\n"); read_lily_scm_file ("lily.scm"); + +#if GUILE_MINOR_VERSION >= 5 scm_set_current_module (last_mod); +#endif } unsigned int ly_scm_hash (SCM s) diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index ae238425cd..e3eed55cd5 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -139,5 +139,5 @@ ENTER_DESCRIPTION(Note_heads_engraver, /* descr */ "Generate one or more noteheads from Music of type Note_req.", /* creats*/ "NoteHead Dots", /* acks */ "", -/* reads */ "", +/* reads */ "easyPlay centralCPosition", /* write */ ""); diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index abfed82563..24ed811878 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -91,7 +91,7 @@ Paper_outputter::output_comment (String str) void Paper_outputter::output_scheme (SCM scm) { - scm_apply_2 (output_func_, scm, file_, SCM_EOL); + gh_call2 (output_func_, scm, file_); } void diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 3fdc1a3f71..5db60e1750 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -145,7 +145,8 @@ Text_engraver::stop_translation_timestep () for (int i=0; i < texts_.size (); i++) { Item *ti = texts_[i]; - Side_position_interface::add_staff_support (ti); + if (!to_boolean (get_property ("scriptHorizontal"))) + Side_position_interface::add_staff_support (ti); typeset_grob (ti); } texts_.clear (); diff --git a/scm/ascii-script.scm b/scm/ascii-script.scm index b3138812f3..25255e3f28 100644 --- a/scm/ascii-script.scm +++ b/scm/ascii-script.scm @@ -1,11 +1,9 @@ (define-module (scm ascii-script) - :export (as-output-expression) - :no-backtrace ) (define this-module (current-module)) -(define (as-output-expression expr port) +(define-public (as-output-expression expr port) (display (eval expr this-module) port) ) diff --git a/scm/lily.scm b/scm/lily.scm index d5aa43e429..5f10a15e7c 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -119,11 +119,11 @@ - (use-modules (scm tex) (scm ps) (scm pysk) (scm ascii-script) + (scm sketch) ) (define output-alist @@ -133,11 +133,10 @@ ("scm" . ,write) ("as" . ,as-output-expression) ("pysk" . ,pysk-output-expression) + ("sketch" . ,sketch-output-expression) )) - - (define (find-dumper format ) (let* ((d (assoc format output-alist))) @@ -155,7 +154,6 @@ "sketch.scm" "pdf.scm" "pdftex.scm" - "ascii-script.scm" "c++.scm" "grob-property-description.scm" "translator-property-description.scm" @@ -179,3 +177,4 @@ +1 diff --git a/scm/ps.scm b/scm/ps.scm index f469ec7ac9..6af36d6ab7 100644 --- a/scm/ps.scm +++ b/scm/ps.scm @@ -8,20 +8,27 @@ (define-module (scm ps) - :export (ps-output-expression) - :no-backtrace ) (define this-module (current-module)) -(define (ps-output-expression expr port) - (display (eval expr this-module) port) - ) +(debug-enable 'backtrace) + +(if (or (equal? (minor-version) "4") + (equal? (minor-version) "3.4")) + (define-public (ps-output-expression expr port) + (display (eval-in-module expr this-module) port ) + ) + + (define-public (ps-output-expression expr port) + (display (eval expr this-module) port ) + ) + ) (use-modules (guile) - (guile-user)) +) diff --git a/scm/pysk.scm b/scm/pysk.scm index e999e00d25..e62575af53 100644 --- a/scm/pysk.scm +++ b/scm/pysk.scm @@ -8,19 +8,16 @@ (define-module (scm pysk) - :export (pysk-output-expression) - :no-backtrace ) (use-modules (scm ps) (ice-9 regex) (ice-9 string-fun) - (guile-user) (guile) ) (define this-module (current-module)) -(define (pysk-output-expression expr port) +(define-public (pysk-output-expression expr port) (display (pythonify expr) port ) ) diff --git a/scm/tex.scm b/scm/tex.scm index 01880f90f6..072ed76ece 100644 --- a/scm/tex.scm +++ b/scm/tex.scm @@ -6,16 +6,12 @@ ;;; Han-Wen Nienhuys -(define-module (scm tex) - :export (tex-output-expression) - :no-backtrace - ) - +(define-module (scm tex) ) +(debug-enable 'backtrace) (use-modules (scm ps) (ice-9 regex) (ice-9 string-fun) (ice-9 format) - (guile-user) (guile) ) @@ -87,7 +83,7 @@ (embedded-ps (list 'bracket arch_angle arch_width arch_height height arch_thick thick))) (define (dashed-slur thick dash l) - (embedded-ps (list 'dashed-slur thick dash l))) + (embedded-ps (list 'dashed-slur thick dash `(quote ,l)))) (define (hairpin thick w sh eh) (embedded-ps (list 'hairpin thick w sh eh)) @@ -129,7 +125,6 @@ "" ) - (define (embedded-ps expr) (let ((os (open-output-string))) @@ -194,7 +189,7 @@ ;; ;; need to do something to make this really safe. ;; -(define (output-tex-string s) +(define-public (output-tex-string s) (if security-paranoia (if use-regex (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post) @@ -267,6 +262,16 @@ ; no-origin not yet supported by Xdvi (define (no-origin) "") -(define (tex-output-expression expr port) - (display (eval expr this-module) port ) +(define my-eval-in-module eval) + +(if (or (equal? (minor-version) "4") + (equal? (minor-version) "3.4")) + (begin + (set! my-eval-in-module eval-in-module) + + )) + +(define-public (tex-output-expression expr port) + (display (my-eval-in-module expr this-module) port ) ) + diff --git a/scripts/abc2ly.py b/scripts/abc2ly.py index 23aa46d397..af8cbf877c 100644 --- a/scripts/abc2ly.py +++ b/scripts/abc2ly.py @@ -1269,6 +1269,12 @@ Options: This program converts ABC music files (see http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input. + + +Report bugs to bug-gnu-music@gnu.org + +Written by Han-Wen Nienhuys , Laura Conrad +, Roy Rankin """ def print_version (): diff --git a/scripts/etf2ly.py b/scripts/etf2ly.py index f80334bc14..36976017a4 100644 --- a/scripts/etf2ly.py +++ b/scripts/etf2ly.py @@ -1,7 +1,7 @@ #!@PYTHON@ # info mostly taken from looking at files. See also -# http://www.cs.uu.nl/~hanwen/lily-devel/etf.html +# http://lilypond.org/wiki/?EnigmaTransportFormat # This supports # @@ -24,7 +24,7 @@ # * dynamics # * empty measures (eg. twopt03.etf from freenote) # -# + program_name = 'etf2ly' version = '@TOPLEVEL_VERSION@' -- 2.39.5