]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.57.jcn2
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 7 Jun 2000 21:16:59 +0000 (23:16 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 7 Jun 2000 21:16:59 +0000 (23:16 +0200)
1.3.57.jcn2
===========

* Cleaned-up scheme list to text conversion for Chord_name and
fixed horizontal kerning.

* Added examples for american (slashed o) and jazz (black triangle),
  see input/test/{american-chords.ly,jazz-chords.ly}

CHANGES
VERSION
input/test/american-chords.ly
input/test/jazz-chords.ly [new file with mode: 0644]
lily/chord-name.cc
lily/include/chord-name.hh
ly/paper16.ly
ly/paper20.ly
scm/chord-names.scm
scm/lily.scm

diff --git a/CHANGES b/CHANGES
index 8de9ee0b5d329983b7f3f6948b9d8a3dbb5f4dc5..5f13a72ea68fe3296a088a34de1bb614e032b6e0 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,12 @@
+1.3.57.jcn2
+===========
+
+* Cleaned-up scheme list to text conversion for Chord_name and 
+fixed horizontal kerning.
+
+* Added examples for american (slashed o) and jazz (black triangle),
+  see input/test/{american-chords.ly,jazz-chords.ly}
+
 1.3.57.jcn1
 ===========
 
diff --git a/VERSION b/VERSION
index 3e527182ca98da8087b27a48cd9d395e9d1a498a..cb018d0592b036918e1f39bda099e765662c4769 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=57
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 3c812fce6d69743027b665b37c298c68c0c543b3..9aa0536f441a750f9a87b22bfb393200908ca7fc 100644 (file)
@@ -1,6 +1,7 @@
 #(set! chord::names-alist-american
       (append 
       '(
+       ;; any changes here, see scm/chord-names.scm
 
        )
       chord::names-alist-american))
diff --git a/input/test/jazz-chords.ly b/input/test/jazz-chords.ly
new file mode 100644 (file)
index 0000000..2e18444
--- /dev/null
@@ -0,0 +1,44 @@
+%
+% Make sure the correct msamxx.tfm is where lily can find it
+% (ie cwd or lily's tfm dir).
+%
+% For normal (20pt) paper, do
+%
+%   cp locate `msam9.tfm` $LILYPONDPREFIX/tfm
+%
+
+#(set! chord::names-alist-american
+      (append 
+      '(
+        ;; any changes here, see scm/chord-names.scm
+
+
+        ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o7" (type . "super"))))
+        ;jazz: the delta, see jazz-chords.ly
+        (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) .  (("N" (type . "super") (style . "msam") (size . -3))))
+
+        ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("x7" (type . "super"))))
+        ; slashed o
+        (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) ("7" (type . "super"))))
+
+       )
+      chord::names-alist-american))
+
+chord = \notes\transpose c''\chords{
+\property ChordNames.chordNameStyle = "american"
+c:m5-.7-
+c:m5-.7
+}
+
+\score{
+<
+\context ChordNames \chord
+\context Staff \chord
+>
+    \paper
+    {
+        \translator { \ChordNameContext chordNameWordSpace = #1 }
+        \translator { \LyricsContext textScriptWordSpace = #0.3 }
+    }
+}
+
index 90b81c57fdd53b72e2498ceefcf89fd2e9d96e6c..052a5b99dddd520ed9bc5292ef1d82d730fa236b 100644 (file)
  */
 
 /*
-  word is roman text or styled text:
+  word is roman text or property-styled text:
    "text"
-   ("style" . "text")
+   ("text" . property-alist)
  */
 
-/*
-  UGH. remove Dictionary< > and use Scheme_hash_table
- */
 Molecule
-Chord_name::ly_word2molecule (SCM word) const
+Chord_name::ly_word2molecule (SCM word, Real* x) const
 {
-  /*
-    junkme.
-
-    Using the dict doesn't save code, since you have to compare
-    dict entries by hand later on anyway.
-    
-   */
-  Dictionary<SCM> option_dict; 
+  *x = 0;
+
+  SCM options = SCM_EOL;
   if (gh_pair_p (word))
     {
-      SCM options = gh_cdr (word);
+      options = gh_cdr (word);
       word = gh_car (word);
-      while (gh_pair_p (options))
-        {
-         SCM option = gh_car (options);
-         if (gh_pair_p (option))
-           {
-             SCM key = gh_car (option);
-             SCM val = gh_cdr (option);
-             String k;
-             if (gh_symbol_p (key))
-               k = ly_symbol2string (key);
-             else if (gh_string_p (key))
-               k = ly_scm2string (key);
-              else
-               continue;
-              option_dict[k] = val;
-           }
-         options = gh_cdr (options);
-        }
     }
 
-  /*
-    UGH. Should read from font metric structure.
-  */
-  Real ex = lookup_l ()->text ("", "x", paper_l ()).extent(Y_AXIS).length ();
   if (gh_string_p (word))
     {
-      String w = ly_scm2string (word);
-      Molecule mol;
-      Offset offset;
+      /*
+       UGH. Should read from font metric structure.
+      */
+      Real ex = lookup_l ()->text ("", "x",
+                                  paper_l ()).extent (Y_AXIS).length ();
+      Real em = lookup_l ()->text ("", "m",
+                                  paper_l ()).extent (X_AXIS).length ();
 
-      int size = 0;
-      if (option_dict.elem_b ("size"))
-        size = gh_scm2int (option_dict["size"]);
+      String w = ly_scm2string (word);
 
       String style;
-      if (option_dict.elem_b ("style"))
-        style = ly_scm2string (option_dict["style"]);
+      SCM s = scm_assoc (ly_symbol2scm ("style"), options);
+      if (s != SCM_BOOL_F)
+       {
+         style = ly_scm2string (gh_cdr (s));
+       }
 
-      if (option_dict.elem_b ("type")
-         && ly_scm2string (option_dict["type"]) == "super")
+      Offset offset;
+      int size = 0;
+      /*
+       urg, `type'
+      */
+      s = scm_assoc (ly_symbol2scm ("type"), options);
+      if (s != SCM_BOOL_F && ly_scm2string (gh_cdr (s)) == "super")
        {
          Real super_y = ex / 2;
-         //super_y += -acc.extent (Y_AXIS)[MIN];
          offset = Offset (0, super_y);
          if (!size)
            size = -2;
        }
-      if (option_dict.elem_b ("offset"))
+
+      s = scm_assoc (ly_symbol2scm ("size"), options);
+      if (s != SCM_BOOL_F)
+       {
+         size = gh_scm2int (gh_cdr (s));
+       }
+
+      s = scm_assoc (ly_symbol2scm ("offset"), options);
+      if (s != SCM_BOOL_F)
        {
          // hmm
-         SCM s = option_dict["offset"];
-         if (gh_pair_p (s))
-           offset = Offset (gh_scm2double (gh_car (s)),
-                            gh_scm2double (gh_cdr (s))) * ex;
+         SCM o = gh_cdr (s);
+         if (gh_pair_p (o))
+           offset = Offset (0, gh_scm2double (gh_cdr (o))) * ex;
+         *x = gh_scm2double (gh_car (o)) * em;
        }
-      if (option_dict.elem_b ("font") 
-         && ly_scm2string (option_dict["font"]) == "feta")
+
+      Molecule mol;
+      s = scm_assoc (ly_symbol2scm ("font"), options);
+      if (s != SCM_BOOL_F && ly_scm2string (gh_cdr (s)) == "feta")
         mol = paper_l ()->lookup_l (size)->afm_find (w);
       else
        mol = paper_l ()->lookup_l (size)->text (style, w, paper_l ());
@@ -124,16 +113,18 @@ Chord_name::ly_text2molecule (SCM text) const
     {
       while (gh_cdr (text) != SCM_EOL)
         {
-         Molecule m = ly_word2molecule (gh_car (text));
+         Real x;
+         Molecule m = ly_word2molecule (gh_car (text), &x);
          if (!m.empty_b ())
-           mol.add_at_edge (X_AXIS, RIGHT, m, 0);
+           mol.add_at_edge (X_AXIS, RIGHT, m, x);
          text = gh_cdr (text);
        }
       text = gh_car (text);
     }  
-  Molecule m = ly_word2molecule (text);
+  Real x;
+  Molecule m = ly_word2molecule (text, &x);
   if (!m.empty_b ())
-    mol.add_at_edge (X_AXIS, RIGHT, m, 0);
+    mol.add_at_edge (X_AXIS, RIGHT, m, x);
   return mol;
 }
 
index f2c930c031c256804d014efb2fe818c54ddf0132..80bc855e4396303b3e375503d6eeb5227687dd47 100644 (file)
@@ -25,7 +25,7 @@ public:
    static SCM scheme_molecule (SCM);
   
 VIRTUAL_COPY_CONS (Score_element);
-  Molecule ly_word2molecule (SCM scm) const;
+  Molecule ly_word2molecule (SCM scm, Real* x) const;
   Molecule ly_text2molecule (SCM scm) const;
   Chord_name(SCM s);
 protected:
index 1256998bd2b4e849bde03397ddada399a50bba8b..c098eb0bb492317c873dfe5d762e030097da8dce 100644 (file)
@@ -23,6 +23,7 @@ paper_sixteen = \paper {
        font_timesig = 8.;
        font_dynamic = 10.;
        font_mark = 10.;
+       font_msam = 8.;
 
        0 = \font "feta16" 
        -1 = \font "feta13"
index fc0566e536347a2acd160bf0c5cd085d0dd856ab..c3bade0b389b1ea66cdbadd184b97eefbf69ba62 100644 (file)
@@ -16,6 +16,7 @@ paper_twenty = \paper {
        font_number = 10.;
        font_timesig = 10.;
        font_mark = 12.;
+       font_msam = 9.;
 
        % what about:
        "font_number-1" = 8.;
index a7ef7bf2768ac4855a2705ebef83d88b0328ff94..5fa71559ac7bb05bab80c773580c3d947da445f1 100644 (file)
         (((0 . 0) (4 . 0)) . (("5" (type . "super"))))
         (((0 . 0) (3 . 0) (4 . 0)) . ("sus"))
         (((0 . 0) (2 . -1) (4 . -1)) . (("o" (type . "super"))))
+
         (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o7" (type . "super"))))
-        (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("x7" (type . "super"))))
+        ;jazz: the delta, see jazz-chords.ly
+        ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) .  (("N" (type . "super") (style . "msam") (size . -3))))
+
+        ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("x7" (type . "super"))))
+        ; slashed o
+        (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) ("7" (type . "super"))))
 
         (((0 . 0) (2 . 0) (4 . 1)) . ("aug"))
         (((0 . 0) (2 . 0) (4 . 1) (6 . -1)) . (("aug" ("7" (type . "super")))))
index 62417660b10a5bf8dc8651b908e595467e435e9c..d68cdd938449f411ab890090b0e4d7817e27068b 100644 (file)
     ("feta-2" . "feta") 
     ("typewriter" . "cmtt") 
     ("italic" . "cmti") 
+    ("msam" . "msam") 
     ("roman" . "cmr") 
     ("script" . "cmr") 
     ("large" . "cmbx")