]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.5.21.jcn1
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 8 Nov 2001 12:13:21 +0000 (13:13 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 8 Nov 2001 12:13:21 +0000 (13:13 +0100)
1.5.21.jcn1
===========

* snapnie sketch output

1.5.21
======

CHANGES
VERSION
lily/main.cc
scm/lily.scm
scm/sketch.scm

diff --git a/CHANGES b/CHANGES
index 8ad23847a958d53dea7268b5f4c112a0080c325b..5347c6572768929e6af06533c2a67efd76e3082a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+1.5.21.jcn1
+===========
+
+* snapnie sketch output
+
+1.5.21
+======
+
 1.5.20.jcn1
 ===========
 
diff --git a/VERSION b/VERSION
index 08539f2bab1b3a1ad620d314b307be8c441e4be6..4a2c8b13614b2d353043023d6805a747eacafbbc 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PATCH_LEVEL=21
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index f4ccf040d06930c9b2256d7d6efcf32646cfe291..d24ffdcf058bf84684768777921081d16bbd0c0d 100644 (file)
@@ -277,13 +277,8 @@ setup_paths ()
     new_glp = ":" + new_glp;
   new_glp = prefix_directory + new_glp;
 
-  /*
-    Yes , so setenv is not posix.
-
-    I say, fuckem'all.
-   */
-
-  setenv ("GUILE_LOAD_PATH", new_glp.ch_C(), 1);
+  /* URG, overwrite load path */
+  putenv ((char*)("GUILE_LOAD_PATH=" + new_glp).ch_C ());
 }
 
 /**
index 8679e958cc44f425c0906a42a0dbcba232f50ab2..8922fef0eaed20729c3dca70db49e167bf9cdd88 100644 (file)
             (scm ps)
             (scm pysk)
             (scm ascii-script)
+            (scm sketch)
             )
 
 (define output-alist
     ("scm" . ,write)
     ("as" . ,as-output-expression)
     ("pysk" . ,pysk-output-expression)
+    ("sketch" . ,sketch-output-expression)
 ))
 
 
index 8b137891791fe96927ad78e64b0aad7bded08bdc..e13e67c4e4c0e81b8e92134ba3a43337547344d8 100644 (file)
@@ -1 +1,296 @@
+;;; sketch.scm -- implement Scheme output routines for Sketch
+;;;
+;;;  source file of the GNU LilyPond music typesetter
+;;; 
+;;; (c) 1998--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+
+(define-module (scm sketch)
+  :export (sketch-output-expression)
+  :no-backtrace
+  )
+
+(define this-module (current-module))
+
+(define (sketch-output-expression expr port)
+  (display (eval expr this-module) port)
+  )
+
+(use-modules
+ (guile)
+ (guile-user))
+
+
+(use-modules (ice-9 format))
+
+(define (ascii->string i) (make-string 1 (integer->char i)))
+
+(define (control->list c)
+  (list (+ global-x (car c)) (+ global-y (cdr c))))
+
+(define (control-flip-y c)
+  (cons (car c) (* -1 (cdr c))))
+
+;;; urg.
+(define (sk-numbers->string l)
+  (string-append
+   (number->string (car l))
+   (if (null? (cdr l))
+       ""
+       (string-append ","  (sk-numbers->string (cdr l))))))
+
+(define global-x 0.0)
+(define global-y 0.0)
+(define global-list '())
+(define global-font "")
+(define global-s "")
+(define global-scale 1.0)
+(define (global-mul-scale  x) (* global-scale x))
+
+;; hmm, global is global
+(define (global-filledbox width dy dx height x y)
+  (string-append
+   "fp((0,0,0))\n"
+   "lw(0.1)\n"
+   "r("
+   (sk-numbers->string
+    (map global-mul-scale (list width dy dx height x y)))
+   ")\n"))
+
+(define (global-bezier l)
+  (let* ((c0 (car (list-tail l 3)))
+        (c123 (list-head l 3))
+        (start (control->list c0))
+        (control (apply append (map control->list c123))))
+    (string-append
+     "bs(" (sk-numbers->string (map global-mul-scale start)) ",0)\n"
+     "bc(" (sk-numbers->string (map global-mul-scale control)) ",2)\n")))
+  
+
+(define (global-beziers l thick)
+  (let* (;;(burp (set! global-y (+ global-y (* 2 (cdar l)))))
+        (first
+         (list-tail l 4))
+        (second
+         (list-head l 4))
+                )
+    (string-append
+     "fp((0,0,0))\n"
+     "lw(0.1)\n"
+     "b()\n"
+     (global-bezier first)
+     (global-bezier second)
+     ;;"b_()\n"
+     )))
+        
+
+;; alist containing fontname -> fontcommand assoc (both strings)
+(define font-alist '())
+(define font-count 0)
+(define current-font "")
+
+(define (fontify name-mag-pair exp)
+  (string-append (select-font name-mag-pair)
+                (if (string? exp) exp "")))
+
+(define (define-fonts x) "")
+
+(define (font-def x)
+"")
+
+
+(define (cached-fontname i)
+  "")
+
+(define (select-font name-mag-pair)
+  (set! global-font (car name-mag-pair))
+  "")
+
+(define (font-load-command name-mag command)
+  "")
+
+(define (beam width slope thick)
+  (let ((s (list
+           'global-filledbox
+           width
+           (* slope width)
+           0
+           thick
+           'global-x
+           'global-y)))
+    (set! global-s s))
+  "\n")
+
+(define (comment s)
+  (string-append "% " s))
+
+(define (bracket arch_angle arch_width arch_height  height arch_thick thick)
+  (string-append
+   (numbers->string (list arch_angle arch_width arch_height height arch_thick thick)) " draw_bracket" ))
+
+(define (char i)
+  (set! global-s
+;;       `(string-append "txt(" ,(number->string i) ",("
+;;                       (sk-numbers->string (list global-x global-y))
+       `(string-append
+         "fp((0,0,0))\n"
+         "le()\n"
+         "lw(0.1)\n"
+;;         "Fn('" global-font "')\n"
+;;         "Fn('Times-Roman')\n"
+         "Fn('TeX-feta20')\n"
+         "Fs(20)\n"
+         ;; chars > 128 don't work yet
+         "txt('" ,(ascii->string (modulo i 128)) "',("
+;;         "char(" ,(number->string i)  ",("
+         (sk-numbers->string (list (* global-scale global-x)
+                                   (* global-scale global-y)))
+         "))\n")))
+
+(define (hairpin thick width starth endh )
+  (string-append 
+   (numbers->string (list width starth endh thick))
+   " draw_hairpin"))
+
+;; what the heck is this interface ?
+(define (dashed-slur thick dash l)
+  (string-append 
+   (apply string-append (map control->string l)) 
+   (ly-number->string thick) 
+   " [ "
+   (ly-number->string dash)
+   " "
+   (ly-number->string (* 10 thick))    ;UGH.  10 ?
+   " ] 0 draw_dashed_slur"))
+
+(define (dashed-line thick on off dx dy)
+  (string-append 
+   (ly-number->string dx)
+   " "
+   (ly-number->string dy)
+   " "
+   (ly-number->string thick) 
+   " [ "
+   (ly-number->string on)
+   " "
+   (ly-number->string off)
+   " ] 0 draw_dashed_line"))
+
+(define (repeat-slash wid slope thick)
+ (string-append (numbers->string (list wid slope thick))
+  " draw_repeat_slash"))
+
+(define (end-output)
+  "guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')\n")
+
+(define (experimental-on) "")
+
+(define (font-switch i)
+  "")
+
+(define (header-end)
+  "")
+
+(define (lily-def key val)
+  (if (equal? key "lilypondpaperoutputscale")
+      (set! global-scale (string->number val)))
+  "")
+
+
+(define (header creator generate)
+  (string-append
+   "##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+"))
+
+(define (invoke-char s i)
+  "")
+
+(define (invoke-dim1 s d) 
+  (string-append
+   (ly-number->string (* d  (/ 72.27 72))) " " s ))
+
+;;  urg
+(define (placebox x y s)
+  (format (current-error-port) "placebox: ~S, ~S, ~S\n" x y s)
+  (set! global-x (+ x 0))
+  (set! global-y (+ y 100))
+  (let ((s (primitive-eval global-s)))
+    (set! global-s "\n")
+    s))
+
+(define (bezier-sandwich l thick)
+  (let ((s (list
+           'global-beziers
+           'global-list
+           thick)))
+    (set! global-s s)
+    (set! global-list l))
+  "\n")
+
+; TODO: use HEIGHT argument
+(define (start-line height)
+   "G()\n"
+   )
+
+;;  r((520.305,0,0,98.0075,51.8863,10.089))
+;;  width, 0, 0, height, x, y
+(define (filledbox breapth width depth height)
+  (let ((s (list
+           'global-filledbox
+           (+ breapth width)
+           0 0
+           (+ depth height)
+           `(- global-x ,breapth)
+           `(- global-y ,depth))))
+    (format (current-error-port) "filledbox: ~S\n" s)
+    (set! global-s s))
+  "\n")
+
+(define (stem x y z w) (filledbox x y z w))
+
+
+(define (stop-line)
+    "G_()\n")
+
+;; huh?
+(define (stop-last-line)
+   stop-line)
+
+(define (text s)
+  (set! global-s
+       `(string-append "txt('" ,s "',("
+                       (sk-numbers->string (list global-x global-y))
+                       "))\n")))
+
+
+(define (volta h w thick vert_start vert_end)
+  (string-append 
+   (numbers->string (list h w thick (inexact->exact vert_start) (inexact->exact vert_end)))
+   " draw_volta"))
+
+(define (tuplet ht gap dx dy thick dir)
+  (string-append 
+   (numbers->string (list ht gap dx dy thick (inexact->exact dir)))
+   " draw_tuplet"))
+
+
+(define (unknown) 
+  "\n unknown\n")
+
+(define (ez-ball ch letter-col ball-col)
+  (string-append
+   " (" ch ") "
+   (numbers->string (list letter-col ball-col))
+   " /Helvetica-Bold " ;; ugh
+   " draw_ez_ball"))
+
+(define (define-origin a b c ) "")
+(define (no-origin) "")
+