From 35066121356416526109f964465f8060ca09a73d Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:48:52 +0000 Subject: [PATCH] lilypond-0.0.76 --- Documentation/INSTALL.pod | 103 +++++++++++++++------------------- Documentation/mudela-book.pod | 55 ++++++++++++++++++ NEWS | 37 ++++++++++++ TODO | 27 ++++----- input/cadenza.ly | 2 +- input/collisions.ly | 2 +- input/header.ly | 2 +- input/keys.ly | 2 +- input/kortjakje.ly | 9 ++- input/multi.ly | 13 ++++- input/pedal.ly | 2 +- input/rhythm.ly | 37 +++++------- input/scales.ly | 2 +- input/scripts.ly | 2 +- input/scsii-menuetto.ly | 7 ++- input/slurs.ly | 2 +- input/standchen.ly | 12 ++-- input/toccata-fuga-E.ly | 18 ++++-- input/twinkle.ly | 12 +++- input/wohltemperirt.ly | 10 +++- lily/parser.y | 14 ++++- 21 files changed, 239 insertions(+), 131 deletions(-) create mode 100644 Documentation/mudela-book.pod diff --git a/Documentation/INSTALL.pod b/Documentation/INSTALL.pod index e2697cffa9..9d86ae3641 100644 --- a/Documentation/INSTALL.pod +++ b/Documentation/INSTALL.pod @@ -6,15 +6,6 @@ INSTALL - installing GNU LilyPond This page documents installation and compilation of GNU LilyPond -=head1 IMPORTANT - -if you have downloaded a - - *.pre* - -version, then this is version is I meant for producing nice -output, but to keep your patchsets up to date. It might not even compile. - =head1 PREREQUISITES For compilation you need. @@ -48,8 +39,34 @@ Bison. (Version 1.25 or better) =back +=head1 RUNNING + +GNU LilyPond does use a lot of resources. For operation you need the following: + + +=over 5 + +=item * + +TeX + +=item * + +The MusixTeX fonts (I included those found in MusixTeX T.73). Beware, +the clef symbol seems to have changed its position in some versions, +(notably Egler's, a.k.a. OpusTeX). The MusixTeX fonts are included in +MusixTeX T.73, which can be had from any CTAN site, eg at + + ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin + ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin + ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin + +You only need the contents of the F subdirectory of the package. + =head1 RECOMMENDED +Although not strictly necessary, these are recommended to have. + =over 5 =item * @@ -61,8 +78,16 @@ with the perl's Plain Old Documentation. (GNU) find + +=item * + +A fast computer (a full page of music typically takes 1 minute +on my 486/133, using the B<--enable-checking> compile. It's lot slower +than most MusiXTeX preprocessors) + =back + =head1 CONFIGURING and COMPILING to install GNU LilyPond, simply type: @@ -80,7 +105,6 @@ This will install the following files: /usr/local/bin/mi2mu /usr/local/share/lilypond/* /usr/lib/texmf/texmf/tex/lilypond/* - /usr/lib/texmf/texmf/fonts/source/lilypond/* The TeX include directory is detected dynamically, but it can be adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The @@ -98,7 +122,7 @@ B<--help>. If you are not root, you will probably have to make it with configure --prefix=/home/me_myself_and_I/ -In this case, you will have to set MFINPUTS, and TEINPUTS accordingly. +In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly. If you want to install GNU LilyPond in F, and your TeX has no default hooks for local stuff (mine is broken too), you can do: @@ -140,7 +164,7 @@ Set then directory tex input is in (detected as a subdir of tex-prefix) =item --enable-mf-dir -Set then directory tex input is in (idem) +Set then directory mf input is in (idem) =back @@ -164,8 +188,6 @@ If you have done a successful C, then a simple should do the trick. -[todo. Obsolete; fonts are in distribution now.] - Install the musixtex fonts in a directory which TeX and MF knows (if you are root, look for a directory which contains the directories with AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex @@ -174,7 +196,10 @@ applicable) Example: my fonts are in F, and I have a symlink pointing to that in -F +F. After I copied the +files, I ran "texhash" + +ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip =head1 CAVEATS @@ -189,33 +214,9 @@ should turn off this flag for this file. =back -=head1 RUNNING - -GNU LilyPond does use a lot of resources. For operation you need the following: - +=head1 EXAMPLE -=over 5 - -=item * - -A fast computer (a full page of music typically takes 1 minute -on my 486/66, using the B<--enable-checking> compile. It's lot slower -than most MusiXTeX preprocessors) - -=item * - -TeX - -=item * - -The MusixTeX fonts (I included those found in MusixTeX T.73). Beware, -the clef symbol has changed position in the Egler version, -a.k.a. OpusTeX) - -=back - -At this time, GNU LilyPond output looks nice, but is not of production -quality. If you're not discouraged; this is what I type in my xterm: +This is what I type in my xterm: lilypond someinput.ly tex lelie.tex @@ -250,9 +251,10 @@ Please refer to the man page for more information. =head1 REDHAT LINUX RedHat Linux users should be able to get a RPM. A spec file is in -F. You should be able to create an rpm as a normal +F. You should be able to create an rpm as a normal user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in -F +F. (If you create the RPM as a normal user the +permissions will not be set correctly, unfortunately) =head1 WINDOZE @@ -267,21 +269,6 @@ to make GNU LilyPond under, brr, aargh, well, simply type: bash configure make windows32 -=head1 PLATFORMS - -GNU LilyPond (pl 0.0.39) is known to compile on the following platforms: - -Unix: - - * gnu/linux 2.0.x, g++ 2.7.2[.1] - * aix 4.1, g++ 2.7.2 - * solaris 2.5, g++ 2.7.2 - -Other: - - * windows-nt 4.0, cygnus gnu-windows32 beta17.1 (~=g++ 2.7.2) - * gnu/linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested] - =head1 AUTHORS Han-Wen Nienhuys diff --git a/Documentation/mudela-book.pod b/Documentation/mudela-book.pod new file mode 100644 index 0000000000..042948dc4b --- /dev/null +++ b/Documentation/mudela-book.pod @@ -0,0 +1,55 @@ +=head1 NAME + +mudela-book - integrate LaTeX and mudela + +=head1 SYNOPSIS + + convert-mudela [options] [files] + +=head1 DESCRIPTION + +mudela-book runs LilyPond on fragments of mudela in your source file, +and produces a LaTeXable document, with formatted music. + + \begin{mudela} + CONTENTS + \end{mudela} + +runs LilyPond on CONTENTS, and puts the result back, surrounded by +\preexample and \postexample commands. The \begin takes the +following options: + +=over 4 + +=item fragment + +mudela-book adds some redtape. You +can substitute voice-contents for CONTENTS in this case. + +=item verbatim + +CONTENTS is copied into the TeX source enclosed in a verbatim block. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<--outname> + +The name of TeX file to output + +=item B<--outdir> + +The directory to output lilypond output and input to + +=back + +=head1 BUGS + +Doesn't handle incorrect input sanely. + +=head1 AUTHOR + +Han-Wen Nienhuys diff --git a/NEWS b/NEWS index d013e18266..2cf9b4d45e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,39 @@ +pl 76 + - mudela version bumped to 0.1 + - mudela-book + - doco updates, now some stuff in LaTeX + - junked book.{ly,tex} example + - progress indicator + - rhythm.ly updated + - removed mf sources from distribution due to (c) stuff + - allowal of breaks handled cleanly + - junked Subtle_reqs, junked Request_iterator. Request + iteration now by Voice_element_iterator + - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver, + Span_score_bar + - Swallow_performer + - removed Staff_engravers, grouping into Line_group_engraver + - Head_column as base for Rest_column,Note_column + - Score_column derived from PCol + - regurgled Line spacing: interface and implementation + separate. Idealspacing moved into Spring_spacer + - Gourlay style linespacing + +pl 75.jcn6 + - {lyric,meter,key}-performer + - span-brace-* (Removed again. Such is life) + - doze compile + - midi output, notes only + - working midi output -- hacked + - doze compile, mingw32 configure (still triggers gcc int. comp err) + +pl 74pre.jcn2 + - mi2mu fixes after scott snyder [sss] + - mi2mu update for mudela 0.0.61 + - conflily fixes + +******* +july 21 pl 75 - inbook.ly & book.tex example. @@ -626,6 +662,7 @@ Bugfix ******* pl 41 - release + pl 40.3 - all of the above - hw's configure.in diff --git a/TODO b/TODO index cfb9f4229a..5ac024269a 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,7 @@ +0.1: + + * versioning stuff (cvt mudela, mudela, etc.) + Features you cannot find in the doco as working, should be mentioned here. This is an assorted collection of stuff that will be done, might be @@ -6,33 +10,24 @@ done, or is an idea that I want to think about Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr - * script for unified musicological source: + * dots into separate item. - blah blah latex - \begin{mudela} c4 d4 e4 f4 - \end{mudela} + * lyrics in chords still fuck up. - * lyrics with chords broken - - * Redo MIDI output to use Translators - - remember more horizontal info than melodics: + * add to MIDI output: - tempo change - repeat - slurs - dynamics etc. - * pushgroup/popgroup - - * strict separation between visual and auditive processing. + * rewire acknowledge_element() logic with a process_acknowledged() - * fix depcy/dept stuff in eg. Beam. + * pushgroup/popgroup * whole head on ledger line * piano staff - * decent spacing - * implement better breaking algorithm * update 20 pt table @@ -41,7 +36,7 @@ grep for TODO and ugh/ugr * enter script priority - * a Hands on tutorial + * a hands on tutorial PROJECTS @@ -258,6 +253,8 @@ SMALLISH PROJECTS * Decent TeX titledefs (\tempo, \metron, etc. ) + * lily \tempo + * C meter iso 4/4, idem for alla breve, etc. * textspanner: center position diff --git a/input/cadenza.ly b/input/cadenza.ly index eda6e6bfd7..a2110f3462 100644 --- a/input/cadenza.ly +++ b/input/cadenza.ly @@ -10,7 +10,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; cad = \melodic { diff --git a/input/collisions.ly b/input/collisions.ly index fa1c3f71c0..9bde8122fb 100644 --- a/input/collisions.ly +++ b/input/collisions.ly @@ -10,7 +10,7 @@ Tested Features:test the Collision resolution EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; diff --git a/input/header.ly b/input/header.ly index f7ab263e0a..3baaadf9e1 100644 --- a/input/header.ly +++ b/input/header.ly @@ -10,4 +10,4 @@ Tested Features: EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; diff --git a/input/keys.ly b/input/keys.ly index 4a30ea61f9..45237a2d7e 100644 --- a/input/keys.ly +++ b/input/keys.ly @@ -10,7 +10,7 @@ Tested Features: local key, key, forced accidentals EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; blah = \melodic{ diff --git a/input/kortjakje.ly b/input/kortjakje.ly index 617dac78e9..ab408c9f2f 100644 --- a/input/kortjakje.ly +++ b/input/kortjakje.ly @@ -10,7 +10,7 @@ Tested Features: example file with comments EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; % the % is a comment. @@ -58,10 +58,9 @@ begeleiding = \melodic{ } \score{ - \melodic < \multi 3; - - \melodie - \begeleiding + \melodic < \id "Piano" ""; \multi 3; + \melodie + \begeleiding > } diff --git a/input/multi.ly b/input/multi.ly index 02b1dcfaf6..7113cfb4a0 100644 --- a/input/multi.ly +++ b/input/multi.ly @@ -12,7 +12,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; \score{ \melodic @@ -21,6 +21,15 @@ EndMudelaHeader < \multi 2; { \stem -1; c2 c2 } { \stem 1; c'2 c'2 } > < \multi 3; { \clef "bass"; c2 c2 } { \meter 2/4;\bar "||"; \key fis cis gis; c'2 c'2 } > c2 c1 - + c1 c1 + < \multi 1; < \multi 3; + { \meter 2/4; \clef "violin"; c2 c2 } + { \meter 2/4; \clef "bass"; c2 c2 } + > + < \multi 3; + { \meter 2/4; \clef "violin"; c2 c2 } + { \meter 2/4; \clef "bass"; c2 c2 } + > + > } } diff --git a/input/pedal.ly b/input/pedal.ly index f9a5b9eaf9..da3290ec44 100644 --- a/input/pedal.ly +++ b/input/pedal.ly @@ -24,7 +24,7 @@ % \lbheel \lbheel \lfheel \lftoe % \rbheel \rbtoe \rfheel \rftoe -\version "0.0.61"; +\version "0.1.0"; \score{ \melodic { diff --git a/input/rhythm.ly b/input/rhythm.ly index 530fc74a98..a321ca34a7 100644 --- a/input/rhythm.ly +++ b/input/rhythm.ly @@ -11,18 +11,12 @@ unsynced bars EndMudelaHeader %} -\version "0.0.58"; -% -% Ive' got rhythm! -% -% add any impressive examples here, please -\version "0.0.58"; -ritme = \staff { - melodicregs - \melodic{ %\octave ; +\version "0.1.0"; + +ritme = \melodic{ %\octave ; \partial 8; \octave c'; \meter 4/4; @@ -48,29 +42,28 @@ ritme = \staff { } -} -another = \staff { - melodicregs + +another = \melodic{ \meter 4/4; c1. c1. c4 c4 c4 c4 \meter 4/4; c1 c1 c1 } -} -yanother = \staff { - melodicregs + +yanother = \melodic{ \meter 4/4; c1 c1 c1 c4 c4 c4 c4 c1 c1 c1 } -} + \score{ - ritme - another - yanother + < \multi 3; + \ritme + \another + \yanother + > - \midi { } \paper{ - \unitspace 2\cm - \geometric 1.3 + unitspace =2.0\cm; + geometric =1.6; } } diff --git a/input/scales.ly b/input/scales.ly index c594d77876..0e30979237 100644 --- a/input/scales.ly +++ b/input/scales.ly @@ -15,7 +15,7 @@ EndMudelaHeader % scales with accents. % -\version "0.0.61"; +\version "0.1.0"; blah = \melodic { \meter 6/8; \octave 'c ; diff --git a/input/scripts.ly b/input/scripts.ly index 3882327d27..51d8a9093f 100644 --- a/input/scripts.ly +++ b/input/scripts.ly @@ -10,7 +10,7 @@ Tested Features: scripts, text. EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; blah = \melodic { diff --git a/input/scsii-menuetto.ly b/input/scsii-menuetto.ly index 9bc9fcf38f..a8a7b2c236 100644 --- a/input/scsii-menuetto.ly +++ b/input/scsii-menuetto.ly @@ -13,7 +13,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; %% Stuff from MPP version % \lefttitle{Menuetto} @@ -101,7 +101,10 @@ IImenuetto = \melodic{ } \score{ - \melodic { \IImenuetto } + % huh? how to set id_str + \melodic{ + \id "Staff" "Cello"; \IImenuetto + } \paper{ unitspace= 9.0\mm ;% to get lily to use only three lines geometric= 1.40; diff --git a/input/slurs.ly b/input/slurs.ly index 29ad8cf5c0..107809130c 100644 --- a/input/slurs.ly +++ b/input/slurs.ly @@ -11,7 +11,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; \score{ \melodic{\octave c'; diff --git a/input/standchen.ly b/input/standchen.ly index d1c5ec81d9..4f36f53182 100644 --- a/input/standchen.ly +++ b/input/standchen.ly @@ -13,7 +13,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; commands = \melodic{ \skip 2.*4; @@ -465,12 +465,14 @@ tekstII = \lyric{ } \score{ - < \multi 3; + < { \id "Lyric" "1"; \tekstI } % ugh { \id "Lyric" "2"; \tekstII } - - \melodic < \melodie \commands > - \melodic < \begeleiding \commands > + < \id "Piano" ""; + \multi 2; + \melodic < \melodie \commands > + \melodic < \begeleiding \commands > + > > \paper{ linewidth= 195.\mm; diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly index b912fb5f0b..6e5746e725 100644 --- a/input/toccata-fuga-E.ly +++ b/input/toccata-fuga-E.ly @@ -20,7 +20,7 @@ EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; toccata_commands = \melodic{ \meter 4/4; @@ -131,16 +131,22 @@ fuga2_pedal = \melodic{ dis4-\rtoe e4-\rheel 'e4-\ltoe | } -break = \melodic{ \meter 4/4; r1 } +break = \melodic{ + %\meter 4/4; + r1 +} % these should be two separate scores... \score{ - \melodic < \multi 3; + \melodic < \multi 1; - {\$toccata_right \break \$fuga2_right } - {\$toccata_left \break \$fuga2_left } + < \id Piano ""; \multi 3; + {\$toccata_right \break \$fuga2_right } + { \$toccata_left \break \$fuga2_left } + > - {\$toccata_pedal \break \$fuga2_pedal } + { \$toccata_pedal \break \$fuga2_pedal } + > \paper{} diff --git a/input/twinkle.ly b/input/twinkle.ly index 80b6ac10ae..aae1ded22a 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -14,7 +14,7 @@ Tested Features: lyrics EndMudelaHeader %} -\version "0.0.61"; +\version "0.1.0"; melody = \melodic{ \clef violin; @@ -115,13 +115,19 @@ textiii = \lyric{ \score{ < \multi 3; - \melodic <\global \melody > + \melodic < + \id "Piano" "";\multi 3; + < \global + \melody > + < \global + \accompany > + > % ugh \lyric < \id "Lyric" "1"; \global \tekst \hegedraagjetekst > % \lyric < \id "Lyric" "2"; \global \texte > % \lyric < \id "Lyric" "3"; \global \texti \textii \textiii > - \melodic < \global \accompany > + > \paper{ unitspace= 2.5\cm; diff --git a/input/wohltemperirt.ly b/input/wohltemperirt.ly index 89970f8776..08101712ad 100644 --- a/input/wohltemperirt.ly +++ b/input/wohltemperirt.ly @@ -9,7 +9,7 @@ %} -\version "0.0.61"; +\version "0.1.0"; % should add \need{dutch.ini} for % correct parsing of note names @@ -160,7 +160,8 @@ bassdux = \score { - \melodic < \multi 1; + \melodic < \id "Piano" ""; + \multi 1; < \multi 2; \global \dux @@ -172,7 +173,10 @@ bassdux = > > - \paper{} + \paper{ +% unitspace = 40.0\pt; geometric = 1.6; + geometric= 1.4; unitspace= 34.\pt; + } \midi { \tempo 4:84; } diff --git a/lily/parser.y b/lily/parser.y index 2607a2ed08..4f074fb2dc 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -12,7 +12,7 @@ #include // mmm -#define MUDELA_VERSION "0.0.61" +#define MUDELA_VERSION "0.1.0" #include "script-def.hh" #include "symtable.hh" @@ -170,6 +170,7 @@ yylex(YYSTYPE *s, void * v_l) %token SCRIPT_IDENTIFIER %token STAFF_IDENTIFIER %token REAL_IDENTIFIER +%token INPUT_TRANS_IDENTIFIER %token INT_IDENTIFIER %token SCORE_IDENTIFIER %token MIDI_IDENTIFIER @@ -283,6 +284,7 @@ declarable_identifier: old_identifier: IDENTIFIER + | INPUT_TRANS_IDENTIFIER | MELODIC_REQUEST_IDENTIFIER | POST_REQUEST_IDENTIFIER | SCRIPT_IDENTIFIER @@ -332,6 +334,10 @@ declaration: $$ = new Request_id(*$1, $3, MELODIC_REQUEST_IDENTIFIER); delete $1; } + | declarable_identifier '=' input_translator_spec { + $$ = new Input_translator_id ( *$1, $3, INPUT_TRANS_IDENTIFIER); + delete $1; + } ; @@ -342,7 +348,11 @@ input_translator_spec: ; input_translator_spec_body: - STRING STRING { + INPUT_TRANS_IDENTIFIER { + $$ = $1->input_translator(true); + $$-> set_spot( THIS->here_input() ); + } + | STRING STRING { $$ = new Input_translator; $$->base_str_ = *$1; $$->type_str_ =*$2; -- 2.39.5