;;; Recorder assembly instructions (define make-hidden-key-addresses (make-key-symbols 'hidden)) (define recorder-change-points ((make-named-spreadsheet '(recorder)) '())) (define (remove-last x) (reverse (cdr (reverse x)))) (define recorder-rh-B-key-stencil (variable-column-circle-stencil 0.55)) (define recorder-rh-L-key-stencil (variable-column-circle-stencil 0.35)) (define (generate-recorder-family-entry recorder-name) (let* ((change-points (get-named-spreadsheet-column recorder-name recorder-change-points))) `(,recorder-name . ((keys . ((hidden . ((midline . ((offset . (0.0 . 0.0)) (stencil . ,midline-stencil) (text? . #f) (complexity . basic))) (r3 . ((offset . (0.0 . 1.0)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . basic))) (r4 . ((offset . (0.0 . 0.0)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . basic))))) (central-column . ((one . ((offset . ,(assoc-get 'one CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (two . ((offset . ,(assoc-get 'two CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (three . ((offset . ,(assoc-get 'three CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (four . ((offset . ,(assoc-get 'four CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (five . ((offset . ,(assoc-get 'five CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))))) (left-hand . ((T . ((offset . (0.0 . 0.0)) (stencil . ,saxophone-lh-T-key-stencil) (text? . ("T" . #f)) (complexity . covered))))) (right-hand . ((r3B . ((offset . (-0.3 . 1.15)) (stencil . ,recorder-rh-B-key-stencil) (text? . ("6-" . #f)) (complexity . trill))) (r3L . ((offset . (0.5 . 0.8)) (stencil . ,recorder-rh-L-key-stencil) (text? . ("6" . #f)) (complexity . trill))) (r4B . ((offset . (-0.3 . 0.15)) (stencil . ,recorder-rh-B-key-stencil) (text? . ("7-" . #f)) (complexity . trill))) (r4L . ((offset . (0.5 . -0.2)) (stencil . ,recorder-rh-L-key-stencil) (text? . ("7" . #f)) (complexity . trill))))))) (graphical-commands . ((stencil-alist . ((stencils . (,(simple-stencil-alist '(hidden . midline) '(0.0 . 3.75)) ((stencils . ,(make-hidden-key-addresses '(r3 r4))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))) ((stencils . ,(make-central-column-hole-addresses (remove-last CENTRAL-COLUMN-HOLE-LIST))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))) ,(simple-stencil-alist '(left-hand . T) '(-2.2 . 7)) ((stencils . ,(make-right-hand-key-addresses '(r3B r3L r4B r4L))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0)))) (draw-instructions . ((,group-automate-rule ((left-hand . T))) (,group-automate-rule ,(make-right-hand-key-addresses '(r3B r3L r4B r4L))) (,group-automate-rule ,(make-central-column-hole-addresses (remove-last CENTRAL-COLUMN-HOLE-LIST))) (,group-automate-rule ((hidden . midline))) (,group-automate-rule ,(make-hidden-key-addresses '(r3 r4))))) (extra-offset-instructions . (;; consider adding something in here for T, analagous to sax ;;(,rich-group-extra-offset-rule ;; (left-hand . T) ;; ,(central-column . one) ;; this line has error... ;; (0.0 . 1.0)) (,uniform-extra-offset-rule (0.0 . 0.0)))))) (text-commands . ((stencil-alist . ((stencils . (,(simple-stencil-alist '(hidden . midline) '(0.0 . 3.75)) ((stencils . ,(make-hidden-key-addresses '(r3 r4))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))) ((stencils . ,(make-central-column-hole-addresses (remove-last CENTRAL-COLUMN-HOLE-LIST))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))) ,(simple-stencil-alist '(left-hand . T) '(-2.2 . 7)) ;; consider lh-woodwind-text-stencil ((stencils . ,(make-right-hand-key-addresses '(r3B r3L r4B r4L))) ;; consider rh-woodwind-text-stencil (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0))))) (xy-scale-function . (,identity . ,identity)) (textual? . #f) (offset . (0.0 . 0.0)))) (draw-instructions . ((,group-automate-rule ((left-hand . T))) (,group-automate-rule ,(make-right-hand-key-addresses '(r3B r3L r4B r4L))) (,group-automate-rule ,(make-central-column-hole-addresses (remove-last CENTRAL-COLUMN-HOLE-LIST))) (,group-automate-rule ((hidden . midline))) (,group-automate-rule ,(make-hidden-key-addresses '(r3 r4))))) (extra-offset-instructions . ((,uniform-extra-offset-rule (0.0 . 0.0))))))))))