From: fred Date: Sun, 24 Mar 2002 19:42:30 +0000 (+0000) Subject: lilypond-0.0.60 X-Git-Tag: release/1.5.59~4775 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=76d1a3cf3a7611481f0cdca09814b00a3f6ebd2e;p=lilypond.git lilypond-0.0.60 --- diff --git a/NEWS b/NEWS index f01134bef9..b44d208d44 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +pl 60 + - Request_register::get_feature(), tie direction, Slur direction + - lilypond output is now directly texable. + - make_website checks return status + +******* +may 5 pl 59 - Slur now into voicegroups, and take stems into account. - bf: rest size in table. diff --git a/TODO b/TODO index ec850fd0c7..b65304f456 100644 --- a/TODO +++ b/TODO @@ -22,8 +22,6 @@ IMPORTANT * use own fonts/update musixtex fonts - * check return status in make_website - * a Hands on tutorial [HKN] @@ -36,6 +34,18 @@ PROJECT: - quiet/ignore-version options - logfile output + + * elaborate Staff_side baseclass: + - scripts + - text + - slur start/end + + * Output an output format independent (ofi) typeset file; and + make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. + - poor man's ascii output possible? + - MusixTeX output possible? + - PostScript output (esp. Beams, Slurs, etc) + PARSER * Duration-> Musical_duration, typedef Rational Duration? @@ -46,8 +56,6 @@ ruimte van een hele maat erachter (bij unmatching staffs) Hele rusten ook in andere maatsoort dan 4/4 (en centreren in de maat) - - ------------------------\ barcheck failed in lyric mode -> assert (zie barcheck.ly) (0.0.57) ------------------------/ @@ -249,8 +257,6 @@ FUTURE * bring Collision::do_pre_processing to haircutter - * slurs per voicegroup. - * slur parts as a script * mixed fontsizes @@ -285,9 +291,6 @@ FUTURE IDEAS - * output an intermediate format, move backend/output routines into - interpreter - * scoping in Lexer: do general id- assignments in mudela. ID '=' EXPR; @@ -311,7 +314,6 @@ IDEAS * merge Atom and Symbol? * merge common code of Item, Atom/Molecule - * Spacing_request for manually adjusting spacing * Staff_group, Score_request_register. @@ -319,15 +321,6 @@ IDEAS * SHIT: meters/bars should be aligned, which is difficult if we get different keychanges in different staffs. - * MusixTeX output possible? - - * PostScript output (esp. Beams, Slurs, etc) - - * poor man's ascii output possible? - - * Output an output format independent (ofi) typeset file; and - make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. - * caching breakpoints * #c <-> cis @@ -337,9 +330,6 @@ IDEAS * used fixedpoint arithmetic for min. energy. * default convert mudela-file.ly -> mudela-file.tex - - move test.tex: '\include lilyponddefs' -> - mudela-file.ly: '\texinclude "lilyponddefs";' - (junking test.tex and latex.test) - rename {standchen,scsii-menuetto,...}.tex * (related with above) --simple-mudela option for lily, diff --git a/bin/make_website b/bin/make_website index a6855cbe31..380a5cbca1 100755 --- a/bin/make_website +++ b/bin/make_website @@ -1,5 +1,20 @@ #!/usr/bin/perl -w -# stuff should be generated in out directory. + +# TODO check ret status of various stuff + +use FileHandle; + +sub my_system +{ + my (@cmds) = @_; + foreach $cmd (@cmds) { + my $ret = ( system ($cmd))/256; + if ($ret) { + print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n"; + exit 2; + } + } +} sub set_hrefs { @@ -29,14 +44,14 @@ local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "coll sub gen_html { print "generating HTML\n"; - system "make -kC .. html"; + my_system "make -kC .. html"; } sub gen_examples { print "generating examples: \n"; foreach $a (@examples) { - $texfile="test"; + $texfile="lelie"; $tex = "tex $texfile"; if ($a eq "standchen" || $a eq "scsii-menuetto" ) { $tex = "latex $a"; @@ -44,18 +59,19 @@ sub gen_examples } if ( ! -f "$a.ly.txt" ) { - system "ln $depth/input/$a.ly ./$a.ly.txt"; + my_system "ln $depth/input/$a.ly ./$a.ly.txt"; } if ( ! -f "$a.ps.gz" ) { - system "lilypond $a;$tex;". - "dvips -o $a.ps $texfile;"; + my_system "lilypond $a;", + "$tex", + "dvips -o $a.ps $texfile;"; } # generate the pixmap at twice the size, then rescale (for antialiasing) if ( ! -f "$a.gif" ) { - system "mv lelie.midi $a.midi; "; - system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif"; - system "gzip $a.ps"; + my_system "mv lelie.midi $a.midi; ", + "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif", + "gzip $a.ps"; } } } @@ -69,8 +85,13 @@ sub gen_list foreach $a (@examples) { $name=$a; print HTMLLIST "

example file: $name

\n\n"; - $cmd= "head $depth/input/$a.ly | grep \^% \| sed \"s/^%/ /\""; - $desc = `$cmd`; + + open IF, "$depth/input/$a.ly"; + input_record_separator IF "%}"; + + $desc = <IF>; + close IF; + print HTMLLIST "$desc\n"; $inputf="$a.ly.txt"; @@ -93,22 +114,23 @@ sub copy_files { print "copying files\n"; print `ln -s $depth/out ./docxx` if ( ! -x "docxx" ) ; - system "cp $depth/TODO ./TODO.txt"; - system "cp $depth/NEWS ./NEWS.txt"; - system "cp ../lelie*gif ."; + my_system "cp $depth/TODO ./TODO.txt", + "cp $depth/NEWS ./NEWS.txt", + "cp ../lelie*gif ."; } sub docxx_update { - system "make -C $depth doc++"; + my_system "make -C $depth doc++"; } sub do_tar { print "tarring.\n"; - system " tar vhcf website.tar *.html *.gif *.ps.gz *.ly.txt *.midi docxx/*;"; -system "gzip -f9 website.tar;"; + my_system + " tar vhcf website.tar *.html *.gif *.ps.gz *.ly.txt *.midi docxx/*;", + "gzip -f9 website.tar;"; } $depth = "../../"; diff --git a/lily/tie.cc b/lily/tie.cc index eff99f4600..06c09a3b82 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -6,6 +6,7 @@ (c) 1997 Han-Wen Nienhuys */ +#include "paper-def.hh" #include "tie.hh" #include "notehead.hh" #include "p-col.hh" @@ -13,12 +14,12 @@ Spanner* Tie::do_break_at(PCol*l, PCol*r) const { - Tie * tie_p = new Tie; + Tie * tie_p = new Tie(*this); Line_of_score const *line_C=l->line_l_; - if (left_head_l_->line_l()== line_C) - tie_p->left_head_l_ = left_head_l_; - if (right_head_l_->line_l() == line_C) - tie_p->right_head_l_ = right_head_l_; + tie_p->left_head_l_ = (left_head_l_->line_l()== line_C) ? + left_head_l_ : 0; + tie_p->right_head_l_ = (right_head_l_->line_l() == line_C)? + right_head_l_ : 0; return tie_p; } @@ -42,6 +43,14 @@ Tie::Tie() left_head_l_ =0; } +void +Tie::set_default_dir() +{ + int m= (left_head_l_->position_i_ + right_head_l_->position_i_) /2 ; + dir_i_ = (m < 5)? -1:1; // ugh +} + + void Tie::do_add_processing() { @@ -58,6 +67,18 @@ Tie::do_post_processing() left_head_l_->position_i_ : right_head_l_->position_i_; right_pos_i_ = (right_head_l_) ? right_head_l_->position_i_ : left_head_l_->position_i_; + + if ( right_head_l_ && right_head_l_->extremal_i_) { + right_pos_i_ += 2*dir_i_; + right_dx_f_ -= 0.25; + } else + right_dx_f_ -= 0.5; + + if (left_head_l_ && left_head_l_->extremal_i_) { + left_pos_i_ += 2*dir_i_; + left_dx_f_ += 0.25; + } else + left_dx_f_ += 0.5; }