+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.
* use own fonts/update musixtex fonts
- * check return status in make_website
-
* a Hands on tutorial [HKN]
- 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?
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)
------------------------/
* bring Collision::do_pre_processing to haircutter
- * slurs per voicegroup.
-
* slur parts as a script
* mixed fontsizes
IDEAS
- * output an intermediate format, move backend/output routines into
- interpreter
-
* scoping in Lexer: do general id- assignments in mudela.
ID '=' EXPR;
* merge Atom and Symbol?
* merge common code of Item, Atom/Molecule
-
* Spacing_request for manually adjusting spacing
* Staff_group, Score_request_register.
* 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
* 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,
#!/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
{
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";
}
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";
}
}
}
foreach $a (@examples) {
$name=$a;
print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\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</XMP>";
$inputf="$a.ly.txt";
{
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 = "../../";
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+#include "paper-def.hh"
#include "tie.hh"
#include "notehead.hh"
#include "p-col.hh"
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;
}
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()
{
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;
}