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,1261 @@
|
|
|
1
|
+
;;;; This file is part of LilyPond, the GNU music typesetter.
|
|
2
|
+
;;;;
|
|
3
|
+
;;;; Copyright (C) 2004--2022 Carl D. Sorensen <c_sorensen@byu.edu>
|
|
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
|
+
;; Utility functions
|
|
19
|
+
|
|
20
|
+
(define (cons-fret new-value old-list)
|
|
21
|
+
"Put together a fret-list in the format desired by parse-string (to work on a
|
|
22
|
+
fret-diagram-definition-string)."
|
|
23
|
+
(if (pair? old-list)
|
|
24
|
+
(cons* new-value old-list)
|
|
25
|
+
(list new-value)))
|
|
26
|
+
|
|
27
|
+
(define (get-numeric-from-key keystring)
|
|
28
|
+
"Get the numeric value from a key of the form k:val of a
|
|
29
|
+
fret-diagram-definition-string."
|
|
30
|
+
(let* ((entries (string-split keystring #\:)))
|
|
31
|
+
;; print a warning if more than one ":"-sign was entered by accident
|
|
32
|
+
(if (> (length (cdr entries)) 1)
|
|
33
|
+
(ly:warning (G_ "Possible typo in fret-diagram '~a'") keystring))
|
|
34
|
+
;; throw an error, if `entry' can't be transformed into a number
|
|
35
|
+
(or (string->number (last entries))
|
|
36
|
+
(ly:error
|
|
37
|
+
"Unhandled entry in fret-diagram \"~a\" in \"~a\""
|
|
38
|
+
(last entries)
|
|
39
|
+
keystring))))
|
|
40
|
+
|
|
41
|
+
(define (numerify mylist)
|
|
42
|
+
"Convert string values of @var{mylist} to numeric or character (to work on a
|
|
43
|
+
list derived from a fret-diagram-definition-string)."
|
|
44
|
+
(map
|
|
45
|
+
(lambda (entry)
|
|
46
|
+
(or (string->number entry)
|
|
47
|
+
;; TODO will entry ever be not a number-string?
|
|
48
|
+
;; for now we let in in
|
|
49
|
+
(car (string->list entry))))
|
|
50
|
+
;; clear for empty-strings, may happen with forgotten closing barre-paren
|
|
51
|
+
(remove string-null? mylist)))
|
|
52
|
+
|
|
53
|
+
(define (fret-count fret-range)
|
|
54
|
+
"Calculate the fret count for the diagram given the range of frets."
|
|
55
|
+
(1+ (- (cdr fret-range) (car fret-range))))
|
|
56
|
+
|
|
57
|
+
(define (dot-has-color dot-settings)
|
|
58
|
+
"Return a color-name as symbol, if found in @var{dot-settings}
|
|
59
|
+
otherwise @code{#f}. Campared with color-names from @code{x11-color-list}."
|
|
60
|
+
;; `x11-color-list' is not available for a toplevel definition here, thus avoid
|
|
61
|
+
;; to call it again and again by a recursion use simple filter instead.
|
|
62
|
+
(let* ((colors
|
|
63
|
+
(filter
|
|
64
|
+
(lambda (dot-setting)
|
|
65
|
+
;; if dot-setting is not a symbol get #f pretty early
|
|
66
|
+
(and (symbol? dot-setting)
|
|
67
|
+
(assoc-get dot-setting x11-color-list)))
|
|
68
|
+
dot-settings)))
|
|
69
|
+
(if (pair? colors) (car colors) #f)))
|
|
70
|
+
|
|
71
|
+
(define (dot-is-inverted dot-settings)
|
|
72
|
+
"Return @code{'inverted}, if found in @var{dot-settings} otherwise @code{#f}"
|
|
73
|
+
(if (member 'inverted dot-settings) 'inverted #f))
|
|
74
|
+
|
|
75
|
+
(define (dot-is-parenthesized dot-settings)
|
|
76
|
+
"Return @code{'parenthesized}, if found in @var{dot-settings}
|
|
77
|
+
otherwise @code{#f}"
|
|
78
|
+
(if (member 'parenthesized dot-settings) 'parenthesized #f))
|
|
79
|
+
|
|
80
|
+
;; If @code{'default-paren-color} is not set, the parenthesis will take their
|
|
81
|
+
;; color from the dot.
|
|
82
|
+
;; Setting @code{'default-paren-color} will result in taking the color from
|
|
83
|
+
;; `what-color', see below.
|
|
84
|
+
(define (default-paren-color dot-settings)
|
|
85
|
+
"Return @code{'default-paren-color}, if found in @var{dot-settings}
|
|
86
|
+
otherwise @code{#f}"
|
|
87
|
+
(if (member 'default-paren-color dot-settings) 'default-paren-color #f))
|
|
88
|
+
|
|
89
|
+
(define (subtract-base-fret base-fret dot-list)
|
|
90
|
+
"Subtract @var{base-fret} from every fret in @var{dot-list}"
|
|
91
|
+
(map
|
|
92
|
+
(lambda (this-list)
|
|
93
|
+
(list
|
|
94
|
+
;; string
|
|
95
|
+
(car this-list)
|
|
96
|
+
;; fret
|
|
97
|
+
(- (second this-list) base-fret)
|
|
98
|
+
;; finger-number or markup
|
|
99
|
+
(if (and (not (null? (cddr this-list)))
|
|
100
|
+
(or (markup? (caddr this-list))
|
|
101
|
+
(number? (caddr this-list))))
|
|
102
|
+
(third this-list)
|
|
103
|
+
'())
|
|
104
|
+
;; inverted
|
|
105
|
+
(or (dot-is-inverted this-list) '())
|
|
106
|
+
;; parenthesis
|
|
107
|
+
(or (dot-is-parenthesized this-list) '())
|
|
108
|
+
;; color modifiers
|
|
109
|
+
;; parenthesis
|
|
110
|
+
(or (default-paren-color this-list) '())
|
|
111
|
+
;; dots
|
|
112
|
+
(let ((colored (dot-has-color this-list)))
|
|
113
|
+
(if colored
|
|
114
|
+
colored
|
|
115
|
+
'()))))
|
|
116
|
+
dot-list))
|
|
117
|
+
|
|
118
|
+
(define (get-sub-list value master-list)
|
|
119
|
+
"Get a sub-list from @var{master-list} whose last element is equal to
|
|
120
|
+
@var{value} or @code{#f}. Take the first matching sub-list."
|
|
121
|
+
;; Used to keep track of barre-indicators in a fret-diagram-definition-string.
|
|
122
|
+
(cond ((null? master-list) #f)
|
|
123
|
+
((eqv? (last (car master-list)) value) (car master-list))
|
|
124
|
+
(else (get-sub-list value (cdr master-list)))))
|
|
125
|
+
|
|
126
|
+
(define (merge-details key alist-list . default)
|
|
127
|
+
"Return @code{alist-list} entries for @code{key}, in one combined alist.
|
|
128
|
+
There can be two @code{alist-list} entries for a given key. The first comes
|
|
129
|
+
from the override-markup function, the second comes from property settings
|
|
130
|
+
during a regular override.
|
|
131
|
+
This is necessary because some details can be set in one place, while others are
|
|
132
|
+
set in the other. Both details lists must be merged into a single alist.
|
|
133
|
+
Return @code{default} (optional, else #f) if not found."
|
|
134
|
+
|
|
135
|
+
(define (helper key alist-list default)
|
|
136
|
+
(if (null? alist-list)
|
|
137
|
+
default
|
|
138
|
+
(let* ((entry (assoc-get key (car alist-list))))
|
|
139
|
+
(if entry
|
|
140
|
+
(append entry (chain-assoc-get key (cdr alist-list) '()))
|
|
141
|
+
(helper key (cdr alist-list) default)))))
|
|
142
|
+
|
|
143
|
+
(helper key alist-list (if (pair? default) (car default) #f)))
|
|
144
|
+
|
|
145
|
+
;; Conversions between fret/string coordinate system and x-y coordinate
|
|
146
|
+
;; system.
|
|
147
|
+
;;
|
|
148
|
+
;; Fret coordinates are measured down the fretboard from the nut,
|
|
149
|
+
;; starting at 0.
|
|
150
|
+
;;
|
|
151
|
+
;; String coordinates are measured from the lowest string, starting at 0.
|
|
152
|
+
;;
|
|
153
|
+
;; The x-y origin is at the intersection of the nut and the lowest string.
|
|
154
|
+
;;
|
|
155
|
+
;; X coordinates are positive to the right.
|
|
156
|
+
;; Y coordinates are positive up.
|
|
157
|
+
|
|
158
|
+
(define (negate-extent extent)
|
|
159
|
+
"Return the extent in an axis opposite to the axis of @code{extent}."
|
|
160
|
+
(cons (- (cdr extent)) (- (car extent))))
|
|
161
|
+
|
|
162
|
+
(define (stencil-fretboard-extent stencil fretboard-axis orientation)
|
|
163
|
+
"Return the extent of @code{stencil} in the @code{fretboard-axis}
|
|
164
|
+
direction."
|
|
165
|
+
(if (eq? fretboard-axis 'fret)
|
|
166
|
+
(cond ((eq? orientation 'landscape)
|
|
167
|
+
(ly:stencil-extent stencil X))
|
|
168
|
+
((eq? orientation 'opposing-landscape)
|
|
169
|
+
(negate-extent (ly:stencil-extent stencil X)))
|
|
170
|
+
(else
|
|
171
|
+
(negate-extent (ly:stencil-extent stencil Y))))
|
|
172
|
+
;; else -- eq? fretboard-axis 'string
|
|
173
|
+
;; only 'opposing-landscape needs to be special-cased:
|
|
174
|
+
(cond ((eq? orientation 'opposing-landscape)
|
|
175
|
+
(negate-extent (ly:stencil-extent stencil Y)))
|
|
176
|
+
(else
|
|
177
|
+
(ly:stencil-extent stencil Y)))))
|
|
178
|
+
|
|
179
|
+
(define (stencil-fretboard-offset stencil fretboard-axis orientation)
|
|
180
|
+
"Return the stencil coordinates of the center of @var{stencil}
|
|
181
|
+
in the @var{fretboard-axis} direction. @var{fretboard-axis} may take
|
|
182
|
+
@code{'fret} or @code{'string}. @var{orientation} is either @code{'normal},
|
|
183
|
+
(the default), @code{'landscape} or @code{opposing-landscape}."
|
|
184
|
+
;; `fretboard-axis' and `orientation' is needed to let
|
|
185
|
+
;; `stencil-fretboard-extent' from above select property.
|
|
186
|
+
(* 0.5 (interval-length
|
|
187
|
+
(stencil-fretboard-extent stencil fretboard-axis orientation))))
|
|
188
|
+
|
|
189
|
+
(define (string-thickness string thickness-factor)
|
|
190
|
+
(expt (1+ thickness-factor) (1- string)))
|
|
191
|
+
|
|
192
|
+
;; Functions that create stencils used in the fret diagram
|
|
193
|
+
|
|
194
|
+
(define (sans-serif-stencil layout props mag text)
|
|
195
|
+
"Create a stencil in sans-serif font based on @var{layout} and @var{props}
|
|
196
|
+
with magnification @var{mag} of the string @var{text}."
|
|
197
|
+
(let* ((my-props
|
|
198
|
+
(prepend-alist-chain
|
|
199
|
+
'font-size (magnification->font-size mag)
|
|
200
|
+
(prepend-alist-chain 'font-family 'sans props))))
|
|
201
|
+
(interpret-markup layout my-props text)))
|
|
202
|
+
|
|
203
|
+
;; markup commands and associated functions
|
|
204
|
+
|
|
205
|
+
(define (fret-parse-marking-list marking-list my-fret-count)
|
|
206
|
+
"Parse a fret-diagram-verbose marking list into component sublists"
|
|
207
|
+
(let* ((fret-range (cons 1 my-fret-count))
|
|
208
|
+
(capo-fret 0)
|
|
209
|
+
(barre-list '())
|
|
210
|
+
(dot-list '())
|
|
211
|
+
(xo-list '())
|
|
212
|
+
(output-alist '()))
|
|
213
|
+
(let parse-item ((mylist marking-list))
|
|
214
|
+
(if (not (null? mylist))
|
|
215
|
+
(let* ((my-item (car mylist)) (my-code (car my-item)))
|
|
216
|
+
(cond
|
|
217
|
+
((or (eq? my-code 'open)(eq? my-code 'mute))
|
|
218
|
+
(set! xo-list (cons* my-item xo-list)))
|
|
219
|
+
((eq? my-code 'barre)
|
|
220
|
+
(if (every number? (cdr my-item))
|
|
221
|
+
(set! barre-list (cons* (cdr my-item) barre-list))
|
|
222
|
+
(ly:error
|
|
223
|
+
"barre-indications should contain only numbers: ~a"
|
|
224
|
+
(cdr my-item))))
|
|
225
|
+
((eq? my-code 'capo)
|
|
226
|
+
(set! capo-fret (cadr my-item)))
|
|
227
|
+
((eq? my-code 'place-fret)
|
|
228
|
+
(set! dot-list (cons* (cdr my-item) dot-list)))
|
|
229
|
+
(else (ly:warning
|
|
230
|
+
"unknown fret diagram placement code: ~a"
|
|
231
|
+
(object->string my-code))))
|
|
232
|
+
(parse-item (cdr mylist)))))
|
|
233
|
+
;; calculate fret-range
|
|
234
|
+
(let ((maxfret 0)
|
|
235
|
+
(minfret (if (> capo-fret 0) capo-fret 99)))
|
|
236
|
+
(let updatemax ((fret-list dot-list)) ;CHANGE THIS TO HELPER FUNCTION?
|
|
237
|
+
(if (null? fret-list)
|
|
238
|
+
'()
|
|
239
|
+
(let ((fretval (second (car fret-list))))
|
|
240
|
+
(if (> fretval maxfret) (set! maxfret fretval))
|
|
241
|
+
(if (< fretval minfret) (set! minfret fretval))
|
|
242
|
+
(updatemax (cdr fret-list)))))
|
|
243
|
+
;; take frets of 'barre-settings into account
|
|
244
|
+
(if (not (null? barre-list))
|
|
245
|
+
(set! minfret (apply min minfret (map last barre-list))))
|
|
246
|
+
(if (or (> maxfret my-fret-count) (> capo-fret 1))
|
|
247
|
+
(set! fret-range
|
|
248
|
+
(cons minfret
|
|
249
|
+
(let ((upfret (1- (+ minfret my-fret-count))))
|
|
250
|
+
(if (> maxfret upfret) maxfret upfret)))))
|
|
251
|
+
(if (not (zero? (apply min capo-fret (map cadr dot-list))))
|
|
252
|
+
(set! capo-fret (1+ (- capo-fret minfret))))
|
|
253
|
+
;; subtract fret from dots
|
|
254
|
+
(set! dot-list (subtract-base-fret (1- (car fret-range)) dot-list)))
|
|
255
|
+
(acons 'fret-range fret-range
|
|
256
|
+
(acons 'barre-list barre-list
|
|
257
|
+
(acons 'dot-list dot-list
|
|
258
|
+
(acons 'xo-list xo-list
|
|
259
|
+
(acons 'capo-fret capo-fret '())))))))
|
|
260
|
+
|
|
261
|
+
(define (make-fret-diagram layout props marking-list)
|
|
262
|
+
"Make a fret diagram markup"
|
|
263
|
+
(let* (
|
|
264
|
+
;; note: here we get items from props that are needed in this routine,
|
|
265
|
+
;; or that are needed in more than one of the procedures
|
|
266
|
+
;; called from this routine. If they're only used in one of the
|
|
267
|
+
;; sub-procedure, they're obtained in that procedure
|
|
268
|
+
(size (chain-assoc-get 'size props 1.0)) ; needed for everything
|
|
269
|
+
;;TODO -- get string-count directly from length of stringTunings;
|
|
270
|
+
;; from FretBoard engraver, but not from markup call
|
|
271
|
+
(details (merge-details 'fret-diagram-details props '()))
|
|
272
|
+
(fret-distance
|
|
273
|
+
(assoc-get 'fret-distance details 1.0))
|
|
274
|
+
(string-distance-from-details
|
|
275
|
+
(assoc-get 'string-distance details 1.0))
|
|
276
|
+
;; disable negative `string-distance'
|
|
277
|
+
;; mmh -- should we print a message/warning?
|
|
278
|
+
(string-distance (abs string-distance-from-details))
|
|
279
|
+
(handedness (assoc-get 'handedness details RIGHT))
|
|
280
|
+
(string-count
|
|
281
|
+
(assoc-get 'string-count details 6)) ;; needed for everything
|
|
282
|
+
(my-fret-count
|
|
283
|
+
(assoc-get 'fret-count details 4)) ;; needed for everything
|
|
284
|
+
(orientation
|
|
285
|
+
(assoc-get 'orientation details 'normal)) ;; needed for everything
|
|
286
|
+
(finger-code
|
|
287
|
+
(assoc-get
|
|
288
|
+
'finger-code details 'none)) ;; needed for draw-dots and draw-barre
|
|
289
|
+
(default-dot-radius
|
|
290
|
+
(if (eq? finger-code 'in-dot) 0.425 0.25)) ;; bigger dots if labeled
|
|
291
|
+
(dot-radius
|
|
292
|
+
(assoc-get 'dot-radius details default-dot-radius))
|
|
293
|
+
(default-dot-position
|
|
294
|
+
(if (eq? finger-code 'in-dot)
|
|
295
|
+
(- 0.95 default-dot-radius)
|
|
296
|
+
0.6)) ; move up to make room for bigger dot if labeled
|
|
297
|
+
;; needed for draw-dots and draw-barre
|
|
298
|
+
(dot-position
|
|
299
|
+
(assoc-get 'dot-position details default-dot-position))
|
|
300
|
+
;; default thickness
|
|
301
|
+
;; needed for draw-dots and draw-barre
|
|
302
|
+
(th
|
|
303
|
+
(* (ly:output-def-lookup layout 'line-thickness)
|
|
304
|
+
(chain-assoc-get 'thickness props 0.5)))
|
|
305
|
+
;; needed for draw-frets and draw-strings
|
|
306
|
+
(sth (* size th))
|
|
307
|
+
(thickness-factor (assoc-get 'string-thickness-factor details 0))
|
|
308
|
+
(paren-padding (assoc-get 'paren-padding details 0.05))
|
|
309
|
+
(alignment (chain-assoc-get 'align-dir props -0.4)) ;; needed only here
|
|
310
|
+
(xo-padding (assoc-get 'xo-padding details 0.2)) ;; needed only here
|
|
311
|
+
(parameters (fret-parse-marking-list marking-list my-fret-count))
|
|
312
|
+
(capo-fret (assoc-get 'capo-fret parameters 0))
|
|
313
|
+
(dot-list (assoc-get 'dot-list parameters))
|
|
314
|
+
(xo-list (assoc-get 'xo-list parameters))
|
|
315
|
+
(fret-range (assoc-get 'fret-range parameters))
|
|
316
|
+
(my-fret-count (fret-count fret-range))
|
|
317
|
+
(barre-list (assoc-get 'barre-list parameters))
|
|
318
|
+
(barre-type (assoc-get 'barre-type details 'curved))
|
|
319
|
+
(fret-diagram-stencil '()))
|
|
320
|
+
|
|
321
|
+
;; Here are the fret diagram helper functions that depend on the
|
|
322
|
+
;; fret diagram parameters. The functions are here because the
|
|
323
|
+
;; diagram parameters are part of the lexical scope here.
|
|
324
|
+
|
|
325
|
+
(define (stencil-coordinates fret-coordinate string-coordinate)
|
|
326
|
+
"Return a pair @code{(x-coordinate . y-coordinate)}
|
|
327
|
+
in stencil coordinate system."
|
|
328
|
+
(cond
|
|
329
|
+
((eq? orientation 'landscape)
|
|
330
|
+
(cons fret-coordinate
|
|
331
|
+
(* handedness (- string-coordinate (1- string-count)))))
|
|
332
|
+
((eq? orientation 'opposing-landscape)
|
|
333
|
+
(cons (- fret-coordinate) (* handedness (- string-coordinate))))
|
|
334
|
+
(else
|
|
335
|
+
(cons (* handedness string-coordinate) (- fret-coordinate)))))
|
|
336
|
+
|
|
337
|
+
(define (stencil-coordinate-offset fret-offset string-offset)
|
|
338
|
+
"Return a pair @code{(x-offset . y-offset)}
|
|
339
|
+
for translation in stencil coordinate system."
|
|
340
|
+
(cond
|
|
341
|
+
((eq? orientation 'landscape)
|
|
342
|
+
(cons fret-offset (- string-offset)))
|
|
343
|
+
((eq? orientation 'opposing-landscape)
|
|
344
|
+
(cons (- fret-offset) string-offset))
|
|
345
|
+
(else
|
|
346
|
+
(cons string-offset (- fret-offset)))))
|
|
347
|
+
|
|
348
|
+
(define (make-bezier-sandwich-list start stop base height half-thickness)
|
|
349
|
+
"Make the argument list for a bezier sandwich from
|
|
350
|
+
string coordinate @var{start} to string-coordinate @var{stop} with a
|
|
351
|
+
baseline at fret coordinate @var{base}, a height of
|
|
352
|
+
@var{height}, and a thickness of @var{half-thickness}."
|
|
353
|
+
(let* ((width (1+ (- stop start)))
|
|
354
|
+
(cp-left-width (+ (* width half-thickness) start))
|
|
355
|
+
(cp-right-width (- stop (* width half-thickness)))
|
|
356
|
+
(bottom-control-point-height
|
|
357
|
+
(- base (- height half-thickness)))
|
|
358
|
+
(top-control-point-height
|
|
359
|
+
(- base height))
|
|
360
|
+
(left-start-end-point
|
|
361
|
+
(stencil-coordinates base start))
|
|
362
|
+
(right-end-point
|
|
363
|
+
(stencil-coordinates base stop))
|
|
364
|
+
(left-upper-control-point
|
|
365
|
+
(stencil-coordinates
|
|
366
|
+
top-control-point-height cp-left-width))
|
|
367
|
+
(left-lower-control-point
|
|
368
|
+
(stencil-coordinates
|
|
369
|
+
bottom-control-point-height cp-left-width))
|
|
370
|
+
(right-upper-control-point
|
|
371
|
+
(stencil-coordinates
|
|
372
|
+
top-control-point-height cp-right-width))
|
|
373
|
+
(right-lower-control-point
|
|
374
|
+
(stencil-coordinates
|
|
375
|
+
bottom-control-point-height cp-right-width)))
|
|
376
|
+
;; order of bezier control points is:
|
|
377
|
+
;; left cp start/end, left cp low, right cp low, right cp end,
|
|
378
|
+
;; right cp high, left cp high
|
|
379
|
+
;;
|
|
380
|
+
;; left-upper ← ← ← ← ← ← ← right-upper
|
|
381
|
+
;; ↙ left-lower → → right-lower ↖
|
|
382
|
+
;; ↙ ↗ ↘ ↖
|
|
383
|
+
;; left-start-end right-end
|
|
384
|
+
(list
|
|
385
|
+
left-start-end-point
|
|
386
|
+
left-lower-control-point
|
|
387
|
+
right-lower-control-point
|
|
388
|
+
right-end-point
|
|
389
|
+
|
|
390
|
+
right-upper-control-point
|
|
391
|
+
left-upper-control-point)))
|
|
392
|
+
|
|
393
|
+
(define (draw-strings)
|
|
394
|
+
"Draw the string lines for a fret diagram with
|
|
395
|
+
@var{string-count} strings and frets as indicated in @var{fret-range}.
|
|
396
|
+
Line thickness is given by @var{th}, fret & string spacing by
|
|
397
|
+
@var{size}. Orientation is determined by @var{orientation}."
|
|
398
|
+
(let* ((string-list (iota string-count 1 1))
|
|
399
|
+
(string-stencils (map string-stencil string-list)))
|
|
400
|
+
(apply ly:stencil-add empty-stencil string-stencils)))
|
|
401
|
+
|
|
402
|
+
(define (string-stencil string)
|
|
403
|
+
"Make a stencil for @code{string}, given the fret-diagram
|
|
404
|
+
overall parameters."
|
|
405
|
+
(let* ((string-coordinate (- string-count string))
|
|
406
|
+
(current-string-thickness
|
|
407
|
+
(* th size (string-thickness string thickness-factor)))
|
|
408
|
+
(fret-half-thick (* size th 0.5))
|
|
409
|
+
(string-half-thick (* current-string-thickness 0.5))
|
|
410
|
+
(start-coordinates
|
|
411
|
+
(stencil-coordinates
|
|
412
|
+
(- fret-half-thick)
|
|
413
|
+
(- (* size string-distance string-coordinate)
|
|
414
|
+
string-half-thick)))
|
|
415
|
+
(end-coordinates
|
|
416
|
+
(stencil-coordinates
|
|
417
|
+
(+ fret-half-thick
|
|
418
|
+
(* size fret-distance (1+ (fret-count fret-range))))
|
|
419
|
+
(+ string-half-thick
|
|
420
|
+
(* size string-distance string-coordinate)))))
|
|
421
|
+
(ly:round-filled-box
|
|
422
|
+
(ordered-cons (car start-coordinates) (car end-coordinates))
|
|
423
|
+
(ordered-cons (cdr start-coordinates) (cdr end-coordinates))
|
|
424
|
+
(* th size))))
|
|
425
|
+
|
|
426
|
+
(define (draw-frets)
|
|
427
|
+
"Draw the fret lines for a fret diagram with
|
|
428
|
+
@var{string-count} strings and frets as indicated in @var{fret-range}.
|
|
429
|
+
Line thickness is given by @var{th}, fret & string spacing by
|
|
430
|
+
@var{size}. Orientation is given by @var{orientation}."
|
|
431
|
+
(let* ((fret-list (iota (1+ my-fret-count)))
|
|
432
|
+
(fret-stencils (map fret-stencil fret-list)))
|
|
433
|
+
(apply ly:stencil-add empty-stencil fret-stencils)))
|
|
434
|
+
|
|
435
|
+
(define (fret-stencil fret)
|
|
436
|
+
"Make a stencil for @code{fret}, given the
|
|
437
|
+
fret-diagram overall parameters."
|
|
438
|
+
(let* ((low-string-half-thickness
|
|
439
|
+
(* 0.5
|
|
440
|
+
size
|
|
441
|
+
th
|
|
442
|
+
(string-thickness string-count thickness-factor)))
|
|
443
|
+
(fret-half-thickness (* 0.5 size th))
|
|
444
|
+
(start-coordinates
|
|
445
|
+
(stencil-coordinates
|
|
446
|
+
(* fret-distance size fret)
|
|
447
|
+
(- fret-half-thickness low-string-half-thickness)))
|
|
448
|
+
(end-coordinates
|
|
449
|
+
(stencil-coordinates
|
|
450
|
+
(* fret-distance size fret)
|
|
451
|
+
(* size string-distance (1- string-count)))))
|
|
452
|
+
(make-line-stencil
|
|
453
|
+
(* size th)
|
|
454
|
+
(car start-coordinates) (cdr start-coordinates)
|
|
455
|
+
(car end-coordinates) (cdr end-coordinates))))
|
|
456
|
+
|
|
457
|
+
(define (draw-barre barre-list)
|
|
458
|
+
"Create barre indications for a fret diagram"
|
|
459
|
+
(let* ((low-fret (car fret-range))
|
|
460
|
+
(barre-vertical-offset 0.5)
|
|
461
|
+
(scale-dot-radius (* size dot-radius))
|
|
462
|
+
(barre-type (assoc-get 'barre-type details 'curved))
|
|
463
|
+
(barre-stils
|
|
464
|
+
(map
|
|
465
|
+
(lambda (barre)
|
|
466
|
+
(let* ((string1 (car barre))
|
|
467
|
+
(string2 (cadr barre))
|
|
468
|
+
(barre-fret (caddr barre))
|
|
469
|
+
(fret (1+ (- barre-fret low-fret)))
|
|
470
|
+
(barre-fret-coordinate
|
|
471
|
+
(+ (1- fret) dot-position))
|
|
472
|
+
(barre-start-string-coordinate
|
|
473
|
+
(- string-count string1))
|
|
474
|
+
(barre-end-string-coordinate
|
|
475
|
+
(- string-count string2)))
|
|
476
|
+
(cond
|
|
477
|
+
((eq? barre-type 'straight)
|
|
478
|
+
(make-straight-line-stencil
|
|
479
|
+
barre-fret-coordinate
|
|
480
|
+
barre-start-string-coordinate
|
|
481
|
+
barre-end-string-coordinate
|
|
482
|
+
scale-dot-radius))
|
|
483
|
+
((eq? barre-type 'curved)
|
|
484
|
+
(make-curved-barre-stencil
|
|
485
|
+
barre-fret-coordinate
|
|
486
|
+
barre-start-string-coordinate
|
|
487
|
+
barre-end-string-coordinate
|
|
488
|
+
scale-dot-radius)))))
|
|
489
|
+
barre-list)))
|
|
490
|
+
(apply ly:stencil-add empty-stencil barre-stils)))
|
|
491
|
+
|
|
492
|
+
(define (make-straight-line-stencil
|
|
493
|
+
fret
|
|
494
|
+
start-string
|
|
495
|
+
end-string
|
|
496
|
+
thickness)
|
|
497
|
+
"Create a straight line stencil. Used for barre and capo."
|
|
498
|
+
(let ((start-point
|
|
499
|
+
(stencil-coordinates
|
|
500
|
+
(* size fret-distance fret)
|
|
501
|
+
(* size string-distance start-string)))
|
|
502
|
+
(end-point
|
|
503
|
+
(stencil-coordinates
|
|
504
|
+
(* size fret-distance fret)
|
|
505
|
+
(* size string-distance end-string))))
|
|
506
|
+
(make-line-stencil
|
|
507
|
+
thickness
|
|
508
|
+
(car start-point) (cdr start-point)
|
|
509
|
+
(car end-point) (cdr end-point))))
|
|
510
|
+
|
|
511
|
+
(define (make-curved-barre-stencil
|
|
512
|
+
fret-coordinate
|
|
513
|
+
start-string-coordinate
|
|
514
|
+
end-string-coordinate
|
|
515
|
+
half-thickness)
|
|
516
|
+
"Create a curved barre stencil."
|
|
517
|
+
(let* ((bezier-thick 0.1)
|
|
518
|
+
(bezier-height 0.5)
|
|
519
|
+
(bezier-list
|
|
520
|
+
(make-bezier-sandwich-list
|
|
521
|
+
(* size string-distance start-string-coordinate)
|
|
522
|
+
(* size string-distance end-string-coordinate)
|
|
523
|
+
(* size fret-distance fret-coordinate)
|
|
524
|
+
(* size bezier-height)
|
|
525
|
+
(* size bezier-thick))))
|
|
526
|
+
(make-bezier-sandwich-stencil
|
|
527
|
+
bezier-list
|
|
528
|
+
(* size bezier-thick))))
|
|
529
|
+
|
|
530
|
+
(define (draw-dots dot-list)
|
|
531
|
+
"Make dots for fret diagram."
|
|
532
|
+
(let* ((scale-dot-radius (* size dot-radius))
|
|
533
|
+
(scale-dot-thick (* size th))
|
|
534
|
+
(default-dot-color (assoc-get 'dot-color details))
|
|
535
|
+
(finger-label-padding 0.3)
|
|
536
|
+
(dot-label-font-mag
|
|
537
|
+
(* scale-dot-radius
|
|
538
|
+
(assoc-get 'dot-label-font-mag details 1.0)))
|
|
539
|
+
(string-label-font-mag
|
|
540
|
+
(* size
|
|
541
|
+
(assoc-get
|
|
542
|
+
'string-label-font-mag details
|
|
543
|
+
(cond ((or (eq? orientation 'landscape)
|
|
544
|
+
(eq? orientation 'opposing-landscape))
|
|
545
|
+
0.5)
|
|
546
|
+
(else 0.6)))))
|
|
547
|
+
(dot-stils
|
|
548
|
+
(map
|
|
549
|
+
(lambda (dot-sublist)
|
|
550
|
+
(let* (
|
|
551
|
+
(current-string (car dot-sublist))
|
|
552
|
+
(fret (cadr dot-sublist))
|
|
553
|
+
(fret-coordinate
|
|
554
|
+
(* size fret-distance (+ (1- fret) dot-position)))
|
|
555
|
+
(string-coordinate
|
|
556
|
+
(* size string-distance (- string-count current-string)))
|
|
557
|
+
(dot-coordinates
|
|
558
|
+
(stencil-coordinates fret-coordinate string-coordinate))
|
|
559
|
+
(extent (cons (- scale-dot-radius) scale-dot-radius))
|
|
560
|
+
(parenthesized (dot-is-parenthesized dot-sublist))
|
|
561
|
+
(parenthesis-color (default-paren-color dot-sublist))
|
|
562
|
+
(inverted (dot-is-inverted dot-sublist))
|
|
563
|
+
(dot-color-is-white?
|
|
564
|
+
(or inverted
|
|
565
|
+
(and (eq? default-dot-color 'white) (not inverted))))
|
|
566
|
+
(what-color
|
|
567
|
+
(cond
|
|
568
|
+
;; If no colors are set return #f
|
|
569
|
+
;; This makes a general override of Grob.color affect
|
|
570
|
+
;; dot-color as well
|
|
571
|
+
((and (not (dot-has-color dot-sublist))
|
|
572
|
+
(not (assoc-get default-dot-color x11-color-list)))
|
|
573
|
+
#f)
|
|
574
|
+
((and inverted
|
|
575
|
+
(not (dot-has-color dot-sublist))
|
|
576
|
+
(not (eq? default-dot-color 'white)))
|
|
577
|
+
(x11-color (or default-dot-color 'black)))
|
|
578
|
+
(dot-color-is-white?
|
|
579
|
+
(x11-color
|
|
580
|
+
(or (dot-has-color dot-sublist) 'black)))
|
|
581
|
+
;; Other dots are colored with (in descending
|
|
582
|
+
;; priority order)
|
|
583
|
+
;; - dot-color
|
|
584
|
+
;; - general default-dot-color
|
|
585
|
+
;; - black as fallback
|
|
586
|
+
(else
|
|
587
|
+
(x11-color
|
|
588
|
+
(or (dot-has-color dot-sublist)
|
|
589
|
+
default-dot-color
|
|
590
|
+
'black)))))
|
|
591
|
+
(inverted-stil
|
|
592
|
+
(lambda (color)
|
|
593
|
+
(ly:stencil-add
|
|
594
|
+
(stencil-with-color
|
|
595
|
+
(make-circle-stencil
|
|
596
|
+
scale-dot-radius scale-dot-thick #t)
|
|
597
|
+
color)
|
|
598
|
+
(stencil-with-color
|
|
599
|
+
(make-circle-stencil
|
|
600
|
+
(- scale-dot-radius (* 0.5 scale-dot-thick)) 0 #t)
|
|
601
|
+
(x11-color 'white)))))
|
|
602
|
+
(dot-stencil
|
|
603
|
+
(if dot-color-is-white?
|
|
604
|
+
(inverted-stil what-color)
|
|
605
|
+
(stencil-with-color
|
|
606
|
+
(make-circle-stencil
|
|
607
|
+
scale-dot-radius scale-dot-thick #t)
|
|
608
|
+
what-color)))
|
|
609
|
+
(final-dot-stencil
|
|
610
|
+
(if parenthesized
|
|
611
|
+
(let ((paren-color
|
|
612
|
+
;; If 'default-paren-color is in dot-sublist
|
|
613
|
+
;; and dots are not white use the overall
|
|
614
|
+
;; color, i.e. return #f
|
|
615
|
+
;; Otherwise use `what-color`
|
|
616
|
+
(if (and parenthesis-color
|
|
617
|
+
(not (eq? default-dot-color 'white)))
|
|
618
|
+
#f
|
|
619
|
+
what-color)))
|
|
620
|
+
(stencil-with-color
|
|
621
|
+
(parenthesize-stencil
|
|
622
|
+
dot-stencil ;; stencil
|
|
623
|
+
(* size th 0.75) ;; half-thickness
|
|
624
|
+
(* 0.15 size) ;; width
|
|
625
|
+
0 ;; angularity
|
|
626
|
+
paren-padding ;; padding
|
|
627
|
+
)
|
|
628
|
+
paren-color))
|
|
629
|
+
dot-stencil))
|
|
630
|
+
(positioned-dot
|
|
631
|
+
(ly:stencil-translate final-dot-stencil dot-coordinates))
|
|
632
|
+
(finger (caddr dot-sublist))
|
|
633
|
+
(finger (if (number? finger) (number->string finger) finger)))
|
|
634
|
+
|
|
635
|
+
;;;;
|
|
636
|
+
;; the ready dot-stencil with fingering:
|
|
637
|
+
;;;;
|
|
638
|
+
;; - for finger-code 'none use positioned-dot from above
|
|
639
|
+
;; - for finger-code 'in-dot calculate a stencil for the
|
|
640
|
+
;; finger, add it to final-dot-stencil and move the result
|
|
641
|
+
;; accordingly
|
|
642
|
+
;; - for finger-code 'below-string calculate a stencil for
|
|
643
|
+
;; the finger, move it accordingly and add the result
|
|
644
|
+
;; to positioned-dot from above
|
|
645
|
+
(cond ((or (eq? finger '())
|
|
646
|
+
(eq? finger-code 'none)
|
|
647
|
+
(eq? finger-code *unspecified*))
|
|
648
|
+
positioned-dot)
|
|
649
|
+
((and (eq? finger-code 'in-dot) (not (null? finger)))
|
|
650
|
+
(let* ((finger-stil
|
|
651
|
+
(sans-serif-stencil
|
|
652
|
+
layout props dot-label-font-mag finger))
|
|
653
|
+
(finger-stil-length
|
|
654
|
+
(interval-length
|
|
655
|
+
(ly:stencil-extent finger-stil X)))
|
|
656
|
+
(finger-stil-height
|
|
657
|
+
(interval-length
|
|
658
|
+
(ly:stencil-extent finger-stil Y)))
|
|
659
|
+
(dot-stencil-radius
|
|
660
|
+
(/ (interval-length
|
|
661
|
+
(ly:stencil-extent dot-stencil Y))
|
|
662
|
+
2))
|
|
663
|
+
(scale-factor
|
|
664
|
+
(/ dot-stencil-radius
|
|
665
|
+
;; Calculate the radius of the circle
|
|
666
|
+
;; through the corners of the box
|
|
667
|
+
;; containing the finger-stil. Give it
|
|
668
|
+
;; a little padding.
|
|
669
|
+
;; The value, (* 2 th), is my choice
|
|
670
|
+
(+
|
|
671
|
+
(ly:length
|
|
672
|
+
(/ finger-stil-length 2)
|
|
673
|
+
(/ finger-stil-height 2))
|
|
674
|
+
(* 2 th))))
|
|
675
|
+
(finger-label-stil
|
|
676
|
+
(centered-stencil
|
|
677
|
+
(ly:stencil-scale
|
|
678
|
+
finger-stil
|
|
679
|
+
scale-factor scale-factor))))
|
|
680
|
+
(ly:stencil-translate
|
|
681
|
+
(ly:stencil-add
|
|
682
|
+
final-dot-stencil
|
|
683
|
+
(if dot-color-is-white?
|
|
684
|
+
(stencil-with-color
|
|
685
|
+
finger-label-stil
|
|
686
|
+
what-color)
|
|
687
|
+
(stencil-with-color
|
|
688
|
+
finger-label-stil white)))
|
|
689
|
+
dot-coordinates)))
|
|
690
|
+
((eq? finger-code 'below-string)
|
|
691
|
+
(let* ((finger-label-stencil
|
|
692
|
+
(centered-stencil
|
|
693
|
+
(sans-serif-stencil
|
|
694
|
+
layout props string-label-font-mag
|
|
695
|
+
finger)))
|
|
696
|
+
(finger-label-fret-offset
|
|
697
|
+
(stencil-fretboard-offset
|
|
698
|
+
finger-label-stencil 'fret orientation))
|
|
699
|
+
(finger-label-fret-coordinate
|
|
700
|
+
;; (1) Move the below-string-finger-codes to
|
|
701
|
+
;; the bottom edge of the string, i.e.
|
|
702
|
+
;; (* (1+ my-fret-count) fret-distance)
|
|
703
|
+
;; (2) add `finger-label-padding' (a hardcoded
|
|
704
|
+
;; correction-value to get a bit default
|
|
705
|
+
;; padding).
|
|
706
|
+
;; TODO: make it a property?
|
|
707
|
+
;; (3) scale this with `size'
|
|
708
|
+
;; (4) add `label-fret-offset', to get the
|
|
709
|
+
;; final padding
|
|
710
|
+
(+
|
|
711
|
+
(* size
|
|
712
|
+
(+ (* (1+ my-fret-count) fret-distance)
|
|
713
|
+
finger-label-padding))
|
|
714
|
+
finger-label-fret-offset))
|
|
715
|
+
(finger-label-translation
|
|
716
|
+
(stencil-coordinates
|
|
717
|
+
finger-label-fret-coordinate
|
|
718
|
+
string-coordinate)))
|
|
719
|
+
(ly:stencil-add
|
|
720
|
+
positioned-dot
|
|
721
|
+
(ly:stencil-translate
|
|
722
|
+
finger-label-stencil
|
|
723
|
+
finger-label-translation))))
|
|
724
|
+
(else
|
|
725
|
+
;; unknown finger-code, warn
|
|
726
|
+
(ly:warning
|
|
727
|
+
"Unknown finger-code ~a, ignoring." finger-code)
|
|
728
|
+
positioned-dot))))
|
|
729
|
+
dot-list)))
|
|
730
|
+
(apply ly:stencil-add empty-stencil dot-stils)))
|
|
731
|
+
|
|
732
|
+
(define (draw-thick-zero-fret)
|
|
733
|
+
"Draw a thick zeroth fret for a fret diagram whose base fret is 1.
|
|
734
|
+
Respect changes of @code{size} and
|
|
735
|
+
@code{fret-diagram-details.string-thickness-factor}."
|
|
736
|
+
(let* ((half-lowest-string-thickness
|
|
737
|
+
(* 0.5 sth (string-thickness string-count thickness-factor)))
|
|
738
|
+
(half-thick (* 0.5 sth))
|
|
739
|
+
(top-fret-thick
|
|
740
|
+
(* sth (assoc-get 'top-fret-thickness details 3.0)))
|
|
741
|
+
(start-string-coordinate
|
|
742
|
+
(- half-lowest-string-thickness))
|
|
743
|
+
(end-string-coordinate
|
|
744
|
+
(+ (* size string-distance (1- string-count)) half-thick))
|
|
745
|
+
(start-fret-coordinate half-thick)
|
|
746
|
+
(end-fret-coordinate (- half-thick top-fret-thick))
|
|
747
|
+
(lower-left
|
|
748
|
+
(stencil-coordinates
|
|
749
|
+
start-fret-coordinate start-string-coordinate))
|
|
750
|
+
(upper-right
|
|
751
|
+
(stencil-coordinates
|
|
752
|
+
end-fret-coordinate end-string-coordinate)))
|
|
753
|
+
(ly:round-filled-box
|
|
754
|
+
;; Put limits in order, or else the intervals are considered empty
|
|
755
|
+
(ordered-cons (car lower-left) (car upper-right))
|
|
756
|
+
(ordered-cons (cdr lower-left) (cdr upper-right))
|
|
757
|
+
sth)))
|
|
758
|
+
|
|
759
|
+
(define (draw-xo xo-list)
|
|
760
|
+
"Put open and mute string indications on diagram, as contained in
|
|
761
|
+
@var{xo-list}."
|
|
762
|
+
(let* ((xo-font-mag (assoc-get 'xo-font-magnification details 0.4))
|
|
763
|
+
(diagram-fret-top
|
|
764
|
+
(car (stencil-fretboard-extent
|
|
765
|
+
fret-diagram-stencil
|
|
766
|
+
'fret
|
|
767
|
+
orientation)))
|
|
768
|
+
(xo-stils
|
|
769
|
+
(map
|
|
770
|
+
(lambda (xo-sublist)
|
|
771
|
+
(let* ((glyph-string
|
|
772
|
+
(if (eq? (car xo-sublist) 'mute)
|
|
773
|
+
(assoc-get 'mute-string details "X")
|
|
774
|
+
(assoc-get 'open-string details "O")))
|
|
775
|
+
(glyph-string-coordinate
|
|
776
|
+
(* (- string-count (cadr xo-sublist))
|
|
777
|
+
string-distance size))
|
|
778
|
+
(glyph-stencil
|
|
779
|
+
(centered-stencil
|
|
780
|
+
(sans-serif-stencil
|
|
781
|
+
layout props
|
|
782
|
+
(* size xo-font-mag) glyph-string)))
|
|
783
|
+
(glyph-stencil-coordinates
|
|
784
|
+
(stencil-coordinates 0 glyph-string-coordinate)))
|
|
785
|
+
(ly:stencil-translate
|
|
786
|
+
glyph-stencil
|
|
787
|
+
glyph-stencil-coordinates)))
|
|
788
|
+
xo-list))
|
|
789
|
+
(xo-stencil (apply ly:stencil-add empty-stencil xo-stils))
|
|
790
|
+
(xo-fret-offset
|
|
791
|
+
(stencil-fretboard-offset xo-stencil 'fret orientation))
|
|
792
|
+
(xo-stencil-offset
|
|
793
|
+
(stencil-coordinate-offset
|
|
794
|
+
(- diagram-fret-top xo-fret-offset (* size xo-padding))
|
|
795
|
+
0)))
|
|
796
|
+
(ly:stencil-translate xo-stencil xo-stencil-offset)))
|
|
797
|
+
|
|
798
|
+
(define (draw-capo fret)
|
|
799
|
+
"Draw a capo indicator across the full width of the fret-board
|
|
800
|
+
at @var{fret}."
|
|
801
|
+
(let* ((capo-thick (* size (assoc-get 'capo-thickness details 0.5)))
|
|
802
|
+
(last-string-position 0)
|
|
803
|
+
(first-string-position (* size (- string-count 1)))
|
|
804
|
+
(fret-position (* size (1- (+ dot-position fret)))))
|
|
805
|
+
(make-straight-line-stencil
|
|
806
|
+
fret-position
|
|
807
|
+
last-string-position
|
|
808
|
+
first-string-position
|
|
809
|
+
capo-thick)))
|
|
810
|
+
|
|
811
|
+
(define (label-fret fret-range)
|
|
812
|
+
"Label the base fret on a fret diagram"
|
|
813
|
+
(let* ((base-fret (car fret-range))
|
|
814
|
+
(label-font-mag (assoc-get 'fret-label-font-mag details 0.5))
|
|
815
|
+
(label-space (* 0.5 size))
|
|
816
|
+
(label-dir (assoc-get 'label-dir details RIGHT))
|
|
817
|
+
(label-vertical-offset
|
|
818
|
+
(assoc-get 'fret-label-vertical-offset details 0))
|
|
819
|
+
(label-horizontal-offset
|
|
820
|
+
(assoc-get 'fret-label-horizontal-offset details 0))
|
|
821
|
+
(number-type
|
|
822
|
+
(assoc-get 'number-type details 'roman-lower))
|
|
823
|
+
(label-text
|
|
824
|
+
(number-format number-type base-fret
|
|
825
|
+
(assoc-get 'fret-label-custom-format
|
|
826
|
+
details "~a")))
|
|
827
|
+
(label-stencil
|
|
828
|
+
(centered-stencil
|
|
829
|
+
(sans-serif-stencil
|
|
830
|
+
layout props (* size label-font-mag) label-text)))
|
|
831
|
+
(label-half-width
|
|
832
|
+
(stencil-fretboard-offset
|
|
833
|
+
label-stencil
|
|
834
|
+
'string
|
|
835
|
+
orientation))
|
|
836
|
+
(label-outside-diagram
|
|
837
|
+
(+ label-space
|
|
838
|
+
(* size label-horizontal-offset)
|
|
839
|
+
label-half-width)))
|
|
840
|
+
(ly:stencil-translate
|
|
841
|
+
label-stencil
|
|
842
|
+
(stencil-coordinates
|
|
843
|
+
(* size fret-distance (1+ label-vertical-offset))
|
|
844
|
+
(if (eqv? label-dir LEFT)
|
|
845
|
+
(- label-outside-diagram)
|
|
846
|
+
(+ (* size string-distance (1- string-count))
|
|
847
|
+
label-outside-diagram))))))
|
|
848
|
+
;;;;
|
|
849
|
+
;; Here is the body of make-fret-diagram
|
|
850
|
+
;;;;
|
|
851
|
+
|
|
852
|
+
;; starting with an empty stencil,
|
|
853
|
+
;; add strings and frets
|
|
854
|
+
(set! fret-diagram-stencil
|
|
855
|
+
(ly:stencil-add (draw-strings) (draw-frets)))
|
|
856
|
+
|
|
857
|
+
;; add barre(s)
|
|
858
|
+
(if (and (not (null? barre-list))
|
|
859
|
+
(not (eq? 'none barre-type)))
|
|
860
|
+
(set! fret-diagram-stencil
|
|
861
|
+
(ly:stencil-add
|
|
862
|
+
(draw-barre barre-list)
|
|
863
|
+
fret-diagram-stencil)))
|
|
864
|
+
|
|
865
|
+
;; add dots
|
|
866
|
+
(if (not (null? dot-list))
|
|
867
|
+
(set! fret-diagram-stencil
|
|
868
|
+
(ly:stencil-add
|
|
869
|
+
fret-diagram-stencil
|
|
870
|
+
(draw-dots dot-list))))
|
|
871
|
+
|
|
872
|
+
;; add thick zero fret
|
|
873
|
+
(if (= (car fret-range) 1)
|
|
874
|
+
(set! fret-diagram-stencil
|
|
875
|
+
(ly:stencil-add
|
|
876
|
+
fret-diagram-stencil
|
|
877
|
+
(draw-thick-zero-fret))))
|
|
878
|
+
|
|
879
|
+
;; add open/mute indicators
|
|
880
|
+
(if (pair? xo-list)
|
|
881
|
+
(set! fret-diagram-stencil
|
|
882
|
+
(ly:stencil-add
|
|
883
|
+
fret-diagram-stencil
|
|
884
|
+
(draw-xo xo-list))))
|
|
885
|
+
|
|
886
|
+
;; add capo
|
|
887
|
+
(if (> capo-fret 0)
|
|
888
|
+
(set! fret-diagram-stencil
|
|
889
|
+
(ly:stencil-add
|
|
890
|
+
fret-diagram-stencil
|
|
891
|
+
(draw-capo capo-fret))))
|
|
892
|
+
|
|
893
|
+
;; add fret-label
|
|
894
|
+
(if (> (car fret-range) 1)
|
|
895
|
+
(set! fret-diagram-stencil
|
|
896
|
+
(ly:stencil-add
|
|
897
|
+
fret-diagram-stencil
|
|
898
|
+
(label-fret fret-range))))
|
|
899
|
+
|
|
900
|
+
(ly:stencil-aligned-to fret-diagram-stencil X alignment)))
|
|
901
|
+
|
|
902
|
+
(define (fret-parse-definition-string props definition-string)
|
|
903
|
+
"Parse a fret diagram string and return a pair containing
|
|
904
|
+
@var{props}, modified as necessary by the @var{definition-string},
|
|
905
|
+
and a fret indication list with the appropriate values."
|
|
906
|
+
(let* ((fret-count 4)
|
|
907
|
+
(string-count 6)
|
|
908
|
+
(fret-range (cons 1 fret-count))
|
|
909
|
+
(barre-list '())
|
|
910
|
+
(dot-list '())
|
|
911
|
+
(xo-list '())
|
|
912
|
+
(output-list '())
|
|
913
|
+
(new-props '())
|
|
914
|
+
(details (merge-details 'fret-diagram-details props '()))
|
|
915
|
+
;; remove whitespace-characters from definition-string
|
|
916
|
+
(cleared-string (remove-whitespace definition-string))
|
|
917
|
+
(items (string-split cleared-string #\;)))
|
|
918
|
+
(let parse-item ((myitems items))
|
|
919
|
+
(if (not (null? (cdr myitems)))
|
|
920
|
+
(let ((test-string (car myitems)))
|
|
921
|
+
(case (car (string->list (string-take test-string 1)))
|
|
922
|
+
;; size
|
|
923
|
+
((#\s) (let ((size (get-numeric-from-key test-string)))
|
|
924
|
+
(set! props (prepend-alist-chain 'size size props))))
|
|
925
|
+
;; thickness
|
|
926
|
+
((#\t) (let ((th (get-numeric-from-key test-string)))
|
|
927
|
+
(set! props (prepend-alist-chain 'thickness th props))))
|
|
928
|
+
;; finger-code
|
|
929
|
+
((#\f) (let* ((finger-code (get-numeric-from-key test-string))
|
|
930
|
+
(finger-id (case finger-code
|
|
931
|
+
((0) 'none)
|
|
932
|
+
((1) 'in-dot)
|
|
933
|
+
((2) 'below-string))))
|
|
934
|
+
(set! details
|
|
935
|
+
(acons 'finger-code finger-id details))))
|
|
936
|
+
;; barre
|
|
937
|
+
((#\c) (set! output-list
|
|
938
|
+
(cons-fret
|
|
939
|
+
(cons
|
|
940
|
+
'barre
|
|
941
|
+
(numerify
|
|
942
|
+
(string-split (string-drop test-string 2) #\-)))
|
|
943
|
+
output-list)))
|
|
944
|
+
;; number of frets
|
|
945
|
+
((#\h) (let ((fret-count (get-numeric-from-key test-string)))
|
|
946
|
+
(set! details
|
|
947
|
+
(acons 'fret-count fret-count details))))
|
|
948
|
+
;; string-count
|
|
949
|
+
((#\w) (let ((string-count (get-numeric-from-key test-string)))
|
|
950
|
+
(set! details
|
|
951
|
+
(acons 'string-count string-count details))))
|
|
952
|
+
;; dot-radius
|
|
953
|
+
((#\d) (let ((dot-size (get-numeric-from-key test-string)))
|
|
954
|
+
(set! details
|
|
955
|
+
(acons 'dot-radius dot-size details))))
|
|
956
|
+
;; dot-position
|
|
957
|
+
((#\p) (let ((dot-position (get-numeric-from-key test-string)))
|
|
958
|
+
(set! details
|
|
959
|
+
(acons 'dot-position dot-position details))))
|
|
960
|
+
(else
|
|
961
|
+
(let* ((this-list (string-split test-string #\-))
|
|
962
|
+
(string-number (string->number (car this-list))))
|
|
963
|
+
;; If none of the above applies, `string-number' needs to be a
|
|
964
|
+
;; number. Throw an error, if not.
|
|
965
|
+
(cond ((not string-number)
|
|
966
|
+
(ly:error
|
|
967
|
+
"Unhandled entry in fret-diagrams \"~a\" in \"~a\""
|
|
968
|
+
(car this-list)
|
|
969
|
+
test-string))
|
|
970
|
+
;; string-count may be modified by "w:", we need to
|
|
971
|
+
;; look into details again, default string-count as
|
|
972
|
+
;; fallback
|
|
973
|
+
((> string-number
|
|
974
|
+
(assoc-get 'string-count details string-count))
|
|
975
|
+
(ly:warning (G_ "String ~a out of range 1-~a, ignoring")
|
|
976
|
+
string-number (assoc-get 'string-count details)))
|
|
977
|
+
((equal? (cadr this-list) "x" )
|
|
978
|
+
(set! output-list
|
|
979
|
+
(cons-fret
|
|
980
|
+
(list 'mute string-number)
|
|
981
|
+
output-list)))
|
|
982
|
+
((equal? (cadr this-list) "o" )
|
|
983
|
+
(set! output-list
|
|
984
|
+
(cons-fret
|
|
985
|
+
(list 'open string-number)
|
|
986
|
+
output-list)))
|
|
987
|
+
(else
|
|
988
|
+
(set! output-list
|
|
989
|
+
(cons-fret
|
|
990
|
+
(cons 'place-fret (numerify this-list))
|
|
991
|
+
output-list)))))))
|
|
992
|
+
(parse-item (cdr myitems)))))
|
|
993
|
+
;; add the modified details
|
|
994
|
+
(set! props
|
|
995
|
+
(prepend-alist-chain 'fret-diagram-details details props))
|
|
996
|
+
(cons props output-list)))
|
|
997
|
+
|
|
998
|
+
(define-public
|
|
999
|
+
(fret-parse-terse-definition-string props definition-string)
|
|
1000
|
+
"Parse a fret diagram string that uses terse syntax; return a pair containing
|
|
1001
|
+
@var{props}, modified to include the string-count determined by
|
|
1002
|
+
@var{definition-string}, and a fret indication list with the appropriate
|
|
1003
|
+
values."
|
|
1004
|
+
;; TODO -- change syntax to fret\string-finger
|
|
1005
|
+
|
|
1006
|
+
(let* ((details (merge-details 'fret-diagram-details props '()))
|
|
1007
|
+
(barre-start-list '())
|
|
1008
|
+
(output-list '())
|
|
1009
|
+
(new-props '())
|
|
1010
|
+
(items (string-split definition-string #\;))
|
|
1011
|
+
(string-count (1- (length items))))
|
|
1012
|
+
(let parse-item ((myitems items))
|
|
1013
|
+
(if (not (null? (cdr myitems)))
|
|
1014
|
+
(let* ((test-string (car myitems))
|
|
1015
|
+
(current-string (1- (length myitems)))
|
|
1016
|
+
(indicators (string-split test-string #\space)))
|
|
1017
|
+
(let parse-indicators ((myindicators indicators))
|
|
1018
|
+
(if (pair? myindicators)
|
|
1019
|
+
(let* ((this-list (string-split (car myindicators) #\-))
|
|
1020
|
+
(last-element (last this-list))
|
|
1021
|
+
(fret
|
|
1022
|
+
(or (string->number (car this-list))
|
|
1023
|
+
(car this-list))))
|
|
1024
|
+
;; barre-stuff
|
|
1025
|
+
(if (equal? last-element "(")
|
|
1026
|
+
(begin
|
|
1027
|
+
(set! barre-start-list
|
|
1028
|
+
(cons-fret (list current-string fret)
|
|
1029
|
+
barre-start-list))
|
|
1030
|
+
(set! this-list (drop-right this-list 1))))
|
|
1031
|
+
(if (equal? last-element ")")
|
|
1032
|
+
(let* ((this-barre
|
|
1033
|
+
(get-sub-list fret barre-start-list)))
|
|
1034
|
+
(if (not this-barre)
|
|
1035
|
+
(ly:warning
|
|
1036
|
+
"Ignoring barre end without beginning on fret: ~a"
|
|
1037
|
+
fret)
|
|
1038
|
+
(set! output-list
|
|
1039
|
+
(cons-fret (cons* 'barre
|
|
1040
|
+
(car this-barre)
|
|
1041
|
+
current-string
|
|
1042
|
+
(cdr this-barre))
|
|
1043
|
+
output-list)))
|
|
1044
|
+
(set! this-list (drop-right this-list 1))))
|
|
1045
|
+
;; other stuff
|
|
1046
|
+
(set! output-list
|
|
1047
|
+
(cons-fret
|
|
1048
|
+
(cond ((number? fret)
|
|
1049
|
+
(cons*
|
|
1050
|
+
'place-fret
|
|
1051
|
+
current-string
|
|
1052
|
+
(numerify this-list)))
|
|
1053
|
+
((equal? (car this-list) "x")
|
|
1054
|
+
(list 'mute current-string))
|
|
1055
|
+
(else (list 'open current-string)))
|
|
1056
|
+
output-list))
|
|
1057
|
+
(parse-indicators (cdr myindicators)))))
|
|
1058
|
+
(parse-item (cdr myitems)))))
|
|
1059
|
+
(set! details (acons 'string-count string-count details))
|
|
1060
|
+
(set! props (prepend-alist-chain 'fret-diagram-details details props))
|
|
1061
|
+
(cons props output-list)))
|
|
1062
|
+
|
|
1063
|
+
|
|
1064
|
+
(define-markup-command
|
|
1065
|
+
(fret-diagram-verbose layout props marking-list)
|
|
1066
|
+
(pair?) ; argument type (list, but use pair? for speed)
|
|
1067
|
+
#:category instrument-specific-markup ; markup type
|
|
1068
|
+
#:properties ((align-dir -0.4) ; properties and defaults
|
|
1069
|
+
(size 1.0)
|
|
1070
|
+
(fret-diagram-details)
|
|
1071
|
+
(thickness 0.5))
|
|
1072
|
+
"Make a fret diagram containing the symbols indicated in @var{marking-list}.
|
|
1073
|
+
|
|
1074
|
+
For example,
|
|
1075
|
+
|
|
1076
|
+
@example
|
|
1077
|
+
\\markup \\fret-diagram-verbose
|
|
1078
|
+
#'((mute 6) (mute 5) (open 4)
|
|
1079
|
+
(place-fret 3 2) (place-fret 2 3) (place-fret 1 2))
|
|
1080
|
+
@end example
|
|
1081
|
+
|
|
1082
|
+
@noindent
|
|
1083
|
+
produces a standard D@tie{}chord diagram without fingering indications.
|
|
1084
|
+
|
|
1085
|
+
Possible elements in @var{marking-list}:
|
|
1086
|
+
|
|
1087
|
+
@table @code
|
|
1088
|
+
@item (mute @var{string-number})
|
|
1089
|
+
Place a small @q{x} at the top of string @var{string-number}.
|
|
1090
|
+
|
|
1091
|
+
@item (open @var{string-number})
|
|
1092
|
+
Place a small @q{o} at the top of string @var{string-number}.
|
|
1093
|
+
|
|
1094
|
+
@item (barre @var{start-string} @var{end-string} @var{fret-number})
|
|
1095
|
+
Place a barre indicator (much like a tie) from string @var{start-string}
|
|
1096
|
+
to string @var{end-string} at fret @var{fret-number}.
|
|
1097
|
+
|
|
1098
|
+
@item (capo @var{fret-number})
|
|
1099
|
+
Place a capo indicator (a large solid bar) across the entire fretboard
|
|
1100
|
+
at fret location @var{fret-number}. Also, set fret @var{fret-number}
|
|
1101
|
+
to be the lowest fret on the fret diagram.
|
|
1102
|
+
|
|
1103
|
+
@item (place-fret @var{string-number} @var{fret-number} [@var{finger-value}] [@var{color-modifier}] [@var{color}] ['parenthesized ['default-paren-color]])
|
|
1104
|
+
Place a fret playing indication on string @var{string-number} at fret
|
|
1105
|
+
@var{fret-number} with an optional fingering label @var{finger-value},
|
|
1106
|
+
an optional color modifier @var{color-modifier}, an optional color
|
|
1107
|
+
@var{color}, an optional parenthesis @code{'parenthesized} and an
|
|
1108
|
+
optional paranthesis color @code{'default-paren-color}.
|
|
1109
|
+
By default, the fret playing indicator is a solid dot. This can be
|
|
1110
|
+
globally changed by setting the value of the variable @var{dot-color}
|
|
1111
|
+
or for a single dot by setting the value of @var{color}. The dot can
|
|
1112
|
+
be parenthesized by adding @code{'parenthesized}. By default the
|
|
1113
|
+
color for the parenthesis is taken from the dot. Adding
|
|
1114
|
+
@code{'default-paren-color} will take the parenthesis-color from the
|
|
1115
|
+
global @var{dot-color}, as a fall-back black will be used.
|
|
1116
|
+
Setting @var{color-modifier} to @code{inverted} inverts the dot color
|
|
1117
|
+
for a specific fingering.
|
|
1118
|
+
The values for @var{string-number}, @var{fret-number}, and the optional
|
|
1119
|
+
@var{finger} should be entered first in that order.
|
|
1120
|
+
The order of the other optional arguments does not matter.
|
|
1121
|
+
If the @var{finger} part of the @code{place-fret} element is present,
|
|
1122
|
+
@var{finger-value} will be displayed according to the setting of the
|
|
1123
|
+
variable @var{finger-code}. There is no limit to the number of fret
|
|
1124
|
+
indications per string.
|
|
1125
|
+
@end table"
|
|
1126
|
+
|
|
1127
|
+
(make-fret-diagram layout props marking-list))
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
(define-markup-command (fret-diagram layout props definition-string)
|
|
1131
|
+
(string?) ; argument type
|
|
1132
|
+
#:category instrument-specific-markup ; markup category
|
|
1133
|
+
#:properties (fret-diagram-verbose-markup) ; properties and defaults
|
|
1134
|
+
#:as-string ""
|
|
1135
|
+
"Make a (guitar) fret diagram. For example, say
|
|
1136
|
+
|
|
1137
|
+
@example
|
|
1138
|
+
\\markup \\fret-diagram #\"s:0.75;6-x;5-x;4-o;3-2;2-3;1-2;\"
|
|
1139
|
+
@end example
|
|
1140
|
+
|
|
1141
|
+
@noindent
|
|
1142
|
+
for fret spacing 3/4 of staff space, D chord diagram
|
|
1143
|
+
|
|
1144
|
+
Syntax rules for @var{definition-string}:
|
|
1145
|
+
@itemize @minus
|
|
1146
|
+
|
|
1147
|
+
@item
|
|
1148
|
+
Diagram items are separated by semicolons.
|
|
1149
|
+
|
|
1150
|
+
@item
|
|
1151
|
+
Possible items:
|
|
1152
|
+
|
|
1153
|
+
@itemize @bullet
|
|
1154
|
+
@item
|
|
1155
|
+
@code{s:}@var{number} -- Set the fret spacing of the diagram (in staff
|
|
1156
|
+
spaces).
|
|
1157
|
+
Default:@tie{}1.
|
|
1158
|
+
|
|
1159
|
+
@item
|
|
1160
|
+
@code{t:}@var{number} -- Set the line thickness (relative to normal
|
|
1161
|
+
line thickness).
|
|
1162
|
+
Default:@tie{}0.5.
|
|
1163
|
+
|
|
1164
|
+
@item
|
|
1165
|
+
@code{h:}@var{number} -- Set the height of the diagram in frets.
|
|
1166
|
+
Default:@tie{}4.
|
|
1167
|
+
|
|
1168
|
+
@item
|
|
1169
|
+
@code{w:}@var{number} -- Set the width of the diagram in strings.
|
|
1170
|
+
Default:@tie{}6.
|
|
1171
|
+
|
|
1172
|
+
@item
|
|
1173
|
+
@code{f:}@var{number} -- Set fingering label type
|
|
1174
|
+
(0@tie{}= none, 1@tie{}= in circle on string, 2@tie{}= below string).
|
|
1175
|
+
Default:@tie{}0.
|
|
1176
|
+
|
|
1177
|
+
@item
|
|
1178
|
+
@code{d:}@var{number} -- Set radius of dot, in terms of fret spacing.
|
|
1179
|
+
Default:@tie{}0.25.
|
|
1180
|
+
|
|
1181
|
+
@item
|
|
1182
|
+
@code{p:}@var{number} -- Set the position of the dot in the fret space.
|
|
1183
|
+
0.5 is centered; 1@tie{}is on lower fret bar, 0@tie{}is on upper fret bar.
|
|
1184
|
+
Default:@tie{}0.6.
|
|
1185
|
+
|
|
1186
|
+
@item
|
|
1187
|
+
@code{c:}@var{string1}@code{-}@var{string2}@code{-}@var{fret} -- Include a
|
|
1188
|
+
barre mark from @var{string1} to @var{string2} on @var{fret}.
|
|
1189
|
+
|
|
1190
|
+
@item
|
|
1191
|
+
@var{string}@code{-}@var{fret} -- Place a dot on @var{string} at @var{fret}.
|
|
1192
|
+
If @var{fret} is @samp{o}, @var{string} is identified as open.
|
|
1193
|
+
If @var{fret} is @samp{x}, @var{string} is identified as muted.
|
|
1194
|
+
|
|
1195
|
+
@item
|
|
1196
|
+
@var{string}@code{-}@var{fret}@code{-}@var{fingering} -- Place a dot on
|
|
1197
|
+
@var{string} at @var{fret}, and label with @var{fingering} as defined
|
|
1198
|
+
by the @code{f:} code.
|
|
1199
|
+
@end itemize
|
|
1200
|
+
|
|
1201
|
+
@item
|
|
1202
|
+
Note: There is no limit to the number of fret indications per string.
|
|
1203
|
+
@end itemize"
|
|
1204
|
+
(let ((definition-list
|
|
1205
|
+
(fret-parse-definition-string props definition-string)))
|
|
1206
|
+
(fret-diagram-verbose-markup
|
|
1207
|
+
layout (car definition-list) (cdr definition-list))))
|
|
1208
|
+
|
|
1209
|
+
(define-markup-command
|
|
1210
|
+
(fret-diagram-terse layout props definition-string)
|
|
1211
|
+
(string?) ; argument type
|
|
1212
|
+
#:category instrument-specific-markup ; markup category
|
|
1213
|
+
#:properties (fret-diagram-verbose-markup) ; properties
|
|
1214
|
+
#:as-string ""
|
|
1215
|
+
"Make a fret diagram markup using terse string-based syntax.
|
|
1216
|
+
|
|
1217
|
+
Here is an example
|
|
1218
|
+
|
|
1219
|
+
@example
|
|
1220
|
+
\\markup \\fret-diagram-terse #\"x;x;o;2;3;2;\"
|
|
1221
|
+
@end example
|
|
1222
|
+
|
|
1223
|
+
@noindent
|
|
1224
|
+
for a D@tie{}chord diagram.
|
|
1225
|
+
|
|
1226
|
+
Syntax rules for @var{definition-string}:
|
|
1227
|
+
|
|
1228
|
+
@itemize @bullet
|
|
1229
|
+
|
|
1230
|
+
@item
|
|
1231
|
+
Strings are terminated by semicolons; the number of semicolons
|
|
1232
|
+
is the number of strings in the diagram.
|
|
1233
|
+
|
|
1234
|
+
@item
|
|
1235
|
+
Mute strings are indicated by @samp{x}.
|
|
1236
|
+
|
|
1237
|
+
@item
|
|
1238
|
+
Open strings are indicated by @samp{o}.
|
|
1239
|
+
|
|
1240
|
+
@item
|
|
1241
|
+
A number indicates a fret indication at that fret.
|
|
1242
|
+
|
|
1243
|
+
@item
|
|
1244
|
+
If there are multiple fret indicators desired on a string, they
|
|
1245
|
+
should be separated by spaces.
|
|
1246
|
+
|
|
1247
|
+
@item
|
|
1248
|
+
Fingerings are given by following the fret number with a @w{@code{-},}
|
|
1249
|
+
followed by the finger indicator, e.g. @samp{3-2} for playing the third
|
|
1250
|
+
fret with the second finger.
|
|
1251
|
+
|
|
1252
|
+
@item
|
|
1253
|
+
Where a barre indicator is desired, follow the fret (or fingering) symbol
|
|
1254
|
+
with @w{@code{-(}} to start a barre and @w{@code{-)}} to end the barre.
|
|
1255
|
+
|
|
1256
|
+
@end itemize"
|
|
1257
|
+
;; TODO -- change syntax to fret\string-finger
|
|
1258
|
+
(let ((definition-list
|
|
1259
|
+
(fret-parse-terse-definition-string props definition-string)))
|
|
1260
|
+
(fret-diagram-verbose-markup
|
|
1261
|
+
layout (car definition-list) (cdr definition-list))))
|