From b4d5d1145b0d59ae1ac42c9bc9c43c6d5b055c1c Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 3 Nov 1998 15:18:31 +0100 Subject: [PATCH] release: 1.1.2 --- Documentation/COPERTINA.in | 15 +-- Documentation/links.yo | 5 + Documentation/tex/fonts.doc | 7 +- Documentation/tex/refman.yo | 33 ++++-- Documentation/tex/tutorial.yo | 10 +- Documentation/topdocs/index.yo | 1 + INSTALL.txt | 3 + NEWS | 27 ++++- TODO | 5 +- VERSION | 4 +- buildscripts/lilypond-login.sh | 2 +- buildscripts/lilypond-profile.sh | 4 +- init/declarations.ly | 3 + init/lily.scm | 12 +- init/scm.ly | 5 +- input/test/accid.fly | 6 + input/test/keys.ly | 4 +- input/test/time.fly | 192 ++++++++++++++++--------------- lily/GNUmakefile | 5 - lily/command-request.cc | 4 +- lily/include/command-request.hh | 3 +- lily/include/lily-guile.hh | 1 + lily/include/lookup.hh | 9 +- lily/include/musical-pitch.hh | 2 + lily/include/musical-request.hh | 2 + lily/include/time-signature.hh | 2 +- lily/key-engraver.cc | 3 +- lily/key-item.cc | 10 +- lily/lily-guile.cc | 17 +++ lily/local-key-engraver.cc | 5 + lily/local-key-item.cc | 6 +- lily/lookup.cc | 96 +++++++++------- lily/midi-walker.cc | 2 +- lily/musical-pitch.cc | 1 + lily/musical-request.cc | 7 +- lily/parser.yy | 17 ++- lily/time-signature-engraver.cc | 2 +- lily/time-signature.cc | 2 +- make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- mf/feta-toevallig.mf | 33 +++++- mutopia/gallina.ly | 63 ++++++---- scripts/ly2dvi.py | 3 +- stepmake/stepmake/tex-rules.make | 2 + tex/lilyponddefs.tex | 2 +- 46 files changed, 402 insertions(+), 255 deletions(-) create mode 100644 input/test/accid.fly diff --git a/Documentation/COPERTINA.in b/Documentation/COPERTINA.in index 664aec837e..5344413eca 100644 --- a/Documentation/COPERTINA.in +++ b/Documentation/COPERTINA.in @@ -1,7 +1,8 @@ -LilyPond è il tipografo musicale del progetto GNU. Questo programma è -fatto per stampare belle partiture da un documento definito per musica. -Può anche suonare le prestazioni meccaniche ad un documento MIDI. Le -caratteristiche includono i personali multipli, tester, chiavi, suoni, -lirica, lingua potente dell' input, cadenze, fasci, archi, tripletti, -segni di formattazione, estrazione delle parte. È compresa una seria -completa di caratteri musicali. +LilyPond è il tipografo musicale del progetto GNU. Questo programma +puo' stampare delle belle partiture a partire da un documento di +definizioni musicali. Puo' anche creare meccaniche rappresentazioni +della partitura in un documento in formato MIDI. Le caratteristiche del +programma includono pentagrammi multipli, segni di divisione, chiavi, +tasti, parole, versatile linguaggio di definizione, cadenze, legature, +acciaccature, terzine, segni di formattazione, estrazione delle +parte. è compresa una seria completa di caratteri musicali. diff --git a/Documentation/links.yo b/Documentation/links.yo index 1ff0bb7781..4aa398f963 100644 --- a/Documentation/links.yo +++ b/Documentation/links.yo @@ -34,8 +34,13 @@ dit(lurl(http://www.iat.unc.edu/technology/music/music.html)) An enormous collection of music related URLs dit(lurl(http://www.ram.org/ramblings/philosophy/fmp.html)) Musings on free music, plus hints how to record your own (free) music. + +dit(lurl(http://www.cyberus.ca/~jdsankey/harpsichord.html)) + John Sankey has taken up the task of recording classical +music, and distributing the results at no cost. ) + sect(Ftp) We will upload major releases to the following sites: diff --git a/Documentation/tex/fonts.doc b/Documentation/tex/fonts.doc index bc5bce8640..9248bb815c 100644 --- a/Documentation/tex/fonts.doc +++ b/Documentation/tex/fonts.doc @@ -28,9 +28,10 @@ typography of all. % stupid test to check convert-mudela.py. % % (so sue me) -\begin{mudela}[fragment,center] - \clef bass; c1 \clef alto; c'2 \clef treble; c''4 -\end{mudela} +% well, make website breaks... +% \begin{mudela}[fragment,center] +% \clef bass; c1 \clef alto; c'2 \clef treble; c''4 +% \end{mudela} \section{Bezier curves for slurs} diff --git a/Documentation/tex/refman.yo b/Documentation/tex/refman.yo index ae08ad2d24..7a2e4ec17a 100644 --- a/Documentation/tex/refman.yo +++ b/Documentation/tex/refman.yo @@ -347,7 +347,7 @@ label(notedesc) subsect(Basic Note Specification) A note specification has the form -var(pitch)[var(octavespec)][code(!)][var(duration)]. +var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)]. The pitch of the note is specified by the note's name. LilyPond has predefined note names for various languages. The default @@ -395,9 +395,11 @@ will determine what accidentals to typeset depending on the key and context. A reminder accidental can be forced by using the optional exclamation mark `code(!)' -on a pitch. +on the pitch. +A cautionary accidental, i.e., an accidental within paranthesis +can be obtained using the optional question mark `code(?)' on the pitch. mudela(fragment,verbatim,center)( -cis' d' e' cis' c'! d' e' c' +cis' d' e' cis' c'? d' e' c'! ) @@ -951,8 +953,14 @@ argument var(file) is a string. The full filename including the file(.ly) extension must be given, and the filename must be quoted. (An unquoted string will not work here.) -dit(code(\key) var(pitch)code(;)) Change key signature to that of -var(pitch)-major. +dit(code(\key) var(pitch) var(type) code(;)) Change the key signature. +var(type) should be code(\major) or code(\minor) to get +var(pitch)-major or var(pitch)-minor, respectively. The second +argument is optional, the default is major keys. +The var(\type) argument can also be given as an integer, which tells +the number of semitones that should be added to the pitch given in the +subsequent code(\key) commands to get the corresponding major key, +e.g. code(\minor) is defined as 3. dit(code(\keysignature) var(pitchseq)code(;)) Specify an arbitrary key signature. The pitches from var(pitch) will @@ -1295,9 +1303,6 @@ dit(code(barAlways)) If set to 1 a bar line is drawn after each note. dit(code(defaultBarType)) Sets the default type of bar line. See code(\bar) keyword. - - - dit(code(keyoctaviation)) If set to 1, then keys are the same in all octaves. If set to 0 then the key signature for different octaves can be different and is specified independently: code(\keysignature bes @@ -1323,16 +1328,16 @@ default) if you do not want key signatures printed. dit(code(timeSignatureStyle)) Changes the default two-digit layout for time signatures. The following values are recognized: description( - dit(code(C)): 4/4 and 2/2 are typeset as C and struck C, + dit(code(C)) 4/4 and 2/2 are typeset as C and struck C, respectively. All other time signatures are written with two digits. - dit(code(old)): 2/2, 3/2, 3/4, 4/4, 6/4 and 9/4 are typeset with + dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4 and 9/4 are typeset with old-style mensuration marks. All other time signatures are written with two digits. - dit(code(1)): All time signatures are typeset with a single + dit(code(1)) All time signatures are typeset with a single digit, e.g. 3/2 is written as 3. dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2), code(old3/4), code(old4/4), code(old6/4) or - code(old9/4)): Tells Lilypond to use a specific symbol as time + code(old9/4)) Tells Lilypond to use a specific symbol as time signature. ) The different time signature characters are shown below with @@ -1439,6 +1444,10 @@ code(castingalgorithm). Is equal to 1.0. dit(code(\infinity)) Used for setting the Score.beamslopedamping property. Is actually equal to 10000. dit(code(\left)) Used for setting textalignment property. Is equal to -1. +dit(code(\major)) Used as the second argument of the code(\key) +command to get a major key. +dit(code(\minor)) Used as the second argument of the code(\key) +command to get a minor key. dit(code(\mf)) Print mezzoforte symbol on preceeding note. dit(code(\mp)) Print mezzopiano symbol on preceeding note. dit(code(\nobreak)) Prevent a line break in music by using a large diff --git a/Documentation/tex/tutorial.yo b/Documentation/tex/tutorial.yo index 02bdaaf9a3..cf2e0e5349 100644 --- a/Documentation/tex/tutorial.yo +++ b/Documentation/tex/tutorial.yo @@ -696,10 +696,12 @@ dit(code(\clef) var(clefname)) This command sets the current clef for notation, \clef "treble"; c'4 \clef "alto"; c'4 ) -dit(code(\key) var(pitch)) This command changes the current key signature. The - key signature is printed at the start of every line. The argument - is the name of the corresponding major key. The key of C-minor can - thus be specified as `code(\key es)'. +dit(code(\key) var(pitch) var(type)) This command changes the current + key signature. The key signature is printed at the start of every + line. The var(type) argument is set to code(\major) or code(\minor) + to get major or minor keys, respectively. Omitting the second + argument gives major keys. The key of C-minor can thus be specified + as `code(\key es)' or `code(\key \c minor)'. dit(code(\keysignature) var(pitchlist)) diff --git a/Documentation/topdocs/index.yo b/Documentation/topdocs/index.yo index 1307c60e3b..efbd28a923 100644 --- a/Documentation/topdocs/index.yo +++ b/Documentation/topdocs/index.yo @@ -39,6 +39,7 @@ nsect(Sites) description( dit(lurl(http://www.cs.uu.nl/people/hanwen/lilypond/))Han-Wen's site. +dit(lurl(http://www.xs4all.nl/jantien/lilypond/))Jan's site. dit(lurl(http://www.realtime.net/~daboys/lilypond/))Jeff's Windows NT Distribution site. ) diff --git a/INSTALL.txt b/INSTALL.txt index 1b088819bc..67ea93fa2c 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -80,6 +80,9 @@ o Python 1.5 (Strictly speaking, you shouldn't need to regenerate the font tables, e.g.). +o GUILE 1.3 (no, GUILE 1.2 won't work) + + 3: RUNNING diff --git a/NEWS b/NEWS index 6b9b37174d..98e3382e01 100644 --- a/NEWS +++ b/NEWS @@ -1,10 +1,27 @@ +pl 1.mb1 + - Support for cautionary accidentals. , i.e. accidentals + within parantheses. Syntax: 'cis?'. Try input/test/accid.fly + Note that the font has changed. + - bf: No unnecessary warnings about time signatures + - Added optional second argument of \key. Set to \major or \minor + to get a major or minor key. Default: major. + - bf: Compilation error in midi-walker.cc +pl 1.jcn2 + - fixes for htmldoc, website + - silly jcn1 fixes + - junked MODULE stuff from lily/GNUmakefile (again) + pl 0.jcn4 - -set: - export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init - - dstream: Score_element, Column_info - - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a - - init/lily.scm + -set: + export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init + - dstream: Score_element, Column_info + - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a + - init/lily.scm + + +******** +pl 1 pl 0.uu5 - fixed MIDI output. diff --git a/TODO b/TODO index b22fe9a244..b6ac7d37bc 100644 --- a/TODO +++ b/TODO @@ -9,7 +9,7 @@ grep for TODO and ugh/ugr/urg BUGS: - * disallow backslashes + * --safe: disallow backslashes, disallow \include. * \breathmark TeX macro @@ -269,8 +269,6 @@ ydirection and hshift preset * integrate midi-elts from mi2mu and lily? - * cautionary accidental - * score-bar-scripts FMR: Free memory read: * This is occurring while in: @@ -487,7 +485,6 @@ PROJECTS * Keys: - merge key{item} & localkey{item}? - - Major/Minor - spacing, national styles? * Support for TAB diff --git a/VERSION b/VERSION index 3819cc13bf..8186dd8606 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=1 -MY_PATCH_LEVEL=jcn3 +PATCH_LEVEL=2 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/lilypond-login.sh b/buildscripts/lilypond-login.sh index d4a482ebe6..f66a50af09 100644 --- a/buildscripts/lilypond-login.sh +++ b/buildscripts/lilypond-login.sh @@ -10,4 +10,4 @@ setenv LILYINCLUDE "@datadir@/ly:@datadir@/afm" # include an empty path component for the system wide includes. setenv MFINPUTS "@datadir@/mf:"${MFINPUTS:=":"} setenv TEXINPUTS "@datadir@/tex:"${TEXINPUTS:=":"} - +setenv GUILE_LOAD_PATH "@datadir@/scm:$GUILE_LOAD_PATH" diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh index 176f63629e..44bbfd0ec2 100644 --- a/buildscripts/lilypond-profile.sh +++ b/buildscripts/lilypond-profile.sh @@ -9,9 +9,11 @@ LILYINCLUDE="@datadir@/ly:@datadir@/afm" # include an empty path component for the system wide includes. MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"} TEXINPUTS="@datadir@/tex:"${TEXINPUTS:=":"} +GUILE_LOAD_PATH="@datadir@/scm:$GUILE_LOAD_PATH" -export LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH +export GUILE_LOAD_PATH LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH + # echo $LILYINCLUDE $MFINPUTS $TEXINPUTS $GS_LIB $GS_FONTPATH diff --git a/init/declarations.ly b/init/declarations.ly index c1bc0fd333..352dc96a89 100644 --- a/init/declarations.ly +++ b/init/declarations.ly @@ -33,6 +33,9 @@ center=0 break = { \penalty = 10000; } nobreak = { \penalty = -10000; } +major = 0 +minor = 3 + \include "property.ly" \include "scm.ly" diff --git a/init/lily.scm b/init/lily.scm index 2a66e0ff1c..ce384d2617 100644 --- a/init/lily.scm +++ b/init/lily.scm @@ -59,6 +59,9 @@ (beam-ps width slope thick) "}")) +(define + (bracket o h) (empty o)) + (define (char o n) ((invoke-output o "char") n)) @@ -106,9 +109,6 @@ (empty-tex) "%\n\\empty%\n") -(define - (emptybar o h) (empty o)) - (define (end-output o) ((invoke-output o "end-output"))) @@ -258,9 +258,6 @@ (define (repeatbar o h) (empty o)) -(define - (repeatbarstartrepeat o h) (empty o)) - (define (rulesym o x y) ((invoke-output o "rulesym") x y)) @@ -281,6 +278,9 @@ (setbold o s) ((invoke-output o "text") "bold" s)) +(define + (setdynamic o s) (empty o)) + (define (setfinger o s) ((invoke-output o "text") "finger" s)) diff --git a/init/scm.ly b/init/scm.ly index c2c3155fb2..1d45548295 100644 --- a/init/scm.ly +++ b/init/scm.ly @@ -5,8 +5,5 @@ % (c) 1998 Jan Nieuwenhuizen \scm " -; huh? -;(append %load-path 'init) -;(load-patch 'lily.scm) -(load 'init/lily.scm) +(primitive-load-path 'lily) "; diff --git a/input/test/accid.fly b/input/test/accid.fly new file mode 100644 index 0000000000..d7a7775c42 --- /dev/null +++ b/input/test/accid.fly @@ -0,0 +1,6 @@ +\time 3/4; +cisis'' cisis! cisis? | +cis cis! cis? | +c c! c? | +ces ces! ces? | +ceses ceses! ceses? | diff --git a/input/test/keys.ly b/input/test/keys.ly index 211c7c1e20..aa12b97e65 100644 --- a/input/test/keys.ly +++ b/input/test/keys.ly @@ -6,8 +6,8 @@ test key itemv breaking \score { \notes { - \key bes; c1 \key c; c1 + \key bes; c1 \key c \minor; c1 \break - \key bes; c1 \key d;\break c1 + \key bes \major; c1 \key d;\break c1 } } diff --git a/input/test/time.fly b/input/test/time.fly index 3908c4cf64..a7fd1d68b3 100644 --- a/input/test/time.fly +++ b/input/test/time.fly @@ -1,111 +1,113 @@ \property Staff.timeSignatureStyle = "C" \time 1/1; -c''1^"timeSignatureStyle = \"C\"" | -\time 2/2; -c1 | -\time 3/4; -c2. | -\time 4/4; -c1 | -\time 5/4; -c2. c2 | -\time 6/4; -c1. | -\time 3/2; -c1. | -\time 7/4; -c1 c2. | -\time 8/4; -c\breve | -\time 9/4; -c2. c2. c2. | +c''1^"timeSignatureStyle = \"C\"" +\time 2/2; +c1 +\time 3/4; +c2. +\time 4/4; +c1 +\time 5/4; +c2. c2 +\time 6/4; +c1. +\time 3/2; +c1. +\time 7/4; +c1 c2. +\time 8/4; +c\breve +\time 9/4; +c2. c2. c2. \break \property Staff.timeSignatureStyle = "old" -\time 1/1; -c1^"timeSignatureStyle = \"old\"" | -\time 2/2; -c1 | -\time 3/4; -c2. | -\time 4/4; -c1 | -\time 5/4; -c2. c2 | -\time 6/4; -c1. | -\time 3/2; -c1. | -\time 7/4; -c1 c2. | -\time 8/4; -c\breve | -\time 9/4; -c2. c2. c2. | +\time 1/1; +c1^"timeSignatureStyle = \"old\"" +\time 2/2; +c1 +\time 3/4; +c2. +\time 4/4; +c1 +\time 5/4; +c2. c2 +\time 6/4; +c1. +\time 3/2; +c1. +\time 7/4; +c1 c2. +\time 8/4; +c\breve +\time 9/4; +c2. c2. c2. \break \property Staff.timeSignatureStyle = "" -\time 1/1; -c1^"timeSignatureStyle = \"\"" | -\time 2/2; -c1 | -\time 3/4; -c2. | -\time 4/4; -c1 | -\time 5/4; -c2. c2 | -\time 6/4; -c1. | -\time 3/2; -c1. | -\time 7/4; -c1 c2. | -\time 8/4; -c\breve | -\time 9/4; -c2. c2. c2. | +\time 1/1; +c1^"timeSignatureStyle = \"\"" +\time 2/2; +c1 +\time 3/4; +c2. +\time 4/4; +c1 +\time 5/4; +c2. c2 +\time 6/4; +c1. +\time 3/2; +c1. +\time 7/4; +c1 c2. +\time 8/4; +c\breve +\time 9/4; +c2. c2. c2. \break \property Staff.timeSignatureStyle = "1" -\time 1/1; -c1^"timeSignatureStyle = \"1\"" | -\time 2/2; -c1 | -\time 3/4; -c2. | -\time 4/4; -c1 | -\time 5/4; -c2. c2 | -\time 6/4; -c1. | -\time 3/2; -c1. | -\time 7/4; -c1 c2. | -\time 8/4; -c\breve | -\time 9/4; -c2. c2. c2. | +\time 1/1; +c1^"timeSignatureStyle = \"1\"" +\time 2/2; +c1 +\time 3/4; +c2. +%{ % Error if these lines are uncommented: + % Line ... [0guile: Wrong type to apply: # +\time 4/4; +c1 +%} +\time 5/4; +c2. c2 +\time 6/4; +c1. +\time 3/2; +c1. +\time 7/4; +c1 c2. +\time 8/4; +c\breve +\time 9/4; +c2. c2. c2. \break \property Staff.timeSignatureStyle = "old9/4" \property Staff.textalignment = \center -\time 1/1; -c1^"old9/4" | -\property Staff.timeSignatureStyle = "old6/4" -\time 2/2; -c1^"old6/4" | +\time 1/1; +c1^"old9/4" +\property Staff.timeSignatureStyle = "old6/4" +\time 2/2; +c1^"old6/4" \property Staff.timeSignatureStyle = "old3/2" -\time 3/4; -c2.^"old3/2" | +\time 3/4; +c2.^"old3/2" \property Staff.timeSignatureStyle = "old4/4" -\time 4/4; -c1^"old4/4" | +\time 4/4; +c1^"old4/4" \property Staff.timeSignatureStyle = "old2/2" -\time 5/4; -c2.^"old2/2" c2 | +\time 5/4; +c2.^"old2/2" c2 \property Staff.timeSignatureStyle = "C4/4" -\time 6/4; -c1.^"C4/4" | +\time 6/4; +c1.^"C4/4" \property Staff.timeSignatureStyle = "C2/2" -\time 3/2; -c1.^"C2/2" | - +\time 3/2; +c1.^"C2/2" diff --git a/lily/GNUmakefile b/lily/GNUmakefile index e04d9f6476..9dae2238bd 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -11,11 +11,6 @@ MODULE_INCLUDES=$(depth)/lib/include $(depth)/flower/include STEPMAKE_TEMPLATES= c++ executable -MODULE_LIBES=-lguile - -# for the RedHat GUILE 1.3 RPM -MODULE_LIBES+= -lreadline -ldl - include $(depth)/make/stepmake.make # force these: Make can't know these have to be generated in advance diff --git a/lily/command-request.cc b/lily/command-request.cc index 5a67560e45..9255f63cfb 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -322,7 +322,7 @@ Key_change_req::do_print() const Key_change_req::Key_change_req() { - minor_b_ = false; + modality_i_ = 0; ordinary_key_b_= false; } @@ -366,7 +366,7 @@ Key_change_req::flats_i() bool Key_change_req::minor_b() const { - return minor_b_; + return modality_i_ == 3; } int diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index 96c010322b..c03ff6eb54 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -132,7 +132,7 @@ public: class Key_change_req : public Command_req { public: Array pitch_arr_; - bool minor_b_; + int modality_i_; bool ordinary_key_b_; Key_change_req(); @@ -147,7 +147,6 @@ public: int sharps_i(); void transpose (Musical_pitch d); - /// is minor key? bool minor_b() const; }; diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index c4479cb567..f4c468c65e 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -37,6 +37,7 @@ SCM ly_quote (); #include "array.hh" #include "scalar.hh" +SCM lambda_scm (String str, Array args_arr); SCM lambda_scm (String str, Array args_arr); SCM lambda_scm (String str, Array args_arr); diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 1781679920..9b00615622 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -11,6 +11,7 @@ #define LOOKUP_HH #include "atom.hh" +#include "molecule.hh" #include "fproto.hh" #include "scalar.hh" #include "direction.hh" @@ -29,9 +30,9 @@ public: Lookup (Symtables const&); ~Lookup (); - Atom accidental (int) const; + Molecule accidental (int, bool cautionary) const; void add (String, Symtable*); - Atom afm_find (String) const; + Atom afm_find (String, bool warn=true) const; Atom ball (int) const; Atom bar (String, Real height) const; Atom beam (Real, Real, Real) const; @@ -53,8 +54,8 @@ public: Atom text (String style, String text) const; Atom vbrace (Real &dy) const; Atom vbracket (Real &dy) const; - Atom special_time_signature (String, Array) const; - Atom time_signature (Array) const; + Atom special_time_signature (String, Array) const; + Atom time_signature (Array) const; Paper_def * paper_l_; Symtables *symtables_p_; diff --git a/lily/include/musical-pitch.hh b/lily/include/musical-pitch.hh index 2c4f1a55de..a46471fd61 100644 --- a/lily/include/musical-pitch.hh +++ b/lily/include/musical-pitch.hh @@ -29,6 +29,8 @@ struct Musical_pitch : public Input int octave_i_; /// 0 natural, 1 sharp, etc int accidental_i_; + /// Used for cautionary accidentals + bool cautionary_b_; void init () ; Musical_pitch to_relative_octave (Musical_pitch); diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index d280d158ac..3f79b0b45b 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -110,6 +110,8 @@ public: /// force/supress printing of accidental. bool forceacc_b_; + /// Cautionary, i.e. parenthesized accidental. + bool cautionary_b_; Note_req(); bool do_equal_b (Request*) const; REQUESTMETHODS(Note_req); diff --git a/lily/include/time-signature.hh b/lily/include/time-signature.hh index 55c8133d38..a2d09022b5 100644 --- a/lily/include/time-signature.hh +++ b/lily/include/time-signature.hh @@ -26,7 +26,7 @@ protected: virtual Molecule*brew_molecule_p() const; public: Time_signature () ; - Array args_; + Array args_; String time_sig_type_str_; DECLARE_MY_RUNTIME_TYPEINFO; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 77a29425f5..e2152e2245 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -114,8 +114,7 @@ Key_engraver::read_req (Key_change_req const * r) else { p = r->pitch_arr_[0].semitone_pitch (); - if (r->minor_b ()) - p += 3; + p += r->modality_i_; } /* Solve the equation 7*no_of_acc mod 12 = p, -6 <= no_of_acc <= 5 */ int no_of_acc = (7*p) % 12; diff --git a/lily/key-item.cc b/lily/key-item.cc index 80e470f10f..7d519d3b97 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -133,9 +133,8 @@ Key_item::brew_molecule_p() const || (old_pitch_arr_[i] == pitch_arr_[j] && old_acc_arr_[i] != acc_arr_[j])) { - Atom a =lookup_l ()->accidental (0); - a.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS); - Molecule m (a); + Molecule m =lookup_l ()->accidental (0,false); + m.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS); output->add_at_edge (X_AXIS, RIGHT, m); } } @@ -153,9 +152,8 @@ Key_item::brew_molecule_p() const for (int i =0; i < pitch_arr_.size(); i++) { - Atom a =lookup_l ()->accidental (acc_arr_[i]); - a.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS); - Molecule m (a); + Molecule m =lookup_l ()->accidental (acc_arr_[i],false); + m.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS); output->add_at_edge (X_AXIS, RIGHT, m); } if (pitch_arr_.size()) diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 375ff46359..e4be912288 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -63,6 +63,23 @@ ly_func_o (char const* name) } #endif +SCM +lambda_scm (String str, Array args_arr) +{ + if (str.empty_b ()) + { + str = "empty"; + args_arr.clear (); + } + SCM args_scm = SCM_EOL; + for (int i = args_arr.size () - 1; i >= 0; i--) + args_scm = gh_cons (gh_int2scm (args_arr[i]), args_scm); + SCM scm = + ly_append (ly_lambda_o (), + ly_list1 (ly_append (ly_func_o (str.ch_l ()), args_scm))); + return scm; +} + SCM lambda_scm (String str, Array args_arr) { diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index 9b0658b647..4edb8b8746 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -67,6 +67,11 @@ Local_key_engraver::process_acknowledged () key_item_p_ = new Local_key_item; announce_element (Score_element_info (key_item_p_, 0)); } + if (note_l->cautionary_b_) + { + note_l->pitch_.cautionary_b_ = true; + } + key_item_p_->add (note_l->pitch_); key_item_p_->add_support (support_l); local_key_.set (note_l->pitch_); diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index a0dc2907a6..a78ec7a371 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -70,10 +70,10 @@ Local_key_item::brew_molecule_p() const Real dy = (c0_position_i_ + accidental_pitch_arr_[i].notename_i_) * paper()->internote_f (); - Atom a (lookup_l ()->accidental (accidental_pitch_arr_[i].accidental_i_)); + Molecule m (lookup_l ()->accidental (accidental_pitch_arr_[i].accidental_i_, + accidental_pitch_arr_[i].cautionary_b_)); - a.translate_axis (dy, Y_AXIS); - Molecule m(a); + m.translate_axis (dy, Y_AXIS); octave_mol_p->add_at_edge (X_AXIS, RIGHT, m); } diff --git a/lily/lookup.cc b/lily/lookup.cc index 2ca4bdddde..8e1f4f1702 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -53,11 +53,20 @@ Lookup::~Lookup () delete symtables_p_; } -Atom -Lookup::accidental (int j) const +Molecule +Lookup::accidental (int j, bool cautionary) const { - Atom a = afm_find (String ("accidentals") + String ("-") + to_str (j)); - return a; + Molecule m(afm_find (String ("accidentals") + String ("-") + to_str (j))); + if (cautionary) + { + m.add_at_edge(X_AXIS, LEFT, + Molecule(afm_find (String ("accidentals") + String ("-(")))) +; + m.add_at_edge(X_AXIS, RIGHT, + Molecule(afm_find (String ("accidentals") + String ("-)")))) +; + } + return m; } void @@ -67,7 +76,7 @@ Lookup::add (String s, Symtable*p) } Atom -Lookup::afm_find (String s) const +Lookup::afm_find (String s, bool warn) const { if (!afm_p_) { @@ -76,7 +85,7 @@ Lookup::afm_find (String s) const *mlog << "]" << flush ; DOUT << this->afm_p_->str (); } - Adobe_font_char_metric m = afm_p_->find_char (s); + Adobe_font_char_metric m = afm_p_->find_char (s, warn); Atom a; if (m.code () < 0) @@ -222,10 +231,11 @@ Lookup::rule_symbol (Real height, Real width) const Array arr; arr.push (height); arr.push (width); - a.lambda_ = lambda_scm (a.str_, arr); + a.lambda_ = (lambda_scm (a.str_, arr)); a.str_ = "rule_symbol"; a.dim_.x () = Interval (0, width); a.dim_.y () = Interval (0, height); + return a; } Atom @@ -235,24 +245,20 @@ Lookup::script (String str) const } Atom -Lookup::special_time_signature (String s, Array arr) const +Lookup::special_time_signature (String s, Array arr) const { - String symbolname = "timesig-" + s; - if (!arr.empty ()) - symbolname += to_str (arr[0]); - if (arr.size () >1) - symbolname += "/" + to_str (arr[1]); + // First guess: s contains only the signature style + assert (arr.size () >1); + String symbolname = "timesig-" + s + to_str (arr[0]) + "/" + to_str (arr[1]); - Atom a = afm_find (symbolname); + Atom a = afm_find (symbolname, false); if (!a.empty ()) return a; -#if 0 //guess we covered this - // Try if the full name was given - a = afm_find ("timesig-"+s); + // Second guess: s contains the full signature name + a = afm_find ("timesig-"+s, false); if (!a.empty ()) return a; -#endif // Resort to default layout with numbers return time_signature (arr); @@ -280,9 +286,10 @@ Lookup::stem (Real y1, Real y2) const arr.push (y2); arr.push (-y1); - a.lambda_ = lambda_scm ("stem", arr); + a.lambda_ = (lambda_scm ("stem", arr)); a.str_ = "stem"; a.font_ = font_; + return a; } Atom @@ -291,8 +298,7 @@ Lookup::streepje (int type) const if (type > 2) type = 2; - Atom a = afm_find ("balls" + String ("-") + to_str (type) + "l"); - return a; + return afm_find ("balls" + String ("-") +to_str (type) + "l"); } Atom @@ -305,14 +311,18 @@ Lookup::text (String style, String text) const a.lambda_ = lambda_scm (a.str_, arr); a.str_ = "text"; a.font_ = font_; + return a; + } + Atom -Lookup::time_signature (Array a) const +Lookup::time_signature (Array a) const { - Atom a ((*symtables_p_) ("param")->lookup ("time_signature")); - a.lambda_ = lambda_scm (a.str_, arr); - a.str_ = "time_signature"; + Atom s ((*symtables_p_) ("param")->lookup ("time_signature")); + s.lambda_ = (lambda_scm (s.str_, a)); + + return s; } /* @@ -330,13 +340,13 @@ Lookup::vbrace (Real &y) const if (y < min_y) { warning (_ ("piano brace") - + " " + _ ("too small") + " (" + print_dimen (y) + ")"); + + " " + _ ("too small") + " (" + print_dimen (y) + ")"); y = min_y; } if (y > max_y) { warning (_ ("piano brace") - + " " + _ ("too big") + " (" + print_dimen (y) + ")"); + + " " + _ ("too big") + " (" + print_dimen (y) + ")"); y = max_y; } @@ -345,7 +355,7 @@ Lookup::vbrace (Real &y) const Array arr; arr.push (idx); - a.lambda_ = lambda_scm (a.str_, arr); + a.lambda_ = (lambda_scm (a.str_, arr)); a.str_ = "brace"; a.dim_[Y_AXIS] = Interval (-y/2,y/2); a.font_ = font_; @@ -359,7 +369,7 @@ Lookup::hairpin (Real width, bool decresc, bool continued) const Real height = paper_l_->staffheight_f () / 6; String ps; ps += to_str (width) + " " - + to_str (height) + " " + + to_str (height) + " " + to_str (continued ? height/2 : 0) + + " draw_" + String (decresc ? "de" : "") + "cresc\n"; a.str_ = ps; @@ -400,18 +410,18 @@ Lookup::slur (Array controls) const // (lambda (o) (slur o '((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2) .. ))) a.lambda_ = ( - ly_append (ly_lambda_o (), - ly_list1 (ly_append (ly_func_o ("slur"), - ly_list1 (ly_list2 (ly_quote (), - gh_cons (ly_list2 (gh_double2scm (controls[5].x ()), gh_double2scm (controls[5].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[6].x ()), gh_double2scm (controls[6].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[7].x ()), gh_double2scm (controls[7].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[4].x ()), gh_double2scm (controls[4].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())), - gh_cons (ly_list2 (gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())), - SCM_EOL)))))))))))))); + ly_append (ly_lambda_o (), + ly_list1 (ly_append (ly_func_o ("slur"), + ly_list1 (ly_list2 (ly_quote (), + gh_cons (ly_list2 (gh_double2scm (controls[5].x ()), gh_double2scm (controls[5].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[6].x ()), gh_double2scm (controls[6].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[7].x ()), gh_double2scm (controls[7].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[4].x ()), gh_double2scm (controls[4].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())), + gh_cons (ly_list2 (gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())), + SCM_EOL)))))))))))))); a.str_ = "slur"; a.dim_[X_AXIS] = Interval (0, dx); @@ -428,8 +438,8 @@ Lookup::vbracket (Real &y) const if (y < min_y) { warning (_ ("bracket") - + " " + _ ("too small") + " (" + print_dimen (y) + ")"); -// y = min_y; + + " " + _ ("too small") + " (" + print_dimen (y) + ")"); + // y = min_y; } Array arr; arr.push (y); diff --git a/lily/midi-walker.cc b/lily/midi-walker.cc index 90477a3009..1af44cd1fb 100644 --- a/lily/midi-walker.cc +++ b/lily/midi-walker.cc @@ -111,7 +111,7 @@ Midi_walker::process() return; p->channel_i_ = track_l_->number_i_; - if (Midi_item *mi = dynamic_cast(p)) + if (Midi_note *mi = dynamic_cast(p)) do_start_note (mi); else output_event (ptr()->audio_column_l_->at_mom (), p); diff --git a/lily/musical-pitch.cc b/lily/musical-pitch.cc index e7ffbd7014..9603e025d9 100644 --- a/lily/musical-pitch.cc +++ b/lily/musical-pitch.cc @@ -21,6 +21,7 @@ Musical_pitch::init () notename_i_ = 0; octave_i_ = 0; accidental_i_ = 0; + cautionary_b_ = false; } void diff --git a/lily/musical-request.cc b/lily/musical-request.cc index c12cd16c29..4538a1d3b2 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -185,6 +185,7 @@ Note_req::do_equal_b (Request*r) const Note_req::Note_req () { + cautionary_b_ = false; forceacc_b_ = false; } @@ -195,7 +196,11 @@ Note_req::do_print () const { #ifndef NPRINT Melodic_req::do_print (); - if (forceacc_b_) + if (cautionary_b_) + { + DOUT << " force cautionary accidental\n"; + } + else if (forceacc_b_) { DOUT << " force accidental\n"; } diff --git a/lily/parser.yy b/lily/parser.yy index bc0680a301..72e14708f5 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -248,6 +248,7 @@ yylex (YYSTYPE *s, void * v_l) %type abbrev_type %type int unsigned %type script_dir +%type optional_modality %type identifier_init simple_identifier_init block_identifier %type steno_duration notemode_duration %type entered_notemode_duration explicit_duration @@ -910,10 +911,11 @@ verbose_command_req: $$ = new Clef_change_req (*$2); delete $2; } - | KEY NOTENAME_PITCH { + | KEY NOTENAME_PITCH optional_modality { Key_change_req *key_p= new Key_change_req; key_p->pitch_arr_.push(*$2); key_p->ordinary_key_b_ = true; + key_p->modality_i_ = $3; $$ = key_p; delete $2; } @@ -970,6 +972,15 @@ post_request: } ; +optional_modality: + /* empty */ { + $$ = 0; + } + | int { + $$ = $1; + } + ; + sup_quotes: '\'' { $$ = 1; @@ -1028,6 +1039,10 @@ steno_notepitch: | steno_notepitch '!' { $$->forceacc_b_ = ! $$->forceacc_b_; } + | steno_notepitch '?' { + $$->forceacc_b_ = ! $$->forceacc_b_; + $$->cautionary_b_ = ! $$->cautionary_b_; + } ; diff --git a/lily/time-signature-engraver.cc b/lily/time-signature-engraver.cc index 35743ad24f..a5ff8b4595 100644 --- a/lily/time-signature-engraver.cc +++ b/lily/time-signature-engraver.cc @@ -35,7 +35,7 @@ Time_signature_engraver::do_process_requests() Time_signature_change_req *req = timing_grav_l->time_signature_req_l(); if (req) { - Array args; + Array args; args.push (req->beats_i_); args.push (req->one_beat_i_); diff --git a/lily/time-signature.cc b/lily/time-signature.cc index edee3d9fbe..a1330d55a4 100644 --- a/lily/time-signature.cc +++ b/lily/time-signature.cc @@ -26,7 +26,7 @@ Time_signature::brew_molecule_p () const { if (time_sig_type_str_[0]=='1') { - Array tmparr = args_; + Array tmparr = args_; tmparr[1]= 0; s = lookup_l ()->time_signature (tmparr); } diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index c13526cc6c..de547727a1 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ Begin3 Titel: LilyPond -Versie: 1.1.1 -Inschrijf datum: 02NOV98 +Versie: 1.1.2 +Inschrijf datum: 03NOV98 Beschrijving: @FLAPTEKST@ Trefwoorden: muziek typezetten midi notatie Auteur: hanwen@stack.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 770k lilypond-1.1.1.tar.gz + 770k lilypond-1.1.2.tar.gz Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.1.tar.gz + 770k lilypond-1.1.2.tar.gz Copi-eer voorwaarden: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index a569d897c2..55d5911d45 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.1.1 -Entered-date: 02NOV98 +Version: 1.1.2 +Entered-date: 03NOV98 Description: LilyPond is the GNU Project music typesetter. This program can print beautiful sheet music from a music definition file. It can also play @@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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 - 770k lilypond-1.1.1.tar.gz + 770k lilypond-1.1.2.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.1.tar.gz + 770k lilypond-1.1.2.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 2eff8ff87e..dfbd3516c9 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.1.1 +Version: 1.1.2 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.1.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.2.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys diff --git a/mf/feta-toevallig.mf b/mf/feta-toevallig.mf index b9c9a0ebbe..d4f94c5362 100644 --- a/mf/feta-toevallig.mf +++ b/mf/feta-toevallig.mf @@ -247,7 +247,38 @@ fet_beginchar("Double sharp", "2", "sharpsharp") currentpicture := currentpicture shifted (w/2,0); - fet_endchar; + +fet_endchar; + + +def draw_paren = + save leftindent; + leftindent# := .2 interline#; + define_pixels(leftindent); + set_char_box(0, .5 interline#+stafflinethickness#, + interline#, interline#); + z1 = (leftindent,h); + z2 = (w-stafflinethickness,0); + z3 = (leftindent,-d); + + penpos1(stafflinethickness, 35); + penpos2(2 stafflinethickness, 0); + penpos3(stafflinethickness, -35); + + penlabels(1,2,3); + fill z2l{down} .. simple_serif(z3l, z3r, 90) .. z2r{up} + .. simple_serif(z1r, z1l, 90) .. z2l{down} -- cycle; +enddef; + +fet_beginchar("Right paranthesis", ")", "rightparen") + draw_paren; +fet_endchar; + +fet_beginchar("Left paranthesis", "(", "leftparen") + draw_paren; + currentpicture := currentpicture xscaled -1; + set_char_box(charwd, charbp, chardp, charht); +fet_endchar; fet_endgroup("accidentals"); diff --git a/mutopia/gallina.ly b/mutopia/gallina.ly index b693616337..ffaa8941cd 100644 --- a/mutopia/gallina.ly +++ b/mutopia/gallina.ly @@ -29,8 +29,8 @@ either. /Mats - -Tested Features: Note placement, multipart score, figured base, \breve +Tested Features: Note placement, multipart score, figured base, \breve, + time signature styles %} %{ @@ -47,8 +47,28 @@ definition below. --MB \version "1.0.7"; -vi1=\notes \relative c'' { +global = \notes { + \property StaffGroup.timeSignatureStyle = "old" + \time 4/4; + \tempo 4=80; + \skip 1*31; + \property StaffGroup.timeSignatureStyle = "1" + \time 3/2; + \bar ":|:"; + \tempo 2=140; + \skip 1.*15; + \property StaffGroup.timeSignatureStyle = "old" \time 4/4; + \tempo 4=80; + \skip 1; + \bar ":|:"; + \skip 1*13; + \bar "|."; +} + +vi1=\type Staff = vi1 < +\global +\notes \relative c'' { [d8 d d d] d4 [a16 b c a] | [b8 g ][ g g16 a][ b8 g ][ g g16 a] | @@ -80,9 +100,8 @@ vi1=\notes \relative c'' { [c8 g ][ g g16 f] e4 d | r8 g [g g16 f] e4 d | r8 [d16 a ][ b8 b16 c] a2 | - b1 | - \time 3/2; - \tempo 2=140; + b1 | + r4 d d d d d | e1. | r4 c c c c c | @@ -98,8 +117,7 @@ vi1=\notes \relative c'' { a4 [c8 b] a4 [b8 c] f,4 [g8 a] | d,4 g g g g g | a [d,8 c] b4 [c8 d] a2 | - \time 4/4; - \tempo 4=80; + b1 | [d8 d d d] d4 [a16 b c a] | [b8 g ][ g g16 a] [b8 g ][ g g16 a] | @@ -114,11 +132,11 @@ vi1=\notes \relative c'' { fis4 g2 fis!4 | \cadenza 1; g\breve - \bar "|."; -} +}> -vi2=\notes \relative c'' { - \time 4/4; +vi2=\type Staff = vi2 < +\global +\notes \relative c'' { r1 | r | r | [d8 d d d] d4 [a16 b c a] | @@ -149,7 +167,7 @@ vi2=\notes \relative c'' { e4 d r8 [c16 g ][ b8 b16 c] | a4 g2 fis4 | g1 | - \time 3/2; + r1. | r4 [g'8 f] e4 [f8 g] c,4 [d8 e] | a,1. | @@ -165,7 +183,7 @@ vi2=\notes \relative c'' { c,4 a a a a a | b [d8 c] b4 [c8 d] d,4 e | fis2 g fis! | - \time 4/4; + g1 | r1 | r1 | [g'8 g g g] g4 [d16 e f d] | @@ -179,13 +197,13 @@ vi2=\notes \relative c'' { [a d c b ][ a g fis e] d4 d' | \cadenza 1; b\breve - \bar "|."; -} +}> -bc=\notes\transpose c'{ +bc=\type Staff = bc < +\global +\notes\transpose c'{ \clef "bass"; - \time 4/4; G2 d^"4 3" | G1 | g2 c4 G | d1^"3 4 3" | @@ -203,7 +221,7 @@ bc=\notes\transpose c'{ G1^"3 4 3" | c4 B c g | c B c G | d1^"3 4 3" | G1 | - \time 3/2; + g1. | c | f | d^"\\textsharp" | g | c | @@ -212,8 +230,9 @@ bc=\notes\transpose c'{ d^"\\textsharp" | e | f | g1 B2 | d1.^"3 4 3" | - \time 4/4; + G1 | + \bar ":|:"; g2 fis | g G | g1^"3 4 3" | c | G^"3 4 3" | c2 G | @@ -222,12 +241,10 @@ bc=\notes\transpose c'{ ) d^"3 4 3" | \cadenza 1; G\breve - \bar "|."; -} +}> \score{ \type StaffGroup < - \property StaffGroup.timeSignatureStyle = "old" \vi1 \vi2 \bc diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index 287fa5ad21..bdf89706bf 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -876,7 +876,8 @@ class Properties: def getLilyopts(): inc = '' if len(Props.get('include')) > 0: - inc = '-I ' + string.join(Props.get('include'),os.pathsep) +# inc = '-I ' + string.join(Props.get('include'),os.pathsep) + inc = '-I ' + string.join(Props.get('include'), ' -I ') else: if Props.get('dependencies'): diff --git a/stepmake/stepmake/tex-rules.make b/stepmake/stepmake/tex-rules.make index fa98675682..da6762647f 100644 --- a/stepmake/stepmake/tex-rules.make +++ b/stepmake/stepmake/tex-rules.make @@ -1,4 +1,6 @@ +$(outdir)/%.tex: %.tex + $(LN) $< $@ $(outdir)/%.dvi: $(outdir)/%.tex (cd $(outdir); tex \\nonstopmode \\input $(