-
- ;; linear interpolation.
- (x1 (* 4.125 pt))
- (x0 (* 5 pt))
- (f1 (* 0.47 pt))
- (f0 (* 0.50 pt))
- (lt (/
- (+
- (* f1 (- ss x0))
- (* f0 (- x1 ss)))
- (- x1 x0)))
-
- (mm (eval 'mm m)))
-
- (module-define! m 'outputscale ss)
- (module-define! m 'fonts (make-cmr-tree (/ sz (* 20 pt))))
- (module-define! m 'staffheight sz)
- (module-define! m 'staff-space ss)
- (module-define! m 'staffspace ss)
-
- ;; !! synchronize with feta-params.mf
- (module-define! m 'linethickness lt)
- (module-define! m 'ledgerlinethickness (+ (* 0.5 pt) (/ ss 10)))
- (module-define! m 'blotdiameter (* 0.35 pt))
- (module-define! m 'interscoreline (* 4 mm))
-
- (module-define! m 'dimension-variables
- '(pt mm cm in staffheight staff-space
- linewidth indent hsize vsize
- staffspace linethickness ledgerlinethickness
- blotdiameter interscoreline leftmargin rightmargin))
+ ;; !! synchronize with feta-params.mf
+ (let*
+ ((x1 (* 4.125 pt))
+ (x0 (* 5 pt))
+ (f1 (* 0.47 pt))
+ (f0 (* 0.50 pt)))
+
+ (/
+ (+
+ (* f1 (- staff-space x0))
+ (* f0 (- x1 staff-space)))
+ (- x1 x0))))
+
+(define-public (layout-set-absolute-staff-size-in-module module staff-height)
+ (let*
+ ((pt (eval 'pt module))
+ (ss (/ staff-height 4))
+ (factor (/ staff-height (* 20 pt)))
+ (setm! (lambda (sym val)
+ (module-define! module sym val))))
+
+ (setm! 'text-font-size (* 12 factor))
+
+ (setm! 'output-scale ss)
+ (setm! 'fonts
+ (if tex-backend?
+ (make-cmr-tree factor)
+ (make-century-schoolbook-tree factor)))
+ (setm! 'staff-height staff-height)
+ (setm! 'staff-space ss)
+
+ (setm! 'line-thickness (calc-line-thickness ss pt))
+
+ ;; sync with feta
+ (setm! 'ledgerline-thickness (+ (* 0.5 pt) (/ ss 10)))
+
+ ;; sync with feta
+ (setm! 'blot-diameter (* 0.4 pt))