]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.52
authorfred <fred>
Sun, 24 Mar 2002 19:39:43 +0000 (19:39 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:39:43 +0000 (19:39 +0000)
TODO
bin/convert-mudela
bin/make_website

diff --git a/TODO b/TODO
index 20b8e9aea56b1e47ac62f12b93f1b7f0916f2866..805651b3557d00b593f321b5efec7d88ba4aa1cc 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-before 0.1
+IMPORTANT
 
        * update 20 pt table
 
@@ -8,6 +8,11 @@ before 0.1
 
        * script priority
 
+       * slur direction
+
+       * problems with empty staff.->revise staff-column/score-walker.
+
+
 This is an assorted collection of stuff that will be done, might be
 done, or is an idea that I want to think about
 
@@ -18,10 +23,6 @@ BUGS
 
        * hairpin width
 
-       * problems with empty staff.
-
-       * help-lines
-
        * help-lines for rests
 
        * [c8. c32 c32]
@@ -30,8 +31,6 @@ BUGS
 
        * lilypond - -> crash
 
-       * \stem -1 < chord >  rest 
-
 SEVERELY LACKING:
 
        * SPEED!
@@ -66,6 +65,8 @@ INPUTLANGUAGE
 
 SMALLISH PROJECTS
 
+       * use rest size in Collision
+
        * bugreport to doc++ devel: struct not in class hier; public
        virtual baseclasses
 
@@ -116,11 +117,10 @@ SMALLISH PROJECTS
 
        * command priority into enum
 
-       * don't broadcast Staff_sym
-
        * C meter iso 4/4
 
        * textspanner: center position
+
        * script-spacing
 
        * Brackets
@@ -132,8 +132,6 @@ SMALLISH PROJECTS
 
        * configure idealspacing: arithmetic
 
-       * collision Request_register.
-
        * add (good guess of) width to lyric items
 
        * midi output: eat-up dynamic, key/meter/tempo changes, and
@@ -153,12 +151,12 @@ FUTURE
 
        * Reg_configure_request
 
+       * bring Collision::do_pre_processing to haircutter
+
        * slurs per voicegroup.
 
        * slur parts as a script
        
-       * multiple scripst.
-
        * mixed fontsizes
 
        * put scripts on bars
@@ -171,7 +169,6 @@ FUTURE
 
        * MIDI repeat: make lily understand repeats
 
-
        * better beamslope calculation: QLP for beams?
 
        * implement better breaking algorithm
@@ -189,17 +186,19 @@ FUTURE
        * piano staff
 
        * vertical spanner
+
 IDEAS
 
+       * scoping in Lexer?
+
        * integrate Register/Midi stuff
 
        * create libmudela, or liblily_frontend
 
-       * Horizontal_align_item, Vertical_align_item.
-
-       * move MIDI io to a ANSI C libmidi library.
+       * move MIDI stuff (including Quantization) to a ANSI C libmidi library.
 
        * use an embedded language: scheme, lisp, S-lang, Perl, GUILE, ?
+       for : 
                - Items/Spanners
                - Registers
 
index d64a7d75aca5673b7171c560a377020f4a078b4b..ff7b4c28642f73fea18831601c4e80caf8d90daa 100644 (file)
@@ -1,3 +1,141 @@
 #!/usr/bin/perl -w
 
-print "todo\n!";
+=head1 NAME
+
+convert-mudela  - convert mudela to newer versions
+
+=head1 SYNOPSIS
+
+       convert-mudela --from=FROM_PATCHLEVEL --to=TO_PATCHLEVEL
+
+=head1 DESCRIPTION
+
+convert-mudela sequentially applies different mudela-conversions to
+upgrade a Mudela input file from FROM_PATCHLEVEL to TO_PATCHLEVEL
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--output>
+
+The output file to write
+
+=item B<--edit> 
+
+Do an inline edit of the input file. override B<--output>
+
+=item B<--show-rules>
+
+shows all known conversions.
+
+=item B<--from>=FROM_PATCHLEVEL
+
+=item B<--to>=TO_PATCHLEVEL
+
+=back
+
+=cut
+
+
+use Getopt::Long;
+sub 
+    version_string_conv
+{
+    my ($from_version, $to_version) = @_;
+    s/\version \"0.0.$from_version\"/\version \"0.0.$to_version\"/g;
+}
+
+sub
+    conv_pl0_0_50_pl0_0_52
+{
+}
+
+sub
+    usage
+{
+    print STDERR "Usage: convert-mudela --from=XX --to=XX\n";
+    print STDERR "other options: --edit --output=FILE --show-rules\n";
+    exit 2;
+}
+    
+my %minor_conversions = ("50" => \&no_conv,
+                        "52" => \&conv_pl0_0_50_pl0_0_52);
+
+sub
+    show_rules
+{
+    print "Rules: ", join(", ", keys %minor_conversions), "\n";
+    
+}
+
+sub 
+    do_conversion
+{
+    my ($from,$to) = @_;
+
+    my @applicable_conversion;
+    my @mudela_levels;
+    
+    die "This is too old  to convert " if $from < 50;
+    
+    foreach $a (sort keys %minor_conversions) {
+       if ($a > $from && $a <= $to ){ 
+           push @applicable_conversion, $minor_conversions{$a};
+           push @mudela_levels, $a;
+       }
+    }
+    
+    print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n";
+
+    while (<INLY>) {
+       foreach $subroutine (@applicable_conversion) {
+       
+           &$subroutine;
+           
+       }
+       version_string_conv $from, $to;
+       print OUTLY;
+    }
+}
+    
+
+sub 
+    set_files 
+{
+    $infile = "-";
+    $outfile = "-";
+    $outfile = $opt_output if (defined($opt_output));
+
+    if ($ARGV [0])  {
+       $infile = $ARGV[0];
+    } 
+
+    if ($opt_edit && $infile ne "-") {
+       $opt_edit = 1;
+       rename $infile, "$infile~";
+       $outfile = $infile;
+       $infile = "$infile~";
+    }
+}
+
+GetOptions ("output=s", "from=i", "to=i", "minor=i", "edit", "show-rules");
+
+if ($opt_show_rules) { 
+    show_rules ;
+    $opt_show_rules = 0;       # to extinguish typo check.
+    exit 0;
+}
+
+usage if (!defined($opt_from) || !defined($opt_to));
+local ( $infile,$outfile);
+set_files;
+
+die "can't open \`$infile\'" unless open INLY,$infile ;
+die "can't open \`$outfile\'" unless open OUTLY, ">$outfile";
+
+do_conversion $opt_from, $opt_to;
+close INLY;
+close OUTLY;
+
index 411262ed4a4db3efeb217c2a5607e95e5b8da510..f7a1209029b416d82bd23b71a60dcc7cebff6d7d 100755 (executable)
@@ -1,8 +1,7 @@
 #!/usr/bin/perl -w
 # stuff should be generated in out directory.
 
-sub
-       set_hrefs
+sub set_hrefs
 {
     while (<HTMLIN>) {
        s#href=([A-Za-z.]+)#href=$base/$1#g;
@@ -24,18 +23,16 @@ sub all_refs
 }
 
 local $base="lilypond/";
-local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "martien");
+local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "martien", "collisions");
 
-#mkdir "lilypond";
-sub
-    gen_html
+
+sub gen_html
 {
     print "generating HTML\n";
     system "make -kC .. html";
 }
 
-sub
-    gen_examples
+sub gen_examples
 {
     print "generating examples: \n";
     foreach $a (@examples) {
@@ -64,8 +61,7 @@ sub
 }
 
 
-sub
-    gen_list
+sub gen_list
 {
     print "generating HTML list\n";
     open HTMLLIST, ">example_output.html";
@@ -85,14 +81,15 @@ sub
        print HTMLLIST "<ul>
 <li><a href=$inputf> The input file</a>
 <li><a href=$giff>The output (gif)</a>
-<li><a href=$psf>The output (PS)</a>
-<li><a href=$midif>The output (MIDI)</a>
-</ul>";
+<li><a href=$psf>The output (PS)</a>\n";
+       
+       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n"
+           if ( -f $midif );
+       print HTMLLIST "</ul>";
     }
        close HTMLLIST;
 }
-sub
-    copy_files
+sub copy_files
 {  
     print "copying files\n";
     print `ln -s $depth/out ./docxx` if ( ! -x "docxx" ) ;
@@ -101,6 +98,11 @@ sub
     system "cp ../lelie*gif .";
 }
 
+sub docxx_update
+{
+    system "make -C $depth doc++";
+}
+
 sub
     do_tar
 {
@@ -118,8 +120,10 @@ chomp($cwd = `pwd`);
 die "need to be in directory Documentation\n" if ( ! ($cwd =~ /Documentation$/));
 chdir ("out");
 
+
 gen_html;
 gen_examples;
 gen_list;
 copy_files;
+docxx_update;
 do_tar;