LilyPond-Ruby 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/etc/fonts/conf.d/10-hinting-slight.conf +15 -0
- data/etc/fonts/conf.d/10-scale-bitmap-fonts.conf +83 -0
- data/etc/fonts/conf.d/11-lcdfilter-default.conf +17 -0
- data/etc/fonts/conf.d/20-unhint-small-vera.conf +49 -0
- data/etc/fonts/conf.d/30-metric-aliases.conf +637 -0
- data/etc/fonts/conf.d/40-nonlatin.conf +332 -0
- data/etc/fonts/conf.d/45-generic.conf +136 -0
- data/etc/fonts/conf.d/45-latin.conf +301 -0
- data/etc/fonts/conf.d/48-spacing.conf +16 -0
- data/etc/fonts/conf.d/49-sansserif.conf +22 -0
- data/etc/fonts/conf.d/50-user.conf +16 -0
- data/etc/fonts/conf.d/51-local.conf +7 -0
- data/etc/fonts/conf.d/60-generic.conf +64 -0
- data/etc/fonts/conf.d/60-latin.conf +88 -0
- data/etc/fonts/conf.d/65-fonts-persian.conf +418 -0
- data/etc/fonts/conf.d/65-nonlatin.conf +228 -0
- data/etc/fonts/conf.d/69-unifont.conf +28 -0
- data/etc/fonts/conf.d/80-delicious.conf +19 -0
- data/etc/fonts/conf.d/90-synthetic.conf +64 -0
- data/etc/fonts/conf.d/README +23 -0
- data/etc/fonts/fonts.conf +101 -0
- data/etc/relocate/fontconfig.reloc +2 -0
- data/etc/relocate/guile.reloc +2 -0
- data/etc/relocate/libexec.reloc +1 -0
- data/lib/guile/2.2/ccache/ice-9/and-let-star.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/arrays.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/atomic.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/binary-ports.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/boot-9.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/buffered-input.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/calling.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/channel.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/command-line.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/common-list.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/control.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/curried-definitions.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/debug.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/deprecated.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/documentation.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/eval-string.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/eval.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/expect.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/fdes-finalizers.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/format.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/ftw.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/futures.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/gap-buffer.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/getopt-long.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/hash-table.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/hcons.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/history.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/i18n.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/iconv.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/lineio.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/list.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/local-eval.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/ls.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/mapping.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/match.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/networking.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/null.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/occam-channel.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/optargs.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg/cache.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg/codegen.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg/simplify-tree.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg/string-peg.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg/using-parsers.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/peg.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/poe.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/poll.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/popen.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/ports.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/posix.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/pretty-print.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/psyntax-pp.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/q.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/r5rs.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/rdelim.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/receive.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/regex.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/runq.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/rw.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/safe-r5rs.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/safe.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/sandbox.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/save-stack.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/scm-style-repl.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/serialize.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/session.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/slib.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/stack-catch.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/streams.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/string-fun.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/suspendable-ports.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/syncase.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/textual-ports.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/threads.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/time.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/top-repl.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/unicode.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/vlist.go +0 -0
- data/lib/guile/2.2/ccache/ice-9/weak-vector.go +0 -0
- data/lib/guile/2.2/ccache/language/brainfuck/compile-scheme.go +0 -0
- data/lib/guile/2.2/ccache/language/brainfuck/compile-tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/brainfuck/parse.go +0 -0
- data/lib/guile/2.2/ccache/language/brainfuck/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/bytecode/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/bytecode.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/closure-conversion.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/compile-bytecode.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/constructors.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/contification.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/cse.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/dce.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/effects-analysis.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/elide-values.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/handle-interrupts.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/intmap.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/intset.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/licm.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/optimize.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/peel-loops.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/primitives.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/prune-bailouts.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/prune-top-level-scopes.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/reify-primitives.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/renumber.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/rotate-loops.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/self-references.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/simplify.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/slot-allocation.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/specialize-numbers.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/specialize-primcalls.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/split-rec.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/type-checks.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/type-fold.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/types.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/utils.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/verify.go +0 -0
- data/lib/guile/2.2/ccache/language/cps/with-cps.go +0 -0
- data/lib/guile/2.2/ccache/language/cps.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/array.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/base.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/compile-tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/function.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/impl.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/parse.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/ecmascript/tokenize.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/bindings.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/boot.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/compile-tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/falias.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/lexer.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/parser.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/runtime/function-slot.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/runtime/value-slot.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/runtime.go +0 -0
- data/lib/guile/2.2/ccache/language/elisp/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/scheme/compile-tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/scheme/decompile-tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/scheme/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/analyze.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/canonicalize.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/compile-cps.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/debug.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/effects.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/fix-letrec.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/optimize.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/peval.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/primitives.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il/spec.go +0 -0
- data/lib/guile/2.2/ccache/language/tree-il.go +0 -0
- data/lib/guile/2.2/ccache/language/value/spec.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/accessors.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/active-slot.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/composite-slot.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/describe.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/internal.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/save.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/simple.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops/stklos.go +0 -0
- data/lib/guile/2.2/ccache/oop/goops.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/arithmetic/bitwise.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/arithmetic/fixnums.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/arithmetic/flonums.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/base.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/bytevectors.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/conditions.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/control.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/enums.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/eval.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/exceptions.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/files.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/hashtables.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/io/ports.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/io/simple.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/lists.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/mutable-pairs.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/mutable-strings.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/programs.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/r5rs.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/records/inspection.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/records/procedural.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/records/syntactic.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/sorting.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/syntax-case.go +0 -0
- data/lib/guile/2.2/ccache/rnrs/unicode.go +0 -0
- data/lib/guile/2.2/ccache/rnrs.go +0 -0
- data/lib/guile/2.2/ccache/scripts/api-diff.go +0 -0
- data/lib/guile/2.2/ccache/scripts/autofrisk.go +0 -0
- data/lib/guile/2.2/ccache/scripts/compile.go +0 -0
- data/lib/guile/2.2/ccache/scripts/disassemble.go +0 -0
- data/lib/guile/2.2/ccache/scripts/display-commentary.go +0 -0
- data/lib/guile/2.2/ccache/scripts/doc-snarf.go +0 -0
- data/lib/guile/2.2/ccache/scripts/frisk.go +0 -0
- data/lib/guile/2.2/ccache/scripts/generate-autoload.go +0 -0
- data/lib/guile/2.2/ccache/scripts/help.go +0 -0
- data/lib/guile/2.2/ccache/scripts/lint.go +0 -0
- data/lib/guile/2.2/ccache/scripts/list.go +0 -0
- data/lib/guile/2.2/ccache/scripts/punify.go +0 -0
- data/lib/guile/2.2/ccache/scripts/read-rfc822.go +0 -0
- data/lib/guile/2.2/ccache/scripts/read-scheme-source.go +0 -0
- data/lib/guile/2.2/ccache/scripts/read-text-outline.go +0 -0
- data/lib/guile/2.2/ccache/scripts/scan-api.go +0 -0
- data/lib/guile/2.2/ccache/scripts/snarf-check-and-output-texi.go +0 -0
- data/lib/guile/2.2/ccache/scripts/snarf-guile-m4-docs.go +0 -0
- data/lib/guile/2.2/ccache/scripts/summarize-guile-TODO.go +0 -0
- data/lib/guile/2.2/ccache/scripts/use2dot.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-1.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-10.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-11.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-111.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-13.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-14.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-16.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-17.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-18.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-19.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-2.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-26.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-27.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-28.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-31.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-34.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-35.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-37.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-38.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-39.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-4/gnu.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-4.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-41.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-42.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-43.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-45.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-6.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-60.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-64.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-67.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-69.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-71.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-8.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-88.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-9/gnu.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-9.go +0 -0
- data/lib/guile/2.2/ccache/srfi/srfi-98.go +0 -0
- data/lib/guile/2.2/ccache/statprof.go +0 -0
- data/lib/guile/2.2/ccache/sxml/apply-templates.go +0 -0
- data/lib/guile/2.2/ccache/sxml/fold.go +0 -0
- data/lib/guile/2.2/ccache/sxml/match.go +0 -0
- data/lib/guile/2.2/ccache/sxml/simple.go +0 -0
- data/lib/guile/2.2/ccache/sxml/ssax/input-parse.go +0 -0
- data/lib/guile/2.2/ccache/sxml/ssax.go +0 -0
- data/lib/guile/2.2/ccache/sxml/transform.go +0 -0
- data/lib/guile/2.2/ccache/sxml/xpath.go +0 -0
- data/lib/guile/2.2/ccache/system/base/ck.go +0 -0
- data/lib/guile/2.2/ccache/system/base/compile.go +0 -0
- data/lib/guile/2.2/ccache/system/base/lalr.go +0 -0
- data/lib/guile/2.2/ccache/system/base/language.go +0 -0
- data/lib/guile/2.2/ccache/system/base/message.go +0 -0
- data/lib/guile/2.2/ccache/system/base/pmatch.go +0 -0
- data/lib/guile/2.2/ccache/system/base/syntax.go +0 -0
- data/lib/guile/2.2/ccache/system/base/target.go +0 -0
- data/lib/guile/2.2/ccache/system/base/types.go +0 -0
- data/lib/guile/2.2/ccache/system/foreign-object.go +0 -0
- data/lib/guile/2.2/ccache/system/foreign.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/command.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/common.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/coop-server.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/debug.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/error-handling.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/repl.go +0 -0
- data/lib/guile/2.2/ccache/system/repl/server.go +0 -0
- data/lib/guile/2.2/ccache/system/syntax.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/assembler.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/coverage.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/debug.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/disassembler.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/dwarf.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/elf.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/frame.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/inspect.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/linker.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/loader.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/program.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/trace.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/trap-state.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/traps.go +0 -0
- data/lib/guile/2.2/ccache/system/vm/vm.go +0 -0
- data/lib/guile/2.2/ccache/system/xref.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/docbook.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/html.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/indexing.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/plain-text.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/reflection.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/serialize.go +0 -0
- data/lib/guile/2.2/ccache/texinfo/string-utils.go +0 -0
- data/lib/guile/2.2/ccache/texinfo.go +0 -0
- data/lib/guile/2.2/ccache/web/client.go +0 -0
- data/lib/guile/2.2/ccache/web/http.go +0 -0
- data/lib/guile/2.2/ccache/web/request.go +0 -0
- data/lib/guile/2.2/ccache/web/response.go +0 -0
- data/lib/guile/2.2/ccache/web/server/http.go +0 -0
- data/lib/guile/2.2/ccache/web/server.go +0 -0
- data/lib/guile/2.2/ccache/web/uri.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/accreg.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/auto-beam.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/autochange.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/backend-library.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/bar-line.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/breath.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/c++.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/chord-entry.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/chord-ignatzek-names.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/chord-name.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/clip-region.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/color.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/curried-definitions.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-context-properties.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-event-classes.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-grob-interfaces.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-grob-properties.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-grobs.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-markup-commands.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-music-callbacks.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-music-display-methods.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-music-properties.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-music-types.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-note-names.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-stencil-commands.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/define-woodwind-diagrams.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/display-lily.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/display-woodwind-diagrams.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/file-cache.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/flag-styles.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/font-encodings.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/font.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/framework-cairo.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/framework-ps.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/framework-svg.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/fret-diagrams.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/graphviz.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/harp-pedals.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/layout-beam.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/layout-slur.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/lily-library.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/lily.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/ly-syntax-constructors.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/markup-macros.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/markup.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/midi.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/modal-transforms.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/music-functions.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/output-lib.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/output-ps.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/output-svg.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/page.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/paper-system.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/paper.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/parser-clef.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/parser-ly-from-scheme.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/part-combiner.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/predefined-fretboards.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/ps-to-png.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/scheme-engravers.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/scheme-performers.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/script.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/skyline.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/song-util.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/song.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/stencil.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/tablature.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/time-signature-settings.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/time-signature.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/titling.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/to-xml.go +0 -0
- data/lib/lilypond/2.24.1/ccache/lily/translation-functions.go +0 -0
- data/share/emacs/site-lisp/lilypond-font-lock.el +208 -0
- data/share/emacs/site-lisp/lilypond-indent.el +605 -0
- data/share/emacs/site-lisp/lilypond-init.el +21 -0
- data/share/emacs/site-lisp/lilypond-mode.el +1204 -0
- data/share/emacs/site-lisp/lilypond-song.el +556 -0
- data/share/emacs/site-lisp/lilypond-what-beat.el +279 -0
- data/share/emacs/site-lisp/lilypond-words.el +1428 -0
- data/share/guile/2.2/guile-procedures.txt +8860 -0
- data/share/guile/2.2/ice-9/and-let-star.scm +73 -0
- data/share/guile/2.2/ice-9/arrays.scm +70 -0
- data/share/guile/2.2/ice-9/atomic.scm +38 -0
- data/share/guile/2.2/ice-9/binary-ports.scm +53 -0
- data/share/guile/2.2/ice-9/boot-9.scm +4131 -0
- data/share/guile/2.2/ice-9/buffered-input.scm +109 -0
- data/share/guile/2.2/ice-9/calling.scm +326 -0
- data/share/guile/2.2/ice-9/channel.scm +170 -0
- data/share/guile/2.2/ice-9/command-line.scm +477 -0
- data/share/guile/2.2/ice-9/common-list.scm +278 -0
- data/share/guile/2.2/ice-9/control.scm +110 -0
- data/share/guile/2.2/ice-9/curried-definitions.scm +57 -0
- data/share/guile/2.2/ice-9/debug.scm +25 -0
- data/share/guile/2.2/ice-9/deprecated.scm +93 -0
- data/share/guile/2.2/ice-9/documentation.scm +203 -0
- data/share/guile/2.2/ice-9/eval-string.scm +90 -0
- data/share/guile/2.2/ice-9/eval.scm +723 -0
- data/share/guile/2.2/ice-9/expect.scm +171 -0
- data/share/guile/2.2/ice-9/fdes-finalizers.scm +25 -0
- data/share/guile/2.2/ice-9/format.scm +1626 -0
- data/share/guile/2.2/ice-9/ftw.scm +564 -0
- data/share/guile/2.2/ice-9/futures.scm +308 -0
- data/share/guile/2.2/ice-9/gap-buffer.scm +283 -0
- data/share/guile/2.2/ice-9/getopt-long.scm +371 -0
- data/share/guile/2.2/ice-9/hash-table.scm +45 -0
- data/share/guile/2.2/ice-9/hcons.scm +80 -0
- data/share/guile/2.2/ice-9/history.scm +65 -0
- data/share/guile/2.2/ice-9/i18n.scm +531 -0
- data/share/guile/2.2/ice-9/iconv.scm +95 -0
- data/share/guile/2.2/ice-9/lineio.scm +115 -0
- data/share/guile/2.2/ice-9/list.scm +36 -0
- data/share/guile/2.2/ice-9/local-eval.scm +261 -0
- data/share/guile/2.2/ice-9/ls.scm +94 -0
- data/share/guile/2.2/ice-9/mapping.scm +118 -0
- data/share/guile/2.2/ice-9/match.scm +59 -0
- data/share/guile/2.2/ice-9/match.upstream.scm +917 -0
- data/share/guile/2.2/ice-9/networking.scm +94 -0
- data/share/guile/2.2/ice-9/null.scm +34 -0
- data/share/guile/2.2/ice-9/occam-channel.scm +261 -0
- data/share/guile/2.2/ice-9/optargs.scm +381 -0
- data/share/guile/2.2/ice-9/peg/cache.scm +45 -0
- data/share/guile/2.2/ice-9/peg/codegen.scm +359 -0
- data/share/guile/2.2/ice-9/peg/simplify-tree.scm +97 -0
- data/share/guile/2.2/ice-9/peg/string-peg.scm +273 -0
- data/share/guile/2.2/ice-9/peg/using-parsers.scm +116 -0
- data/share/guile/2.2/ice-9/peg.scm +42 -0
- data/share/guile/2.2/ice-9/poe.scm +116 -0
- data/share/guile/2.2/ice-9/poll.scm +172 -0
- data/share/guile/2.2/ice-9/popen.scm +178 -0
- data/share/guile/2.2/ice-9/ports.scm +566 -0
- data/share/guile/2.2/ice-9/posix.scm +75 -0
- data/share/guile/2.2/ice-9/pretty-print.scm +483 -0
- data/share/guile/2.2/ice-9/psyntax-pp.scm +3542 -0
- data/share/guile/2.2/ice-9/psyntax.scm +3326 -0
- data/share/guile/2.2/ice-9/q.scm +153 -0
- data/share/guile/2.2/ice-9/quasisyntax.scm +136 -0
- data/share/guile/2.2/ice-9/r5rs.scm +45 -0
- data/share/guile/2.2/ice-9/r6rs-libraries.scm +242 -0
- data/share/guile/2.2/ice-9/rdelim.scm +208 -0
- data/share/guile/2.2/ice-9/receive.scm +26 -0
- data/share/guile/2.2/ice-9/regex.scm +229 -0
- data/share/guile/2.2/ice-9/runq.scm +241 -0
- data/share/guile/2.2/ice-9/rw.scm +27 -0
- data/share/guile/2.2/ice-9/safe-r5rs.scm +145 -0
- data/share/guile/2.2/ice-9/safe.scm +34 -0
- data/share/guile/2.2/ice-9/sandbox.scm +1399 -0
- data/share/guile/2.2/ice-9/save-stack.scm +58 -0
- data/share/guile/2.2/ice-9/scm-style-repl.scm +279 -0
- data/share/guile/2.2/ice-9/serialize.scm +114 -0
- data/share/guile/2.2/ice-9/session.scm +530 -0
- data/share/guile/2.2/ice-9/slib.scm +33 -0
- data/share/guile/2.2/ice-9/stack-catch.scm +47 -0
- data/share/guile/2.2/ice-9/streams.scm +168 -0
- data/share/guile/2.2/ice-9/string-fun.scm +280 -0
- data/share/guile/2.2/ice-9/suspendable-ports.scm +788 -0
- data/share/guile/2.2/ice-9/syncase.scm +37 -0
- data/share/guile/2.2/ice-9/textual-ports.scm +70 -0
- data/share/guile/2.2/ice-9/threads.scm +392 -0
- data/share/guile/2.2/ice-9/time.scm +58 -0
- data/share/guile/2.2/ice-9/top-repl.scm +78 -0
- data/share/guile/2.2/ice-9/unicode.scm +26 -0
- data/share/guile/2.2/ice-9/vlist.scm +595 -0
- data/share/guile/2.2/ice-9/weak-vector.scm +31 -0
- data/share/guile/2.2/language/brainfuck/compile-scheme.scm +123 -0
- data/share/guile/2.2/language/brainfuck/compile-tree-il.scm +184 -0
- data/share/guile/2.2/language/brainfuck/parse.scm +95 -0
- data/share/guile/2.2/language/brainfuck/spec.scm +43 -0
- data/share/guile/2.2/language/bytecode/spec.scm +42 -0
- data/share/guile/2.2/language/bytecode.scm +104 -0
- data/share/guile/2.2/language/cps/closure-conversion.scm +848 -0
- data/share/guile/2.2/language/cps/compile-bytecode.scm +610 -0
- data/share/guile/2.2/language/cps/constructors.scm +106 -0
- data/share/guile/2.2/language/cps/contification.scm +448 -0
- data/share/guile/2.2/language/cps/cse.scm +414 -0
- data/share/guile/2.2/language/cps/dce.scm +363 -0
- data/share/guile/2.2/language/cps/effects-analysis.scm +597 -0
- data/share/guile/2.2/language/cps/elide-values.scm +88 -0
- data/share/guile/2.2/language/cps/handle-interrupts.scm +69 -0
- data/share/guile/2.2/language/cps/intmap.scm +765 -0
- data/share/guile/2.2/language/cps/intset.scm +830 -0
- data/share/guile/2.2/language/cps/licm.scm +308 -0
- data/share/guile/2.2/language/cps/optimize.scm +135 -0
- data/share/guile/2.2/language/cps/peel-loops.scm +287 -0
- data/share/guile/2.2/language/cps/primitives.scm +141 -0
- data/share/guile/2.2/language/cps/prune-bailouts.scm +86 -0
- data/share/guile/2.2/language/cps/prune-top-level-scopes.scm +63 -0
- data/share/guile/2.2/language/cps/reify-primitives.scm +179 -0
- data/share/guile/2.2/language/cps/renumber.scm +217 -0
- data/share/guile/2.2/language/cps/rotate-loops.scm +239 -0
- data/share/guile/2.2/language/cps/self-references.scm +79 -0
- data/share/guile/2.2/language/cps/simplify.scm +274 -0
- data/share/guile/2.2/language/cps/slot-allocation.scm +1058 -0
- data/share/guile/2.2/language/cps/spec.scm +51 -0
- data/share/guile/2.2/language/cps/specialize-numbers.scm +724 -0
- data/share/guile/2.2/language/cps/specialize-primcalls.scm +87 -0
- data/share/guile/2.2/language/cps/split-rec.scm +174 -0
- data/share/guile/2.2/language/cps/type-checks.scm +72 -0
- data/share/guile/2.2/language/cps/type-fold.scm +455 -0
- data/share/guile/2.2/language/cps/types.scm +1826 -0
- data/share/guile/2.2/language/cps/utils.scm +550 -0
- data/share/guile/2.2/language/cps/verify.scm +304 -0
- data/share/guile/2.2/language/cps/with-cps.scm +145 -0
- data/share/guile/2.2/language/cps.scm +358 -0
- data/share/guile/2.2/language/ecmascript/array.scm +121 -0
- data/share/guile/2.2/language/ecmascript/base.scm +251 -0
- data/share/guile/2.2/language/ecmascript/compile-tree-il.scm +576 -0
- data/share/guile/2.2/language/ecmascript/function.scm +78 -0
- data/share/guile/2.2/language/ecmascript/impl.scm +169 -0
- data/share/guile/2.2/language/ecmascript/parse.scm +352 -0
- data/share/guile/2.2/language/ecmascript/spec.scm +37 -0
- data/share/guile/2.2/language/ecmascript/tokenize.scm +513 -0
- data/share/guile/2.2/language/elisp/bindings.scm +107 -0
- data/share/guile/2.2/language/elisp/boot.el +617 -0
- data/share/guile/2.2/language/elisp/compile-tree-il.scm +812 -0
- data/share/guile/2.2/language/elisp/falias.scm +47 -0
- data/share/guile/2.2/language/elisp/lexer.scm +430 -0
- data/share/guile/2.2/language/elisp/parser.scm +222 -0
- data/share/guile/2.2/language/elisp/runtime/function-slot.scm +63 -0
- data/share/guile/2.2/language/elisp/runtime/value-slot.scm +24 -0
- data/share/guile/2.2/language/elisp/runtime.scm +153 -0
- data/share/guile/2.2/language/elisp/spec.scm +43 -0
- data/share/guile/2.2/language/scheme/compile-tree-il.scm +33 -0
- data/share/guile/2.2/language/scheme/decompile-tree-il.scm +796 -0
- data/share/guile/2.2/language/scheme/spec.scm +63 -0
- data/share/guile/2.2/language/tree-il/analyze.scm +1568 -0
- data/share/guile/2.2/language/tree-il/canonicalize.scm +82 -0
- data/share/guile/2.2/language/tree-il/compile-cps.scm +1149 -0
- data/share/guile/2.2/language/tree-il/debug.scm +246 -0
- data/share/guile/2.2/language/tree-il/effects.scm +591 -0
- data/share/guile/2.2/language/tree-il/fix-letrec.scm +314 -0
- data/share/guile/2.2/language/tree-il/optimize.scm +43 -0
- data/share/guile/2.2/language/tree-il/peval.scm +1669 -0
- data/share/guile/2.2/language/tree-il/primitives.scm +630 -0
- data/share/guile/2.2/language/tree-il/spec.scm +46 -0
- data/share/guile/2.2/language/tree-il.scm +630 -0
- data/share/guile/2.2/language/value/spec.scm +30 -0
- data/share/guile/2.2/oop/goops/accessors.scm +72 -0
- data/share/guile/2.2/oop/goops/active-slot.scm +63 -0
- data/share/guile/2.2/oop/goops/composite-slot.scm +83 -0
- data/share/guile/2.2/oop/goops/describe.scm +189 -0
- data/share/guile/2.2/oop/goops/internal.scm +30 -0
- data/share/guile/2.2/oop/goops/save.scm +874 -0
- data/share/guile/2.2/oop/goops/simple.scm +30 -0
- data/share/guile/2.2/oop/goops/stklos.scm +74 -0
- data/share/guile/2.2/oop/goops.scm +3176 -0
- data/share/guile/2.2/rnrs/arithmetic/bitwise.scm +92 -0
- data/share/guile/2.2/rnrs/arithmetic/fixnums.scm +291 -0
- data/share/guile/2.2/rnrs/arithmetic/flonums.scm +203 -0
- data/share/guile/2.2/rnrs/base.scm +291 -0
- data/share/guile/2.2/rnrs/bytevectors.scm +83 -0
- data/share/guile/2.2/rnrs/conditions.scm +225 -0
- data/share/guile/2.2/rnrs/control.scm +22 -0
- data/share/guile/2.2/rnrs/enums.scm +152 -0
- data/share/guile/2.2/rnrs/eval.scm +39 -0
- data/share/guile/2.2/rnrs/exceptions.scm +276 -0
- data/share/guile/2.2/rnrs/files.scm +96 -0
- data/share/guile/2.2/rnrs/hashtables.scm +190 -0
- data/share/guile/2.2/rnrs/io/ports.scm +554 -0
- data/share/guile/2.2/rnrs/io/simple.scm +167 -0
- data/share/guile/2.2/rnrs/lists.scm +55 -0
- data/share/guile/2.2/rnrs/mutable-pairs.scm +23 -0
- data/share/guile/2.2/rnrs/mutable-strings.scm +23 -0
- data/share/guile/2.2/rnrs/programs.scm +22 -0
- data/share/guile/2.2/rnrs/r5rs.scm +34 -0
- data/share/guile/2.2/rnrs/records/inspection.scm +81 -0
- data/share/guile/2.2/rnrs/records/procedural.scm +289 -0
- data/share/guile/2.2/rnrs/records/syntactic.scm +248 -0
- data/share/guile/2.2/rnrs/sorting.scm +27 -0
- data/share/guile/2.2/rnrs/syntax-case.scm +68 -0
- data/share/guile/2.2/rnrs/unicode.scm +104 -0
- data/share/guile/2.2/rnrs.scm +289 -0
- data/share/guile/2.2/scripts/api-diff.scm +179 -0
- data/share/guile/2.2/scripts/autofrisk.scm +218 -0
- data/share/guile/2.2/scripts/compile.scm +273 -0
- data/share/guile/2.2/scripts/disassemble.scm +38 -0
- data/share/guile/2.2/scripts/display-commentary.scm +67 -0
- data/share/guile/2.2/scripts/doc-snarf.scm +439 -0
- data/share/guile/2.2/scripts/frisk.scm +290 -0
- data/share/guile/2.2/scripts/generate-autoload.scm +144 -0
- data/share/guile/2.2/scripts/help.scm +188 -0
- data/share/guile/2.2/scripts/lint.scm +318 -0
- data/share/guile/2.2/scripts/list.scm +91 -0
- data/share/guile/2.2/scripts/punify.scm +87 -0
- data/share/guile/2.2/scripts/read-rfc822.scm +131 -0
- data/share/guile/2.2/scripts/read-scheme-source.scm +282 -0
- data/share/guile/2.2/scripts/read-text-outline.scm +253 -0
- data/share/guile/2.2/scripts/scan-api.scm +223 -0
- data/share/guile/2.2/scripts/snarf-check-and-output-texi.scm +303 -0
- data/share/guile/2.2/scripts/snarf-guile-m4-docs.scm +86 -0
- data/share/guile/2.2/scripts/summarize-guile-TODO.scm +213 -0
- data/share/guile/2.2/scripts/use2dot.scm +110 -0
- data/share/guile/2.2/srfi/srfi-1.scm +1061 -0
- data/share/guile/2.2/srfi/srfi-10.scm +89 -0
- data/share/guile/2.2/srfi/srfi-11.scm +146 -0
- data/share/guile/2.2/srfi/srfi-111.scm +37 -0
- data/share/guile/2.2/srfi/srfi-13.scm +132 -0
- data/share/guile/2.2/srfi/srfi-14.scm +99 -0
- data/share/guile/2.2/srfi/srfi-16.scm +51 -0
- data/share/guile/2.2/srfi/srfi-17.scm +174 -0
- data/share/guile/2.2/srfi/srfi-18.scm +382 -0
- data/share/guile/2.2/srfi/srfi-19.scm +1470 -0
- data/share/guile/2.2/srfi/srfi-2.scm +31 -0
- data/share/guile/2.2/srfi/srfi-26.scm +66 -0
- data/share/guile/2.2/srfi/srfi-27.scm +96 -0
- data/share/guile/2.2/srfi/srfi-28.scm +34 -0
- data/share/guile/2.2/srfi/srfi-31.scm +35 -0
- data/share/guile/2.2/srfi/srfi-34.scm +84 -0
- data/share/guile/2.2/srfi/srfi-35.scm +351 -0
- data/share/guile/2.2/srfi/srfi-37.scm +234 -0
- data/share/guile/2.2/srfi/srfi-38.scm +207 -0
- data/share/guile/2.2/srfi/srfi-39.scm +55 -0
- data/share/guile/2.2/srfi/srfi-4/gnu.scm +80 -0
- data/share/guile/2.2/srfi/srfi-4.scm +118 -0
- data/share/guile/2.2/srfi/srfi-41.scm +505 -0
- data/share/guile/2.2/srfi/srfi-42/ec.scm +1053 -0
- data/share/guile/2.2/srfi/srfi-42.scm +66 -0
- data/share/guile/2.2/srfi/srfi-43.scm +1077 -0
- data/share/guile/2.2/srfi/srfi-45.scm +93 -0
- data/share/guile/2.2/srfi/srfi-6.scm +29 -0
- data/share/guile/2.2/srfi/srfi-60.scm +73 -0
- data/share/guile/2.2/srfi/srfi-64/testing.scm +1040 -0
- data/share/guile/2.2/srfi/srfi-64.scm +55 -0
- data/share/guile/2.2/srfi/srfi-67/compare.scm +686 -0
- data/share/guile/2.2/srfi/srfi-67.scm +88 -0
- data/share/guile/2.2/srfi/srfi-69.scm +336 -0
- data/share/guile/2.2/srfi/srfi-71.scm +267 -0
- data/share/guile/2.2/srfi/srfi-8.scm +31 -0
- data/share/guile/2.2/srfi/srfi-88.scm +53 -0
- data/share/guile/2.2/srfi/srfi-9/gnu.scm +168 -0
- data/share/guile/2.2/srfi/srfi-9.scm +351 -0
- data/share/guile/2.2/srfi/srfi-98.scm +44 -0
- data/share/guile/2.2/statprof.scm +988 -0
- data/share/guile/2.2/sxml/apply-templates.scm +102 -0
- data/share/guile/2.2/sxml/fold.scm +250 -0
- data/share/guile/2.2/sxml/match.scm +75 -0
- data/share/guile/2.2/sxml/simple.scm +408 -0
- data/share/guile/2.2/sxml/ssax/input-parse.scm +180 -0
- data/share/guile/2.2/sxml/ssax.scm +265 -0
- data/share/guile/2.2/sxml/sxml-match.ss +1181 -0
- data/share/guile/2.2/sxml/transform.scm +298 -0
- data/share/guile/2.2/sxml/upstream/SSAX.scm +3235 -0
- data/share/guile/2.2/sxml/upstream/SXML-tree-trans.scm +249 -0
- data/share/guile/2.2/sxml/upstream/SXPath-old.scm +1216 -0
- data/share/guile/2.2/sxml/upstream/assert.scm +35 -0
- data/share/guile/2.2/sxml/upstream/input-parse.scm +326 -0
- data/share/guile/2.2/sxml/xpath.scm +493 -0
- data/share/guile/2.2/system/base/ck.scm +55 -0
- data/share/guile/2.2/system/base/compile.scm +282 -0
- data/share/guile/2.2/system/base/lalr.scm +51 -0
- data/share/guile/2.2/system/base/lalr.upstream.scm +2096 -0
- data/share/guile/2.2/system/base/language.scm +119 -0
- data/share/guile/2.2/system/base/message.scm +238 -0
- data/share/guile/2.2/system/base/pmatch.scm +68 -0
- data/share/guile/2.2/system/base/syntax.scm +299 -0
- data/share/guile/2.2/system/base/target.scm +152 -0
- data/share/guile/2.2/system/base/types.scm +561 -0
- data/share/guile/2.2/system/foreign-object.scm +91 -0
- data/share/guile/2.2/system/foreign.scm +200 -0
- data/share/guile/2.2/system/repl/command.scm +946 -0
- data/share/guile/2.2/system/repl/common.scm +263 -0
- data/share/guile/2.2/system/repl/coop-server.scm +200 -0
- data/share/guile/2.2/system/repl/debug.scm +210 -0
- data/share/guile/2.2/system/repl/describe.scm +347 -0
- data/share/guile/2.2/system/repl/error-handling.scm +183 -0
- data/share/guile/2.2/system/repl/repl.scm +233 -0
- data/share/guile/2.2/system/repl/server.scm +332 -0
- data/share/guile/2.2/system/syntax.scm +33 -0
- data/share/guile/2.2/system/vm/assembler.scm +2614 -0
- data/share/guile/2.2/system/vm/coverage.scm +351 -0
- data/share/guile/2.2/system/vm/debug.scm +766 -0
- data/share/guile/2.2/system/vm/disassembler.scm +658 -0
- data/share/guile/2.2/system/vm/dwarf.scm +1852 -0
- data/share/guile/2.2/system/vm/elf.scm +1042 -0
- data/share/guile/2.2/system/vm/frame.scm +485 -0
- data/share/guile/2.2/system/vm/inspect.scm +188 -0
- data/share/guile/2.2/system/vm/linker.scm +732 -0
- data/share/guile/2.2/system/vm/loader.scm +27 -0
- data/share/guile/2.2/system/vm/program.scm +312 -0
- data/share/guile/2.2/system/vm/trace.scm +121 -0
- data/share/guile/2.2/system/vm/trap-state.scm +302 -0
- data/share/guile/2.2/system/vm/traps.scm +608 -0
- data/share/guile/2.2/system/vm/vm.scm +32 -0
- data/share/guile/2.2/system/xref.scm +369 -0
- data/share/guile/2.2/texinfo/docbook.scm +240 -0
- data/share/guile/2.2/texinfo/html.scm +279 -0
- data/share/guile/2.2/texinfo/indexing.scm +75 -0
- data/share/guile/2.2/texinfo/plain-text.scm +322 -0
- data/share/guile/2.2/texinfo/reflection.scm +585 -0
- data/share/guile/2.2/texinfo/serialize.scm +300 -0
- data/share/guile/2.2/texinfo/string-utils.scm +410 -0
- data/share/guile/2.2/texinfo.scm +1263 -0
- data/share/guile/2.2/web/client.scm +513 -0
- data/share/guile/2.2/web/http.scm +2043 -0
- data/share/guile/2.2/web/request.scm +326 -0
- data/share/guile/2.2/web/response.scm +379 -0
- data/share/guile/2.2/web/server/http.scm +183 -0
- data/share/guile/2.2/web/server.scm +397 -0
- data/share/guile/2.2/web/uri.scm +552 -0
- data/share/lilypond/2.24.1/fontconfig/0bd3dc0958fa2205aaaa8ebb13e2872b-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/188ac73a183f12857f63bb60a4a6d603-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/32b6488e5b8292a2e95c79d947e009e8-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/3f7329c5293ffd510edef78f73874cfd-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/57e423e26b20ab21d0f2f29c145174c3-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/826f6b6ef79022e2eac8af26bf4b62f2-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/95530828ff6c81d309f8258d8d02a23e-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/CACHEDIR.TAG +4 -0
- data/share/lilypond/2.24.1/fontconfig/bf3b770c553c462765856025a94f1ce6-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/c855463f699352c367813e37f3f70ea7-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/d3e5c4ee2ceb1fc347f91d4cefc53bc0-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/d589a48862398ed80a3d6066f4f56f4c-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/d82eb4fd963d448e2fcb7d7b793b5df3-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/e52a45a1c8c8fe895fc0fc8c4e6999b8-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fontconfig/f1f2465696798768e9653f19e17ccdc8-le64.cache-8 +0 -0
- data/share/lilypond/2.24.1/fonts/00-lilypond-fonts.conf +99 -0
- data/share/lilypond/2.24.1/fonts/99-lilypond-fonts.conf +28 -0
- data/share/lilypond/2.24.1/fonts/otf/C059-BdIta.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/C059-Bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/C059-Italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/C059-Roman.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-BoldItalic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Regular.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusSans-BoldItalic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Regular.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-11.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-13.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-14.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-16.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-18.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-20.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-23.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-26.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/emmentaler-brace.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bolditalic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-regular.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bolditalic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreheros-italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreheros-regular.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bold.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bolditalic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreschola-italic.otf +0 -0
- data/share/lilypond/2.24.1/fonts/otf/texgyreschola-regular.otf +0 -0
- data/share/lilypond/2.24.1/fonts/source/common-modules-and-initialization.mf +26 -0
- data/share/lilypond/2.24.1/fonts/source/debugging-settings.mf +14 -0
- data/share/lilypond/2.24.1/fonts/source/declare-autometric-parameters.mf +9 -0
- data/share/lilypond/2.24.1/fonts/source/feta-accidentals.mf +58 -0
- data/share/lilypond/2.24.1/fonts/source/feta-accordion.mf +575 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet-generic.mf +16 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet20.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-alphabet26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-arrow.mf +114 -0
- data/share/lilypond/2.24.1/fonts/source/feta-arrowheads.mf +171 -0
- data/share/lilypond/2.24.1/fonts/source/feta-autometric.mf +303 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-a.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-b.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-c.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-d.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-e.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-f.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-g.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-generic.mf +47 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-h.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces-i.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-braces.mf +125 -0
- data/share/lilypond/2.24.1/fonts/source/feta-brackettips.mf +100 -0
- data/share/lilypond/2.24.1/fonts/source/feta-clefs.mf +963 -0
- data/share/lilypond/2.24.1/fonts/source/feta-dots.mf +37 -0
- data/share/lilypond/2.24.1/fonts/source/feta-dynamics.mf +891 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags-generic.mf +17 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags.mf +926 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags20.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flags26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-flats.mf +668 -0
- data/share/lilypond/2.24.1/fonts/source/feta-macros.mf +506 -0
- data/share/lilypond/2.24.1/fonts/source/feta-naturals.mf +223 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads-generic.mf +17 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads.mf +2642 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads20.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-noteheads26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta-numbers.mf +1677 -0
- data/share/lilypond/2.24.1/fonts/source/feta-other-generic.mf +27 -0
- data/share/lilypond/2.24.1/fonts/source/feta-params.mf +323 -0
- data/share/lilypond/2.24.1/fonts/source/feta-parenthesis.mf +63 -0
- data/share/lilypond/2.24.1/fonts/source/feta-pedals.mf +355 -0
- data/share/lilypond/2.24.1/fonts/source/feta-rests.mf +890 -0
- data/share/lilypond/2.24.1/fonts/source/feta-scripts.mf +2206 -0
- data/share/lilypond/2.24.1/fonts/source/feta-sharps.mf +524 -0
- data/share/lilypond/2.24.1/fonts/source/feta-sori-koron.mf +325 -0
- data/share/lilypond/2.24.1/fonts/source/feta-ties.mf +72 -0
- data/share/lilypond/2.24.1/fonts/source/feta-timesignatures.mf +119 -0
- data/share/lilypond/2.24.1/fonts/source/feta-trills.mf +321 -0
- data/share/lilypond/2.24.1/fonts/source/feta11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta20.mf +7 -0
- data/share/lilypond/2.24.1/fonts/source/feta23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/feta26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-accidentals.mf +483 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-clefs.mf +1636 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-custodes.mf +503 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-dots.mf +62 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-flags.mf +319 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-macros.mf +225 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads-generic.mf +16 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads.mf +2191 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads20.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-other-generic.mf +24 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-rests.mf +428 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-scripts.mf +284 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan-timesignatures.mf +402 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan11.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan13.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan14.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan16.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan18.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan20.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan23.mf +6 -0
- data/share/lilypond/2.24.1/fonts/source/parmesan26.mf +6 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.svg +2525 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.svg +2530 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.svg +2526 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.svg +2523 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.svg +2519 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.svg +2512 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.svg +2506 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.svg +2510 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.woff +0 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.svg +1757 -0
- data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.woff +0 -0
- data/share/lilypond/2.24.1/ly/Welcome_to_LilyPond.ly +45 -0
- data/share/lilypond/2.24.1/ly/arabic.ly +185 -0
- data/share/lilypond/2.24.1/ly/articulate.ly +1013 -0
- data/share/lilypond/2.24.1/ly/bagpipe.ly +368 -0
- data/share/lilypond/2.24.1/ly/base-tkit.ly +135 -0
- data/share/lilypond/2.24.1/ly/catalan.ly +23 -0
- data/share/lilypond/2.24.1/ly/chord-modifiers-init.ly +63 -0
- data/share/lilypond/2.24.1/ly/chord-repetition-init.ly +60 -0
- data/share/lilypond/2.24.1/ly/context-mods-init.ly +119 -0
- data/share/lilypond/2.24.1/ly/declarations-init.ly +167 -0
- data/share/lilypond/2.24.1/ly/deutsch.ly +23 -0
- data/share/lilypond/2.24.1/ly/drumpitch-init.ly +366 -0
- data/share/lilypond/2.24.1/ly/dynamic-scripts-init.ly +54 -0
- data/share/lilypond/2.24.1/ly/english.ly +23 -0
- data/share/lilypond/2.24.1/ly/engraver-init.ly +1619 -0
- data/share/lilypond/2.24.1/ly/espanol.ly +23 -0
- data/share/lilypond/2.24.1/ly/event-listener.ly +241 -0
- data/share/lilypond/2.24.1/ly/festival.ly +38 -0
- data/share/lilypond/2.24.1/ly/generate-documentation.ly +7 -0
- data/share/lilypond/2.24.1/ly/grace-init.ly +56 -0
- data/share/lilypond/2.24.1/ly/graphviz-init.ly +174 -0
- data/share/lilypond/2.24.1/ly/gregorian.ly +268 -0
- data/share/lilypond/2.24.1/ly/guile-debugger.ly +55 -0
- data/share/lilypond/2.24.1/ly/hel-arabic.ly +307 -0
- data/share/lilypond/2.24.1/ly/init.ly +96 -0
- data/share/lilypond/2.24.1/ly/italiano.ly +23 -0
- data/share/lilypond/2.24.1/ly/lilypond-book-preamble.ly +47 -0
- data/share/lilypond/2.24.1/ly/lyrics-tkit.ly +68 -0
- data/share/lilypond/2.24.1/ly/makam.ly +166 -0
- data/share/lilypond/2.24.1/ly/midi-init.ly +59 -0
- data/share/lilypond/2.24.1/ly/music-functions-init.ly +2254 -0
- data/share/lilypond/2.24.1/ly/nederlands.ly +23 -0
- data/share/lilypond/2.24.1/ly/norsk.ly +23 -0
- data/share/lilypond/2.24.1/ly/paper-defaults-init.ly +188 -0
- data/share/lilypond/2.24.1/ly/performer-init.ly +398 -0
- data/share/lilypond/2.24.1/ly/persian.ly +335 -0
- data/share/lilypond/2.24.1/ly/piano-tkit.ly +61 -0
- data/share/lilypond/2.24.1/ly/portugues.ly +23 -0
- data/share/lilypond/2.24.1/ly/predefined-fretboards-init.ly +78 -0
- data/share/lilypond/2.24.1/ly/predefined-guitar-fretboards.ly +506 -0
- data/share/lilypond/2.24.1/ly/predefined-guitar-ninth-fretboards.ly +75 -0
- data/share/lilypond/2.24.1/ly/predefined-mandolin-fretboards.ly +876 -0
- data/share/lilypond/2.24.1/ly/predefined-ukulele-fretboards.ly +1285 -0
- data/share/lilypond/2.24.1/ly/property-init.ly +858 -0
- data/share/lilypond/2.24.1/ly/satb.ly +214 -0
- data/share/lilypond/2.24.1/ly/scale-definitions-init.ly +117 -0
- data/share/lilypond/2.24.1/ly/scheme-sandbox.ly +39 -0
- data/share/lilypond/2.24.1/ly/script-init.ly +94 -0
- data/share/lilypond/2.24.1/ly/spanners-init.ly +146 -0
- data/share/lilypond/2.24.1/ly/ssaattbb.ly +335 -0
- data/share/lilypond/2.24.1/ly/staff-tkit.ly +182 -0
- data/share/lilypond/2.24.1/ly/string-tunings-init.ly +94 -0
- data/share/lilypond/2.24.1/ly/suomi.ly +23 -0
- data/share/lilypond/2.24.1/ly/svenska.ly +23 -0
- data/share/lilypond/2.24.1/ly/swing.ly +362 -0
- data/share/lilypond/2.24.1/ly/text-replacements.ly +150 -0
- data/share/lilypond/2.24.1/ly/titling-init.ly +150 -0
- data/share/lilypond/2.24.1/ly/toc-init.ly +182 -0
- data/share/lilypond/2.24.1/ly/turkish-makam.ly +609 -0
- data/share/lilypond/2.24.1/ly/vlaams.ly +23 -0
- data/share/lilypond/2.24.1/ly/vocal-tkit.ly +103 -0
- data/share/lilypond/2.24.1/ly/voice-tkit.ly +34 -0
- data/share/lilypond/2.24.1/ps/encodingdefs.ps +2611 -0
- data/share/lilypond/2.24.1/ps/lilyponddefs.ps +49 -0
- data/share/lilypond/2.24.1/ps/music-drawing-routines.ps +329 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_base.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_docbook.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_html.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_latex.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_snippets.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/book_texinfo.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/convertrules.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/langdefs.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/lilylib.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/midi.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/musicexp.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/musicxml.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/musicxml2ly_conversion.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/__pycache__/utilities.cpython-310.pyc +0 -0
- data/share/lilypond/2.24.1/python/book_base.py +331 -0
- data/share/lilypond/2.24.1/python/book_docbook.py +154 -0
- data/share/lilypond/2.24.1/python/book_html.py +178 -0
- data/share/lilypond/2.24.1/python/book_latex.py +373 -0
- data/share/lilypond/2.24.1/python/book_snippets.py +1052 -0
- data/share/lilypond/2.24.1/python/book_texinfo.py +437 -0
- data/share/lilypond/2.24.1/python/convertrules.py +4764 -0
- data/share/lilypond/2.24.1/python/langdefs.py +131 -0
- data/share/lilypond/2.24.1/python/lilylib.py +141 -0
- data/share/lilypond/2.24.1/python/midi.py +212 -0
- data/share/lilypond/2.24.1/python/musicexp.py +2781 -0
- data/share/lilypond/2.24.1/python/musicxml.py +1905 -0
- data/share/lilypond/2.24.1/python/musicxml2ly_conversion.py +80 -0
- data/share/lilypond/2.24.1/python/utilities.py +280 -0
- data/share/lilypond/2.24.1/scm/lily/accreg.scm +579 -0
- data/share/lilypond/2.24.1/scm/lily/auto-beam.scm +163 -0
- data/share/lilypond/2.24.1/scm/lily/autochange.scm +100 -0
- data/share/lilypond/2.24.1/scm/lily/backend-library.scm +593 -0
- data/share/lilypond/2.24.1/scm/lily/bar-line.scm +1281 -0
- data/share/lilypond/2.24.1/scm/lily/breath.scm +74 -0
- data/share/lilypond/2.24.1/scm/lily/c++.scm +174 -0
- data/share/lilypond/2.24.1/scm/lily/chord-entry.scm +278 -0
- data/share/lilypond/2.24.1/scm/lily/chord-ignatzek-names.scm +304 -0
- data/share/lilypond/2.24.1/scm/lily/chord-name.scm +217 -0
- data/share/lilypond/2.24.1/scm/lily/clip-region.scm +87 -0
- data/share/lilypond/2.24.1/scm/lily/color.scm +757 -0
- data/share/lilypond/2.24.1/scm/lily/curried-definitions.scm +68 -0
- data/share/lilypond/2.24.1/scm/lily/define-context-properties.scm +939 -0
- data/share/lilypond/2.24.1/scm/lily/define-event-classes.scm +142 -0
- data/share/lilypond/2.24.1/scm/lily/define-grob-interfaces.scm +640 -0
- data/share/lilypond/2.24.1/scm/lily/define-grob-properties.scm +1647 -0
- data/share/lilypond/2.24.1/scm/lily/define-grobs.scm +4027 -0
- data/share/lilypond/2.24.1/scm/lily/define-markup-commands.scm +5737 -0
- data/share/lilypond/2.24.1/scm/lily/define-music-callbacks.scm +257 -0
- data/share/lilypond/2.24.1/scm/lily/define-music-display-methods.scm +1350 -0
- data/share/lilypond/2.24.1/scm/lily/define-music-properties.scm +242 -0
- data/share/lilypond/2.24.1/scm/lily/define-music-types.scm +983 -0
- data/share/lilypond/2.24.1/scm/lily/define-note-names.scm +1421 -0
- data/share/lilypond/2.24.1/scm/lily/define-stencil-commands.scm +71 -0
- data/share/lilypond/2.24.1/scm/lily/define-woodwind-diagrams.scm +1215 -0
- data/share/lilypond/2.24.1/scm/lily/display-lily.scm +315 -0
- data/share/lilypond/2.24.1/scm/lily/display-woodwind-diagrams.scm +1985 -0
- data/share/lilypond/2.24.1/scm/lily/document-backend.scm +307 -0
- data/share/lilypond/2.24.1/scm/lily/document-context-mods.scm +98 -0
- data/share/lilypond/2.24.1/scm/lily/document-functions.scm +169 -0
- data/share/lilypond/2.24.1/scm/lily/document-identifiers.scm +76 -0
- data/share/lilypond/2.24.1/scm/lily/document-markup.scm +158 -0
- data/share/lilypond/2.24.1/scm/lily/document-music.scm +146 -0
- data/share/lilypond/2.24.1/scm/lily/document-outside-staff-priorities.scm +40 -0
- data/share/lilypond/2.24.1/scm/lily/document-paper-sizes.scm +71 -0
- data/share/lilypond/2.24.1/scm/lily/document-translation.scm +318 -0
- data/share/lilypond/2.24.1/scm/lily/document-type-predicates.scm +85 -0
- data/share/lilypond/2.24.1/scm/lily/documentation-generate.scm +259 -0
- data/share/lilypond/2.24.1/scm/lily/documentation-lib.scm +207 -0
- data/share/lilypond/2.24.1/scm/lily/file-cache.scm +28 -0
- data/share/lilypond/2.24.1/scm/lily/flag-styles.scm +249 -0
- data/share/lilypond/2.24.1/scm/lily/font-encodings.scm +1242 -0
- data/share/lilypond/2.24.1/scm/lily/font.scm +303 -0
- data/share/lilypond/2.24.1/scm/lily/framework-cairo.scm +26 -0
- data/share/lilypond/2.24.1/scm/lily/framework-ps.scm +896 -0
- data/share/lilypond/2.24.1/scm/lily/framework-svg.scm +172 -0
- data/share/lilypond/2.24.1/scm/lily/fret-diagrams.scm +1261 -0
- data/share/lilypond/2.24.1/scm/lily/graphviz.scm +78 -0
- data/share/lilypond/2.24.1/scm/lily/guile-debugger.scm +90 -0
- data/share/lilypond/2.24.1/scm/lily/harp-pedals.scm +172 -0
- data/share/lilypond/2.24.1/scm/lily/hyphenate-internal-words.scm +51 -0
- data/share/lilypond/2.24.1/scm/lily/layout-beam.scm +73 -0
- data/share/lilypond/2.24.1/scm/lily/layout-slur.scm +45 -0
- data/share/lilypond/2.24.1/scm/lily/lily-library.scm +1446 -0
- data/share/lilypond/2.24.1/scm/lily/lily-sort.scm +116 -0
- data/share/lilypond/2.24.1/scm/lily/lily.scm +929 -0
- data/share/lilypond/2.24.1/scm/lily/ly-syntax-constructors.scm +374 -0
- data/share/lilypond/2.24.1/scm/lily/markup-macros.scm +493 -0
- data/share/lilypond/2.24.1/scm/lily/markup.scm +126 -0
- data/share/lilypond/2.24.1/scm/lily/midi.scm +258 -0
- data/share/lilypond/2.24.1/scm/lily/modal-transforms.scm +337 -0
- data/share/lilypond/2.24.1/scm/lily/music-functions.scm +2878 -0
- data/share/lilypond/2.24.1/scm/lily/output-lib.scm +3377 -0
- data/share/lilypond/2.24.1/scm/lily/output-ps.scm +335 -0
- data/share/lilypond/2.24.1/scm/lily/output-svg.scm +684 -0
- data/share/lilypond/2.24.1/scm/lily/page.scm +321 -0
- data/share/lilypond/2.24.1/scm/lily/paper-system.scm +271 -0
- data/share/lilypond/2.24.1/scm/lily/paper.scm +376 -0
- data/share/lilypond/2.24.1/scm/lily/parser-clef.scm +205 -0
- data/share/lilypond/2.24.1/scm/lily/parser-ly-from-scheme.scm +170 -0
- data/share/lilypond/2.24.1/scm/lily/part-combiner.scm +998 -0
- data/share/lilypond/2.24.1/scm/lily/predefined-fretboards.scm +54 -0
- data/share/lilypond/2.24.1/scm/lily/ps-to-png.scm +182 -0
- data/share/lilypond/2.24.1/scm/lily/scheme-engravers.scm +1813 -0
- data/share/lilypond/2.24.1/scm/lily/scheme-performers.scm +126 -0
- data/share/lilypond/2.24.1/scm/lily/script.scm +416 -0
- data/share/lilypond/2.24.1/scm/lily/skyline.scm +25 -0
- data/share/lilypond/2.24.1/scm/lily/song-util.scm +191 -0
- data/share/lilypond/2.24.1/scm/lily/song.scm +853 -0
- data/share/lilypond/2.24.1/scm/lily/stencil.scm +998 -0
- data/share/lilypond/2.24.1/scm/lily/tablature.scm +392 -0
- data/share/lilypond/2.24.1/scm/lily/time-signature-settings.scm +473 -0
- data/share/lilypond/2.24.1/scm/lily/time-signature.scm +35 -0
- data/share/lilypond/2.24.1/scm/lily/titling.scm +99 -0
- data/share/lilypond/2.24.1/scm/lily/to-xml.scm +254 -0
- data/share/lilypond/2.24.1/scm/lily/translation-functions.scm +1169 -0
- data/share/lilypond/2.24.1/vim/compiler/lilypond.vim +36 -0
- data/share/lilypond/2.24.1/vim/ftdetect/lilypond.vim +4 -0
- data/share/lilypond/2.24.1/vim/ftplugin/lilypond.vim +91 -0
- data/share/lilypond/2.24.1/vim/indent/lilypond.vim +79 -0
- data/share/lilypond/2.24.1/vim/syntax/lilypond-words +1408 -0
- data/share/lilypond/2.24.1/vim/syntax/lilypond-words.vim +3 -0
- data/share/lilypond/2.24.1/vim/syntax/lilypond.vim +104 -0
- data/share/locale/ca/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/cs/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/da/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/de/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/el/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/eo/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/es/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/fi/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/fr/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/it/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/ja/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/nl/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/ru/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/sv/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/tr/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/uk/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/vi/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/zh_CN/LC_MESSAGES/lilypond.mo +0 -0
- data/share/locale/zh_TW/LC_MESSAGES/lilypond.mo +0 -0
- metadata +1108 -1
|
@@ -0,0 +1,998 @@
|
|
|
1
|
+
;;;; This file is part of LilyPond, the GNU music typesetter.
|
|
2
|
+
;;;;
|
|
3
|
+
;;;; Copyright (C) 2003--2022 Han-Wen Nienhuys <hanwen@xs4all.nl>
|
|
4
|
+
;;;;
|
|
5
|
+
;;;; LilyPond is free software: you can redistribute it and/or modify
|
|
6
|
+
;;;; it under the terms of the GNU General Public License as published by
|
|
7
|
+
;;;; the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
;;;; (at your option) any later version.
|
|
9
|
+
;;;;
|
|
10
|
+
;;;; LilyPond is distributed in the hope that it will be useful,
|
|
11
|
+
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
;;;; GNU General Public License for more details.
|
|
14
|
+
;;;;
|
|
15
|
+
;;;; You should have received a copy of the GNU General Public License
|
|
16
|
+
;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
(use-modules (ice-9 match))
|
|
19
|
+
|
|
20
|
+
(define (make-bezier-sandwich-stencil coords thick)
|
|
21
|
+
(make-path-stencil
|
|
22
|
+
(match coords
|
|
23
|
+
(((x1 . y1) (x2 . y2) (x3 . y3) (x4 . y4) (x5 . y5) (x6 . y6))
|
|
24
|
+
`(moveto ,x1 ,y1
|
|
25
|
+
curveto ,x2 ,y2 ,x3 ,y3 ,x4 ,y4
|
|
26
|
+
curveto ,x5 ,y5 ,x6 ,y6 ,x1 ,y1
|
|
27
|
+
closepath)))
|
|
28
|
+
thick
|
|
29
|
+
1
|
|
30
|
+
1
|
|
31
|
+
#t))
|
|
32
|
+
|
|
33
|
+
(define-public (make-bow-stencil
|
|
34
|
+
start stop thickness angularity bow-height orientation)
|
|
35
|
+
"Create a bow stencil.
|
|
36
|
+
It starts at point @var{start}, ends at point @var{stop}.
|
|
37
|
+
@var{thickness} is the thickness of the bow.
|
|
38
|
+
The higher the value of number @var{angularity}, the more angular the shape of
|
|
39
|
+
the bow.
|
|
40
|
+
@var{bow-height} determines the height of the bow.
|
|
41
|
+
@var{orientation} determines whether the bow is concave or convex.
|
|
42
|
+
Both variables are supplied to support independent usage.
|
|
43
|
+
|
|
44
|
+
Done by calculating a horizontal unit bow first, then moving all control points
|
|
45
|
+
to the correct positions.
|
|
46
|
+
Limitation: s-curves are currently not supported.
|
|
47
|
+
"
|
|
48
|
+
|
|
49
|
+
;;;; Coding steps:
|
|
50
|
+
;;;; (1) calculate control-points for a "unit"-bow from '(0 . 0) to '(1 . 0)
|
|
51
|
+
;;;; user settable `bow-height' and `thickness' are scaled down.
|
|
52
|
+
;;;; (2) move control-points to match `start' and `stop'
|
|
53
|
+
|
|
54
|
+
(let* (;; we use a fixed line-width as border for different behaviour
|
|
55
|
+
;; for larger and (very) small lengths
|
|
56
|
+
(line-width 0.1)
|
|
57
|
+
;; `start'-`stop' distances
|
|
58
|
+
(dx (- (car stop) (car start)))
|
|
59
|
+
(dy (- (cdr stop) (cdr start)))
|
|
60
|
+
(length-to-print (magnitude (make-rectangular dx dy))))
|
|
61
|
+
|
|
62
|
+
(if (= 0 length-to-print)
|
|
63
|
+
empty-stencil
|
|
64
|
+
(let* (
|
|
65
|
+
;;;; (1) calculate control-points for the horizontal unit-bow,
|
|
66
|
+
;; y-values for 2nd/3rd control-points
|
|
67
|
+
(outer-control
|
|
68
|
+
(* 4/3 (sign orientation) (/ bow-height length-to-print)))
|
|
69
|
+
(inner-control
|
|
70
|
+
(* (sign orientation)
|
|
71
|
+
(- (abs outer-control) (/ thickness length-to-print))))
|
|
72
|
+
;; x-values for 2nd/3rd control-points depending on `angularity'
|
|
73
|
+
(offset-index
|
|
74
|
+
(- (* 0.6 angularity) 0.8))
|
|
75
|
+
(left-control
|
|
76
|
+
(+ 0.1 (* 0.3 angularity)))
|
|
77
|
+
(right-control
|
|
78
|
+
(- 1 left-control))
|
|
79
|
+
;; defining 2nd and 3rd outer control-points
|
|
80
|
+
(left-outer-control-point
|
|
81
|
+
(cons left-control outer-control))
|
|
82
|
+
(right-outer-control-point
|
|
83
|
+
(cons right-control outer-control))
|
|
84
|
+
;; defining 2nd and 3rd inner control-points
|
|
85
|
+
(left-inner-control-point
|
|
86
|
+
(cons left-control inner-control))
|
|
87
|
+
(right-inner-control-point
|
|
88
|
+
(cons right-control inner-control))
|
|
89
|
+
(coord-list
|
|
90
|
+
(list
|
|
91
|
+
'(0 . 0)
|
|
92
|
+
left-outer-control-point
|
|
93
|
+
right-outer-control-point
|
|
94
|
+
'(1 . 0)
|
|
95
|
+
right-inner-control-point
|
|
96
|
+
left-inner-control-point))
|
|
97
|
+
;;;; (2) move control-points to match `start' and `stop'
|
|
98
|
+
(moved-coord-list
|
|
99
|
+
(map
|
|
100
|
+
(lambda (p)
|
|
101
|
+
(cons
|
|
102
|
+
(+ (car start) (- (* (car p) dx) (* (cdr p) dy)))
|
|
103
|
+
(+ (cdr start) (+ (* (car p) dy) (* (cdr p) dx)))))
|
|
104
|
+
coord-list)))
|
|
105
|
+
|
|
106
|
+
;; final stencil
|
|
107
|
+
(make-bezier-sandwich-stencil
|
|
108
|
+
moved-coord-list
|
|
109
|
+
(min (* 2 thickness) line-width))))))
|
|
110
|
+
|
|
111
|
+
(define*-public (make-tie-stencil
|
|
112
|
+
start stop thickness orientation
|
|
113
|
+
#:optional (height-limit 1.0)(ratio 0.33)(angularity 0.5))
|
|
114
|
+
(let* (;; taken from bezier-bow.cc
|
|
115
|
+
(F0_1
|
|
116
|
+
(lambda (x) (* (/ 2 PI) (atan (* PI x 0.5)))))
|
|
117
|
+
(slur-height
|
|
118
|
+
(lambda (w h_inf r_0) (* (F0_1 (/ (* w r_0) h_inf)) h_inf)))
|
|
119
|
+
(width (abs (- (car start) (car stop))))
|
|
120
|
+
(height (slur-height width height-limit ratio)))
|
|
121
|
+
(make-bow-stencil start stop thickness angularity height orientation)))
|
|
122
|
+
|
|
123
|
+
(define-public (stack-stencils axis dir padding stils)
|
|
124
|
+
"Stack stencils @var{stils} in direction @var{axis}, @var{dir}, using
|
|
125
|
+
@var{padding}."
|
|
126
|
+
(reduce
|
|
127
|
+
(lambda (next front)
|
|
128
|
+
(ly:stencil-stack front axis dir next padding))
|
|
129
|
+
empty-stencil
|
|
130
|
+
stils))
|
|
131
|
+
|
|
132
|
+
(define-public (stack-stencils-padding-list axis dir paddings stils)
|
|
133
|
+
"Stack stencils @var{stils} in direction @var{axis}, @var{dir}, using
|
|
134
|
+
a list of @var{paddings}."
|
|
135
|
+
(if (null? stils)
|
|
136
|
+
empty-stencil
|
|
137
|
+
(fold
|
|
138
|
+
(lambda (next padding front)
|
|
139
|
+
(let ((offset (+ (- (interval-end (ly:stencil-extent front axis))
|
|
140
|
+
(interval-start (ly:stencil-extent next axis)))
|
|
141
|
+
padding)))
|
|
142
|
+
(ly:stencil-add
|
|
143
|
+
front
|
|
144
|
+
(ly:stencil-translate-axis next offset axis))))
|
|
145
|
+
(car stils)
|
|
146
|
+
(cdr stils)
|
|
147
|
+
paddings)))
|
|
148
|
+
|
|
149
|
+
(define-public (centered-stencil stencil)
|
|
150
|
+
"Center stencil @var{stencil} in both the x and y@tie{}directions."
|
|
151
|
+
(ly:stencil-aligned-to (ly:stencil-aligned-to stencil X CENTER) Y CENTER))
|
|
152
|
+
|
|
153
|
+
(define-public (stack-lines dir padding baseline stils)
|
|
154
|
+
"Stack stencils vertically with a baseline skip."
|
|
155
|
+
(reduce-right
|
|
156
|
+
(lambda (next back) (ly:stencil-stack next Y dir back padding baseline))
|
|
157
|
+
empty-stencil
|
|
158
|
+
(map
|
|
159
|
+
(lambda (s)
|
|
160
|
+
;; X-empty stencils may add vertical space. A stencil that is
|
|
161
|
+
;; merely Y-empty counts as horizontal spacing. Since we want
|
|
162
|
+
;; those to register as lines of their own (is this a good
|
|
163
|
+
;; idea?), we make them a separately visible line.
|
|
164
|
+
(if (and (ly:stencil-empty? s Y)
|
|
165
|
+
(not (ly:stencil-empty? s X)))
|
|
166
|
+
(ly:make-stencil (ly:stencil-expr s) (ly:stencil-extent s X) '(0 . 0))
|
|
167
|
+
s))
|
|
168
|
+
stils)))
|
|
169
|
+
|
|
170
|
+
(define-public (bracketify-stencil stil axis thick protrusion padding)
|
|
171
|
+
"Add brackets around @var{stil}, producing a new stencil."
|
|
172
|
+
|
|
173
|
+
(let* ((ext (ly:stencil-extent stil axis))
|
|
174
|
+
(lb (ly:bracket axis ext thick protrusion))
|
|
175
|
+
(rb (ly:bracket axis ext thick (- protrusion))))
|
|
176
|
+
(set! stil
|
|
177
|
+
(ly:stencil-combine-at-edge stil (other-axis axis) 1 rb padding))
|
|
178
|
+
(set! stil
|
|
179
|
+
(ly:stencil-combine-at-edge stil (other-axis axis) -1 lb padding))
|
|
180
|
+
stil))
|
|
181
|
+
|
|
182
|
+
(define (make-parenthesis-stencil
|
|
183
|
+
y-extent thickness width angularity orientation)
|
|
184
|
+
"Create a parenthesis stencil.
|
|
185
|
+
@var{y-extent} is the Y extent of the markup inside the parenthesis.
|
|
186
|
+
@var{half-thickness} is the half thickness of the parenthesis.
|
|
187
|
+
@var{width} is the width of a parenthesis.
|
|
188
|
+
@var{orientation} is the orientation of a parenthesis.
|
|
189
|
+
The higher the value of number @var{angularity},
|
|
190
|
+
the more angular the shape of the parenthesis."
|
|
191
|
+
(let* ((start (cons 0 (car y-extent)))
|
|
192
|
+
(stop (cons 0 (cdr y-extent)))
|
|
193
|
+
(line-width 0.1)
|
|
194
|
+
(bow-stil
|
|
195
|
+
(make-bow-stencil
|
|
196
|
+
start stop thickness angularity width orientation))
|
|
197
|
+
(x-extent (ly:stencil-extent bow-stil X)))
|
|
198
|
+
(ly:make-stencil
|
|
199
|
+
(ly:stencil-expr bow-stil)
|
|
200
|
+
(interval-widen x-extent (/ line-width 2))
|
|
201
|
+
(interval-widen y-extent (/ line-width 2)))))
|
|
202
|
+
|
|
203
|
+
(define-public (parenthesize-stencil
|
|
204
|
+
stencil half-thickness width angularity padding)
|
|
205
|
+
"Add parentheses around @var{stencil}, returning a new stencil."
|
|
206
|
+
(let* ((y-extent (ly:stencil-extent stencil Y))
|
|
207
|
+
(lp (make-parenthesis-stencil
|
|
208
|
+
y-extent half-thickness width angularity 1))
|
|
209
|
+
(rp (make-parenthesis-stencil
|
|
210
|
+
y-extent half-thickness width angularity -1)))
|
|
211
|
+
(set! stencil (ly:stencil-combine-at-edge stencil X LEFT lp padding))
|
|
212
|
+
(set! stencil (ly:stencil-combine-at-edge stencil X RIGHT rp padding))
|
|
213
|
+
stencil))
|
|
214
|
+
|
|
215
|
+
(define-public (make-line-stencil width startx starty endx endy)
|
|
216
|
+
"Make a line stencil of given line width and set its extents accordingly."
|
|
217
|
+
(let ((xext (cons (min startx endx) (max startx endx)))
|
|
218
|
+
(yext (cons (min starty endy) (max starty endy))))
|
|
219
|
+
(ly:make-stencil
|
|
220
|
+
(list 'draw-line width startx starty endx endy)
|
|
221
|
+
;; Since the line has rounded edges, we have to / can safely add half the
|
|
222
|
+
;; width to all coordinates!
|
|
223
|
+
(interval-widen xext (/ width 2))
|
|
224
|
+
(interval-widen yext (/ width 2)))))
|
|
225
|
+
|
|
226
|
+
(define-public (make-transparent-box-stencil xext yext)
|
|
227
|
+
"Make a transparent box."
|
|
228
|
+
(ly:stencil-outline empty-stencil (make-filled-box-stencil xext yext)))
|
|
229
|
+
|
|
230
|
+
(define-public (make-filled-box-stencil xext yext)
|
|
231
|
+
"Make a filled box."
|
|
232
|
+
|
|
233
|
+
(ly:make-stencil
|
|
234
|
+
(list 'round-filled-box (- (car xext)) (cdr xext)
|
|
235
|
+
(- (car yext)) (cdr yext) 0.0)
|
|
236
|
+
xext yext))
|
|
237
|
+
|
|
238
|
+
(define-public (make-circle-stencil radius thickness fill)
|
|
239
|
+
"Make a circle of radius @var{radius} and thickness @var{thickness}."
|
|
240
|
+
(let*
|
|
241
|
+
((out-radius (+ radius (/ thickness 2.0))))
|
|
242
|
+
|
|
243
|
+
(ly:make-stencil
|
|
244
|
+
(list 'circle radius thickness fill)
|
|
245
|
+
(cons (- out-radius) out-radius)
|
|
246
|
+
(cons (- out-radius) out-radius))))
|
|
247
|
+
|
|
248
|
+
(define-public (make-oval-stencil x-radius y-radius thickness fill)
|
|
249
|
+
"Make an oval from two Bézier curves, of x@tie{}radius @var{x-radius},
|
|
250
|
+
y@tie{}radius @var{y-radius}, and thickness @var{thickness} with fill
|
|
251
|
+
defined by @var{fill}."
|
|
252
|
+
(let*
|
|
253
|
+
((x-out-radius (+ x-radius (/ thickness 2.0)))
|
|
254
|
+
(y-out-radius (+ y-radius (/ thickness 2.0)))
|
|
255
|
+
(x-max x-radius)
|
|
256
|
+
(x-min (- x-radius))
|
|
257
|
+
(y-max y-radius)
|
|
258
|
+
(y-min (- y-radius))
|
|
259
|
+
(commands `(,(list 'moveto x-max 0)
|
|
260
|
+
,(list 'curveto x-max y-max x-min y-max x-min 0)
|
|
261
|
+
,(list 'curveto x-min y-min x-max y-min x-max 0)
|
|
262
|
+
,(list 'closepath)))
|
|
263
|
+
(command-list (fold-right append '() commands)))
|
|
264
|
+
(ly:make-stencil
|
|
265
|
+
`(path ,thickness ,command-list round round ,fill)
|
|
266
|
+
(cons (- x-out-radius) x-out-radius)
|
|
267
|
+
(cons (- y-out-radius) y-out-radius))))
|
|
268
|
+
|
|
269
|
+
(define-public (make-partial-ellipse-stencil
|
|
270
|
+
x-radius y-radius start-angle end-angle thick connect fill)
|
|
271
|
+
"Create an elliptical arc.
|
|
272
|
+
@var{x-radius} is the x@tie{}radius of the arc.
|
|
273
|
+
@var{y-radius} is the y@tie{}radius of the arc.
|
|
274
|
+
@var{start-angle} is the starting angle of the arc (in degrees).
|
|
275
|
+
@var{end-angle} is the ending angle of the arc (in degrees).
|
|
276
|
+
@var{thick} is the thickness of the line.
|
|
277
|
+
@var{connect} is a boolean flag indicating whether the end should
|
|
278
|
+
be connected to the start by a line.
|
|
279
|
+
@var{fill} is a boolean flag indicating whether the shape should be filled."
|
|
280
|
+
(define (make-radius-list x-radius y-radius)
|
|
281
|
+
"Makes a list of angle/radius pairs at intervals of PI/2 for
|
|
282
|
+
the partial ellipse until 7*PI/2. For example, in pseudo-code:
|
|
283
|
+
> (make-radius-list 2 3)\
|
|
284
|
+
\n((0.0 . 2) (PI/2 . 3) (PI . -2) (3*PI/2 . -3)\
|
|
285
|
+
\n(2*PI . 2) (5*PI/2 . 3) (3*PI . -2) (7*PI/2 . -3))
|
|
286
|
+
"
|
|
287
|
+
(append-map
|
|
288
|
+
(lambda (adder)
|
|
289
|
+
(map (lambda (quadrant)
|
|
290
|
+
(cons (+ adder (car quadrant))
|
|
291
|
+
(cdr quadrant)))
|
|
292
|
+
`((0.0 . (,x-radius . 0.0))
|
|
293
|
+
(,PI-OVER-TWO . (0.0 . ,y-radius))
|
|
294
|
+
(,PI . (,(- x-radius) . 0.0))
|
|
295
|
+
(,THREE-PI-OVER-TWO . (0.0 . ,(- y-radius))))))
|
|
296
|
+
`(0.0 ,TWO-PI)))
|
|
297
|
+
|
|
298
|
+
(define
|
|
299
|
+
(insert-in-ordered-list ordering-function value inlist cutl? cutr?)
|
|
300
|
+
"Insert @var{value} in ordered list @var{inlist}. If @var{cutl?}, we
|
|
301
|
+
cut away any parts of @var{inlist} before @var{value}. @var{cutr?} works
|
|
302
|
+
the same way but for the right side. For example:
|
|
303
|
+
> (insert-in-ordered-list < 4 '(1 2 3 6 7) #f #f)
|
|
304
|
+
'(1 2 3 4 6 7)
|
|
305
|
+
> (insert-in-ordered-list < 4 '(1 2 3 6 7) #t #f)
|
|
306
|
+
'(4 6 7)
|
|
307
|
+
> (insert-in-ordered-list < 4 '(1 2 3 6 7) #f #t)
|
|
308
|
+
'(1 2 3 4)
|
|
309
|
+
"
|
|
310
|
+
(define
|
|
311
|
+
(helper ordering-function value left-list right-list cutl? cutr?)
|
|
312
|
+
(if (null? right-list)
|
|
313
|
+
(append
|
|
314
|
+
(if cutl? '() left-list)
|
|
315
|
+
(list value)
|
|
316
|
+
(if cutr? '() right-list))
|
|
317
|
+
(if (ordering-function value (car right-list))
|
|
318
|
+
(append
|
|
319
|
+
(if cutl? '() left-list)
|
|
320
|
+
(list value)
|
|
321
|
+
(if cutr? '() right-list))
|
|
322
|
+
(helper
|
|
323
|
+
ordering-function
|
|
324
|
+
value
|
|
325
|
+
(append left-list (list (car right-list)))
|
|
326
|
+
(cdr right-list)
|
|
327
|
+
cutl?
|
|
328
|
+
cutr?))))
|
|
329
|
+
(helper ordering-function value '() inlist cutl? cutr?))
|
|
330
|
+
|
|
331
|
+
(define (ordering-function-1 a b) (car< a b))
|
|
332
|
+
|
|
333
|
+
(define (ordering-function-2 a b) (car<= a b))
|
|
334
|
+
|
|
335
|
+
(define (min-max-crawler min-max side l)
|
|
336
|
+
"Apply function @var{side} to each member of list and
|
|
337
|
+
then reduce using @var{min-max}:
|
|
338
|
+
> (min-max-crawler min car '((0 . 3) (-1 . 4) (1 . 2)))
|
|
339
|
+
-1
|
|
340
|
+
> (min-max-crawler min cdr '((0 . 3) (-1 . 4) (1 . 2)))
|
|
341
|
+
2
|
|
342
|
+
"
|
|
343
|
+
(reduce min-max
|
|
344
|
+
(if (eq? min-max min) 100000 -100000)
|
|
345
|
+
(map side l)))
|
|
346
|
+
|
|
347
|
+
(let*
|
|
348
|
+
(;; the outside limit of the x-radius
|
|
349
|
+
(x-out-radius (+ x-radius (/ thick 2.0)))
|
|
350
|
+
;; the outside limit of the y-radius
|
|
351
|
+
(y-out-radius (+ y-radius (/ thick 2.0)))
|
|
352
|
+
;; end angle to radians
|
|
353
|
+
(new-end-angle (angle-0-2pi (degrees->radians end-angle)))
|
|
354
|
+
;; length of the radius at the end angle
|
|
355
|
+
(end-radius (ellipse-radius x-out-radius y-out-radius new-end-angle))
|
|
356
|
+
;; start angle to radians
|
|
357
|
+
(new-start-angle (angle-0-2pi (degrees->radians start-angle)))
|
|
358
|
+
;; length of the radius at the start angle
|
|
359
|
+
(start-radius (ellipse-radius x-out-radius y-out-radius new-start-angle))
|
|
360
|
+
;; points that the arc passes through at 90 degree intervals
|
|
361
|
+
(radius-list (make-radius-list x-out-radius y-out-radius))
|
|
362
|
+
;; rectangular coordinates of arc endpoint
|
|
363
|
+
(rectangular-end-radius (polar->rectangular end-radius end-angle))
|
|
364
|
+
;; rectangular coordinates of arc begin point
|
|
365
|
+
(rectangular-start-radius (polar->rectangular start-radius start-angle))
|
|
366
|
+
;; we want the end angle to always be bigger than the start angle
|
|
367
|
+
;; so we redefine it here just in case it is less
|
|
368
|
+
(new-end-angle
|
|
369
|
+
(if (<= new-end-angle new-start-angle)
|
|
370
|
+
(+ TWO-PI new-end-angle)
|
|
371
|
+
new-end-angle))
|
|
372
|
+
;; all the points that may be extrema of the arc
|
|
373
|
+
;; this is the 90 degree points plus the beginning and end points
|
|
374
|
+
;; we use this to calculate extents
|
|
375
|
+
(possible-extrema
|
|
376
|
+
(insert-in-ordered-list
|
|
377
|
+
ordering-function-2
|
|
378
|
+
(cons new-end-angle rectangular-end-radius)
|
|
379
|
+
(insert-in-ordered-list
|
|
380
|
+
ordering-function-1
|
|
381
|
+
(cons new-start-angle rectangular-start-radius)
|
|
382
|
+
radius-list
|
|
383
|
+
#t
|
|
384
|
+
#f)
|
|
385
|
+
#f
|
|
386
|
+
#t)))
|
|
387
|
+
(ly:make-stencil
|
|
388
|
+
(list
|
|
389
|
+
'partial-ellipse
|
|
390
|
+
x-radius
|
|
391
|
+
y-radius
|
|
392
|
+
start-angle
|
|
393
|
+
end-angle
|
|
394
|
+
thick
|
|
395
|
+
connect
|
|
396
|
+
fill)
|
|
397
|
+
;; we know the extrema points by crawling through the
|
|
398
|
+
;; list of possible extrema and finding the min and max
|
|
399
|
+
;; for x and y
|
|
400
|
+
(cons (min-max-crawler min cadr possible-extrema)
|
|
401
|
+
(min-max-crawler max cadr possible-extrema))
|
|
402
|
+
(cons (min-max-crawler min cddr possible-extrema)
|
|
403
|
+
(min-max-crawler max cddr possible-extrema)))))
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
(define*-public (make-path-stencil path thickness x-scale y-scale fill
|
|
407
|
+
#:key (line-cap-style 'round)
|
|
408
|
+
(line-join-style 'round))
|
|
409
|
+
"Make a stencil based on the path described by the list @var{path}, with
|
|
410
|
+
thickness @var{thickness}, and scaled by @var{x-scale} in the x@tie{}direction
|
|
411
|
+
and @var{y-scale} in the y@tie{}direction (the difference with scaling the
|
|
412
|
+
resulting stencil using @code{ly:stencil-scale} is that this scaling does not
|
|
413
|
+
change the thickness). @var{fill} is a boolean argument that specifies whether
|
|
414
|
+
the path should be filled. Valid path commands are
|
|
415
|
+
|
|
416
|
+
@example
|
|
417
|
+
moveto rmoveto lineto rlineto curveto rcurveto closepath
|
|
418
|
+
@end example
|
|
419
|
+
|
|
420
|
+
and their standard SVG single-letter equivalents
|
|
421
|
+
|
|
422
|
+
@example
|
|
423
|
+
M m L l C c Z z
|
|
424
|
+
@end example"
|
|
425
|
+
;; Convert coordinates to absolute, so we can compute the extents. We leave
|
|
426
|
+
;; them as absolute in the result (TODO: this probably means some bits of code
|
|
427
|
+
;; can be removed in the output backends.)
|
|
428
|
+
(let loop ((path
|
|
429
|
+
;; A path must begin with a moveto.
|
|
430
|
+
(match path
|
|
431
|
+
((moveto . _)
|
|
432
|
+
path)
|
|
433
|
+
(_
|
|
434
|
+
(cons* 'moveto 0 0 path))))
|
|
435
|
+
;; The start of the current path. Changed by moveto commands, used
|
|
436
|
+
;; for closepath.
|
|
437
|
+
(origin-x 0)
|
|
438
|
+
(origin-y 0)
|
|
439
|
+
;; The point at which the previous command left us.
|
|
440
|
+
(previous-x 0)
|
|
441
|
+
(previous-y 0)
|
|
442
|
+
;; Extents of the path so far.
|
|
443
|
+
(X-extent empty-interval)
|
|
444
|
+
(Y-extent empty-interval)
|
|
445
|
+
;; Absolute path.
|
|
446
|
+
(acc '()))
|
|
447
|
+
(define (handle-moveto x y rest)
|
|
448
|
+
(loop rest
|
|
449
|
+
;; Reset origin.
|
|
450
|
+
x
|
|
451
|
+
y
|
|
452
|
+
;; Also reset previous point.
|
|
453
|
+
x
|
|
454
|
+
y
|
|
455
|
+
;; Extents are unchanged.
|
|
456
|
+
X-extent
|
|
457
|
+
Y-extent
|
|
458
|
+
(cons `(moveto ,x ,y)
|
|
459
|
+
acc)))
|
|
460
|
+
(define (handle-lineto x y rest)
|
|
461
|
+
(loop rest
|
|
462
|
+
origin-x
|
|
463
|
+
origin-y
|
|
464
|
+
;; End point of the line becomes the new previous point.
|
|
465
|
+
x y
|
|
466
|
+
;; Account for the line's extents.
|
|
467
|
+
(interval-union X-extent (ordered-cons previous-x x))
|
|
468
|
+
(interval-union Y-extent (ordered-cons previous-y y))
|
|
469
|
+
(cons `(lineto ,x ,y)
|
|
470
|
+
acc)))
|
|
471
|
+
(define (handle-curveto x2 y2 x3 y3 x4 y4 rest)
|
|
472
|
+
(let ((bezier `((,previous-x . ,previous-y) (,x2 . ,y2) (,x3 . ,y3) (,x4 . ,y4))))
|
|
473
|
+
(loop rest
|
|
474
|
+
origin-x
|
|
475
|
+
origin-y
|
|
476
|
+
;; End point of the curve becomes the new previous point.
|
|
477
|
+
x4
|
|
478
|
+
y4
|
|
479
|
+
;; Account for the curve's extents.
|
|
480
|
+
(interval-union X-extent (ly:bezier-extent bezier X))
|
|
481
|
+
(interval-union Y-extent (ly:bezier-extent bezier Y))
|
|
482
|
+
(cons `(curveto ,x2 ,y2 ,x3 ,y3 ,x4 ,y4)
|
|
483
|
+
acc))))
|
|
484
|
+
(define (handle-closepath rest)
|
|
485
|
+
(loop rest
|
|
486
|
+
origin-x
|
|
487
|
+
origin-y
|
|
488
|
+
;; Origin becomes the new previous point again.
|
|
489
|
+
origin-x
|
|
490
|
+
origin-y
|
|
491
|
+
;; Account for the line's extents.
|
|
492
|
+
(interval-union X-extent (ordered-cons previous-x origin-x))
|
|
493
|
+
(interval-union Y-extent (ordered-cons previous-y origin-y))
|
|
494
|
+
(cons '(closepath)
|
|
495
|
+
acc)))
|
|
496
|
+
(match path
|
|
497
|
+
(((or 'moveto 'M) x y . rest)
|
|
498
|
+
(handle-moveto (* x x-scale)
|
|
499
|
+
(* y y-scale)
|
|
500
|
+
rest))
|
|
501
|
+
(((or 'rmoveto 'm) x y . rest)
|
|
502
|
+
(handle-moveto (+ previous-x (* x x-scale))
|
|
503
|
+
(+ previous-y (* y y-scale))
|
|
504
|
+
rest))
|
|
505
|
+
(((or 'lineto 'L) x y . rest)
|
|
506
|
+
(handle-lineto (* x x-scale)
|
|
507
|
+
(* y y-scale)
|
|
508
|
+
rest))
|
|
509
|
+
(((or 'rlineto 'l) x y . rest)
|
|
510
|
+
(handle-lineto (+ previous-x (* x x-scale))
|
|
511
|
+
(+ previous-y (* y y-scale))
|
|
512
|
+
rest))
|
|
513
|
+
(((or 'curveto 'C) x2 y2 x3 y3 x4 y4 . rest)
|
|
514
|
+
;; Conceptually, x1 and y1 are the current point.
|
|
515
|
+
(handle-curveto (* x2 x-scale)
|
|
516
|
+
(* y2 y-scale)
|
|
517
|
+
(* x3 x-scale)
|
|
518
|
+
(* y3 y-scale)
|
|
519
|
+
(* x4 x-scale)
|
|
520
|
+
(* y4 y-scale)
|
|
521
|
+
rest))
|
|
522
|
+
(((or 'rcurveto 'c) x2 y2 x3 y3 x4 y4 . rest)
|
|
523
|
+
(handle-curveto (+ previous-x (* x2 x-scale))
|
|
524
|
+
(+ previous-y (* y2 y-scale))
|
|
525
|
+
(+ previous-x (* x3 x-scale))
|
|
526
|
+
(+ previous-y (* y3 y-scale))
|
|
527
|
+
(+ previous-x (* x4 x-scale))
|
|
528
|
+
(+ previous-y (* y4 y-scale))
|
|
529
|
+
rest))
|
|
530
|
+
(((or 'closepath 'Z 'z) . rest)
|
|
531
|
+
(handle-closepath rest))
|
|
532
|
+
(()
|
|
533
|
+
(let ((half-thickness (/ thickness 2)))
|
|
534
|
+
(ly:make-stencil
|
|
535
|
+
`(path ,thickness
|
|
536
|
+
;; TODO: a nested internal representation '((moveto x y) (lineto x y))
|
|
537
|
+
;; might be better than this flat representation '(moveto x y lineto x y).
|
|
538
|
+
,(apply append (reverse! acc))
|
|
539
|
+
,line-cap-style
|
|
540
|
+
,line-join-style
|
|
541
|
+
,fill)
|
|
542
|
+
(interval-widen X-extent half-thickness)
|
|
543
|
+
(interval-widen Y-extent half-thickness)))))))
|
|
544
|
+
|
|
545
|
+
(define-public (make-connected-path-stencil pointlist thickness
|
|
546
|
+
x-scale y-scale connect fill)
|
|
547
|
+
"Make a connected path described by the list @var{pointlist}, beginning
|
|
548
|
+
at point @w{(0, 0)}, with thickness @var{thickness}, and scaled by
|
|
549
|
+
@var{x-scale} in the x@tie{}direction and @var{y-scale} in the
|
|
550
|
+
y@tie{}direction. @var{connect} and @var{fill} are boolean arguments that
|
|
551
|
+
specify whether the path should be connected or filled, respectively."
|
|
552
|
+
(make-path-stencil
|
|
553
|
+
(concatenate
|
|
554
|
+
(append
|
|
555
|
+
(map (lambda (path-unit)
|
|
556
|
+
(case (length path-unit)
|
|
557
|
+
((2) (append (list 'lineto) path-unit))
|
|
558
|
+
((6) (append (list 'curveto) path-unit))))
|
|
559
|
+
pointlist)
|
|
560
|
+
;; if this path is connected, add closepath to the end
|
|
561
|
+
(if connect (list '(closepath)) '())))
|
|
562
|
+
thickness x-scale y-scale fill))
|
|
563
|
+
|
|
564
|
+
(define-public (make-ellipse-stencil x-radius y-radius thickness fill)
|
|
565
|
+
"Make an ellipse of x@tie{}radius @var{x-radius}, y@tie{}radius
|
|
566
|
+
@code{y-radius}, and thickness @var{thickness} with fill defined by
|
|
567
|
+
@code{fill}."
|
|
568
|
+
(let*
|
|
569
|
+
((x-out-radius (+ x-radius (/ thickness 2.0)))
|
|
570
|
+
(y-out-radius (+ y-radius (/ thickness 2.0))) )
|
|
571
|
+
|
|
572
|
+
(ly:make-stencil
|
|
573
|
+
(list 'ellipse x-radius y-radius thickness fill)
|
|
574
|
+
(cons (- x-out-radius) x-out-radius)
|
|
575
|
+
(cons (- y-out-radius) y-out-radius))))
|
|
576
|
+
|
|
577
|
+
(define-public (box-grob-stencil grob)
|
|
578
|
+
"Make a box of exactly the extents of the grob. The box precisely
|
|
579
|
+
encloses the contents."
|
|
580
|
+
(let* ((xext (ly:grob-extent grob grob 0))
|
|
581
|
+
(yext (ly:grob-extent grob grob 1))
|
|
582
|
+
(thick 0.01))
|
|
583
|
+
|
|
584
|
+
(ly:stencil-add
|
|
585
|
+
(make-filled-box-stencil xext (cons (- (car yext) thick) (car yext)))
|
|
586
|
+
(make-filled-box-stencil xext (cons (cdr yext) (+ (cdr yext) thick)))
|
|
587
|
+
(make-filled-box-stencil (cons (cdr xext) (+ (cdr xext) thick)) yext)
|
|
588
|
+
(make-filled-box-stencil (cons (- (car xext) thick) (car xext)) yext))))
|
|
589
|
+
|
|
590
|
+
;; TODO merge this and prev function.
|
|
591
|
+
(define-public (box-stencil stencil thickness padding)
|
|
592
|
+
"Add a box around @var{stencil}, producing a new stencil."
|
|
593
|
+
(let* ((x-ext (interval-widen (ly:stencil-extent stencil 0) padding))
|
|
594
|
+
(y-ext (interval-widen (ly:stencil-extent stencil 1) padding))
|
|
595
|
+
(y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
|
|
596
|
+
(x-rule (make-filled-box-stencil
|
|
597
|
+
(interval-widen x-ext thickness) (cons 0 thickness))))
|
|
598
|
+
(set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding))
|
|
599
|
+
(set! stencil (ly:stencil-combine-at-edge stencil X -1 y-rule padding))
|
|
600
|
+
(set! stencil (ly:stencil-combine-at-edge stencil Y 1 x-rule 0.0))
|
|
601
|
+
(set! stencil (ly:stencil-combine-at-edge stencil Y -1 x-rule 0.0))
|
|
602
|
+
stencil))
|
|
603
|
+
|
|
604
|
+
(define-public (circle-stencil stencil thickness padding)
|
|
605
|
+
"Add a circle around @var{stencil}, producing a new stencil."
|
|
606
|
+
(let* ((x-ext (ly:stencil-extent stencil X))
|
|
607
|
+
(y-ext (ly:stencil-extent stencil Y))
|
|
608
|
+
(diameter (max (interval-length x-ext)
|
|
609
|
+
(interval-length y-ext)))
|
|
610
|
+
(radius (+ (/ diameter 2) padding thickness))
|
|
611
|
+
(circle (make-circle-stencil radius thickness #f)))
|
|
612
|
+
|
|
613
|
+
(ly:stencil-add
|
|
614
|
+
stencil
|
|
615
|
+
(ly:stencil-translate circle
|
|
616
|
+
(cons
|
|
617
|
+
(interval-center x-ext)
|
|
618
|
+
(interval-center y-ext))))))
|
|
619
|
+
|
|
620
|
+
(define-public (oval-stencil stencil thickness x-padding y-padding)
|
|
621
|
+
"Add an oval around @code{stencil}, padded by the padding pair,
|
|
622
|
+
producing a new stencil."
|
|
623
|
+
(let* ((x-ext (ly:stencil-extent stencil X))
|
|
624
|
+
(y-ext (ly:stencil-extent stencil Y))
|
|
625
|
+
(x-length (+ (interval-length x-ext) x-padding thickness))
|
|
626
|
+
(y-length (+ (interval-length y-ext) y-padding thickness))
|
|
627
|
+
(x-radius (* 0.707 x-length) )
|
|
628
|
+
(y-radius (* 0.707 y-length) )
|
|
629
|
+
(oval (make-oval-stencil x-radius y-radius thickness #f)))
|
|
630
|
+
|
|
631
|
+
(ly:stencil-add
|
|
632
|
+
stencil
|
|
633
|
+
(ly:stencil-translate oval
|
|
634
|
+
(cons
|
|
635
|
+
(interval-center x-ext)
|
|
636
|
+
(interval-center y-ext))))))
|
|
637
|
+
|
|
638
|
+
(define-public (ellipse-stencil stencil thickness x-padding y-padding)
|
|
639
|
+
"Add an ellipse around @var{stencil}, padded by the padding pair,
|
|
640
|
+
producing a new stencil."
|
|
641
|
+
(let* ((x-ext (ly:stencil-extent stencil X))
|
|
642
|
+
(y-ext (ly:stencil-extent stencil Y))
|
|
643
|
+
(x-length (+ (interval-length x-ext) x-padding thickness))
|
|
644
|
+
(y-length (+ (interval-length y-ext) y-padding thickness))
|
|
645
|
+
;; (aspect-ratio (/ x-length y-length))
|
|
646
|
+
(x-radius (* 0.707 x-length) )
|
|
647
|
+
(y-radius (* 0.707 y-length) )
|
|
648
|
+
;; (diameter (max (- (cdr x-ext) (car x-ext))
|
|
649
|
+
;; (- (cdr y-ext) (car y-ext))))
|
|
650
|
+
;; radius (+ (/ diameter 2) padding thickness))
|
|
651
|
+
(ellipse (make-ellipse-stencil x-radius y-radius thickness #f)))
|
|
652
|
+
|
|
653
|
+
(ly:stencil-add
|
|
654
|
+
stencil
|
|
655
|
+
(ly:stencil-translate ellipse
|
|
656
|
+
(cons
|
|
657
|
+
(interval-center x-ext)
|
|
658
|
+
(interval-center y-ext))))))
|
|
659
|
+
|
|
660
|
+
(define-public (rounded-box-stencil stencil thickness padding blot)
|
|
661
|
+
"Add a rounded box around @var{stencil}, producing a new stencil."
|
|
662
|
+
|
|
663
|
+
(let* ((xext (interval-widen (ly:stencil-extent stencil 0) padding))
|
|
664
|
+
(yext (interval-widen (ly:stencil-extent stencil 1) padding))
|
|
665
|
+
(min-ext (min (-(cdr xext) (car xext)) (-(cdr yext) (car yext))))
|
|
666
|
+
(ideal-blot (min blot (/ min-ext 2)))
|
|
667
|
+
(ideal-thickness (min thickness (/ min-ext 2)))
|
|
668
|
+
(outer (ly:round-filled-box
|
|
669
|
+
(interval-widen xext ideal-thickness)
|
|
670
|
+
(interval-widen yext ideal-thickness)
|
|
671
|
+
ideal-blot))
|
|
672
|
+
(inner (ly:stencil-in-color
|
|
673
|
+
(ly:round-filled-box
|
|
674
|
+
xext yext (- ideal-blot ideal-thickness))
|
|
675
|
+
"white")))
|
|
676
|
+
(ly:stencil-add outer inner stencil)))
|
|
677
|
+
|
|
678
|
+
(define-public (flip-stencil axis stil)
|
|
679
|
+
"Flip stencil @var{stil} in the direction of @var{axis}.
|
|
680
|
+
Value @code{X} (or @code{0}) for @var{axis} flips it horizontally.
|
|
681
|
+
Value @code{Y} (or @code{1}) flips it vertically. @var{stil} is
|
|
682
|
+
flipped in place; its position, the coordinates of its bounding
|
|
683
|
+
box, remains the same."
|
|
684
|
+
(let* (
|
|
685
|
+
;; scale stencil using -1 to flip it and
|
|
686
|
+
;; then restore it to its original position
|
|
687
|
+
(xy (if (= axis X) '(-1 . 1) '(1 . -1)))
|
|
688
|
+
(flipped-stil (ly:stencil-scale stil (car xy) (cdr xy)))
|
|
689
|
+
(flipped-ext (ly:stencil-extent flipped-stil axis))
|
|
690
|
+
(original-ext (ly:stencil-extent stil axis))
|
|
691
|
+
(offset (- (car original-ext) (car flipped-ext)))
|
|
692
|
+
(replaced-stil (ly:stencil-translate-axis flipped-stil offset axis)))
|
|
693
|
+
replaced-stil))
|
|
694
|
+
|
|
695
|
+
(define-public (stencil-with-color stencil color)
|
|
696
|
+
(cond
|
|
697
|
+
((string? color) (ly:stencil-in-color stencil color))
|
|
698
|
+
(color (apply ly:stencil-in-color stencil color))
|
|
699
|
+
(else stencil)))
|
|
700
|
+
|
|
701
|
+
(define*-public (stencil-whiteout-outline
|
|
702
|
+
stil #:optional (thickness 0.3) (color white)
|
|
703
|
+
(angle-increments 16) (radial-increments 1))
|
|
704
|
+
"White-out a stencil by surrounding it with white (or @var{color}) around
|
|
705
|
+
its outline.
|
|
706
|
+
|
|
707
|
+
This function works by creating a series of white or @var{color}
|
|
708
|
+
stencils radially offset from the original stencil with angles from
|
|
709
|
+
0 to 2*pi, at an increment of @code{angle-inc}, and with radii
|
|
710
|
+
from @code{radial-inc} to @var{thickness}. @var{thickness} is how big
|
|
711
|
+
the white outline is, as a multiple of @code{line-thickness}.
|
|
712
|
+
@var{radial-increments} is how many copies of the white stencil we make
|
|
713
|
+
on our way out to thickness. @var{angle-increments} is how many copies
|
|
714
|
+
of the white stencil we make between 0 and 2*pi."
|
|
715
|
+
(if (or (not (positive? angle-increments))
|
|
716
|
+
(not (positive? radial-increments)))
|
|
717
|
+
(begin
|
|
718
|
+
(ly:warning (G_ "Both angle-increments and radial-increments must be positive numbers."))
|
|
719
|
+
stil)
|
|
720
|
+
(let* ((angle-inc (/ 360 angle-increments))
|
|
721
|
+
(radial-inc (/ thickness radial-increments)))
|
|
722
|
+
|
|
723
|
+
(define (circle-plot ang dec radius original-stil new-stil)
|
|
724
|
+
;; ang (angle) and dec (decrement) are in degrees, not radians
|
|
725
|
+
(if (<= ang 0)
|
|
726
|
+
new-stil
|
|
727
|
+
(circle-plot (- ang dec) dec radius original-stil
|
|
728
|
+
(ly:stencil-add
|
|
729
|
+
new-stil
|
|
730
|
+
(ly:stencil-translate original-stil
|
|
731
|
+
(ly:directed ang radius))))))
|
|
732
|
+
|
|
733
|
+
(define (radial-plot radius original-stil new-stil)
|
|
734
|
+
(if (<= radius 0)
|
|
735
|
+
new-stil
|
|
736
|
+
(ly:stencil-add new-stil
|
|
737
|
+
(radial-plot
|
|
738
|
+
(- radius radial-inc)
|
|
739
|
+
original-stil
|
|
740
|
+
(circle-plot 360 angle-inc
|
|
741
|
+
radius original-stil empty-stencil)))))
|
|
742
|
+
|
|
743
|
+
(let ((whiteout-expr
|
|
744
|
+
(ly:stencil-expr
|
|
745
|
+
(stencil-with-color
|
|
746
|
+
(radial-plot thickness stil empty-stencil)
|
|
747
|
+
color))))
|
|
748
|
+
(ly:stencil-add
|
|
749
|
+
(ly:make-stencil
|
|
750
|
+
`(delay-stencil-evaluation ,(delay whiteout-expr)))
|
|
751
|
+
stil)))))
|
|
752
|
+
|
|
753
|
+
(define*-public (stencil-whiteout-box stil
|
|
754
|
+
#:optional (thickness 0) (blot 0)
|
|
755
|
+
(color white))
|
|
756
|
+
"White-out a stencil by printing it on top of a white (or @var{color})
|
|
757
|
+
rectangle.
|
|
758
|
+
|
|
759
|
+
@var{thickness} is how far, as a multiple of @code{line-thickness},
|
|
760
|
+
the white outline extends past the extents of stencil @var{stil}."
|
|
761
|
+
(let*
|
|
762
|
+
((x-ext (interval-widen (ly:stencil-extent stil X) thickness))
|
|
763
|
+
(y-ext (interval-widen (ly:stencil-extent stil Y) thickness)))
|
|
764
|
+
|
|
765
|
+
(ly:stencil-add
|
|
766
|
+
(stencil-with-color (ly:round-filled-box x-ext y-ext blot) color)
|
|
767
|
+
stil)))
|
|
768
|
+
|
|
769
|
+
(define*-public (stencil-whiteout stil
|
|
770
|
+
#:optional style thickness
|
|
771
|
+
(line-thickness 0.1))
|
|
772
|
+
"White-out a stencil (i.e., add a white background around it).
|
|
773
|
+
|
|
774
|
+
@var{style}, @var{thickness} and @var{line-thickness} are optional
|
|
775
|
+
arguments. If set, @var{style} determines the shape of the white
|
|
776
|
+
background. Given @code{'outline} the white background is produced
|
|
777
|
+
by @code{stencil-whiteout-outline}, given @code{'rounded-box} it is
|
|
778
|
+
produced by @code{stencil-whiteout-box} with rounded corners, given
|
|
779
|
+
other arguments (e.g., @code{'box}) or when unspecified it defaults to
|
|
780
|
+
@code{stencil-whiteout-box} with square corners. If @var{thickness} is
|
|
781
|
+
specified it determines how far, as a multiple of @var{line-thickness},
|
|
782
|
+
the white background extends past the extents of stencil @var{stil}. If
|
|
783
|
+
@var{thickness} has not been specified, an appropriate default is chosen
|
|
784
|
+
based on @var{style}."
|
|
785
|
+
(let ((thick (* line-thickness
|
|
786
|
+
(if (number? thickness)
|
|
787
|
+
thickness
|
|
788
|
+
(cond
|
|
789
|
+
((eq? style 'outline) 3)
|
|
790
|
+
((eq? style 'rounded-box) 3)
|
|
791
|
+
(else 0))))))
|
|
792
|
+
(cond
|
|
793
|
+
((eq? style 'special) stil)
|
|
794
|
+
((eq? style 'outline) (stencil-whiteout-outline stil thick))
|
|
795
|
+
((eq? style 'rounded-box) (stencil-whiteout-box stil thick (* 2 thick)))
|
|
796
|
+
(else (stencil-whiteout-box stil thick)))))
|
|
797
|
+
|
|
798
|
+
(define-public (arrow-stencil-maker start? end?)
|
|
799
|
+
"Return a function drawing a line from current point to @code{destination},
|
|
800
|
+
with optional arrows of @code{max-size} on start and end controlled by
|
|
801
|
+
@var{start?} and @var{end?}."
|
|
802
|
+
(lambda (destination max-size)
|
|
803
|
+
(let*
|
|
804
|
+
((e_x 1+0i)
|
|
805
|
+
(e_y 0+1i)
|
|
806
|
+
(distance (sqrt (+ (* (car destination) (car destination))
|
|
807
|
+
(* (cdr destination) (cdr destination)))))
|
|
808
|
+
(size (min max-size (/ distance 3)))
|
|
809
|
+
(rotate (lambda (z ang)
|
|
810
|
+
(* (make-polar 1 ang)
|
|
811
|
+
z)))
|
|
812
|
+
(complex-to-offset (lambda (z)
|
|
813
|
+
(list (real-part z) (imag-part z))))
|
|
814
|
+
|
|
815
|
+
(z-dest (+ (* e_x (car destination)) (* e_y (cdr destination))))
|
|
816
|
+
(e_z (/ z-dest (magnitude z-dest)))
|
|
817
|
+
(triangle-points (list
|
|
818
|
+
(* size -1+0.25i)
|
|
819
|
+
0
|
|
820
|
+
(* size -1-0.25i)))
|
|
821
|
+
(p1s (map (lambda (z)
|
|
822
|
+
(+ z-dest (rotate z (angle z-dest))))
|
|
823
|
+
triangle-points))
|
|
824
|
+
(p2s (map (lambda (z)
|
|
825
|
+
(rotate z (angle (- z-dest))))
|
|
826
|
+
triangle-points))
|
|
827
|
+
(null (cons 0 0))
|
|
828
|
+
(arrow-1
|
|
829
|
+
(ly:make-stencil
|
|
830
|
+
`(polygon ,(append-map complex-to-offset p1s)
|
|
831
|
+
0.0
|
|
832
|
+
#t) null null))
|
|
833
|
+
(arrow-2
|
|
834
|
+
(ly:make-stencil
|
|
835
|
+
`(polygon ,(append-map complex-to-offset p2s)
|
|
836
|
+
0.0
|
|
837
|
+
#t) null null ) )
|
|
838
|
+
(thickness (min (/ distance 12) 0.1))
|
|
839
|
+
(shorten-line (min (/ distance 3) 0.5))
|
|
840
|
+
(start (complex-to-offset (/ (* e_z shorten-line) 2)))
|
|
841
|
+
(end (complex-to-offset (- z-dest (/ (* e_z shorten-line) 2))))
|
|
842
|
+
|
|
843
|
+
(line (ly:make-stencil
|
|
844
|
+
`(draw-line ,thickness
|
|
845
|
+
,(car start) ,(cadr start)
|
|
846
|
+
,(car end) ,(cadr end)
|
|
847
|
+
)
|
|
848
|
+
(cons (min 0 (car destination))
|
|
849
|
+
(min 0 (cdr destination)))
|
|
850
|
+
(cons (max 0 (car destination))
|
|
851
|
+
(max 0 (cdr destination)))))
|
|
852
|
+
|
|
853
|
+
(result
|
|
854
|
+
(ly:stencil-add
|
|
855
|
+
(if start? arrow-2 empty-stencil)
|
|
856
|
+
(if end? arrow-1 empty-stencil)
|
|
857
|
+
line)))
|
|
858
|
+
|
|
859
|
+
result)))
|
|
860
|
+
|
|
861
|
+
(define-public dimension-arrows (arrow-stencil-maker #t #t))
|
|
862
|
+
|
|
863
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
864
|
+
;; ANNOTATIONS
|
|
865
|
+
;;
|
|
866
|
+
;; annotations are arrows indicating the numerical value of
|
|
867
|
+
;; spacing variables
|
|
868
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
869
|
+
|
|
870
|
+
(define*-public (annotate-y-interval layout name extent is-length
|
|
871
|
+
#:key (color darkblue))
|
|
872
|
+
(let ((text-props (cons '((font-size . -3)
|
|
873
|
+
(font-family . typewriter))
|
|
874
|
+
(layout-extract-page-properties layout)))
|
|
875
|
+
(annotation #f))
|
|
876
|
+
(define (center-stencil-on-extent stil)
|
|
877
|
+
(ly:stencil-translate (ly:stencil-aligned-to stil Y CENTER)
|
|
878
|
+
(cons 0 (interval-center extent))))
|
|
879
|
+
;; do something sensible for 0,0 intervals.
|
|
880
|
+
(set! extent (interval-widen extent 0.001))
|
|
881
|
+
(if (not (interval-sane? extent))
|
|
882
|
+
(set! annotation (interpret-markup
|
|
883
|
+
layout text-props
|
|
884
|
+
(make-simple-markup (simple-format #f "~a: NaN/inf" name))))
|
|
885
|
+
(let ((text-stencil (interpret-markup
|
|
886
|
+
layout text-props
|
|
887
|
+
(make-whiteout-markup name)))
|
|
888
|
+
(dim-stencil (interpret-markup
|
|
889
|
+
layout text-props
|
|
890
|
+
(make-whiteout-markup
|
|
891
|
+
(cond
|
|
892
|
+
((interval-empty? extent)
|
|
893
|
+
"empty")
|
|
894
|
+
(is-length
|
|
895
|
+
(ice9-format #f "~,2f" (interval-length extent)))
|
|
896
|
+
(else
|
|
897
|
+
(ice9-format #f "(~,2f,~,2f)"
|
|
898
|
+
(car extent) (cdr extent)))))))
|
|
899
|
+
(arrows (ly:stencil-translate-axis
|
|
900
|
+
(dimension-arrows (cons 0 (interval-length extent)) 1.0)
|
|
901
|
+
(interval-start extent) Y)))
|
|
902
|
+
(set! annotation
|
|
903
|
+
(center-stencil-on-extent text-stencil))
|
|
904
|
+
(set! annotation
|
|
905
|
+
(ly:stencil-combine-at-edge arrows X RIGHT annotation 0.5))
|
|
906
|
+
(set! annotation
|
|
907
|
+
(ly:stencil-combine-at-edge annotation X LEFT
|
|
908
|
+
(center-stencil-on-extent dim-stencil)
|
|
909
|
+
0.5))
|
|
910
|
+
(set! annotation
|
|
911
|
+
(stencil-with-color annotation color))))
|
|
912
|
+
annotation))
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
;; TODO: figure out how to annotate padding nicely
|
|
916
|
+
;; TODO: emphasize either padding or min-dist depending on which constraint was active
|
|
917
|
+
(define*-public (annotate-spacing-spec layout name spacing-spec
|
|
918
|
+
start-Y-offset next-staff-Y
|
|
919
|
+
#:key (base-color blue))
|
|
920
|
+
(let* ((get-spacing-var (lambda (sym) (assoc-get sym spacing-spec 0.0)))
|
|
921
|
+
(space (get-spacing-var 'basic-distance))
|
|
922
|
+
(padding (get-spacing-var 'padding))
|
|
923
|
+
(min-dist (get-spacing-var 'minimum-distance))
|
|
924
|
+
(contrast-color (append (cdr base-color) (list (car base-color))))
|
|
925
|
+
(min-dist-blocks (<= (- start-Y-offset min-dist) next-staff-Y))
|
|
926
|
+
(min-dist-color (if min-dist-blocks contrast-color base-color))
|
|
927
|
+
(name-string (if (string-null? name)
|
|
928
|
+
""
|
|
929
|
+
(simple-format #f " (~a)" name)))
|
|
930
|
+
(basic-annotation
|
|
931
|
+
(annotate-y-interval layout
|
|
932
|
+
(simple-format #f "basic-dist~a" name-string)
|
|
933
|
+
(cons (- start-Y-offset space) start-Y-offset)
|
|
934
|
+
#t
|
|
935
|
+
#:color (map (lambda (x) (* x 0.25)) base-color)))
|
|
936
|
+
(min-annotation
|
|
937
|
+
(annotate-y-interval layout
|
|
938
|
+
(simple-format #f "min-dist~a" name-string)
|
|
939
|
+
(cons (- start-Y-offset min-dist) start-Y-offset)
|
|
940
|
+
#t
|
|
941
|
+
#:color min-dist-color))
|
|
942
|
+
(extra-annotation
|
|
943
|
+
(annotate-y-interval layout
|
|
944
|
+
(simple-format #f "extra dist~a" name-string)
|
|
945
|
+
(cons next-staff-Y (- start-Y-offset min-dist))
|
|
946
|
+
#t
|
|
947
|
+
#:color (map (lambda (x) (* x 0.5)) min-dist-color))))
|
|
948
|
+
|
|
949
|
+
(stack-stencils X RIGHT 0.0
|
|
950
|
+
(list
|
|
951
|
+
basic-annotation
|
|
952
|
+
(if min-dist-blocks
|
|
953
|
+
min-annotation
|
|
954
|
+
(ly:stencil-add min-annotation extra-annotation))))))
|
|
955
|
+
|
|
956
|
+
(define-public (eps-file->stencil axis size file-name)
|
|
957
|
+
(ly:note-extra-source-file file-name)
|
|
958
|
+
(let*
|
|
959
|
+
((contents (ly:gulp-file file-name))
|
|
960
|
+
(bbox (get-postscript-bbox (car (string-split contents #\nul))))
|
|
961
|
+
(bbox-size (if (= axis X)
|
|
962
|
+
(- (list-ref bbox 2) (list-ref bbox 0))
|
|
963
|
+
(- (list-ref bbox 3) (list-ref bbox 1))
|
|
964
|
+
))
|
|
965
|
+
(factor (if (< 0 bbox-size)
|
|
966
|
+
(exact->inexact (/ size bbox-size))
|
|
967
|
+
0))
|
|
968
|
+
(scaled-bbox
|
|
969
|
+
(map (lambda (x) (* factor x)) bbox)))
|
|
970
|
+
|
|
971
|
+
(if bbox
|
|
972
|
+
(ly:make-stencil
|
|
973
|
+
(list
|
|
974
|
+
'eps-file
|
|
975
|
+
file-name
|
|
976
|
+
contents
|
|
977
|
+
bbox
|
|
978
|
+
factor)
|
|
979
|
+
;; Stencil starts at (0,0), since we have shifted the eps, and its
|
|
980
|
+
;; size is exactly the size of the scaled bounding box
|
|
981
|
+
(cons 0 (- (list-ref scaled-bbox 2) (list-ref scaled-bbox 0)))
|
|
982
|
+
(cons 0 (- (list-ref scaled-bbox 3) (list-ref scaled-bbox 1))))
|
|
983
|
+
|
|
984
|
+
(ly:make-stencil "" '(0 . 0) '(0 . 0)))
|
|
985
|
+
))
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
(define-public (stencil-true-extent stencil axis)
|
|
989
|
+
"Return the extent of the actual printed ink of @var{stencil}
|
|
990
|
+
on @var{axis}."
|
|
991
|
+
;; Simple strategy: compute skylines, take their max height.
|
|
992
|
+
;; If this becomes performance-critical, it can be rewritten
|
|
993
|
+
;; to inspect the stencil expressions and compute their extents
|
|
994
|
+
;; directly without building full skylines -- at the cost of
|
|
995
|
+
;; a lot more code.
|
|
996
|
+
(let ((skyp (ly:skylines-for-stencil stencil (other-axis axis))))
|
|
997
|
+
(cons (ly:skyline-max-height (car skyp))
|
|
998
|
+
(ly:skyline-max-height (cdr skyp)))))
|