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.
Files changed (1109) hide show
  1. checksums.yaml +4 -4
  2. data/etc/fonts/conf.d/10-hinting-slight.conf +15 -0
  3. data/etc/fonts/conf.d/10-scale-bitmap-fonts.conf +83 -0
  4. data/etc/fonts/conf.d/11-lcdfilter-default.conf +17 -0
  5. data/etc/fonts/conf.d/20-unhint-small-vera.conf +49 -0
  6. data/etc/fonts/conf.d/30-metric-aliases.conf +637 -0
  7. data/etc/fonts/conf.d/40-nonlatin.conf +332 -0
  8. data/etc/fonts/conf.d/45-generic.conf +136 -0
  9. data/etc/fonts/conf.d/45-latin.conf +301 -0
  10. data/etc/fonts/conf.d/48-spacing.conf +16 -0
  11. data/etc/fonts/conf.d/49-sansserif.conf +22 -0
  12. data/etc/fonts/conf.d/50-user.conf +16 -0
  13. data/etc/fonts/conf.d/51-local.conf +7 -0
  14. data/etc/fonts/conf.d/60-generic.conf +64 -0
  15. data/etc/fonts/conf.d/60-latin.conf +88 -0
  16. data/etc/fonts/conf.d/65-fonts-persian.conf +418 -0
  17. data/etc/fonts/conf.d/65-nonlatin.conf +228 -0
  18. data/etc/fonts/conf.d/69-unifont.conf +28 -0
  19. data/etc/fonts/conf.d/80-delicious.conf +19 -0
  20. data/etc/fonts/conf.d/90-synthetic.conf +64 -0
  21. data/etc/fonts/conf.d/README +23 -0
  22. data/etc/fonts/fonts.conf +101 -0
  23. data/etc/relocate/fontconfig.reloc +2 -0
  24. data/etc/relocate/guile.reloc +2 -0
  25. data/etc/relocate/libexec.reloc +1 -0
  26. data/lib/guile/2.2/ccache/ice-9/and-let-star.go +0 -0
  27. data/lib/guile/2.2/ccache/ice-9/arrays.go +0 -0
  28. data/lib/guile/2.2/ccache/ice-9/atomic.go +0 -0
  29. data/lib/guile/2.2/ccache/ice-9/binary-ports.go +0 -0
  30. data/lib/guile/2.2/ccache/ice-9/boot-9.go +0 -0
  31. data/lib/guile/2.2/ccache/ice-9/buffered-input.go +0 -0
  32. data/lib/guile/2.2/ccache/ice-9/calling.go +0 -0
  33. data/lib/guile/2.2/ccache/ice-9/channel.go +0 -0
  34. data/lib/guile/2.2/ccache/ice-9/command-line.go +0 -0
  35. data/lib/guile/2.2/ccache/ice-9/common-list.go +0 -0
  36. data/lib/guile/2.2/ccache/ice-9/control.go +0 -0
  37. data/lib/guile/2.2/ccache/ice-9/curried-definitions.go +0 -0
  38. data/lib/guile/2.2/ccache/ice-9/debug.go +0 -0
  39. data/lib/guile/2.2/ccache/ice-9/deprecated.go +0 -0
  40. data/lib/guile/2.2/ccache/ice-9/documentation.go +0 -0
  41. data/lib/guile/2.2/ccache/ice-9/eval-string.go +0 -0
  42. data/lib/guile/2.2/ccache/ice-9/eval.go +0 -0
  43. data/lib/guile/2.2/ccache/ice-9/expect.go +0 -0
  44. data/lib/guile/2.2/ccache/ice-9/fdes-finalizers.go +0 -0
  45. data/lib/guile/2.2/ccache/ice-9/format.go +0 -0
  46. data/lib/guile/2.2/ccache/ice-9/ftw.go +0 -0
  47. data/lib/guile/2.2/ccache/ice-9/futures.go +0 -0
  48. data/lib/guile/2.2/ccache/ice-9/gap-buffer.go +0 -0
  49. data/lib/guile/2.2/ccache/ice-9/getopt-long.go +0 -0
  50. data/lib/guile/2.2/ccache/ice-9/hash-table.go +0 -0
  51. data/lib/guile/2.2/ccache/ice-9/hcons.go +0 -0
  52. data/lib/guile/2.2/ccache/ice-9/history.go +0 -0
  53. data/lib/guile/2.2/ccache/ice-9/i18n.go +0 -0
  54. data/lib/guile/2.2/ccache/ice-9/iconv.go +0 -0
  55. data/lib/guile/2.2/ccache/ice-9/lineio.go +0 -0
  56. data/lib/guile/2.2/ccache/ice-9/list.go +0 -0
  57. data/lib/guile/2.2/ccache/ice-9/local-eval.go +0 -0
  58. data/lib/guile/2.2/ccache/ice-9/ls.go +0 -0
  59. data/lib/guile/2.2/ccache/ice-9/mapping.go +0 -0
  60. data/lib/guile/2.2/ccache/ice-9/match.go +0 -0
  61. data/lib/guile/2.2/ccache/ice-9/networking.go +0 -0
  62. data/lib/guile/2.2/ccache/ice-9/null.go +0 -0
  63. data/lib/guile/2.2/ccache/ice-9/occam-channel.go +0 -0
  64. data/lib/guile/2.2/ccache/ice-9/optargs.go +0 -0
  65. data/lib/guile/2.2/ccache/ice-9/peg/cache.go +0 -0
  66. data/lib/guile/2.2/ccache/ice-9/peg/codegen.go +0 -0
  67. data/lib/guile/2.2/ccache/ice-9/peg/simplify-tree.go +0 -0
  68. data/lib/guile/2.2/ccache/ice-9/peg/string-peg.go +0 -0
  69. data/lib/guile/2.2/ccache/ice-9/peg/using-parsers.go +0 -0
  70. data/lib/guile/2.2/ccache/ice-9/peg.go +0 -0
  71. data/lib/guile/2.2/ccache/ice-9/poe.go +0 -0
  72. data/lib/guile/2.2/ccache/ice-9/poll.go +0 -0
  73. data/lib/guile/2.2/ccache/ice-9/popen.go +0 -0
  74. data/lib/guile/2.2/ccache/ice-9/ports.go +0 -0
  75. data/lib/guile/2.2/ccache/ice-9/posix.go +0 -0
  76. data/lib/guile/2.2/ccache/ice-9/pretty-print.go +0 -0
  77. data/lib/guile/2.2/ccache/ice-9/psyntax-pp.go +0 -0
  78. data/lib/guile/2.2/ccache/ice-9/q.go +0 -0
  79. data/lib/guile/2.2/ccache/ice-9/r5rs.go +0 -0
  80. data/lib/guile/2.2/ccache/ice-9/rdelim.go +0 -0
  81. data/lib/guile/2.2/ccache/ice-9/receive.go +0 -0
  82. data/lib/guile/2.2/ccache/ice-9/regex.go +0 -0
  83. data/lib/guile/2.2/ccache/ice-9/runq.go +0 -0
  84. data/lib/guile/2.2/ccache/ice-9/rw.go +0 -0
  85. data/lib/guile/2.2/ccache/ice-9/safe-r5rs.go +0 -0
  86. data/lib/guile/2.2/ccache/ice-9/safe.go +0 -0
  87. data/lib/guile/2.2/ccache/ice-9/sandbox.go +0 -0
  88. data/lib/guile/2.2/ccache/ice-9/save-stack.go +0 -0
  89. data/lib/guile/2.2/ccache/ice-9/scm-style-repl.go +0 -0
  90. data/lib/guile/2.2/ccache/ice-9/serialize.go +0 -0
  91. data/lib/guile/2.2/ccache/ice-9/session.go +0 -0
  92. data/lib/guile/2.2/ccache/ice-9/slib.go +0 -0
  93. data/lib/guile/2.2/ccache/ice-9/stack-catch.go +0 -0
  94. data/lib/guile/2.2/ccache/ice-9/streams.go +0 -0
  95. data/lib/guile/2.2/ccache/ice-9/string-fun.go +0 -0
  96. data/lib/guile/2.2/ccache/ice-9/suspendable-ports.go +0 -0
  97. data/lib/guile/2.2/ccache/ice-9/syncase.go +0 -0
  98. data/lib/guile/2.2/ccache/ice-9/textual-ports.go +0 -0
  99. data/lib/guile/2.2/ccache/ice-9/threads.go +0 -0
  100. data/lib/guile/2.2/ccache/ice-9/time.go +0 -0
  101. data/lib/guile/2.2/ccache/ice-9/top-repl.go +0 -0
  102. data/lib/guile/2.2/ccache/ice-9/unicode.go +0 -0
  103. data/lib/guile/2.2/ccache/ice-9/vlist.go +0 -0
  104. data/lib/guile/2.2/ccache/ice-9/weak-vector.go +0 -0
  105. data/lib/guile/2.2/ccache/language/brainfuck/compile-scheme.go +0 -0
  106. data/lib/guile/2.2/ccache/language/brainfuck/compile-tree-il.go +0 -0
  107. data/lib/guile/2.2/ccache/language/brainfuck/parse.go +0 -0
  108. data/lib/guile/2.2/ccache/language/brainfuck/spec.go +0 -0
  109. data/lib/guile/2.2/ccache/language/bytecode/spec.go +0 -0
  110. data/lib/guile/2.2/ccache/language/bytecode.go +0 -0
  111. data/lib/guile/2.2/ccache/language/cps/closure-conversion.go +0 -0
  112. data/lib/guile/2.2/ccache/language/cps/compile-bytecode.go +0 -0
  113. data/lib/guile/2.2/ccache/language/cps/constructors.go +0 -0
  114. data/lib/guile/2.2/ccache/language/cps/contification.go +0 -0
  115. data/lib/guile/2.2/ccache/language/cps/cse.go +0 -0
  116. data/lib/guile/2.2/ccache/language/cps/dce.go +0 -0
  117. data/lib/guile/2.2/ccache/language/cps/effects-analysis.go +0 -0
  118. data/lib/guile/2.2/ccache/language/cps/elide-values.go +0 -0
  119. data/lib/guile/2.2/ccache/language/cps/handle-interrupts.go +0 -0
  120. data/lib/guile/2.2/ccache/language/cps/intmap.go +0 -0
  121. data/lib/guile/2.2/ccache/language/cps/intset.go +0 -0
  122. data/lib/guile/2.2/ccache/language/cps/licm.go +0 -0
  123. data/lib/guile/2.2/ccache/language/cps/optimize.go +0 -0
  124. data/lib/guile/2.2/ccache/language/cps/peel-loops.go +0 -0
  125. data/lib/guile/2.2/ccache/language/cps/primitives.go +0 -0
  126. data/lib/guile/2.2/ccache/language/cps/prune-bailouts.go +0 -0
  127. data/lib/guile/2.2/ccache/language/cps/prune-top-level-scopes.go +0 -0
  128. data/lib/guile/2.2/ccache/language/cps/reify-primitives.go +0 -0
  129. data/lib/guile/2.2/ccache/language/cps/renumber.go +0 -0
  130. data/lib/guile/2.2/ccache/language/cps/rotate-loops.go +0 -0
  131. data/lib/guile/2.2/ccache/language/cps/self-references.go +0 -0
  132. data/lib/guile/2.2/ccache/language/cps/simplify.go +0 -0
  133. data/lib/guile/2.2/ccache/language/cps/slot-allocation.go +0 -0
  134. data/lib/guile/2.2/ccache/language/cps/spec.go +0 -0
  135. data/lib/guile/2.2/ccache/language/cps/specialize-numbers.go +0 -0
  136. data/lib/guile/2.2/ccache/language/cps/specialize-primcalls.go +0 -0
  137. data/lib/guile/2.2/ccache/language/cps/split-rec.go +0 -0
  138. data/lib/guile/2.2/ccache/language/cps/type-checks.go +0 -0
  139. data/lib/guile/2.2/ccache/language/cps/type-fold.go +0 -0
  140. data/lib/guile/2.2/ccache/language/cps/types.go +0 -0
  141. data/lib/guile/2.2/ccache/language/cps/utils.go +0 -0
  142. data/lib/guile/2.2/ccache/language/cps/verify.go +0 -0
  143. data/lib/guile/2.2/ccache/language/cps/with-cps.go +0 -0
  144. data/lib/guile/2.2/ccache/language/cps.go +0 -0
  145. data/lib/guile/2.2/ccache/language/ecmascript/array.go +0 -0
  146. data/lib/guile/2.2/ccache/language/ecmascript/base.go +0 -0
  147. data/lib/guile/2.2/ccache/language/ecmascript/compile-tree-il.go +0 -0
  148. data/lib/guile/2.2/ccache/language/ecmascript/function.go +0 -0
  149. data/lib/guile/2.2/ccache/language/ecmascript/impl.go +0 -0
  150. data/lib/guile/2.2/ccache/language/ecmascript/parse.go +0 -0
  151. data/lib/guile/2.2/ccache/language/ecmascript/spec.go +0 -0
  152. data/lib/guile/2.2/ccache/language/ecmascript/tokenize.go +0 -0
  153. data/lib/guile/2.2/ccache/language/elisp/bindings.go +0 -0
  154. data/lib/guile/2.2/ccache/language/elisp/boot.go +0 -0
  155. data/lib/guile/2.2/ccache/language/elisp/compile-tree-il.go +0 -0
  156. data/lib/guile/2.2/ccache/language/elisp/falias.go +0 -0
  157. data/lib/guile/2.2/ccache/language/elisp/lexer.go +0 -0
  158. data/lib/guile/2.2/ccache/language/elisp/parser.go +0 -0
  159. data/lib/guile/2.2/ccache/language/elisp/runtime/function-slot.go +0 -0
  160. data/lib/guile/2.2/ccache/language/elisp/runtime/value-slot.go +0 -0
  161. data/lib/guile/2.2/ccache/language/elisp/runtime.go +0 -0
  162. data/lib/guile/2.2/ccache/language/elisp/spec.go +0 -0
  163. data/lib/guile/2.2/ccache/language/scheme/compile-tree-il.go +0 -0
  164. data/lib/guile/2.2/ccache/language/scheme/decompile-tree-il.go +0 -0
  165. data/lib/guile/2.2/ccache/language/scheme/spec.go +0 -0
  166. data/lib/guile/2.2/ccache/language/tree-il/analyze.go +0 -0
  167. data/lib/guile/2.2/ccache/language/tree-il/canonicalize.go +0 -0
  168. data/lib/guile/2.2/ccache/language/tree-il/compile-cps.go +0 -0
  169. data/lib/guile/2.2/ccache/language/tree-il/debug.go +0 -0
  170. data/lib/guile/2.2/ccache/language/tree-il/effects.go +0 -0
  171. data/lib/guile/2.2/ccache/language/tree-il/fix-letrec.go +0 -0
  172. data/lib/guile/2.2/ccache/language/tree-il/optimize.go +0 -0
  173. data/lib/guile/2.2/ccache/language/tree-il/peval.go +0 -0
  174. data/lib/guile/2.2/ccache/language/tree-il/primitives.go +0 -0
  175. data/lib/guile/2.2/ccache/language/tree-il/spec.go +0 -0
  176. data/lib/guile/2.2/ccache/language/tree-il.go +0 -0
  177. data/lib/guile/2.2/ccache/language/value/spec.go +0 -0
  178. data/lib/guile/2.2/ccache/oop/goops/accessors.go +0 -0
  179. data/lib/guile/2.2/ccache/oop/goops/active-slot.go +0 -0
  180. data/lib/guile/2.2/ccache/oop/goops/composite-slot.go +0 -0
  181. data/lib/guile/2.2/ccache/oop/goops/describe.go +0 -0
  182. data/lib/guile/2.2/ccache/oop/goops/internal.go +0 -0
  183. data/lib/guile/2.2/ccache/oop/goops/save.go +0 -0
  184. data/lib/guile/2.2/ccache/oop/goops/simple.go +0 -0
  185. data/lib/guile/2.2/ccache/oop/goops/stklos.go +0 -0
  186. data/lib/guile/2.2/ccache/oop/goops.go +0 -0
  187. data/lib/guile/2.2/ccache/rnrs/arithmetic/bitwise.go +0 -0
  188. data/lib/guile/2.2/ccache/rnrs/arithmetic/fixnums.go +0 -0
  189. data/lib/guile/2.2/ccache/rnrs/arithmetic/flonums.go +0 -0
  190. data/lib/guile/2.2/ccache/rnrs/base.go +0 -0
  191. data/lib/guile/2.2/ccache/rnrs/bytevectors.go +0 -0
  192. data/lib/guile/2.2/ccache/rnrs/conditions.go +0 -0
  193. data/lib/guile/2.2/ccache/rnrs/control.go +0 -0
  194. data/lib/guile/2.2/ccache/rnrs/enums.go +0 -0
  195. data/lib/guile/2.2/ccache/rnrs/eval.go +0 -0
  196. data/lib/guile/2.2/ccache/rnrs/exceptions.go +0 -0
  197. data/lib/guile/2.2/ccache/rnrs/files.go +0 -0
  198. data/lib/guile/2.2/ccache/rnrs/hashtables.go +0 -0
  199. data/lib/guile/2.2/ccache/rnrs/io/ports.go +0 -0
  200. data/lib/guile/2.2/ccache/rnrs/io/simple.go +0 -0
  201. data/lib/guile/2.2/ccache/rnrs/lists.go +0 -0
  202. data/lib/guile/2.2/ccache/rnrs/mutable-pairs.go +0 -0
  203. data/lib/guile/2.2/ccache/rnrs/mutable-strings.go +0 -0
  204. data/lib/guile/2.2/ccache/rnrs/programs.go +0 -0
  205. data/lib/guile/2.2/ccache/rnrs/r5rs.go +0 -0
  206. data/lib/guile/2.2/ccache/rnrs/records/inspection.go +0 -0
  207. data/lib/guile/2.2/ccache/rnrs/records/procedural.go +0 -0
  208. data/lib/guile/2.2/ccache/rnrs/records/syntactic.go +0 -0
  209. data/lib/guile/2.2/ccache/rnrs/sorting.go +0 -0
  210. data/lib/guile/2.2/ccache/rnrs/syntax-case.go +0 -0
  211. data/lib/guile/2.2/ccache/rnrs/unicode.go +0 -0
  212. data/lib/guile/2.2/ccache/rnrs.go +0 -0
  213. data/lib/guile/2.2/ccache/scripts/api-diff.go +0 -0
  214. data/lib/guile/2.2/ccache/scripts/autofrisk.go +0 -0
  215. data/lib/guile/2.2/ccache/scripts/compile.go +0 -0
  216. data/lib/guile/2.2/ccache/scripts/disassemble.go +0 -0
  217. data/lib/guile/2.2/ccache/scripts/display-commentary.go +0 -0
  218. data/lib/guile/2.2/ccache/scripts/doc-snarf.go +0 -0
  219. data/lib/guile/2.2/ccache/scripts/frisk.go +0 -0
  220. data/lib/guile/2.2/ccache/scripts/generate-autoload.go +0 -0
  221. data/lib/guile/2.2/ccache/scripts/help.go +0 -0
  222. data/lib/guile/2.2/ccache/scripts/lint.go +0 -0
  223. data/lib/guile/2.2/ccache/scripts/list.go +0 -0
  224. data/lib/guile/2.2/ccache/scripts/punify.go +0 -0
  225. data/lib/guile/2.2/ccache/scripts/read-rfc822.go +0 -0
  226. data/lib/guile/2.2/ccache/scripts/read-scheme-source.go +0 -0
  227. data/lib/guile/2.2/ccache/scripts/read-text-outline.go +0 -0
  228. data/lib/guile/2.2/ccache/scripts/scan-api.go +0 -0
  229. data/lib/guile/2.2/ccache/scripts/snarf-check-and-output-texi.go +0 -0
  230. data/lib/guile/2.2/ccache/scripts/snarf-guile-m4-docs.go +0 -0
  231. data/lib/guile/2.2/ccache/scripts/summarize-guile-TODO.go +0 -0
  232. data/lib/guile/2.2/ccache/scripts/use2dot.go +0 -0
  233. data/lib/guile/2.2/ccache/srfi/srfi-1.go +0 -0
  234. data/lib/guile/2.2/ccache/srfi/srfi-10.go +0 -0
  235. data/lib/guile/2.2/ccache/srfi/srfi-11.go +0 -0
  236. data/lib/guile/2.2/ccache/srfi/srfi-111.go +0 -0
  237. data/lib/guile/2.2/ccache/srfi/srfi-13.go +0 -0
  238. data/lib/guile/2.2/ccache/srfi/srfi-14.go +0 -0
  239. data/lib/guile/2.2/ccache/srfi/srfi-16.go +0 -0
  240. data/lib/guile/2.2/ccache/srfi/srfi-17.go +0 -0
  241. data/lib/guile/2.2/ccache/srfi/srfi-18.go +0 -0
  242. data/lib/guile/2.2/ccache/srfi/srfi-19.go +0 -0
  243. data/lib/guile/2.2/ccache/srfi/srfi-2.go +0 -0
  244. data/lib/guile/2.2/ccache/srfi/srfi-26.go +0 -0
  245. data/lib/guile/2.2/ccache/srfi/srfi-27.go +0 -0
  246. data/lib/guile/2.2/ccache/srfi/srfi-28.go +0 -0
  247. data/lib/guile/2.2/ccache/srfi/srfi-31.go +0 -0
  248. data/lib/guile/2.2/ccache/srfi/srfi-34.go +0 -0
  249. data/lib/guile/2.2/ccache/srfi/srfi-35.go +0 -0
  250. data/lib/guile/2.2/ccache/srfi/srfi-37.go +0 -0
  251. data/lib/guile/2.2/ccache/srfi/srfi-38.go +0 -0
  252. data/lib/guile/2.2/ccache/srfi/srfi-39.go +0 -0
  253. data/lib/guile/2.2/ccache/srfi/srfi-4/gnu.go +0 -0
  254. data/lib/guile/2.2/ccache/srfi/srfi-4.go +0 -0
  255. data/lib/guile/2.2/ccache/srfi/srfi-41.go +0 -0
  256. data/lib/guile/2.2/ccache/srfi/srfi-42.go +0 -0
  257. data/lib/guile/2.2/ccache/srfi/srfi-43.go +0 -0
  258. data/lib/guile/2.2/ccache/srfi/srfi-45.go +0 -0
  259. data/lib/guile/2.2/ccache/srfi/srfi-6.go +0 -0
  260. data/lib/guile/2.2/ccache/srfi/srfi-60.go +0 -0
  261. data/lib/guile/2.2/ccache/srfi/srfi-64.go +0 -0
  262. data/lib/guile/2.2/ccache/srfi/srfi-67.go +0 -0
  263. data/lib/guile/2.2/ccache/srfi/srfi-69.go +0 -0
  264. data/lib/guile/2.2/ccache/srfi/srfi-71.go +0 -0
  265. data/lib/guile/2.2/ccache/srfi/srfi-8.go +0 -0
  266. data/lib/guile/2.2/ccache/srfi/srfi-88.go +0 -0
  267. data/lib/guile/2.2/ccache/srfi/srfi-9/gnu.go +0 -0
  268. data/lib/guile/2.2/ccache/srfi/srfi-9.go +0 -0
  269. data/lib/guile/2.2/ccache/srfi/srfi-98.go +0 -0
  270. data/lib/guile/2.2/ccache/statprof.go +0 -0
  271. data/lib/guile/2.2/ccache/sxml/apply-templates.go +0 -0
  272. data/lib/guile/2.2/ccache/sxml/fold.go +0 -0
  273. data/lib/guile/2.2/ccache/sxml/match.go +0 -0
  274. data/lib/guile/2.2/ccache/sxml/simple.go +0 -0
  275. data/lib/guile/2.2/ccache/sxml/ssax/input-parse.go +0 -0
  276. data/lib/guile/2.2/ccache/sxml/ssax.go +0 -0
  277. data/lib/guile/2.2/ccache/sxml/transform.go +0 -0
  278. data/lib/guile/2.2/ccache/sxml/xpath.go +0 -0
  279. data/lib/guile/2.2/ccache/system/base/ck.go +0 -0
  280. data/lib/guile/2.2/ccache/system/base/compile.go +0 -0
  281. data/lib/guile/2.2/ccache/system/base/lalr.go +0 -0
  282. data/lib/guile/2.2/ccache/system/base/language.go +0 -0
  283. data/lib/guile/2.2/ccache/system/base/message.go +0 -0
  284. data/lib/guile/2.2/ccache/system/base/pmatch.go +0 -0
  285. data/lib/guile/2.2/ccache/system/base/syntax.go +0 -0
  286. data/lib/guile/2.2/ccache/system/base/target.go +0 -0
  287. data/lib/guile/2.2/ccache/system/base/types.go +0 -0
  288. data/lib/guile/2.2/ccache/system/foreign-object.go +0 -0
  289. data/lib/guile/2.2/ccache/system/foreign.go +0 -0
  290. data/lib/guile/2.2/ccache/system/repl/command.go +0 -0
  291. data/lib/guile/2.2/ccache/system/repl/common.go +0 -0
  292. data/lib/guile/2.2/ccache/system/repl/coop-server.go +0 -0
  293. data/lib/guile/2.2/ccache/system/repl/debug.go +0 -0
  294. data/lib/guile/2.2/ccache/system/repl/error-handling.go +0 -0
  295. data/lib/guile/2.2/ccache/system/repl/repl.go +0 -0
  296. data/lib/guile/2.2/ccache/system/repl/server.go +0 -0
  297. data/lib/guile/2.2/ccache/system/syntax.go +0 -0
  298. data/lib/guile/2.2/ccache/system/vm/assembler.go +0 -0
  299. data/lib/guile/2.2/ccache/system/vm/coverage.go +0 -0
  300. data/lib/guile/2.2/ccache/system/vm/debug.go +0 -0
  301. data/lib/guile/2.2/ccache/system/vm/disassembler.go +0 -0
  302. data/lib/guile/2.2/ccache/system/vm/dwarf.go +0 -0
  303. data/lib/guile/2.2/ccache/system/vm/elf.go +0 -0
  304. data/lib/guile/2.2/ccache/system/vm/frame.go +0 -0
  305. data/lib/guile/2.2/ccache/system/vm/inspect.go +0 -0
  306. data/lib/guile/2.2/ccache/system/vm/linker.go +0 -0
  307. data/lib/guile/2.2/ccache/system/vm/loader.go +0 -0
  308. data/lib/guile/2.2/ccache/system/vm/program.go +0 -0
  309. data/lib/guile/2.2/ccache/system/vm/trace.go +0 -0
  310. data/lib/guile/2.2/ccache/system/vm/trap-state.go +0 -0
  311. data/lib/guile/2.2/ccache/system/vm/traps.go +0 -0
  312. data/lib/guile/2.2/ccache/system/vm/vm.go +0 -0
  313. data/lib/guile/2.2/ccache/system/xref.go +0 -0
  314. data/lib/guile/2.2/ccache/texinfo/docbook.go +0 -0
  315. data/lib/guile/2.2/ccache/texinfo/html.go +0 -0
  316. data/lib/guile/2.2/ccache/texinfo/indexing.go +0 -0
  317. data/lib/guile/2.2/ccache/texinfo/plain-text.go +0 -0
  318. data/lib/guile/2.2/ccache/texinfo/reflection.go +0 -0
  319. data/lib/guile/2.2/ccache/texinfo/serialize.go +0 -0
  320. data/lib/guile/2.2/ccache/texinfo/string-utils.go +0 -0
  321. data/lib/guile/2.2/ccache/texinfo.go +0 -0
  322. data/lib/guile/2.2/ccache/web/client.go +0 -0
  323. data/lib/guile/2.2/ccache/web/http.go +0 -0
  324. data/lib/guile/2.2/ccache/web/request.go +0 -0
  325. data/lib/guile/2.2/ccache/web/response.go +0 -0
  326. data/lib/guile/2.2/ccache/web/server/http.go +0 -0
  327. data/lib/guile/2.2/ccache/web/server.go +0 -0
  328. data/lib/guile/2.2/ccache/web/uri.go +0 -0
  329. data/lib/lilypond/2.24.1/ccache/lily/accreg.go +0 -0
  330. data/lib/lilypond/2.24.1/ccache/lily/auto-beam.go +0 -0
  331. data/lib/lilypond/2.24.1/ccache/lily/autochange.go +0 -0
  332. data/lib/lilypond/2.24.1/ccache/lily/backend-library.go +0 -0
  333. data/lib/lilypond/2.24.1/ccache/lily/bar-line.go +0 -0
  334. data/lib/lilypond/2.24.1/ccache/lily/breath.go +0 -0
  335. data/lib/lilypond/2.24.1/ccache/lily/c++.go +0 -0
  336. data/lib/lilypond/2.24.1/ccache/lily/chord-entry.go +0 -0
  337. data/lib/lilypond/2.24.1/ccache/lily/chord-ignatzek-names.go +0 -0
  338. data/lib/lilypond/2.24.1/ccache/lily/chord-name.go +0 -0
  339. data/lib/lilypond/2.24.1/ccache/lily/clip-region.go +0 -0
  340. data/lib/lilypond/2.24.1/ccache/lily/color.go +0 -0
  341. data/lib/lilypond/2.24.1/ccache/lily/curried-definitions.go +0 -0
  342. data/lib/lilypond/2.24.1/ccache/lily/define-context-properties.go +0 -0
  343. data/lib/lilypond/2.24.1/ccache/lily/define-event-classes.go +0 -0
  344. data/lib/lilypond/2.24.1/ccache/lily/define-grob-interfaces.go +0 -0
  345. data/lib/lilypond/2.24.1/ccache/lily/define-grob-properties.go +0 -0
  346. data/lib/lilypond/2.24.1/ccache/lily/define-grobs.go +0 -0
  347. data/lib/lilypond/2.24.1/ccache/lily/define-markup-commands.go +0 -0
  348. data/lib/lilypond/2.24.1/ccache/lily/define-music-callbacks.go +0 -0
  349. data/lib/lilypond/2.24.1/ccache/lily/define-music-display-methods.go +0 -0
  350. data/lib/lilypond/2.24.1/ccache/lily/define-music-properties.go +0 -0
  351. data/lib/lilypond/2.24.1/ccache/lily/define-music-types.go +0 -0
  352. data/lib/lilypond/2.24.1/ccache/lily/define-note-names.go +0 -0
  353. data/lib/lilypond/2.24.1/ccache/lily/define-stencil-commands.go +0 -0
  354. data/lib/lilypond/2.24.1/ccache/lily/define-woodwind-diagrams.go +0 -0
  355. data/lib/lilypond/2.24.1/ccache/lily/display-lily.go +0 -0
  356. data/lib/lilypond/2.24.1/ccache/lily/display-woodwind-diagrams.go +0 -0
  357. data/lib/lilypond/2.24.1/ccache/lily/file-cache.go +0 -0
  358. data/lib/lilypond/2.24.1/ccache/lily/flag-styles.go +0 -0
  359. data/lib/lilypond/2.24.1/ccache/lily/font-encodings.go +0 -0
  360. data/lib/lilypond/2.24.1/ccache/lily/font.go +0 -0
  361. data/lib/lilypond/2.24.1/ccache/lily/framework-cairo.go +0 -0
  362. data/lib/lilypond/2.24.1/ccache/lily/framework-ps.go +0 -0
  363. data/lib/lilypond/2.24.1/ccache/lily/framework-svg.go +0 -0
  364. data/lib/lilypond/2.24.1/ccache/lily/fret-diagrams.go +0 -0
  365. data/lib/lilypond/2.24.1/ccache/lily/graphviz.go +0 -0
  366. data/lib/lilypond/2.24.1/ccache/lily/harp-pedals.go +0 -0
  367. data/lib/lilypond/2.24.1/ccache/lily/layout-beam.go +0 -0
  368. data/lib/lilypond/2.24.1/ccache/lily/layout-slur.go +0 -0
  369. data/lib/lilypond/2.24.1/ccache/lily/lily-library.go +0 -0
  370. data/lib/lilypond/2.24.1/ccache/lily/lily.go +0 -0
  371. data/lib/lilypond/2.24.1/ccache/lily/ly-syntax-constructors.go +0 -0
  372. data/lib/lilypond/2.24.1/ccache/lily/markup-macros.go +0 -0
  373. data/lib/lilypond/2.24.1/ccache/lily/markup.go +0 -0
  374. data/lib/lilypond/2.24.1/ccache/lily/midi.go +0 -0
  375. data/lib/lilypond/2.24.1/ccache/lily/modal-transforms.go +0 -0
  376. data/lib/lilypond/2.24.1/ccache/lily/music-functions.go +0 -0
  377. data/lib/lilypond/2.24.1/ccache/lily/output-lib.go +0 -0
  378. data/lib/lilypond/2.24.1/ccache/lily/output-ps.go +0 -0
  379. data/lib/lilypond/2.24.1/ccache/lily/output-svg.go +0 -0
  380. data/lib/lilypond/2.24.1/ccache/lily/page.go +0 -0
  381. data/lib/lilypond/2.24.1/ccache/lily/paper-system.go +0 -0
  382. data/lib/lilypond/2.24.1/ccache/lily/paper.go +0 -0
  383. data/lib/lilypond/2.24.1/ccache/lily/parser-clef.go +0 -0
  384. data/lib/lilypond/2.24.1/ccache/lily/parser-ly-from-scheme.go +0 -0
  385. data/lib/lilypond/2.24.1/ccache/lily/part-combiner.go +0 -0
  386. data/lib/lilypond/2.24.1/ccache/lily/predefined-fretboards.go +0 -0
  387. data/lib/lilypond/2.24.1/ccache/lily/ps-to-png.go +0 -0
  388. data/lib/lilypond/2.24.1/ccache/lily/scheme-engravers.go +0 -0
  389. data/lib/lilypond/2.24.1/ccache/lily/scheme-performers.go +0 -0
  390. data/lib/lilypond/2.24.1/ccache/lily/script.go +0 -0
  391. data/lib/lilypond/2.24.1/ccache/lily/skyline.go +0 -0
  392. data/lib/lilypond/2.24.1/ccache/lily/song-util.go +0 -0
  393. data/lib/lilypond/2.24.1/ccache/lily/song.go +0 -0
  394. data/lib/lilypond/2.24.1/ccache/lily/stencil.go +0 -0
  395. data/lib/lilypond/2.24.1/ccache/lily/tablature.go +0 -0
  396. data/lib/lilypond/2.24.1/ccache/lily/time-signature-settings.go +0 -0
  397. data/lib/lilypond/2.24.1/ccache/lily/time-signature.go +0 -0
  398. data/lib/lilypond/2.24.1/ccache/lily/titling.go +0 -0
  399. data/lib/lilypond/2.24.1/ccache/lily/to-xml.go +0 -0
  400. data/lib/lilypond/2.24.1/ccache/lily/translation-functions.go +0 -0
  401. data/share/emacs/site-lisp/lilypond-font-lock.el +208 -0
  402. data/share/emacs/site-lisp/lilypond-indent.el +605 -0
  403. data/share/emacs/site-lisp/lilypond-init.el +21 -0
  404. data/share/emacs/site-lisp/lilypond-mode.el +1204 -0
  405. data/share/emacs/site-lisp/lilypond-song.el +556 -0
  406. data/share/emacs/site-lisp/lilypond-what-beat.el +279 -0
  407. data/share/emacs/site-lisp/lilypond-words.el +1428 -0
  408. data/share/guile/2.2/guile-procedures.txt +8860 -0
  409. data/share/guile/2.2/ice-9/and-let-star.scm +73 -0
  410. data/share/guile/2.2/ice-9/arrays.scm +70 -0
  411. data/share/guile/2.2/ice-9/atomic.scm +38 -0
  412. data/share/guile/2.2/ice-9/binary-ports.scm +53 -0
  413. data/share/guile/2.2/ice-9/boot-9.scm +4131 -0
  414. data/share/guile/2.2/ice-9/buffered-input.scm +109 -0
  415. data/share/guile/2.2/ice-9/calling.scm +326 -0
  416. data/share/guile/2.2/ice-9/channel.scm +170 -0
  417. data/share/guile/2.2/ice-9/command-line.scm +477 -0
  418. data/share/guile/2.2/ice-9/common-list.scm +278 -0
  419. data/share/guile/2.2/ice-9/control.scm +110 -0
  420. data/share/guile/2.2/ice-9/curried-definitions.scm +57 -0
  421. data/share/guile/2.2/ice-9/debug.scm +25 -0
  422. data/share/guile/2.2/ice-9/deprecated.scm +93 -0
  423. data/share/guile/2.2/ice-9/documentation.scm +203 -0
  424. data/share/guile/2.2/ice-9/eval-string.scm +90 -0
  425. data/share/guile/2.2/ice-9/eval.scm +723 -0
  426. data/share/guile/2.2/ice-9/expect.scm +171 -0
  427. data/share/guile/2.2/ice-9/fdes-finalizers.scm +25 -0
  428. data/share/guile/2.2/ice-9/format.scm +1626 -0
  429. data/share/guile/2.2/ice-9/ftw.scm +564 -0
  430. data/share/guile/2.2/ice-9/futures.scm +308 -0
  431. data/share/guile/2.2/ice-9/gap-buffer.scm +283 -0
  432. data/share/guile/2.2/ice-9/getopt-long.scm +371 -0
  433. data/share/guile/2.2/ice-9/hash-table.scm +45 -0
  434. data/share/guile/2.2/ice-9/hcons.scm +80 -0
  435. data/share/guile/2.2/ice-9/history.scm +65 -0
  436. data/share/guile/2.2/ice-9/i18n.scm +531 -0
  437. data/share/guile/2.2/ice-9/iconv.scm +95 -0
  438. data/share/guile/2.2/ice-9/lineio.scm +115 -0
  439. data/share/guile/2.2/ice-9/list.scm +36 -0
  440. data/share/guile/2.2/ice-9/local-eval.scm +261 -0
  441. data/share/guile/2.2/ice-9/ls.scm +94 -0
  442. data/share/guile/2.2/ice-9/mapping.scm +118 -0
  443. data/share/guile/2.2/ice-9/match.scm +59 -0
  444. data/share/guile/2.2/ice-9/match.upstream.scm +917 -0
  445. data/share/guile/2.2/ice-9/networking.scm +94 -0
  446. data/share/guile/2.2/ice-9/null.scm +34 -0
  447. data/share/guile/2.2/ice-9/occam-channel.scm +261 -0
  448. data/share/guile/2.2/ice-9/optargs.scm +381 -0
  449. data/share/guile/2.2/ice-9/peg/cache.scm +45 -0
  450. data/share/guile/2.2/ice-9/peg/codegen.scm +359 -0
  451. data/share/guile/2.2/ice-9/peg/simplify-tree.scm +97 -0
  452. data/share/guile/2.2/ice-9/peg/string-peg.scm +273 -0
  453. data/share/guile/2.2/ice-9/peg/using-parsers.scm +116 -0
  454. data/share/guile/2.2/ice-9/peg.scm +42 -0
  455. data/share/guile/2.2/ice-9/poe.scm +116 -0
  456. data/share/guile/2.2/ice-9/poll.scm +172 -0
  457. data/share/guile/2.2/ice-9/popen.scm +178 -0
  458. data/share/guile/2.2/ice-9/ports.scm +566 -0
  459. data/share/guile/2.2/ice-9/posix.scm +75 -0
  460. data/share/guile/2.2/ice-9/pretty-print.scm +483 -0
  461. data/share/guile/2.2/ice-9/psyntax-pp.scm +3542 -0
  462. data/share/guile/2.2/ice-9/psyntax.scm +3326 -0
  463. data/share/guile/2.2/ice-9/q.scm +153 -0
  464. data/share/guile/2.2/ice-9/quasisyntax.scm +136 -0
  465. data/share/guile/2.2/ice-9/r5rs.scm +45 -0
  466. data/share/guile/2.2/ice-9/r6rs-libraries.scm +242 -0
  467. data/share/guile/2.2/ice-9/rdelim.scm +208 -0
  468. data/share/guile/2.2/ice-9/receive.scm +26 -0
  469. data/share/guile/2.2/ice-9/regex.scm +229 -0
  470. data/share/guile/2.2/ice-9/runq.scm +241 -0
  471. data/share/guile/2.2/ice-9/rw.scm +27 -0
  472. data/share/guile/2.2/ice-9/safe-r5rs.scm +145 -0
  473. data/share/guile/2.2/ice-9/safe.scm +34 -0
  474. data/share/guile/2.2/ice-9/sandbox.scm +1399 -0
  475. data/share/guile/2.2/ice-9/save-stack.scm +58 -0
  476. data/share/guile/2.2/ice-9/scm-style-repl.scm +279 -0
  477. data/share/guile/2.2/ice-9/serialize.scm +114 -0
  478. data/share/guile/2.2/ice-9/session.scm +530 -0
  479. data/share/guile/2.2/ice-9/slib.scm +33 -0
  480. data/share/guile/2.2/ice-9/stack-catch.scm +47 -0
  481. data/share/guile/2.2/ice-9/streams.scm +168 -0
  482. data/share/guile/2.2/ice-9/string-fun.scm +280 -0
  483. data/share/guile/2.2/ice-9/suspendable-ports.scm +788 -0
  484. data/share/guile/2.2/ice-9/syncase.scm +37 -0
  485. data/share/guile/2.2/ice-9/textual-ports.scm +70 -0
  486. data/share/guile/2.2/ice-9/threads.scm +392 -0
  487. data/share/guile/2.2/ice-9/time.scm +58 -0
  488. data/share/guile/2.2/ice-9/top-repl.scm +78 -0
  489. data/share/guile/2.2/ice-9/unicode.scm +26 -0
  490. data/share/guile/2.2/ice-9/vlist.scm +595 -0
  491. data/share/guile/2.2/ice-9/weak-vector.scm +31 -0
  492. data/share/guile/2.2/language/brainfuck/compile-scheme.scm +123 -0
  493. data/share/guile/2.2/language/brainfuck/compile-tree-il.scm +184 -0
  494. data/share/guile/2.2/language/brainfuck/parse.scm +95 -0
  495. data/share/guile/2.2/language/brainfuck/spec.scm +43 -0
  496. data/share/guile/2.2/language/bytecode/spec.scm +42 -0
  497. data/share/guile/2.2/language/bytecode.scm +104 -0
  498. data/share/guile/2.2/language/cps/closure-conversion.scm +848 -0
  499. data/share/guile/2.2/language/cps/compile-bytecode.scm +610 -0
  500. data/share/guile/2.2/language/cps/constructors.scm +106 -0
  501. data/share/guile/2.2/language/cps/contification.scm +448 -0
  502. data/share/guile/2.2/language/cps/cse.scm +414 -0
  503. data/share/guile/2.2/language/cps/dce.scm +363 -0
  504. data/share/guile/2.2/language/cps/effects-analysis.scm +597 -0
  505. data/share/guile/2.2/language/cps/elide-values.scm +88 -0
  506. data/share/guile/2.2/language/cps/handle-interrupts.scm +69 -0
  507. data/share/guile/2.2/language/cps/intmap.scm +765 -0
  508. data/share/guile/2.2/language/cps/intset.scm +830 -0
  509. data/share/guile/2.2/language/cps/licm.scm +308 -0
  510. data/share/guile/2.2/language/cps/optimize.scm +135 -0
  511. data/share/guile/2.2/language/cps/peel-loops.scm +287 -0
  512. data/share/guile/2.2/language/cps/primitives.scm +141 -0
  513. data/share/guile/2.2/language/cps/prune-bailouts.scm +86 -0
  514. data/share/guile/2.2/language/cps/prune-top-level-scopes.scm +63 -0
  515. data/share/guile/2.2/language/cps/reify-primitives.scm +179 -0
  516. data/share/guile/2.2/language/cps/renumber.scm +217 -0
  517. data/share/guile/2.2/language/cps/rotate-loops.scm +239 -0
  518. data/share/guile/2.2/language/cps/self-references.scm +79 -0
  519. data/share/guile/2.2/language/cps/simplify.scm +274 -0
  520. data/share/guile/2.2/language/cps/slot-allocation.scm +1058 -0
  521. data/share/guile/2.2/language/cps/spec.scm +51 -0
  522. data/share/guile/2.2/language/cps/specialize-numbers.scm +724 -0
  523. data/share/guile/2.2/language/cps/specialize-primcalls.scm +87 -0
  524. data/share/guile/2.2/language/cps/split-rec.scm +174 -0
  525. data/share/guile/2.2/language/cps/type-checks.scm +72 -0
  526. data/share/guile/2.2/language/cps/type-fold.scm +455 -0
  527. data/share/guile/2.2/language/cps/types.scm +1826 -0
  528. data/share/guile/2.2/language/cps/utils.scm +550 -0
  529. data/share/guile/2.2/language/cps/verify.scm +304 -0
  530. data/share/guile/2.2/language/cps/with-cps.scm +145 -0
  531. data/share/guile/2.2/language/cps.scm +358 -0
  532. data/share/guile/2.2/language/ecmascript/array.scm +121 -0
  533. data/share/guile/2.2/language/ecmascript/base.scm +251 -0
  534. data/share/guile/2.2/language/ecmascript/compile-tree-il.scm +576 -0
  535. data/share/guile/2.2/language/ecmascript/function.scm +78 -0
  536. data/share/guile/2.2/language/ecmascript/impl.scm +169 -0
  537. data/share/guile/2.2/language/ecmascript/parse.scm +352 -0
  538. data/share/guile/2.2/language/ecmascript/spec.scm +37 -0
  539. data/share/guile/2.2/language/ecmascript/tokenize.scm +513 -0
  540. data/share/guile/2.2/language/elisp/bindings.scm +107 -0
  541. data/share/guile/2.2/language/elisp/boot.el +617 -0
  542. data/share/guile/2.2/language/elisp/compile-tree-il.scm +812 -0
  543. data/share/guile/2.2/language/elisp/falias.scm +47 -0
  544. data/share/guile/2.2/language/elisp/lexer.scm +430 -0
  545. data/share/guile/2.2/language/elisp/parser.scm +222 -0
  546. data/share/guile/2.2/language/elisp/runtime/function-slot.scm +63 -0
  547. data/share/guile/2.2/language/elisp/runtime/value-slot.scm +24 -0
  548. data/share/guile/2.2/language/elisp/runtime.scm +153 -0
  549. data/share/guile/2.2/language/elisp/spec.scm +43 -0
  550. data/share/guile/2.2/language/scheme/compile-tree-il.scm +33 -0
  551. data/share/guile/2.2/language/scheme/decompile-tree-il.scm +796 -0
  552. data/share/guile/2.2/language/scheme/spec.scm +63 -0
  553. data/share/guile/2.2/language/tree-il/analyze.scm +1568 -0
  554. data/share/guile/2.2/language/tree-il/canonicalize.scm +82 -0
  555. data/share/guile/2.2/language/tree-il/compile-cps.scm +1149 -0
  556. data/share/guile/2.2/language/tree-il/debug.scm +246 -0
  557. data/share/guile/2.2/language/tree-il/effects.scm +591 -0
  558. data/share/guile/2.2/language/tree-il/fix-letrec.scm +314 -0
  559. data/share/guile/2.2/language/tree-il/optimize.scm +43 -0
  560. data/share/guile/2.2/language/tree-il/peval.scm +1669 -0
  561. data/share/guile/2.2/language/tree-il/primitives.scm +630 -0
  562. data/share/guile/2.2/language/tree-il/spec.scm +46 -0
  563. data/share/guile/2.2/language/tree-il.scm +630 -0
  564. data/share/guile/2.2/language/value/spec.scm +30 -0
  565. data/share/guile/2.2/oop/goops/accessors.scm +72 -0
  566. data/share/guile/2.2/oop/goops/active-slot.scm +63 -0
  567. data/share/guile/2.2/oop/goops/composite-slot.scm +83 -0
  568. data/share/guile/2.2/oop/goops/describe.scm +189 -0
  569. data/share/guile/2.2/oop/goops/internal.scm +30 -0
  570. data/share/guile/2.2/oop/goops/save.scm +874 -0
  571. data/share/guile/2.2/oop/goops/simple.scm +30 -0
  572. data/share/guile/2.2/oop/goops/stklos.scm +74 -0
  573. data/share/guile/2.2/oop/goops.scm +3176 -0
  574. data/share/guile/2.2/rnrs/arithmetic/bitwise.scm +92 -0
  575. data/share/guile/2.2/rnrs/arithmetic/fixnums.scm +291 -0
  576. data/share/guile/2.2/rnrs/arithmetic/flonums.scm +203 -0
  577. data/share/guile/2.2/rnrs/base.scm +291 -0
  578. data/share/guile/2.2/rnrs/bytevectors.scm +83 -0
  579. data/share/guile/2.2/rnrs/conditions.scm +225 -0
  580. data/share/guile/2.2/rnrs/control.scm +22 -0
  581. data/share/guile/2.2/rnrs/enums.scm +152 -0
  582. data/share/guile/2.2/rnrs/eval.scm +39 -0
  583. data/share/guile/2.2/rnrs/exceptions.scm +276 -0
  584. data/share/guile/2.2/rnrs/files.scm +96 -0
  585. data/share/guile/2.2/rnrs/hashtables.scm +190 -0
  586. data/share/guile/2.2/rnrs/io/ports.scm +554 -0
  587. data/share/guile/2.2/rnrs/io/simple.scm +167 -0
  588. data/share/guile/2.2/rnrs/lists.scm +55 -0
  589. data/share/guile/2.2/rnrs/mutable-pairs.scm +23 -0
  590. data/share/guile/2.2/rnrs/mutable-strings.scm +23 -0
  591. data/share/guile/2.2/rnrs/programs.scm +22 -0
  592. data/share/guile/2.2/rnrs/r5rs.scm +34 -0
  593. data/share/guile/2.2/rnrs/records/inspection.scm +81 -0
  594. data/share/guile/2.2/rnrs/records/procedural.scm +289 -0
  595. data/share/guile/2.2/rnrs/records/syntactic.scm +248 -0
  596. data/share/guile/2.2/rnrs/sorting.scm +27 -0
  597. data/share/guile/2.2/rnrs/syntax-case.scm +68 -0
  598. data/share/guile/2.2/rnrs/unicode.scm +104 -0
  599. data/share/guile/2.2/rnrs.scm +289 -0
  600. data/share/guile/2.2/scripts/api-diff.scm +179 -0
  601. data/share/guile/2.2/scripts/autofrisk.scm +218 -0
  602. data/share/guile/2.2/scripts/compile.scm +273 -0
  603. data/share/guile/2.2/scripts/disassemble.scm +38 -0
  604. data/share/guile/2.2/scripts/display-commentary.scm +67 -0
  605. data/share/guile/2.2/scripts/doc-snarf.scm +439 -0
  606. data/share/guile/2.2/scripts/frisk.scm +290 -0
  607. data/share/guile/2.2/scripts/generate-autoload.scm +144 -0
  608. data/share/guile/2.2/scripts/help.scm +188 -0
  609. data/share/guile/2.2/scripts/lint.scm +318 -0
  610. data/share/guile/2.2/scripts/list.scm +91 -0
  611. data/share/guile/2.2/scripts/punify.scm +87 -0
  612. data/share/guile/2.2/scripts/read-rfc822.scm +131 -0
  613. data/share/guile/2.2/scripts/read-scheme-source.scm +282 -0
  614. data/share/guile/2.2/scripts/read-text-outline.scm +253 -0
  615. data/share/guile/2.2/scripts/scan-api.scm +223 -0
  616. data/share/guile/2.2/scripts/snarf-check-and-output-texi.scm +303 -0
  617. data/share/guile/2.2/scripts/snarf-guile-m4-docs.scm +86 -0
  618. data/share/guile/2.2/scripts/summarize-guile-TODO.scm +213 -0
  619. data/share/guile/2.2/scripts/use2dot.scm +110 -0
  620. data/share/guile/2.2/srfi/srfi-1.scm +1061 -0
  621. data/share/guile/2.2/srfi/srfi-10.scm +89 -0
  622. data/share/guile/2.2/srfi/srfi-11.scm +146 -0
  623. data/share/guile/2.2/srfi/srfi-111.scm +37 -0
  624. data/share/guile/2.2/srfi/srfi-13.scm +132 -0
  625. data/share/guile/2.2/srfi/srfi-14.scm +99 -0
  626. data/share/guile/2.2/srfi/srfi-16.scm +51 -0
  627. data/share/guile/2.2/srfi/srfi-17.scm +174 -0
  628. data/share/guile/2.2/srfi/srfi-18.scm +382 -0
  629. data/share/guile/2.2/srfi/srfi-19.scm +1470 -0
  630. data/share/guile/2.2/srfi/srfi-2.scm +31 -0
  631. data/share/guile/2.2/srfi/srfi-26.scm +66 -0
  632. data/share/guile/2.2/srfi/srfi-27.scm +96 -0
  633. data/share/guile/2.2/srfi/srfi-28.scm +34 -0
  634. data/share/guile/2.2/srfi/srfi-31.scm +35 -0
  635. data/share/guile/2.2/srfi/srfi-34.scm +84 -0
  636. data/share/guile/2.2/srfi/srfi-35.scm +351 -0
  637. data/share/guile/2.2/srfi/srfi-37.scm +234 -0
  638. data/share/guile/2.2/srfi/srfi-38.scm +207 -0
  639. data/share/guile/2.2/srfi/srfi-39.scm +55 -0
  640. data/share/guile/2.2/srfi/srfi-4/gnu.scm +80 -0
  641. data/share/guile/2.2/srfi/srfi-4.scm +118 -0
  642. data/share/guile/2.2/srfi/srfi-41.scm +505 -0
  643. data/share/guile/2.2/srfi/srfi-42/ec.scm +1053 -0
  644. data/share/guile/2.2/srfi/srfi-42.scm +66 -0
  645. data/share/guile/2.2/srfi/srfi-43.scm +1077 -0
  646. data/share/guile/2.2/srfi/srfi-45.scm +93 -0
  647. data/share/guile/2.2/srfi/srfi-6.scm +29 -0
  648. data/share/guile/2.2/srfi/srfi-60.scm +73 -0
  649. data/share/guile/2.2/srfi/srfi-64/testing.scm +1040 -0
  650. data/share/guile/2.2/srfi/srfi-64.scm +55 -0
  651. data/share/guile/2.2/srfi/srfi-67/compare.scm +686 -0
  652. data/share/guile/2.2/srfi/srfi-67.scm +88 -0
  653. data/share/guile/2.2/srfi/srfi-69.scm +336 -0
  654. data/share/guile/2.2/srfi/srfi-71.scm +267 -0
  655. data/share/guile/2.2/srfi/srfi-8.scm +31 -0
  656. data/share/guile/2.2/srfi/srfi-88.scm +53 -0
  657. data/share/guile/2.2/srfi/srfi-9/gnu.scm +168 -0
  658. data/share/guile/2.2/srfi/srfi-9.scm +351 -0
  659. data/share/guile/2.2/srfi/srfi-98.scm +44 -0
  660. data/share/guile/2.2/statprof.scm +988 -0
  661. data/share/guile/2.2/sxml/apply-templates.scm +102 -0
  662. data/share/guile/2.2/sxml/fold.scm +250 -0
  663. data/share/guile/2.2/sxml/match.scm +75 -0
  664. data/share/guile/2.2/sxml/simple.scm +408 -0
  665. data/share/guile/2.2/sxml/ssax/input-parse.scm +180 -0
  666. data/share/guile/2.2/sxml/ssax.scm +265 -0
  667. data/share/guile/2.2/sxml/sxml-match.ss +1181 -0
  668. data/share/guile/2.2/sxml/transform.scm +298 -0
  669. data/share/guile/2.2/sxml/upstream/SSAX.scm +3235 -0
  670. data/share/guile/2.2/sxml/upstream/SXML-tree-trans.scm +249 -0
  671. data/share/guile/2.2/sxml/upstream/SXPath-old.scm +1216 -0
  672. data/share/guile/2.2/sxml/upstream/assert.scm +35 -0
  673. data/share/guile/2.2/sxml/upstream/input-parse.scm +326 -0
  674. data/share/guile/2.2/sxml/xpath.scm +493 -0
  675. data/share/guile/2.2/system/base/ck.scm +55 -0
  676. data/share/guile/2.2/system/base/compile.scm +282 -0
  677. data/share/guile/2.2/system/base/lalr.scm +51 -0
  678. data/share/guile/2.2/system/base/lalr.upstream.scm +2096 -0
  679. data/share/guile/2.2/system/base/language.scm +119 -0
  680. data/share/guile/2.2/system/base/message.scm +238 -0
  681. data/share/guile/2.2/system/base/pmatch.scm +68 -0
  682. data/share/guile/2.2/system/base/syntax.scm +299 -0
  683. data/share/guile/2.2/system/base/target.scm +152 -0
  684. data/share/guile/2.2/system/base/types.scm +561 -0
  685. data/share/guile/2.2/system/foreign-object.scm +91 -0
  686. data/share/guile/2.2/system/foreign.scm +200 -0
  687. data/share/guile/2.2/system/repl/command.scm +946 -0
  688. data/share/guile/2.2/system/repl/common.scm +263 -0
  689. data/share/guile/2.2/system/repl/coop-server.scm +200 -0
  690. data/share/guile/2.2/system/repl/debug.scm +210 -0
  691. data/share/guile/2.2/system/repl/describe.scm +347 -0
  692. data/share/guile/2.2/system/repl/error-handling.scm +183 -0
  693. data/share/guile/2.2/system/repl/repl.scm +233 -0
  694. data/share/guile/2.2/system/repl/server.scm +332 -0
  695. data/share/guile/2.2/system/syntax.scm +33 -0
  696. data/share/guile/2.2/system/vm/assembler.scm +2614 -0
  697. data/share/guile/2.2/system/vm/coverage.scm +351 -0
  698. data/share/guile/2.2/system/vm/debug.scm +766 -0
  699. data/share/guile/2.2/system/vm/disassembler.scm +658 -0
  700. data/share/guile/2.2/system/vm/dwarf.scm +1852 -0
  701. data/share/guile/2.2/system/vm/elf.scm +1042 -0
  702. data/share/guile/2.2/system/vm/frame.scm +485 -0
  703. data/share/guile/2.2/system/vm/inspect.scm +188 -0
  704. data/share/guile/2.2/system/vm/linker.scm +732 -0
  705. data/share/guile/2.2/system/vm/loader.scm +27 -0
  706. data/share/guile/2.2/system/vm/program.scm +312 -0
  707. data/share/guile/2.2/system/vm/trace.scm +121 -0
  708. data/share/guile/2.2/system/vm/trap-state.scm +302 -0
  709. data/share/guile/2.2/system/vm/traps.scm +608 -0
  710. data/share/guile/2.2/system/vm/vm.scm +32 -0
  711. data/share/guile/2.2/system/xref.scm +369 -0
  712. data/share/guile/2.2/texinfo/docbook.scm +240 -0
  713. data/share/guile/2.2/texinfo/html.scm +279 -0
  714. data/share/guile/2.2/texinfo/indexing.scm +75 -0
  715. data/share/guile/2.2/texinfo/plain-text.scm +322 -0
  716. data/share/guile/2.2/texinfo/reflection.scm +585 -0
  717. data/share/guile/2.2/texinfo/serialize.scm +300 -0
  718. data/share/guile/2.2/texinfo/string-utils.scm +410 -0
  719. data/share/guile/2.2/texinfo.scm +1263 -0
  720. data/share/guile/2.2/web/client.scm +513 -0
  721. data/share/guile/2.2/web/http.scm +2043 -0
  722. data/share/guile/2.2/web/request.scm +326 -0
  723. data/share/guile/2.2/web/response.scm +379 -0
  724. data/share/guile/2.2/web/server/http.scm +183 -0
  725. data/share/guile/2.2/web/server.scm +397 -0
  726. data/share/guile/2.2/web/uri.scm +552 -0
  727. data/share/lilypond/2.24.1/fontconfig/0bd3dc0958fa2205aaaa8ebb13e2872b-le64.cache-8 +0 -0
  728. data/share/lilypond/2.24.1/fontconfig/188ac73a183f12857f63bb60a4a6d603-le64.cache-8 +0 -0
  729. data/share/lilypond/2.24.1/fontconfig/32b6488e5b8292a2e95c79d947e009e8-le64.cache-8 +0 -0
  730. data/share/lilypond/2.24.1/fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le64.cache-8 +0 -0
  731. data/share/lilypond/2.24.1/fontconfig/3f7329c5293ffd510edef78f73874cfd-le64.cache-8 +0 -0
  732. data/share/lilypond/2.24.1/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-le64.cache-8 +0 -0
  733. data/share/lilypond/2.24.1/fontconfig/57e423e26b20ab21d0f2f29c145174c3-le64.cache-8 +0 -0
  734. data/share/lilypond/2.24.1/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-8 +0 -0
  735. data/share/lilypond/2.24.1/fontconfig/826f6b6ef79022e2eac8af26bf4b62f2-le64.cache-8 +0 -0
  736. data/share/lilypond/2.24.1/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-8 +0 -0
  737. data/share/lilypond/2.24.1/fontconfig/95530828ff6c81d309f8258d8d02a23e-le64.cache-8 +0 -0
  738. data/share/lilypond/2.24.1/fontconfig/CACHEDIR.TAG +4 -0
  739. data/share/lilypond/2.24.1/fontconfig/bf3b770c553c462765856025a94f1ce6-le64.cache-8 +0 -0
  740. data/share/lilypond/2.24.1/fontconfig/c855463f699352c367813e37f3f70ea7-le64.cache-8 +0 -0
  741. data/share/lilypond/2.24.1/fontconfig/d3e5c4ee2ceb1fc347f91d4cefc53bc0-le64.cache-8 +0 -0
  742. data/share/lilypond/2.24.1/fontconfig/d589a48862398ed80a3d6066f4f56f4c-le64.cache-8 +0 -0
  743. data/share/lilypond/2.24.1/fontconfig/d82eb4fd963d448e2fcb7d7b793b5df3-le64.cache-8 +0 -0
  744. data/share/lilypond/2.24.1/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le64.cache-8 +0 -0
  745. data/share/lilypond/2.24.1/fontconfig/e52a45a1c8c8fe895fc0fc8c4e6999b8-le64.cache-8 +0 -0
  746. data/share/lilypond/2.24.1/fontconfig/f1f2465696798768e9653f19e17ccdc8-le64.cache-8 +0 -0
  747. data/share/lilypond/2.24.1/fonts/00-lilypond-fonts.conf +99 -0
  748. data/share/lilypond/2.24.1/fonts/99-lilypond-fonts.conf +28 -0
  749. data/share/lilypond/2.24.1/fonts/otf/C059-BdIta.otf +0 -0
  750. data/share/lilypond/2.24.1/fonts/otf/C059-Bold.otf +0 -0
  751. data/share/lilypond/2.24.1/fonts/otf/C059-Italic.otf +0 -0
  752. data/share/lilypond/2.24.1/fonts/otf/C059-Roman.otf +0 -0
  753. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Bold.otf +0 -0
  754. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-BoldItalic.otf +0 -0
  755. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Italic.otf +0 -0
  756. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Regular.otf +0 -0
  757. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Bold.otf +0 -0
  758. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-BoldItalic.otf +0 -0
  759. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Italic.otf +0 -0
  760. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Regular.otf +0 -0
  761. data/share/lilypond/2.24.1/fonts/otf/emmentaler-11.otf +0 -0
  762. data/share/lilypond/2.24.1/fonts/otf/emmentaler-13.otf +0 -0
  763. data/share/lilypond/2.24.1/fonts/otf/emmentaler-14.otf +0 -0
  764. data/share/lilypond/2.24.1/fonts/otf/emmentaler-16.otf +0 -0
  765. data/share/lilypond/2.24.1/fonts/otf/emmentaler-18.otf +0 -0
  766. data/share/lilypond/2.24.1/fonts/otf/emmentaler-20.otf +0 -0
  767. data/share/lilypond/2.24.1/fonts/otf/emmentaler-23.otf +0 -0
  768. data/share/lilypond/2.24.1/fonts/otf/emmentaler-26.otf +0 -0
  769. data/share/lilypond/2.24.1/fonts/otf/emmentaler-brace.otf +0 -0
  770. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bold.otf +0 -0
  771. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bolditalic.otf +0 -0
  772. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-italic.otf +0 -0
  773. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-regular.otf +0 -0
  774. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bold.otf +0 -0
  775. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bolditalic.otf +0 -0
  776. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-italic.otf +0 -0
  777. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-regular.otf +0 -0
  778. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bold.otf +0 -0
  779. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bolditalic.otf +0 -0
  780. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-italic.otf +0 -0
  781. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-regular.otf +0 -0
  782. data/share/lilypond/2.24.1/fonts/source/common-modules-and-initialization.mf +26 -0
  783. data/share/lilypond/2.24.1/fonts/source/debugging-settings.mf +14 -0
  784. data/share/lilypond/2.24.1/fonts/source/declare-autometric-parameters.mf +9 -0
  785. data/share/lilypond/2.24.1/fonts/source/feta-accidentals.mf +58 -0
  786. data/share/lilypond/2.24.1/fonts/source/feta-accordion.mf +575 -0
  787. data/share/lilypond/2.24.1/fonts/source/feta-alphabet-generic.mf +16 -0
  788. data/share/lilypond/2.24.1/fonts/source/feta-alphabet11.mf +6 -0
  789. data/share/lilypond/2.24.1/fonts/source/feta-alphabet13.mf +6 -0
  790. data/share/lilypond/2.24.1/fonts/source/feta-alphabet14.mf +6 -0
  791. data/share/lilypond/2.24.1/fonts/source/feta-alphabet16.mf +6 -0
  792. data/share/lilypond/2.24.1/fonts/source/feta-alphabet18.mf +6 -0
  793. data/share/lilypond/2.24.1/fonts/source/feta-alphabet20.mf +6 -0
  794. data/share/lilypond/2.24.1/fonts/source/feta-alphabet23.mf +6 -0
  795. data/share/lilypond/2.24.1/fonts/source/feta-alphabet26.mf +6 -0
  796. data/share/lilypond/2.24.1/fonts/source/feta-arrow.mf +114 -0
  797. data/share/lilypond/2.24.1/fonts/source/feta-arrowheads.mf +171 -0
  798. data/share/lilypond/2.24.1/fonts/source/feta-autometric.mf +303 -0
  799. data/share/lilypond/2.24.1/fonts/source/feta-braces-a.mf +6 -0
  800. data/share/lilypond/2.24.1/fonts/source/feta-braces-b.mf +6 -0
  801. data/share/lilypond/2.24.1/fonts/source/feta-braces-c.mf +6 -0
  802. data/share/lilypond/2.24.1/fonts/source/feta-braces-d.mf +6 -0
  803. data/share/lilypond/2.24.1/fonts/source/feta-braces-e.mf +6 -0
  804. data/share/lilypond/2.24.1/fonts/source/feta-braces-f.mf +6 -0
  805. data/share/lilypond/2.24.1/fonts/source/feta-braces-g.mf +6 -0
  806. data/share/lilypond/2.24.1/fonts/source/feta-braces-generic.mf +47 -0
  807. data/share/lilypond/2.24.1/fonts/source/feta-braces-h.mf +6 -0
  808. data/share/lilypond/2.24.1/fonts/source/feta-braces-i.mf +6 -0
  809. data/share/lilypond/2.24.1/fonts/source/feta-braces.mf +125 -0
  810. data/share/lilypond/2.24.1/fonts/source/feta-brackettips.mf +100 -0
  811. data/share/lilypond/2.24.1/fonts/source/feta-clefs.mf +963 -0
  812. data/share/lilypond/2.24.1/fonts/source/feta-dots.mf +37 -0
  813. data/share/lilypond/2.24.1/fonts/source/feta-dynamics.mf +891 -0
  814. data/share/lilypond/2.24.1/fonts/source/feta-flags-generic.mf +17 -0
  815. data/share/lilypond/2.24.1/fonts/source/feta-flags.mf +926 -0
  816. data/share/lilypond/2.24.1/fonts/source/feta-flags11.mf +6 -0
  817. data/share/lilypond/2.24.1/fonts/source/feta-flags13.mf +6 -0
  818. data/share/lilypond/2.24.1/fonts/source/feta-flags14.mf +6 -0
  819. data/share/lilypond/2.24.1/fonts/source/feta-flags16.mf +6 -0
  820. data/share/lilypond/2.24.1/fonts/source/feta-flags18.mf +6 -0
  821. data/share/lilypond/2.24.1/fonts/source/feta-flags20.mf +6 -0
  822. data/share/lilypond/2.24.1/fonts/source/feta-flags23.mf +6 -0
  823. data/share/lilypond/2.24.1/fonts/source/feta-flags26.mf +6 -0
  824. data/share/lilypond/2.24.1/fonts/source/feta-flats.mf +668 -0
  825. data/share/lilypond/2.24.1/fonts/source/feta-macros.mf +506 -0
  826. data/share/lilypond/2.24.1/fonts/source/feta-naturals.mf +223 -0
  827. data/share/lilypond/2.24.1/fonts/source/feta-noteheads-generic.mf +17 -0
  828. data/share/lilypond/2.24.1/fonts/source/feta-noteheads.mf +2642 -0
  829. data/share/lilypond/2.24.1/fonts/source/feta-noteheads11.mf +6 -0
  830. data/share/lilypond/2.24.1/fonts/source/feta-noteheads13.mf +6 -0
  831. data/share/lilypond/2.24.1/fonts/source/feta-noteheads14.mf +6 -0
  832. data/share/lilypond/2.24.1/fonts/source/feta-noteheads16.mf +6 -0
  833. data/share/lilypond/2.24.1/fonts/source/feta-noteheads18.mf +6 -0
  834. data/share/lilypond/2.24.1/fonts/source/feta-noteheads20.mf +6 -0
  835. data/share/lilypond/2.24.1/fonts/source/feta-noteheads23.mf +6 -0
  836. data/share/lilypond/2.24.1/fonts/source/feta-noteheads26.mf +6 -0
  837. data/share/lilypond/2.24.1/fonts/source/feta-numbers.mf +1677 -0
  838. data/share/lilypond/2.24.1/fonts/source/feta-other-generic.mf +27 -0
  839. data/share/lilypond/2.24.1/fonts/source/feta-params.mf +323 -0
  840. data/share/lilypond/2.24.1/fonts/source/feta-parenthesis.mf +63 -0
  841. data/share/lilypond/2.24.1/fonts/source/feta-pedals.mf +355 -0
  842. data/share/lilypond/2.24.1/fonts/source/feta-rests.mf +890 -0
  843. data/share/lilypond/2.24.1/fonts/source/feta-scripts.mf +2206 -0
  844. data/share/lilypond/2.24.1/fonts/source/feta-sharps.mf +524 -0
  845. data/share/lilypond/2.24.1/fonts/source/feta-sori-koron.mf +325 -0
  846. data/share/lilypond/2.24.1/fonts/source/feta-ties.mf +72 -0
  847. data/share/lilypond/2.24.1/fonts/source/feta-timesignatures.mf +119 -0
  848. data/share/lilypond/2.24.1/fonts/source/feta-trills.mf +321 -0
  849. data/share/lilypond/2.24.1/fonts/source/feta11.mf +6 -0
  850. data/share/lilypond/2.24.1/fonts/source/feta13.mf +6 -0
  851. data/share/lilypond/2.24.1/fonts/source/feta14.mf +6 -0
  852. data/share/lilypond/2.24.1/fonts/source/feta16.mf +6 -0
  853. data/share/lilypond/2.24.1/fonts/source/feta18.mf +6 -0
  854. data/share/lilypond/2.24.1/fonts/source/feta20.mf +7 -0
  855. data/share/lilypond/2.24.1/fonts/source/feta23.mf +6 -0
  856. data/share/lilypond/2.24.1/fonts/source/feta26.mf +6 -0
  857. data/share/lilypond/2.24.1/fonts/source/parmesan-accidentals.mf +483 -0
  858. data/share/lilypond/2.24.1/fonts/source/parmesan-clefs.mf +1636 -0
  859. data/share/lilypond/2.24.1/fonts/source/parmesan-custodes.mf +503 -0
  860. data/share/lilypond/2.24.1/fonts/source/parmesan-dots.mf +62 -0
  861. data/share/lilypond/2.24.1/fonts/source/parmesan-flags.mf +319 -0
  862. data/share/lilypond/2.24.1/fonts/source/parmesan-macros.mf +225 -0
  863. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads-generic.mf +16 -0
  864. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads.mf +2191 -0
  865. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads11.mf +6 -0
  866. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads13.mf +6 -0
  867. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads14.mf +6 -0
  868. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads16.mf +6 -0
  869. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads18.mf +6 -0
  870. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads20.mf +6 -0
  871. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads23.mf +6 -0
  872. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads26.mf +6 -0
  873. data/share/lilypond/2.24.1/fonts/source/parmesan-other-generic.mf +24 -0
  874. data/share/lilypond/2.24.1/fonts/source/parmesan-rests.mf +428 -0
  875. data/share/lilypond/2.24.1/fonts/source/parmesan-scripts.mf +284 -0
  876. data/share/lilypond/2.24.1/fonts/source/parmesan-timesignatures.mf +402 -0
  877. data/share/lilypond/2.24.1/fonts/source/parmesan11.mf +6 -0
  878. data/share/lilypond/2.24.1/fonts/source/parmesan13.mf +6 -0
  879. data/share/lilypond/2.24.1/fonts/source/parmesan14.mf +6 -0
  880. data/share/lilypond/2.24.1/fonts/source/parmesan16.mf +6 -0
  881. data/share/lilypond/2.24.1/fonts/source/parmesan18.mf +6 -0
  882. data/share/lilypond/2.24.1/fonts/source/parmesan20.mf +6 -0
  883. data/share/lilypond/2.24.1/fonts/source/parmesan23.mf +6 -0
  884. data/share/lilypond/2.24.1/fonts/source/parmesan26.mf +6 -0
  885. data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.svg +2525 -0
  886. data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.woff +0 -0
  887. data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.svg +2530 -0
  888. data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.woff +0 -0
  889. data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.svg +2526 -0
  890. data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.woff +0 -0
  891. data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.svg +2523 -0
  892. data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.woff +0 -0
  893. data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.svg +2519 -0
  894. data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.woff +0 -0
  895. data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.svg +2512 -0
  896. data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.woff +0 -0
  897. data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.svg +2506 -0
  898. data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.woff +0 -0
  899. data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.svg +2510 -0
  900. data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.woff +0 -0
  901. data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.svg +1757 -0
  902. data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.woff +0 -0
  903. data/share/lilypond/2.24.1/ly/Welcome_to_LilyPond.ly +45 -0
  904. data/share/lilypond/2.24.1/ly/arabic.ly +185 -0
  905. data/share/lilypond/2.24.1/ly/articulate.ly +1013 -0
  906. data/share/lilypond/2.24.1/ly/bagpipe.ly +368 -0
  907. data/share/lilypond/2.24.1/ly/base-tkit.ly +135 -0
  908. data/share/lilypond/2.24.1/ly/catalan.ly +23 -0
  909. data/share/lilypond/2.24.1/ly/chord-modifiers-init.ly +63 -0
  910. data/share/lilypond/2.24.1/ly/chord-repetition-init.ly +60 -0
  911. data/share/lilypond/2.24.1/ly/context-mods-init.ly +119 -0
  912. data/share/lilypond/2.24.1/ly/declarations-init.ly +167 -0
  913. data/share/lilypond/2.24.1/ly/deutsch.ly +23 -0
  914. data/share/lilypond/2.24.1/ly/drumpitch-init.ly +366 -0
  915. data/share/lilypond/2.24.1/ly/dynamic-scripts-init.ly +54 -0
  916. data/share/lilypond/2.24.1/ly/english.ly +23 -0
  917. data/share/lilypond/2.24.1/ly/engraver-init.ly +1619 -0
  918. data/share/lilypond/2.24.1/ly/espanol.ly +23 -0
  919. data/share/lilypond/2.24.1/ly/event-listener.ly +241 -0
  920. data/share/lilypond/2.24.1/ly/festival.ly +38 -0
  921. data/share/lilypond/2.24.1/ly/generate-documentation.ly +7 -0
  922. data/share/lilypond/2.24.1/ly/grace-init.ly +56 -0
  923. data/share/lilypond/2.24.1/ly/graphviz-init.ly +174 -0
  924. data/share/lilypond/2.24.1/ly/gregorian.ly +268 -0
  925. data/share/lilypond/2.24.1/ly/guile-debugger.ly +55 -0
  926. data/share/lilypond/2.24.1/ly/hel-arabic.ly +307 -0
  927. data/share/lilypond/2.24.1/ly/init.ly +96 -0
  928. data/share/lilypond/2.24.1/ly/italiano.ly +23 -0
  929. data/share/lilypond/2.24.1/ly/lilypond-book-preamble.ly +47 -0
  930. data/share/lilypond/2.24.1/ly/lyrics-tkit.ly +68 -0
  931. data/share/lilypond/2.24.1/ly/makam.ly +166 -0
  932. data/share/lilypond/2.24.1/ly/midi-init.ly +59 -0
  933. data/share/lilypond/2.24.1/ly/music-functions-init.ly +2254 -0
  934. data/share/lilypond/2.24.1/ly/nederlands.ly +23 -0
  935. data/share/lilypond/2.24.1/ly/norsk.ly +23 -0
  936. data/share/lilypond/2.24.1/ly/paper-defaults-init.ly +188 -0
  937. data/share/lilypond/2.24.1/ly/performer-init.ly +398 -0
  938. data/share/lilypond/2.24.1/ly/persian.ly +335 -0
  939. data/share/lilypond/2.24.1/ly/piano-tkit.ly +61 -0
  940. data/share/lilypond/2.24.1/ly/portugues.ly +23 -0
  941. data/share/lilypond/2.24.1/ly/predefined-fretboards-init.ly +78 -0
  942. data/share/lilypond/2.24.1/ly/predefined-guitar-fretboards.ly +506 -0
  943. data/share/lilypond/2.24.1/ly/predefined-guitar-ninth-fretboards.ly +75 -0
  944. data/share/lilypond/2.24.1/ly/predefined-mandolin-fretboards.ly +876 -0
  945. data/share/lilypond/2.24.1/ly/predefined-ukulele-fretboards.ly +1285 -0
  946. data/share/lilypond/2.24.1/ly/property-init.ly +858 -0
  947. data/share/lilypond/2.24.1/ly/satb.ly +214 -0
  948. data/share/lilypond/2.24.1/ly/scale-definitions-init.ly +117 -0
  949. data/share/lilypond/2.24.1/ly/scheme-sandbox.ly +39 -0
  950. data/share/lilypond/2.24.1/ly/script-init.ly +94 -0
  951. data/share/lilypond/2.24.1/ly/spanners-init.ly +146 -0
  952. data/share/lilypond/2.24.1/ly/ssaattbb.ly +335 -0
  953. data/share/lilypond/2.24.1/ly/staff-tkit.ly +182 -0
  954. data/share/lilypond/2.24.1/ly/string-tunings-init.ly +94 -0
  955. data/share/lilypond/2.24.1/ly/suomi.ly +23 -0
  956. data/share/lilypond/2.24.1/ly/svenska.ly +23 -0
  957. data/share/lilypond/2.24.1/ly/swing.ly +362 -0
  958. data/share/lilypond/2.24.1/ly/text-replacements.ly +150 -0
  959. data/share/lilypond/2.24.1/ly/titling-init.ly +150 -0
  960. data/share/lilypond/2.24.1/ly/toc-init.ly +182 -0
  961. data/share/lilypond/2.24.1/ly/turkish-makam.ly +609 -0
  962. data/share/lilypond/2.24.1/ly/vlaams.ly +23 -0
  963. data/share/lilypond/2.24.1/ly/vocal-tkit.ly +103 -0
  964. data/share/lilypond/2.24.1/ly/voice-tkit.ly +34 -0
  965. data/share/lilypond/2.24.1/ps/encodingdefs.ps +2611 -0
  966. data/share/lilypond/2.24.1/ps/lilyponddefs.ps +49 -0
  967. data/share/lilypond/2.24.1/ps/music-drawing-routines.ps +329 -0
  968. data/share/lilypond/2.24.1/python/__pycache__/book_base.cpython-310.pyc +0 -0
  969. data/share/lilypond/2.24.1/python/__pycache__/book_docbook.cpython-310.pyc +0 -0
  970. data/share/lilypond/2.24.1/python/__pycache__/book_html.cpython-310.pyc +0 -0
  971. data/share/lilypond/2.24.1/python/__pycache__/book_latex.cpython-310.pyc +0 -0
  972. data/share/lilypond/2.24.1/python/__pycache__/book_snippets.cpython-310.pyc +0 -0
  973. data/share/lilypond/2.24.1/python/__pycache__/book_texinfo.cpython-310.pyc +0 -0
  974. data/share/lilypond/2.24.1/python/__pycache__/convertrules.cpython-310.pyc +0 -0
  975. data/share/lilypond/2.24.1/python/__pycache__/langdefs.cpython-310.pyc +0 -0
  976. data/share/lilypond/2.24.1/python/__pycache__/lilylib.cpython-310.pyc +0 -0
  977. data/share/lilypond/2.24.1/python/__pycache__/midi.cpython-310.pyc +0 -0
  978. data/share/lilypond/2.24.1/python/__pycache__/musicexp.cpython-310.pyc +0 -0
  979. data/share/lilypond/2.24.1/python/__pycache__/musicxml.cpython-310.pyc +0 -0
  980. data/share/lilypond/2.24.1/python/__pycache__/musicxml2ly_conversion.cpython-310.pyc +0 -0
  981. data/share/lilypond/2.24.1/python/__pycache__/utilities.cpython-310.pyc +0 -0
  982. data/share/lilypond/2.24.1/python/book_base.py +331 -0
  983. data/share/lilypond/2.24.1/python/book_docbook.py +154 -0
  984. data/share/lilypond/2.24.1/python/book_html.py +178 -0
  985. data/share/lilypond/2.24.1/python/book_latex.py +373 -0
  986. data/share/lilypond/2.24.1/python/book_snippets.py +1052 -0
  987. data/share/lilypond/2.24.1/python/book_texinfo.py +437 -0
  988. data/share/lilypond/2.24.1/python/convertrules.py +4764 -0
  989. data/share/lilypond/2.24.1/python/langdefs.py +131 -0
  990. data/share/lilypond/2.24.1/python/lilylib.py +141 -0
  991. data/share/lilypond/2.24.1/python/midi.py +212 -0
  992. data/share/lilypond/2.24.1/python/musicexp.py +2781 -0
  993. data/share/lilypond/2.24.1/python/musicxml.py +1905 -0
  994. data/share/lilypond/2.24.1/python/musicxml2ly_conversion.py +80 -0
  995. data/share/lilypond/2.24.1/python/utilities.py +280 -0
  996. data/share/lilypond/2.24.1/scm/lily/accreg.scm +579 -0
  997. data/share/lilypond/2.24.1/scm/lily/auto-beam.scm +163 -0
  998. data/share/lilypond/2.24.1/scm/lily/autochange.scm +100 -0
  999. data/share/lilypond/2.24.1/scm/lily/backend-library.scm +593 -0
  1000. data/share/lilypond/2.24.1/scm/lily/bar-line.scm +1281 -0
  1001. data/share/lilypond/2.24.1/scm/lily/breath.scm +74 -0
  1002. data/share/lilypond/2.24.1/scm/lily/c++.scm +174 -0
  1003. data/share/lilypond/2.24.1/scm/lily/chord-entry.scm +278 -0
  1004. data/share/lilypond/2.24.1/scm/lily/chord-ignatzek-names.scm +304 -0
  1005. data/share/lilypond/2.24.1/scm/lily/chord-name.scm +217 -0
  1006. data/share/lilypond/2.24.1/scm/lily/clip-region.scm +87 -0
  1007. data/share/lilypond/2.24.1/scm/lily/color.scm +757 -0
  1008. data/share/lilypond/2.24.1/scm/lily/curried-definitions.scm +68 -0
  1009. data/share/lilypond/2.24.1/scm/lily/define-context-properties.scm +939 -0
  1010. data/share/lilypond/2.24.1/scm/lily/define-event-classes.scm +142 -0
  1011. data/share/lilypond/2.24.1/scm/lily/define-grob-interfaces.scm +640 -0
  1012. data/share/lilypond/2.24.1/scm/lily/define-grob-properties.scm +1647 -0
  1013. data/share/lilypond/2.24.1/scm/lily/define-grobs.scm +4027 -0
  1014. data/share/lilypond/2.24.1/scm/lily/define-markup-commands.scm +5737 -0
  1015. data/share/lilypond/2.24.1/scm/lily/define-music-callbacks.scm +257 -0
  1016. data/share/lilypond/2.24.1/scm/lily/define-music-display-methods.scm +1350 -0
  1017. data/share/lilypond/2.24.1/scm/lily/define-music-properties.scm +242 -0
  1018. data/share/lilypond/2.24.1/scm/lily/define-music-types.scm +983 -0
  1019. data/share/lilypond/2.24.1/scm/lily/define-note-names.scm +1421 -0
  1020. data/share/lilypond/2.24.1/scm/lily/define-stencil-commands.scm +71 -0
  1021. data/share/lilypond/2.24.1/scm/lily/define-woodwind-diagrams.scm +1215 -0
  1022. data/share/lilypond/2.24.1/scm/lily/display-lily.scm +315 -0
  1023. data/share/lilypond/2.24.1/scm/lily/display-woodwind-diagrams.scm +1985 -0
  1024. data/share/lilypond/2.24.1/scm/lily/document-backend.scm +307 -0
  1025. data/share/lilypond/2.24.1/scm/lily/document-context-mods.scm +98 -0
  1026. data/share/lilypond/2.24.1/scm/lily/document-functions.scm +169 -0
  1027. data/share/lilypond/2.24.1/scm/lily/document-identifiers.scm +76 -0
  1028. data/share/lilypond/2.24.1/scm/lily/document-markup.scm +158 -0
  1029. data/share/lilypond/2.24.1/scm/lily/document-music.scm +146 -0
  1030. data/share/lilypond/2.24.1/scm/lily/document-outside-staff-priorities.scm +40 -0
  1031. data/share/lilypond/2.24.1/scm/lily/document-paper-sizes.scm +71 -0
  1032. data/share/lilypond/2.24.1/scm/lily/document-translation.scm +318 -0
  1033. data/share/lilypond/2.24.1/scm/lily/document-type-predicates.scm +85 -0
  1034. data/share/lilypond/2.24.1/scm/lily/documentation-generate.scm +259 -0
  1035. data/share/lilypond/2.24.1/scm/lily/documentation-lib.scm +207 -0
  1036. data/share/lilypond/2.24.1/scm/lily/file-cache.scm +28 -0
  1037. data/share/lilypond/2.24.1/scm/lily/flag-styles.scm +249 -0
  1038. data/share/lilypond/2.24.1/scm/lily/font-encodings.scm +1242 -0
  1039. data/share/lilypond/2.24.1/scm/lily/font.scm +303 -0
  1040. data/share/lilypond/2.24.1/scm/lily/framework-cairo.scm +26 -0
  1041. data/share/lilypond/2.24.1/scm/lily/framework-ps.scm +896 -0
  1042. data/share/lilypond/2.24.1/scm/lily/framework-svg.scm +172 -0
  1043. data/share/lilypond/2.24.1/scm/lily/fret-diagrams.scm +1261 -0
  1044. data/share/lilypond/2.24.1/scm/lily/graphviz.scm +78 -0
  1045. data/share/lilypond/2.24.1/scm/lily/guile-debugger.scm +90 -0
  1046. data/share/lilypond/2.24.1/scm/lily/harp-pedals.scm +172 -0
  1047. data/share/lilypond/2.24.1/scm/lily/hyphenate-internal-words.scm +51 -0
  1048. data/share/lilypond/2.24.1/scm/lily/layout-beam.scm +73 -0
  1049. data/share/lilypond/2.24.1/scm/lily/layout-slur.scm +45 -0
  1050. data/share/lilypond/2.24.1/scm/lily/lily-library.scm +1446 -0
  1051. data/share/lilypond/2.24.1/scm/lily/lily-sort.scm +116 -0
  1052. data/share/lilypond/2.24.1/scm/lily/lily.scm +929 -0
  1053. data/share/lilypond/2.24.1/scm/lily/ly-syntax-constructors.scm +374 -0
  1054. data/share/lilypond/2.24.1/scm/lily/markup-macros.scm +493 -0
  1055. data/share/lilypond/2.24.1/scm/lily/markup.scm +126 -0
  1056. data/share/lilypond/2.24.1/scm/lily/midi.scm +258 -0
  1057. data/share/lilypond/2.24.1/scm/lily/modal-transforms.scm +337 -0
  1058. data/share/lilypond/2.24.1/scm/lily/music-functions.scm +2878 -0
  1059. data/share/lilypond/2.24.1/scm/lily/output-lib.scm +3377 -0
  1060. data/share/lilypond/2.24.1/scm/lily/output-ps.scm +335 -0
  1061. data/share/lilypond/2.24.1/scm/lily/output-svg.scm +684 -0
  1062. data/share/lilypond/2.24.1/scm/lily/page.scm +321 -0
  1063. data/share/lilypond/2.24.1/scm/lily/paper-system.scm +271 -0
  1064. data/share/lilypond/2.24.1/scm/lily/paper.scm +376 -0
  1065. data/share/lilypond/2.24.1/scm/lily/parser-clef.scm +205 -0
  1066. data/share/lilypond/2.24.1/scm/lily/parser-ly-from-scheme.scm +170 -0
  1067. data/share/lilypond/2.24.1/scm/lily/part-combiner.scm +998 -0
  1068. data/share/lilypond/2.24.1/scm/lily/predefined-fretboards.scm +54 -0
  1069. data/share/lilypond/2.24.1/scm/lily/ps-to-png.scm +182 -0
  1070. data/share/lilypond/2.24.1/scm/lily/scheme-engravers.scm +1813 -0
  1071. data/share/lilypond/2.24.1/scm/lily/scheme-performers.scm +126 -0
  1072. data/share/lilypond/2.24.1/scm/lily/script.scm +416 -0
  1073. data/share/lilypond/2.24.1/scm/lily/skyline.scm +25 -0
  1074. data/share/lilypond/2.24.1/scm/lily/song-util.scm +191 -0
  1075. data/share/lilypond/2.24.1/scm/lily/song.scm +853 -0
  1076. data/share/lilypond/2.24.1/scm/lily/stencil.scm +998 -0
  1077. data/share/lilypond/2.24.1/scm/lily/tablature.scm +392 -0
  1078. data/share/lilypond/2.24.1/scm/lily/time-signature-settings.scm +473 -0
  1079. data/share/lilypond/2.24.1/scm/lily/time-signature.scm +35 -0
  1080. data/share/lilypond/2.24.1/scm/lily/titling.scm +99 -0
  1081. data/share/lilypond/2.24.1/scm/lily/to-xml.scm +254 -0
  1082. data/share/lilypond/2.24.1/scm/lily/translation-functions.scm +1169 -0
  1083. data/share/lilypond/2.24.1/vim/compiler/lilypond.vim +36 -0
  1084. data/share/lilypond/2.24.1/vim/ftdetect/lilypond.vim +4 -0
  1085. data/share/lilypond/2.24.1/vim/ftplugin/lilypond.vim +91 -0
  1086. data/share/lilypond/2.24.1/vim/indent/lilypond.vim +79 -0
  1087. data/share/lilypond/2.24.1/vim/syntax/lilypond-words +1408 -0
  1088. data/share/lilypond/2.24.1/vim/syntax/lilypond-words.vim +3 -0
  1089. data/share/lilypond/2.24.1/vim/syntax/lilypond.vim +104 -0
  1090. data/share/locale/ca/LC_MESSAGES/lilypond.mo +0 -0
  1091. data/share/locale/cs/LC_MESSAGES/lilypond.mo +0 -0
  1092. data/share/locale/da/LC_MESSAGES/lilypond.mo +0 -0
  1093. data/share/locale/de/LC_MESSAGES/lilypond.mo +0 -0
  1094. data/share/locale/el/LC_MESSAGES/lilypond.mo +0 -0
  1095. data/share/locale/eo/LC_MESSAGES/lilypond.mo +0 -0
  1096. data/share/locale/es/LC_MESSAGES/lilypond.mo +0 -0
  1097. data/share/locale/fi/LC_MESSAGES/lilypond.mo +0 -0
  1098. data/share/locale/fr/LC_MESSAGES/lilypond.mo +0 -0
  1099. data/share/locale/it/LC_MESSAGES/lilypond.mo +0 -0
  1100. data/share/locale/ja/LC_MESSAGES/lilypond.mo +0 -0
  1101. data/share/locale/nl/LC_MESSAGES/lilypond.mo +0 -0
  1102. data/share/locale/ru/LC_MESSAGES/lilypond.mo +0 -0
  1103. data/share/locale/sv/LC_MESSAGES/lilypond.mo +0 -0
  1104. data/share/locale/tr/LC_MESSAGES/lilypond.mo +0 -0
  1105. data/share/locale/uk/LC_MESSAGES/lilypond.mo +0 -0
  1106. data/share/locale/vi/LC_MESSAGES/lilypond.mo +0 -0
  1107. data/share/locale/zh_CN/LC_MESSAGES/lilypond.mo +0 -0
  1108. data/share/locale/zh_TW/LC_MESSAGES/lilypond.mo +0 -0
  1109. 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))))