]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.25.jcn1
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 21 Feb 2000 23:59:54 +0000 (00:59 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 21 Feb 2000 23:59:54 +0000 (00:59 +0100)
1.3.25.jcn1
===========

* Added ascii slur and volta.  There seems to be a Lily bug in volta placement.

* Bugfix: print identification string 'GNU LilyPond ...' onto stderr

* Bugfix: default font now user settable

* as2text: handle plain ascii font, read from stdin, you can now do:

  echo "\time 4/4; g''1 g2 g4. g8" | lilypond -f as -i init-as.fly - | as2text

16 files changed:
CHANGES
TODO
VERSION
input/test/as2.ly
input/test/r-as.ly [new file with mode: 0644]
input/test/twinkle-as5.ly [new file with mode: 0644]
lily/all-font-metrics.cc
lily/main.cc
ly/init-as.fly
ly/init-as.ly
mf/as-braces5.af [new file with mode: 0644]
mf/as-dummy.af [new file with mode: 0644]
mf/as5.af
mf/as9.af
scm/lily.scm
scripts/as2text.scm

diff --git a/CHANGES b/CHANGES
index c7be422f5f807863116818ecb5e960c8313fcfde..a77d84589e0acdb9c665c44897bfe33dab696aef 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,16 @@
+1.3.25.jcn1
+===========
+
+* Added ascii slur and volta.  There seems to be a Lily bug in volta placement.
+
+* Bugfix: print identification string 'GNU LilyPond ...' onto stderr
+
+* Bugfix: default font now user settable
+
+* as2text: handle plain ascii font, read from stdin, you can now do:
+
+  echo "\time 4/4; g''1 g2 g4. g8" | lilypond -f as -i init-as.fly - | as2text
+
 1.3.24.jcn4
 ===========
 
diff --git a/TODO b/TODO
index 382e3098b91d28be00d657d94c53ce06d247e65e..4833512d789b914c5ff690b20c290bac85f979c2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,6 +10,10 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 
 .* TODO
 . * use hash tabs iso. alist_ for elt property?
+. * control paper-size/-file from commandline ?
+  lilypond --paper=paper16 foo.ly
+  lilypond --paper=paper20 foo.ly
+  lilypond --paper=paper-as9 foo.ly
 . * fix tremolos.
 . * change ) c4  to c4-)
 . * internationalize GUILE msgs.
diff --git a/VERSION b/VERSION
index c5062d4c65efb3bf60efb22f180253ad14294246..4faea06aaa0480336f3ef852584d042866088bfe 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=25
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 1356548672bdd1980499627062bba4e6cc959317..02d781dd928675279f3971cccb6502586e55d240 100644 (file)
@@ -4,12 +4,11 @@
 \score {
        \notes\relative c'{
                \time 4/4;
-               c8 e g b
-               d d d d
+               c8( e g )b
+               d( d d )d
                \bar "|.";
        }
        \paper {
-               \paper_as_nine
                linewidth=65.0\char;
                \translator { \StaffContext barSize = #9 }
                %\translator { \VoiceContext beamHeight = #0 }
diff --git a/input/test/r-as.ly b/input/test/r-as.ly
new file mode 100644 (file)
index 0000000..489fc8e
--- /dev/null
@@ -0,0 +1,18 @@
+\score{
+       <
+                 \context Staff \notes\relative c'{ 
+                         c d e f
+                         \repeat "volta" 2 { g a b c }
+                         \alternative { { c b a g } { f e d c } }
+                 }
+                 \context Lyrics \lyrics {
+                         De eer- ste < { maat } { moet } >
+                         \repeat fold 2 { }
+                         \alternative {
+                                 { en dan twee keer } 
+                                 { een koe- plet _ } 
+                         }
+                         en dan nog dit er ach- ter aan
+                 }
+       >
+}
diff --git a/input/test/twinkle-as5.ly b/input/test/twinkle-as5.ly
new file mode 100644 (file)
index 0000000..b4321d3
--- /dev/null
@@ -0,0 +1,67 @@
+\header{
+filename =     "twinkle.ly";
+title =                "Twinkle Twinkle Little Star";
+composer =     "Traditional";
+enteredby =    "hwn and jcn";
+copyright =    "public domain";
+}
+
+\version "1.3.25";
+
+\include "paper-as5.ly"
+
+melody = \notes \relative c'' {
+       \time 2/4;
+       c4 c | g' g | a a | g g |
+%{
+       f f | e e | d d8.( e16 | )c2 |
+
+       g'4 g | f f | e e | d d |
+       g g | f f | e( e8. f16 | e4 )d |
+
+       c c | g' g | a a | g g |
+       f f | e e | d d8.( e16 | )c2 |
+%}
+}
+
+accompany = \notes \relative c {
+       \clef "bass";
+       \time 2/4;
+       c4 c' | e c | f c | e c | 
+%{
+       d b | c a | f g | c,2 | 
+
+       e'4 g, | d' g, | c g | b g | 
+       e' g, | d' g, | c c8.( d16 | c4 )b |
+
+       c, c' | e c | f c | e c | 
+       d b | c a | f g | c,2 
+%}
+}
+
+
+text = \lyrics{
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+%{
+       How I won -- der what you  " " are.
+       Up a -- bove the world so high, " "
+       Like a dia -- mond in the  " " sky. " "
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+       How I won -- der what you  " " are!
+%}
+}
+
+\score{
+       \context GrandStaff <
+               \addlyrics
+                       \context Staff=upper \melody
+               \context Lyrics=between \text
+               \context Staff=lower \accompany 
+       >
+       \paper{
+               \translator { \GrandStaffContext \accepts "Lyrics"; }
+               indent=4.0\char;
+               linewidth=78.0\char;
+       }
+}
+
index ef266181ad1be7f44d1611af1841722faa4a9c0e..89936e5f0f72346f50514491f116b08f1cd88861 100644 (file)
@@ -107,10 +107,20 @@ All_font_metrics::find_font (String name)
   warning (_f ("Can't find font: `%s'", name.ch_C ()));
   warning (_ ("Loading default font"));
   
-  f =  find_tfm (default_font_sz_);
+  String def_name = default_font_sz_;
+  SCM l = ly_eval_str ("(style-to-cmr \"default\")");
+  if (l != SCM_BOOL_F)
+    def_name = ly_scm2string (gh_cdr (l));
+
+  f =  find_tfm (def_name);
   if (f)
     return f;
-  error (_f ("Can't find default font: `%s'", default_font_sz_));
+
+  f= find_afm (def_name);
+  if (f)
+    return f;
+
+  error (_f ("Can't find default font: `%s'", def_name.ch_C ()));
   error (_f ("(search path: `%s'", search_path_.str ()));
   error (_ ("Giving up"));
 
index 41d2e36e2a0c37ab4b421e7658b776a7c81f1b5e..913810a2d4e05de0f655090cb1310fe6cdd24406 100644 (file)
@@ -130,7 +130,7 @@ _(
 void
 identify ()
 {
-  cout << gnu_lilypond_version_str () << endl;
+  cerr << gnu_lilypond_version_str () << endl;
 }
 
 void
index 6081a73ccb0bd3b14b984deb53088266c0deb66c..33e720073b7ced2ab80e5b111361a5427ae236ed 100644 (file)
@@ -8,6 +8,7 @@
 #(define cmr-alist 
   '(("bold" . "cmbx") 
     ("brace" . "as-braces")
+    ("default" . "as-dummy") 
     ("dynamic" . "cmr") 
     ("feta" . "feta") 
     ("feta-1" . "feta") 
index 372a0c168373e24cc47cb7a876fd513b92ea9f35..c07c5d9cbb1bfb63dd779e83857e1edd0060f46f 100644 (file)
@@ -9,6 +9,7 @@
   '(("bold" . "cmbx") 
     ("brace" . "as-braces")
     ("dynamic" . "cmr") 
+    ("default" . "as-dummy") 
     ("feta" . "feta") 
     ("feta-1" . "feta") 
     ("feta-2" . "feta") 
diff --git a/mf/as-braces5.af b/mf/as-braces5.af
new file mode 100644 (file)
index 0000000..89c33a1
--- /dev/null
@@ -0,0 +1,126 @@
+       Comment as-braces5.af -- AsciiFont: braces for height 5
+
+       Comment part of LilyPond's [ascii music font]
+
+       Comment (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+
+       Comment Lines that start with TAB or FF make up the .afm
+       Comment TABs are comments
+       Comment `Comment' is the afm comment prefix
+       Comment which makes `TAB Comment' an .afm comment
+
+       StartFontMetrics 2.0
+       FontName as-braces 5
+       FontFamily as-braces
+       StartCharMetrics 10
+
+       Comment BBox: (llx lly urx ury) * 1000
+\f C 0; WX 1; N Brace-9; B 0 -4500 1000 4500;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 1; WX 1; N Brace-10; B 0 -5000 1000 5000;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 2; WX 1; N Brace-11; B 0 -5500 1000 5500;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 3; WX 1; N Brace-12; B 0 -6000 1000 6000;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 4; WX 1; N Brace-13; B 0 -6500 1000 6500;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 5; WX 1; N Brace-14; B -1000 -3000 1000 14000;
+X5
+\f C 6; WX 1; N Brace-15; B -1000 -3000 1000 14000;
+X6
+\f C 7; WX 1; N Brace-16; B -1000 -3000 1000 14000;
+/
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+\
+\f C 8; WX 1; N Brace-17; B -1000 -3000 1000 14000;
+X8
+\f C 9; WX 1; N Brace-18; B -1000 -3000 1000 14000;
+X9
+       EndCharMetrics
+       EndFontMetrics %d
+
diff --git a/mf/as-dummy.af b/mf/as-dummy.af
new file mode 100644 (file)
index 0000000..e738839
--- /dev/null
@@ -0,0 +1,279 @@
+       Comment as-dummy.af -- AsciiFont: sane metrics for LilyPond
+
+       Comment part of LilyPond's [ascii music font]
+
+       Comment (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+
+       Comment Lines that start with TAB or FF make up the .afm
+       Comment TABs are comments
+       Comment `Comment' is the afm comment prefix
+       Comment which makes `TAB Comment' an .afm comment
+
+       Comment Urg: this should be generated
+       Comment It only serves as a generic catch-all metric file
+       Comment for LilyPond
+
+       StartFontMetrics 2.0
+       FontName as-dummy
+       FontFamily as-dummy
+       StartCharMetrics 256
+
+       Comment BBox: (llx lly urx ury) * 1000
+\f C 0; WX 1; N Char-0; B 0 0 1000 1000;
+\f C 1; WX 1; N Char-1; B 0 0 1000 1000;
+\f C 2; WX 1; N Char-2; B 0 0 1000 1000;
+\f C 3; WX 1; N Char-3; B 0 0 1000 1000;
+\f C 4; WX 1; N Char-4; B 0 0 1000 1000;
+\f C 5; WX 1; N Char-5; B 0 0 1000 1000;
+\f C 6; WX 1; N Char-6; B 0 0 1000 1000;
+\f C 7; WX 1; N Char-7; B 0 0 1000 1000;
+\f C 8; WX 1; N Char-8; B 0 0 1000 1000;
+\f C 9; WX 1; N Char-9; B 0 0 1000 1000;
+\f C 10; WX 1; N Char-10; B 0 0 1000 1000;
+\f C 11; WX 1; N Char-11; B 0 0 1000 1000;
+\f C 12; WX 1; N Char-12; B 0 0 1000 1000;
+\f C 13; WX 1; N Char-13; B 0 0 1000 1000;
+\f C 14; WX 1; N Char-14; B 0 0 1000 1000;
+\f C 15; WX 1; N Char-15; B 0 0 1000 1000;
+\f C 16; WX 1; N Char-16; B 0 0 1000 1000;
+\f C 17; WX 1; N Char-17; B 0 0 1000 1000;
+\f C 18; WX 1; N Char-18; B 0 0 1000 1000;
+\f C 19; WX 1; N Char-19; B 0 0 1000 1000;
+\f C 20; WX 1; N Char-20; B 0 0 1000 1000;
+\f C 21; WX 1; N Char-21; B 0 0 1000 1000;
+\f C 22; WX 1; N Char-22; B 0 0 1000 1000;
+\f C 23; WX 1; N Char-23; B 0 0 1000 1000;
+\f C 24; WX 1; N Char-24; B 0 0 1000 1000;
+\f C 25; WX 1; N Char-25; B 0 0 1000 1000;
+\f C 26; WX 1; N Char-26; B 0 0 1000 1000;
+\f C 27; WX 1; N Char-27; B 0 0 1000 1000;
+\f C 28; WX 1; N Char-28; B 0 0 1000 1000;
+\f C 29; WX 1; N Char-29; B 0 0 1000 1000;
+\f C 30; WX 1; N Char-30; B 0 0 1000 1000;
+\f C 31; WX 1; N Char-31; B 0 0 1000 1000;
+\f C 32; WX 1; N Char-32; B 0 0 1000 1000;
+\f C 33; WX 1; N Char-33; B 0 0 1000 1000;
+\f C 34; WX 1; N Char-34; B 0 0 1000 1000;
+\f C 35; WX 1; N Char-35; B 0 0 1000 1000;
+\f C 36; WX 1; N Char-36; B 0 0 1000 1000;
+\f C 37; WX 1; N Char-37; B 0 0 1000 1000;
+\f C 38; WX 1; N Char-38; B 0 0 1000 1000;
+\f C 39; WX 1; N Char-39; B 0 0 1000 1000;
+\f C 40; WX 1; N Char-40; B 0 0 1000 1000;
+\f C 41; WX 1; N Char-41; B 0 0 1000 1000;
+\f C 42; WX 1; N Char-42; B 0 0 1000 1000;
+\f C 43; WX 1; N Char-43; B 0 0 1000 1000;
+\f C 44; WX 1; N Char-44; B 0 0 1000 1000;
+\f C 45; WX 1; N Char-45; B 0 0 1000 1000;
+\f C 46; WX 1; N Char-46; B 0 0 1000 1000;
+\f C 47; WX 1; N Char-47; B 0 0 1000 1000;
+\f C 48; WX 1; N Char-48; B 0 0 1000 1000;
+\f C 49; WX 1; N Char-49; B 0 0 1000 1000;
+\f C 50; WX 1; N Char-50; B 0 0 1000 1000;
+\f C 51; WX 1; N Char-51; B 0 0 1000 1000;
+\f C 52; WX 1; N Char-52; B 0 0 1000 1000;
+\f C 53; WX 1; N Char-53; B 0 0 1000 1000;
+\f C 54; WX 1; N Char-54; B 0 0 1000 1000;
+\f C 55; WX 1; N Char-55; B 0 0 1000 1000;
+\f C 56; WX 1; N Char-56; B 0 0 1000 1000;
+\f C 57; WX 1; N Char-57; B 0 0 1000 1000;
+\f C 58; WX 1; N Char-58; B 0 0 1000 1000;
+\f C 59; WX 1; N Char-59; B 0 0 1000 1000;
+\f C 60; WX 1; N Char-60; B 0 0 1000 1000;
+\f C 61; WX 1; N Char-61; B 0 0 1000 1000;
+\f C 62; WX 1; N Char-62; B 0 0 1000 1000;
+\f C 63; WX 1; N Char-63; B 0 0 1000 1000;
+\f C 64; WX 1; N Char-64; B 0 0 1000 1000;
+\f C 65; WX 1; N Char-65; B 0 0 1000 1000;
+\f C 66; WX 1; N Char-66; B 0 0 1000 1000;
+\f C 67; WX 1; N Char-67; B 0 0 1000 1000;
+\f C 68; WX 1; N Char-68; B 0 0 1000 1000;
+\f C 69; WX 1; N Char-69; B 0 0 1000 1000;
+\f C 70; WX 1; N Char-70; B 0 0 1000 1000;
+\f C 71; WX 1; N Char-71; B 0 0 1000 1000;
+\f C 72; WX 1; N Char-72; B 0 0 1000 1000;
+\f C 73; WX 1; N Char-73; B 0 0 1000 1000;
+\f C 74; WX 1; N Char-74; B 0 0 1000 1000;
+\f C 75; WX 1; N Char-75; B 0 0 1000 1000;
+\f C 76; WX 1; N Char-76; B 0 0 1000 1000;
+\f C 77; WX 1; N Char-77; B 0 0 1000 1000;
+\f C 78; WX 1; N Char-78; B 0 0 1000 1000;
+\f C 79; WX 1; N Char-79; B 0 0 1000 1000;
+\f C 80; WX 1; N Char-80; B 0 0 1000 1000;
+\f C 81; WX 1; N Char-81; B 0 0 1000 1000;
+\f C 82; WX 1; N Char-82; B 0 0 1000 1000;
+\f C 83; WX 1; N Char-83; B 0 0 1000 1000;
+\f C 84; WX 1; N Char-84; B 0 0 1000 1000;
+\f C 85; WX 1; N Char-85; B 0 0 1000 1000;
+\f C 86; WX 1; N Char-86; B 0 0 1000 1000;
+\f C 87; WX 1; N Char-87; B 0 0 1000 1000;
+\f C 88; WX 1; N Char-88; B 0 0 1000 1000;
+\f C 89; WX 1; N Char-89; B 0 0 1000 1000;
+\f C 90; WX 1; N Char-90; B 0 0 1000 1000;
+\f C 91; WX 1; N Char-91; B 0 0 1000 1000;
+\f C 92; WX 1; N Char-92; B 0 0 1000 1000;
+\f C 93; WX 1; N Char-93; B 0 0 1000 1000;
+\f C 94; WX 1; N Char-94; B 0 0 1000 1000;
+\f C 95; WX 1; N Char-95; B 0 0 1000 1000;
+\f C 96; WX 1; N Char-96; B 0 0 1000 1000;
+\f C 97; WX 1; N Char-97; B 0 0 1000 1000;
+\f C 98; WX 1; N Char-98; B 0 0 1000 1000;
+\f C 99; WX 1; N Char-99; B 0 0 1000 1000;
+\f C 100; WX 1; N Char-100; B 0 0 1000 1000;
+\f C 101; WX 1; N Char-101; B 0 0 1000 1000;
+\f C 102; WX 1; N Char-102; B 0 0 1000 1000;
+\f C 103; WX 1; N Char-103; B 0 0 1000 1000;
+\f C 104; WX 1; N Char-104; B 0 0 1000 1000;
+\f C 105; WX 1; N Char-105; B 0 0 1000 1000;
+\f C 106; WX 1; N Char-106; B 0 0 1000 1000;
+\f C 107; WX 1; N Char-107; B 0 0 1000 1000;
+\f C 108; WX 1; N Char-108; B 0 0 1000 1000;
+\f C 109; WX 1; N Char-109; B 0 0 1000 1000;
+\f C 110; WX 1; N Char-110; B 0 0 1000 1000;
+\f C 111; WX 1; N Char-111; B 0 0 1000 1000;
+\f C 112; WX 1; N Char-112; B 0 0 1000 1000;
+\f C 113; WX 1; N Char-113; B 0 0 1000 1000;
+\f C 114; WX 1; N Char-114; B 0 0 1000 1000;
+\f C 115; WX 1; N Char-115; B 0 0 1000 1000;
+\f C 116; WX 1; N Char-116; B 0 0 1000 1000;
+\f C 117; WX 1; N Char-117; B 0 0 1000 1000;
+\f C 118; WX 1; N Char-118; B 0 0 1000 1000;
+\f C 119; WX 1; N Char-119; B 0 0 1000 1000;
+\f C 120; WX 1; N Char-120; B 0 0 1000 1000;
+\f C 121; WX 1; N Char-121; B 0 0 1000 1000;
+\f C 122; WX 1; N Char-122; B 0 0 1000 1000;
+\f C 123; WX 1; N Char-123; B 0 0 1000 1000;
+\f C 124; WX 1; N Char-124; B 0 0 1000 1000;
+\f C 125; WX 1; N Char-125; B 0 0 1000 1000;
+\f C 126; WX 1; N Char-126; B 0 0 1000 1000;
+\f C 127; WX 1; N Char-127; B 0 0 1000 1000;
+\f C 128; WX 1; N Char-128; B 0 0 1000 1000;
+\f C 129; WX 1; N Char-129; B 0 0 1000 1000;
+\f C 130; WX 1; N Char-130; B 0 0 1000 1000;
+\f C 131; WX 1; N Char-131; B 0 0 1000 1000;
+\f C 132; WX 1; N Char-132; B 0 0 1000 1000;
+\f C 133; WX 1; N Char-133; B 0 0 1000 1000;
+\f C 134; WX 1; N Char-134; B 0 0 1000 1000;
+\f C 135; WX 1; N Char-135; B 0 0 1000 1000;
+\f C 136; WX 1; N Char-136; B 0 0 1000 1000;
+\f C 137; WX 1; N Char-137; B 0 0 1000 1000;
+\f C 138; WX 1; N Char-138; B 0 0 1000 1000;
+\f C 139; WX 1; N Char-139; B 0 0 1000 1000;
+\f C 140; WX 1; N Char-140; B 0 0 1000 1000;
+\f C 141; WX 1; N Char-141; B 0 0 1000 1000;
+\f C 142; WX 1; N Char-142; B 0 0 1000 1000;
+\f C 143; WX 1; N Char-143; B 0 0 1000 1000;
+\f C 144; WX 1; N Char-144; B 0 0 1000 1000;
+\f C 145; WX 1; N Char-145; B 0 0 1000 1000;
+\f C 146; WX 1; N Char-146; B 0 0 1000 1000;
+\f C 147; WX 1; N Char-147; B 0 0 1000 1000;
+\f C 148; WX 1; N Char-148; B 0 0 1000 1000;
+\f C 149; WX 1; N Char-149; B 0 0 1000 1000;
+\f C 150; WX 1; N Char-150; B 0 0 1000 1000;
+\f C 151; WX 1; N Char-151; B 0 0 1000 1000;
+\f C 152; WX 1; N Char-152; B 0 0 1000 1000;
+\f C 153; WX 1; N Char-153; B 0 0 1000 1000;
+\f C 154; WX 1; N Char-154; B 0 0 1000 1000;
+\f C 155; WX 1; N Char-155; B 0 0 1000 1000;
+\f C 156; WX 1; N Char-156; B 0 0 1000 1000;
+\f C 157; WX 1; N Char-157; B 0 0 1000 1000;
+\f C 158; WX 1; N Char-158; B 0 0 1000 1000;
+\f C 159; WX 1; N Char-159; B 0 0 1000 1000;
+\f C 160; WX 1; N Char-160; B 0 0 1000 1000;
+\f C 161; WX 1; N Char-161; B 0 0 1000 1000;
+\f C 162; WX 1; N Char-162; B 0 0 1000 1000;
+\f C 163; WX 1; N Char-163; B 0 0 1000 1000;
+\f C 164; WX 1; N Char-164; B 0 0 1000 1000;
+\f C 165; WX 1; N Char-165; B 0 0 1000 1000;
+\f C 166; WX 1; N Char-166; B 0 0 1000 1000;
+\f C 167; WX 1; N Char-167; B 0 0 1000 1000;
+\f C 168; WX 1; N Char-168; B 0 0 1000 1000;
+\f C 169; WX 1; N Char-169; B 0 0 1000 1000;
+\f C 170; WX 1; N Char-170; B 0 0 1000 1000;
+\f C 171; WX 1; N Char-171; B 0 0 1000 1000;
+\f C 172; WX 1; N Char-172; B 0 0 1000 1000;
+\f C 173; WX 1; N Char-173; B 0 0 1000 1000;
+\f C 174; WX 1; N Char-174; B 0 0 1000 1000;
+\f C 175; WX 1; N Char-175; B 0 0 1000 1000;
+\f C 176; WX 1; N Char-176; B 0 0 1000 1000;
+\f C 177; WX 1; N Char-177; B 0 0 1000 1000;
+\f C 178; WX 1; N Char-178; B 0 0 1000 1000;
+\f C 179; WX 1; N Char-179; B 0 0 1000 1000;
+\f C 180; WX 1; N Char-180; B 0 0 1000 1000;
+\f C 181; WX 1; N Char-181; B 0 0 1000 1000;
+\f C 182; WX 1; N Char-182; B 0 0 1000 1000;
+\f C 183; WX 1; N Char-183; B 0 0 1000 1000;
+\f C 184; WX 1; N Char-184; B 0 0 1000 1000;
+\f C 185; WX 1; N Char-185; B 0 0 1000 1000;
+\f C 186; WX 1; N Char-186; B 0 0 1000 1000;
+\f C 187; WX 1; N Char-187; B 0 0 1000 1000;
+\f C 188; WX 1; N Char-188; B 0 0 1000 1000;
+\f C 189; WX 1; N Char-189; B 0 0 1000 1000;
+\f C 190; WX 1; N Char-190; B 0 0 1000 1000;
+\f C 191; WX 1; N Char-191; B 0 0 1000 1000;
+\f C 192; WX 1; N Char-192; B 0 0 1000 1000;
+\f C 193; WX 1; N Char-193; B 0 0 1000 1000;
+\f C 194; WX 1; N Char-194; B 0 0 1000 1000;
+\f C 195; WX 1; N Char-195; B 0 0 1000 1000;
+\f C 196; WX 1; N Char-196; B 0 0 1000 1000;
+\f C 197; WX 1; N Char-197; B 0 0 1000 1000;
+\f C 198; WX 1; N Char-198; B 0 0 1000 1000;
+\f C 199; WX 1; N Char-199; B 0 0 1000 1000;
+\f C 200; WX 1; N Char-200; B 0 0 1000 1000;
+\f C 201; WX 1; N Char-201; B 0 0 1000 1000;
+\f C 202; WX 1; N Char-202; B 0 0 1000 1000;
+\f C 203; WX 1; N Char-203; B 0 0 1000 1000;
+\f C 204; WX 1; N Char-204; B 0 0 1000 1000;
+\f C 205; WX 1; N Char-205; B 0 0 1000 1000;
+\f C 206; WX 1; N Char-206; B 0 0 1000 1000;
+\f C 207; WX 1; N Char-207; B 0 0 1000 1000;
+\f C 208; WX 1; N Char-208; B 0 0 1000 1000;
+\f C 209; WX 1; N Char-209; B 0 0 1000 1000;
+\f C 210; WX 1; N Char-210; B 0 0 1000 1000;
+\f C 211; WX 1; N Char-211; B 0 0 1000 1000;
+\f C 212; WX 1; N Char-212; B 0 0 1000 1000;
+\f C 213; WX 1; N Char-213; B 0 0 1000 1000;
+\f C 214; WX 1; N Char-214; B 0 0 1000 1000;
+\f C 215; WX 1; N Char-215; B 0 0 1000 1000;
+\f C 216; WX 1; N Char-216; B 0 0 1000 1000;
+\f C 217; WX 1; N Char-217; B 0 0 1000 1000;
+\f C 218; WX 1; N Char-218; B 0 0 1000 1000;
+\f C 219; WX 1; N Char-219; B 0 0 1000 1000;
+\f C 220; WX 1; N Char-220; B 0 0 1000 1000;
+\f C 221; WX 1; N Char-221; B 0 0 1000 1000;
+\f C 222; WX 1; N Char-222; B 0 0 1000 1000;
+\f C 223; WX 1; N Char-223; B 0 0 1000 1000;
+\f C 224; WX 1; N Char-224; B 0 0 1000 1000;
+\f C 225; WX 1; N Char-225; B 0 0 1000 1000;
+\f C 226; WX 1; N Char-226; B 0 0 1000 1000;
+\f C 227; WX 1; N Char-227; B 0 0 1000 1000;
+\f C 228; WX 1; N Char-228; B 0 0 1000 1000;
+\f C 229; WX 1; N Char-229; B 0 0 1000 1000;
+\f C 230; WX 1; N Char-230; B 0 0 1000 1000;
+\f C 231; WX 1; N Char-231; B 0 0 1000 1000;
+\f C 232; WX 1; N Char-232; B 0 0 1000 1000;
+\f C 233; WX 1; N Char-233; B 0 0 1000 1000;
+\f C 234; WX 1; N Char-234; B 0 0 1000 1000;
+\f C 235; WX 1; N Char-235; B 0 0 1000 1000;
+\f C 236; WX 1; N Char-236; B 0 0 1000 1000;
+\f C 237; WX 1; N Char-237; B 0 0 1000 1000;
+\f C 238; WX 1; N Char-238; B 0 0 1000 1000;
+\f C 239; WX 1; N Char-239; B 0 0 1000 1000;
+\f C 240; WX 1; N Char-240; B 0 0 1000 1000;
+\f C 241; WX 1; N Char-241; B 0 0 1000 1000;
+\f C 242; WX 1; N Char-242; B 0 0 1000 1000;
+\f C 243; WX 1; N Char-243; B 0 0 1000 1000;
+\f C 244; WX 1; N Char-244; B 0 0 1000 1000;
+\f C 245; WX 1; N Char-245; B 0 0 1000 1000;
+\f C 246; WX 1; N Char-246; B 0 0 1000 1000;
+\f C 247; WX 1; N Char-247; B 0 0 1000 1000;
+\f C 248; WX 1; N Char-248; B 0 0 1000 1000;
+\f C 249; WX 1; N Char-249; B 0 0 1000 1000;
+\f C 250; WX 1; N Char-250; B 0 0 1000 1000;
+\f C 251; WX 1; N Char-251; B 0 0 1000 1000;
+\f C 252; WX 1; N Char-252; B 0 0 1000 1000;
+\f C 253; WX 1; N Char-253; B 0 0 1000 1000;
+\f C 254; WX 1; N Char-254; B 0 0 1000 1000;
+\f C 255; WX 1; N Char-255; B 0 0 1000 1000;
+       EndCharMetrics
+       EndFontMetrics %d
index 60b091b38df8b5fbe6ef260e5692ec43a2502978..5b2c13810c835a9e46ede32ef58a6810b36a9978 100644 (file)
--- a/mf/as5.af
+++ b/mf/as5.af
@@ -55,7 +55,7 @@ x
 O
 \f C 34; WX 6; N noteheads-1; B -1000 -500 0 500;
 o
-\f C 35; WX 6; N noteheads-2; B -1000 -500 0 500;
+\f C 35; WX 6; N noteheads-2; B -1000 0 0 1000;
 *
 \f C 36; WX 9; N noteheads-0diamond; B 0 -2750 9900 2750;
 V
index 187f4709b81b7d287ed5c83666e5bc291c46b2e9..c2597e99356de8ba66686c18e27ffa00e3b6450f 100644 (file)
--- a/mf/as9.af
+++ b/mf/as9.af
@@ -68,7 +68,7 @@ x
 )
 \f C 23; WX 2; N dots-dot; B -500 -500 500 500;
 .
-\f C 24; WX 1; N dots-repeatcolon; B 0 1000 1000 4000;
+\f C 24; WX 1; N dots-repeatcolon; B 0 -1000 1000 2000;
 *
 
 *
index c3a9ac8ea46b82c6e6060484dbc56d56836490a3..74a4f2da4ed36f54e75bb30f120ee8ffc5f33fc9 100644 (file)
 (define cmr-alist 
   '(("bold" . "cmbx") 
     ("brace" . "feta-braces")
+    ("default" . "cmr10")
     ("dynamic" . "feta-din") 
     ("feta" . "feta") 
     ("feta-1" . "feta") 
              (map (lambda (x) (string-append " " (arg->string x))) args)))
    ")\n"))
 
+(define (sign x)
+  (if (= x 0)
+      1
+      (inexact->exact (/ x (abs x)))))
 
 ;;;; AsciiScript as
 (define (as-scm action-name)
           (func "rline-to" width (* width slope))
           ))
 
+  ; simple flat slurs
+  (define (bezier-sandwich l thick)
+         (let (
+               (c0 (cadddr l))
+               (c1 (cadr l))
+               (c3 (caddr l)))
+              (let* ((x (car c0))
+                     (dx (- (car c3) x))
+                     (dy (- (cdr c3) (cdr c0)))
+                     (rc (/ dy dx))
+                     (c1-dx (- (car c1) x))
+                     (c1-line-y (+ (cdr c0) (* c1-dx rc)))
+                     (dir (if (< c1-line-y (cdr c1)) 1 -1))
+                     (y (+ -1 (* dir (max (* dir (cdr c0)) (* dir (cdr c3)))))))
+                    (string-append
+                     (func "rmove-to" x y)
+                     (func "put" (if (< 0 dir) "/" "\\\\"))
+                     (func "rmove-to" 1 (if (< 0 dir) 1 0))
+                     (func "set-line-char" "_")
+                     (func "h-line" (- dx 1))
+                     (func "rmove-to" (- dx 1) (if (< 0 dir) -1 0))
+                     (func "put" (if (< 0 dir) "\\\\" "/"))))))
+
   (define (bracket arch_angle arch_width arch_height width height arch_thick thick)
          (string-append
           (func "rmove-to" (+ width 1) (- (/ height -2) 1))
   (define (header-end) 
     (func "header-end"))
 
-  (define (lily-def key val)
+  ;; urg: this is good for half of as2text's execution time
+  (define (xlily-def key val)
          (string-append "(define " key " " (arg->string val) ")\n"))
 
+  (define (lily-def key val)
+         (if 
+          (equal? key "mudelapaperlinewidth")
+          (string-append "(define " key " " (arg->string val) ")\n")
+          ""))
+
   (define (placebox x y s) 
     (string-append (func "move-to" x y) s))
 
   (define (text s)
          (func "text" s))
 
-;  (define (volta h w thick vert_start vert_end)
-;     (func "draw-volta" h w thick vert_start vert_end))
-
   (define (volta h w thick vert-start vert-end)
+         ;; urg
+         (set! h 1)
          (string-append
-          (if #t  ;(= 0 vert-start)
-              ""
-             (func "v-line" h))
-          ""
-          ;(func "rmove-to" 0 h)
-          ;(func "h-line" w)
-          (if #t ;(= 0 vert-end)
-              ""
+          (func "set-line-char" "|")
+          (func "rmove-to" 0 -4)
+          ;; definition strange-way around
+          (if (= 0 vert-start)
+             (func "v-line" h)
+              "")
+          (func "rmove-to" 1 h)
+          (func "set-line-char" "_")
+          (func "h-line" (- w 1))
+          (func "set-line-char" "|")
+          (if (= 0 vert-end)
               (string-append
-               (func "rmove-to" w 0)
-               (func "v-line" (* -1 h))))))
+               (func "rmove-to" (- w 1) (* -1 h))
+               (func "v-line" (* -1 h)))
+              "")))
 
   (cond ((eq? action-name 'all-definitions)
         `(begin
            (define bracket ,bracket)
            (define char ,char)
            ;;(define crescendo ,crescendo)
-           ;(define bezier-sandwich ,bezier-sandwich)
+           (define bezier-sandwich ,bezier-sandwich)
            ;;(define dashed-slur ,dashed-slur) 
            ;;(define decrescendo ,decrescendo) 
            (define end-output ,end-output)
index 6385c8d477b9bf2062c2e962df277ba80234860e..ced2dcbb388bc53edd75af9cc97d280a4b910432 100644 (file)
   (ice-9 string-fun)
   (ice-9 regex))
 
-
 ;;; Script stuff
 (define program-name "as2text")
 
+(define lily-home "/usr/share/lilypond")
+(define cur-output-name "-")
+(define cur-output-file '())
+
 (define subst-version "@TOPLEVEL_VERSION@")
 
 (define program-version        
@@ -33,6 +36,7 @@
 (define (show-help)
   (display "Convert AsciiScript to text.
 
+
 Usage: as2text [OPTION]... AS-FILE
 
 Options:
@@ -42,36 +46,46 @@ Options:
 " (current-error-port)))
 
 (define (gulp-file name)
-  (let ((port (catch 'system-error (lambda () (open-file name "r"))
-                    (lambda args #f))))
-       (if port 
-          (let ((content (let loop ((text ""))
-                              (let ((line (read-line port)))
-                                   (if (or (eof-object? line)
-                                           (not line)) 
-                                       text
-                                       (loop (string-append text line "\n")))))))
-               (close port)
-               content)
-          (begin
-           (display 
-            (string-append "warning: no such file: " name "\n")
-            (current-error-port))
-           ""))))
-
-(define (with-exention name ext)
-  (if (equal? ext (substring name (max 0 (- (string-length name) 
-                                           (string-length ext)))))
-      name
+  (let ((port (if (equal? name "-")
+                 (current-input-port)
+                 (catch 'system-error (lambda () (open-file name "r"))
+                        (lambda args #f)))))
+       (if port 
+           (begin
+            (display (string-append "[" name) (current-error-port))
+            (let ((content (let loop ((text ""))
+                                (let ((line (read-line port)))
+                                     (if (or (eof-object? line)
+                                             (not line)) 
+                                         text
+                                         (loop (string-append text line "\n")))))))
+                 (close port)
+                 (display "]" (current-error-port))
+                 content))
+           (begin
+            (display 
+             (string-append "warning: no such file: " name "\n")
+             (current-error-port))
+            "")))) 
+
+(define (with-extention name ext)
+  (if (or (equal? name "-") 
+         (equal? ext (substring name (max 0 (- (string-length name) 
+                                               (string-length ext))))))
+      name 
       (string-append name ext)))
 
 (define (do-file file-name output-name)
-  (let ((output-file (current-output-port))
-       (ascii-script (gulp-file (with-exention file-name ".as"))))
+  (let ((ascii-script (gulp-file (with-extention file-name ".as"))))
+       ;; urg
+       (set! cur-output-name output-name)
        (eval-string ascii-script)))
 
 ;;; Script entry point
 (define (main args)
+  (set! lily-home (string-append 
+                    (dirname (dirname (car args))) 
+                    "/share/lilypond"))
   (show-version)
   (let ((options (getopt-long args
                              `((output (single-char #\o)
@@ -88,11 +102,11 @@ Options:
     (if (assq 'version options)
        (exit 0))
 
-    (let ((output-name (opt 'output-name "-"))
-          (files (let ((foo (opt '() '())))
-                      (if (null? foo) 
-                          (list "-")
-                          foo))))
+    (let ((output-name (opt 'output "-"))
+         (files (let ((foo (opt '() '())))
+                     (if (null? foo) 
+                         (list "-")
+                         foo))))
         (do-file (car files) output-name))))
 
 ;;;;
@@ -128,7 +142,7 @@ Options:
 ;; urg: 
 ;; make-uniform array of characters,
 ;; or 1-dim array of strings?
-;; (set! canvas (make-array " " canvas-height canvas-width)))
+;; (set! canvas (make-array " " canvas-height canvas-width))
 
 ;; urg, this kind of naming costs too much indenting
 (define (split c s r)
@@ -141,13 +155,18 @@ Options:
 ;;; Helper functions
 
 (define (af-gulp-file name)
-  (set! %load-path 
-       (cons (string-append 
-              (getenv 'LILYPONDPREFIX) "/mf") %load-path))
-  (let ((path (%search-load-path name)))
-       (if path
-          (gulp-file path)
-          (gulp-file name))))
+  ;; urg
+  (let ((old-load-path %load-path))
+       (set! %load-path 
+            (cons (string-append 
+                   (or (getenv 'LILYPONDPREFIX) ".") "/mf")
+                  (cons (string-append lily-home "/mf") %load-path)))
+       (let* ((path (%search-load-path name)) 
+             (text (if path
+                       (gulp-file path)
+                       (gulp-file name))))
+            (set! %load-path old-load-path)
+            text)))
 
 (define (char-width c)
   (let ((bbox (car c)))
@@ -198,9 +217,14 @@ Options:
        (let ((font (assoc name fonts)))
             (map (lambda (x) (show-char x)) font)))
 
+(define (sign x)
+  (if (= x 0)
+      1
+      (inexact->exact (/ x (abs x)))))
+
 (define (generate-default-font)
-  (let loop ((chars '()) (i 32))
-       (if (= 127 i) 
+  (let loop ((chars '()) (i 0))
+       (if (= 256 i) 
           chars 
           (loop 
            (cons (list i '(0 0 1000 1000) 
@@ -209,14 +233,17 @@ Options:
            (+ i 1)))))
 
 (define (get-font name)
-  (let ((entry (assoc name fonts)))
-       (if entry
-          (cdr entry)
-          (begin
-           (display 
-            (string-append "warning: no such font: " name "\n")
-            (current-error-port))
-           (get-font "default")))))
+  ;; urg
+  (if (equal? name "as-dummy")
+      (get-font "default")
+      (let ((entry (assoc name fonts)))
+          (if entry
+              (cdr entry)
+              (begin
+               (display 
+                (string-append "warning: no such font: " name "\n")
+                (current-error-port))
+               (get-font "default"))))))
 
 (define (get-char font n)
   (let ((entry (assoc n font)))
@@ -242,13 +269,12 @@ Options:
 
 (define (end-output) 
   (display (string-append 
-           (make-string (- canvas-width (string-length tag-line)) #\space)
-           tag-line "\n")))
-
-(define (sign x)
-  (if (= x 0)
-      1
-      (inexact->exact (/ x (abs x)))))
+           (make-string 
+            (- canvas-width (string-length tag-line)) #\space)
+           tag-line "\n")
+          cur-output-file)
+  (close cur-output-file)
+  (set! cur-output-file '()))
 
 (define (h-line len)
   (let ((step (sign len)))
@@ -262,7 +288,8 @@ Options:
           ((= i len)) (plot cur-x (+ cur-y i) line-char))))
 
 (define (header x y)
-  (display (string-append x y "\n") (current-error-port)))
+  ;(display (string-append x y "\n") (current-error-port))
+  "")
 
 (define (header-end) "")
 
@@ -299,14 +326,18 @@ Options:
        (list (list code bbox (cdr char)))))
 
 (define (load-font name mag)
-  (let ((text (af-gulp-file (string-append name ".af"))))
-       (if (< 0 (string-length text))
-          (let* ((char-list (cdr (split #\np 
+  ;; urg: don't load dummy font
+  (if (not (equal? name "as-dummy"))
+      (let ((text (af-gulp-file (string-append name ".af"))))
+          (if (< 0 (string-length text))
+              (let* ((char-list (cdr 
+                                 (split #\np 
                                         (regexp-substitute/global 
                                          #f "\t[^\n]*\n" text 'pre "" 'post) 
                                         list)))
-                 (font (apply append (map dissect-char char-list))))
-                (set! fonts (cons (cons name font) fonts))))))
+                     (font (apply append (map dissect-char char-list))))
+                    (if (< 0 (length font))
+                        (set! fonts (cons (cons name font) fonts))))))))
 
 (define (move-to x y)
   (set! cur-x x)
@@ -328,19 +359,31 @@ Options:
 (define (start-line height)
   (if first-line 
       (begin
-       (set! first-line #f)
-       (set! fonts (cons (cons "default" (generate-default-font)) fonts))))
-  (if (defined? 'mudelapaperlinewidth)
-      (set! canvas-width 
-           (inexact->exact (string->number mudelapaperlinewidth))))
+       (set! fonts (cons (cons "default" (generate-default-font)) fonts))
+       (display "\n" (current-error-port))
+       (if (defined? 'mudelapaperlinewidth)
+          (set! canvas-width 
+                (inexact->exact (string->number mudelapaperlinewidth))))))
   (set! canvas-height height)
   (set! canvas (make-array " " canvas-height canvas-width)))
 
 (define (stop-line)
+  (if first-line
+      (let ((output-file (if (equal? cur-output-name "-")
+                             (current-output-port)
+                             (open-file cur-output-name "w")))
+            (output-name (if (equal? cur-output-name "-")
+                             "<stdout>"
+                             cur-output-name)))
+           (set! first-line #f)
+           (set! cur-output-file output-file)
+           (display (string-append "text output to " output-name "...\n")
+                    (current-error-port))))
   (display 
    (apply string-append 
          (map (lambda (x) (string-append (apply string-append x) "\n")) 
-              (array->list canvas)))))
+              (array->list canvas)))
+   cur-output-file))
 
 (define (text s)
   (let ((n (string-length s))
@@ -351,4 +394,3 @@ Options:
                   (c (get-char font n)))
                  (plot-char c)
                  (rmove-to (char-width c) 0)))))
-