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,1281 @@
1
+ ;;;; This file is part of LilyPond, the GNU music typesetter.
2
+ ;;;;
3
+ ;;;; Copyright (C) 2009--2022 Marc Hohl <marc@hohlart.de>
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
+
19
+
20
+ ;; TODO:
21
+ ;; (1) Dashed bar lines may stick out above and below the staff lines
22
+ ;;
23
+ ;; (2) Dashed and dotted lines look ugly in combination with span bars
24
+ ;;
25
+ ;; (This was the case in the c++-version of (span) bar stuff)
26
+
27
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28
+ ;; helper functions for staff and layout properties
29
+
30
+ (define (bar-line::calc-blot thickness extent grob)
31
+ "Calculate the blot diameter by taking @code{'rounded}
32
+ and the dimensions of the extent into account."
33
+ (let* ((rounded (ly:grob-property grob 'rounded #f))
34
+ (blot (if rounded
35
+ (let ((blot-diameter (layout-blot-diameter grob))
36
+ (height (interval-length extent)))
37
+
38
+ (cond ((< thickness blot-diameter) thickness)
39
+ ((< height blot-diameter) height)
40
+ (else blot-diameter)))
41
+ 0)))
42
+ blot))
43
+
44
+ (define-public (bar-line::draw-filled-box x-ext y-ext thickness extent grob)
45
+ "Return a straight bar line created by @code{ly:round-filled-box} looking at
46
+ @var{x-ext}, @var{y-ext}, @var{thickness}. The blot is calculated by
47
+ @code{bar-line::calc-blot}, which needs @var{extent} and @var{grob}.
48
+ @var{y-ext} is not necessarily of same value as @var{extent}."
49
+ (ly:round-filled-box
50
+ x-ext
51
+ y-ext
52
+ (bar-line::calc-blot thickness extent grob)))
53
+
54
+ (define (get-span-glyph bar-glyph)
55
+ "Get the corresponding span glyph from the @code{span-glyph-bar-alist}.
56
+ Pad the string with @code{annotation-char}s to the length of the
57
+ @var{bar-glyph} string."
58
+ (let ((span-glyph (assoc-get bar-glyph span-bar-glyph-alist bar-glyph)))
59
+
60
+ (if (string? span-glyph)
61
+ (set! span-glyph (string-pad-right
62
+ span-glyph
63
+ (string-length bar-glyph)
64
+ replacement-char)))
65
+ span-glyph))
66
+
67
+ (define (layout-blot-diameter grob)
68
+ "Get the blot diameter of the @var{grob}'s corresponding layout."
69
+ (let* ((layout (ly:grob-layout grob))
70
+ (blot-diameter (ly:output-def-lookup layout 'blot-diameter)))
71
+
72
+ blot-diameter))
73
+
74
+ (define (staff-symbol-line-count staff)
75
+ "Get or compute the number of lines of staff @var{staff}."
76
+ (let ((line-count 0))
77
+
78
+ (if (ly:grob? staff)
79
+ (let ((line-pos (ly:grob-property staff 'line-positions '())))
80
+
81
+ (set! line-count (if (pair? line-pos)
82
+ (length line-pos)
83
+ (ly:grob-property staff 'line-count 0)))))
84
+
85
+ line-count))
86
+
87
+ (define (staff-symbol-y-extent-from-line-positions line-pos)
88
+ (let ((iv (cons 0.0 0.0)))
89
+
90
+ (if (pair? line-pos)
91
+ (begin
92
+ (set! iv (cons (car line-pos) (car line-pos)))
93
+ (for-each (lambda (x)
94
+ (set! iv (cons (min (car iv) x)
95
+ (max (cdr iv) x))))
96
+ (cdr line-pos)))
97
+
98
+ (let ((line-count (ly:grob-property grob 'line-count 0)))
99
+
100
+ (set! iv (cons (- 1 line-count)
101
+ (- line-count 1)))))
102
+ iv))
103
+
104
+ (define (staff-symbol-line-span grob)
105
+ (staff-symbol-y-extent-from-line-positions
106
+ (staff-symbol-line-positions grob)))
107
+
108
+ (define (staff-symbol-line-positions grob)
109
+ "Get or compute the @code{'line-positions} list from @var{grob}."
110
+ (let ((line-pos (ly:grob-property grob 'line-positions '())))
111
+
112
+ (if (not (pair? line-pos))
113
+ (let* ((line-count (ly:grob-property grob 'line-count 0))
114
+ (height (- line-count 1.0)))
115
+
116
+ (set! line-pos (map (lambda (x)
117
+ (- height (* x 2)))
118
+ (iota line-count)))))
119
+ line-pos))
120
+
121
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122
+ ;; internal helper functions
123
+
124
+ (define annotation-char #\-)
125
+ (define replacement-char #\ )
126
+
127
+ (define dummy-extent (cons -1 1))
128
+
129
+
130
+ (define (glyph->stencil glyph grob extent)
131
+ "Return a stencil computed by the procedure associated with
132
+ glyph @var{glyph}. The arguments @var{grob} and @var{extent} are
133
+ mandatory to the procedures stored in @code{bar-glyph-print-procedures}."
134
+ (let ((proc (assoc-get glyph bar-glyph-print-procedures))
135
+ (stencil empty-stencil))
136
+
137
+ (if (procedure? proc)
138
+ (set! stencil (proc grob extent))
139
+ (ly:warning (G_ "Bar glyph ~a not known. Ignoring.") glyph))
140
+ stencil))
141
+
142
+ (define (string->string-list str)
143
+ "Convert a string into a list of strings with length 1.
144
+ @code{\"aBc\"} will be converted to @code{(\"a\" \"B\" \"c\")}.
145
+ An empty string will be converted to a list containing @code{\"\"}."
146
+ (if (and (string? str)
147
+ (not (zero? (string-length str))))
148
+ (map (lambda (s)
149
+ (string s))
150
+ (string->list str))
151
+ (list "")))
152
+
153
+ (define (strip-string-annotation str)
154
+ "Strip annotations starting with and including the
155
+ annotation char from string @var{str}."
156
+ (let ((pos (string-index str annotation-char)))
157
+
158
+ (if pos
159
+ (substring str 0 pos)
160
+ str)))
161
+
162
+ (define (check-for-annotation str)
163
+ "Check whether the annotation char is present in string @var{str}."
164
+ (if (string? str)
165
+ (if (string-index str annotation-char)
166
+ (ly:warning
167
+ (G_ "Annotation '~a' is allowed in the first argument of a bar line definition only.")
168
+ str))))
169
+
170
+ (define (check-for-replacement str)
171
+ "Check whether the replacement char is present in string @var{str}."
172
+ (if (string? str)
173
+ (if (string-index str replacement-char)
174
+ (ly:warning
175
+ (G_ "Replacement '~a' is allowed in the last argument of a bar line definition only.")
176
+ str))))
177
+
178
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179
+ ;; Line break decisions.
180
+
181
+ (define-public (define-bar-line bar-glyph eol-glyph bol-glyph span-glyph)
182
+ "Define a bar glyph @var{bar-glyph} and its substitutes at the end of
183
+ a line (@var{eol-glyph}), at the beginning of a line (@var{bol-glyph})
184
+ and as a span bar (@var{span-glyph}). The substitute glyphs may be
185
+ either strings or booleans: @code{#t} calls for the same value as
186
+ @var{bar-glyph} and @code{#f} calls for no glyph."
187
+
188
+ ;; #t means copy the mid-line glyph
189
+ (when (eq? eol-glyph #t)
190
+ (set! eol-glyph bar-glyph))
191
+ (when (eq? bol-glyph #t)
192
+ (set! bol-glyph bar-glyph))
193
+ (when (eq? span-glyph #t)
194
+ (set! span-glyph bar-glyph))
195
+
196
+ ;; the last argument may not include annotations
197
+ (check-for-annotation span-glyph)
198
+ ;; only the last argument may call for replacements
199
+ (for-each (lambda (s)
200
+ (check-for-replacement s))
201
+ (list bar-glyph eol-glyph bol-glyph))
202
+ ;; the bar-glyph-alist has entries like
203
+ ;; (bar-glyph . ( eol-glyph . bol-glyph))
204
+ (set! bar-glyph-alist
205
+ (acons bar-glyph (cons eol-glyph bol-glyph) bar-glyph-alist))
206
+
207
+ ;; the span-bar-glyph-alist has entries like
208
+ ;; (bar-glyph . span-glyph)
209
+ (set! span-bar-glyph-alist
210
+ (acons bar-glyph span-glyph span-bar-glyph-alist)))
211
+
212
+ (define-session-public bar-glyph-alist '())
213
+
214
+ (define-session-public span-bar-glyph-alist '())
215
+
216
+ (define-public (add-bar-glyph-print-procedure glyph proc)
217
+ "Specify the single glyph @var{glyph} that calls print procedure @var{proc}.
218
+ The procedure @var{proc} has to be defined in the form
219
+ @code{(make-...-bar-line grob extent)} even if the @var{extent}
220
+ is not used within the routine."
221
+ (if (or (not (string? glyph))
222
+ (> (string-length glyph) 1))
223
+ (ly:warning
224
+ (G_ "add-bar-glyph-print-procedure: glyph '~a' has to be a single ASCII character.")
225
+ glyph)
226
+ (set! bar-glyph-print-procedures
227
+ (acons glyph proc bar-glyph-print-procedures))))
228
+
229
+ (define-session bar-glyph-print-procedures `())
230
+
231
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232
+ ;; drawing functions for various bar line types
233
+ ;; to include them and other user-defined functions,
234
+ ;; all of them have the form
235
+ ;; (make-...-bar-line grob extent)
236
+ ;; even if the extent is not used.
237
+
238
+ (define (make-no-bar-line grob extent)
239
+ "Return an empty stencil."
240
+ empty-stencil)
241
+
242
+ (define (make-empty-bar-line grob extent)
243
+ "Draw an empty bar line."
244
+ (ly:make-stencil "" (cons 0 0) extent))
245
+
246
+ (define (make-simple-bar-line grob extent)
247
+ "Draw a simple bar line."
248
+ (let* ((line-thickness (layout-line-thickness grob))
249
+ (thickness (* (ly:grob-property grob 'hair-thickness 1)
250
+ line-thickness))
251
+ (extent (bar-line::widen-bar-extent-on-span grob extent)))
252
+ (bar-line::draw-filled-box
253
+ (cons 0 thickness)
254
+ extent
255
+ thickness
256
+ extent
257
+ grob)))
258
+
259
+ (define (make-thick-bar-line grob extent)
260
+ "Draw a thick bar line."
261
+ (let* ((line-thickness (layout-line-thickness grob))
262
+ (thickness (* (ly:grob-property grob 'thick-thickness 1)
263
+ line-thickness))
264
+ (extent (bar-line::widen-bar-extent-on-span grob extent)))
265
+ (bar-line::draw-filled-box
266
+ (cons 0 thickness)
267
+ extent
268
+ thickness
269
+ extent
270
+ grob)))
271
+
272
+ (define (make-short-bar-line grob extent)
273
+ "Draw a short bar line."
274
+ (let* ((normal-height (interval-length extent))
275
+ (staff-space (ly:staff-symbol-staff-space grob))
276
+ (normal-height-spaces (/ normal-height staff-space))
277
+ ;; Use half the height of the staff, rounded up to an integer
278
+ ;; number of staff spaces.
279
+ (short-height-spaces (truncate (/ (1+ normal-height-spaces) 2)))
280
+ (center (interval-center extent))
281
+ (line-thickness (layout-line-thickness grob))
282
+ (thickness (* (ly:grob-property grob 'hair-thickness 1)
283
+ line-thickness)))
284
+
285
+ ;; If the normal bar lines are quite short, short bar lines will
286
+ ;; be hard to distinguish or hard to see. Render them like
287
+ ;; anti-ticks.
288
+ (if (< normal-height-spaces 2)
289
+ (begin
290
+ (set! short-height-spaces 1)
291
+ (set! center (interval-start extent))))
292
+
293
+ (ly:round-filled-box
294
+ (cons 0 thickness) ; x
295
+ (coord-translate
296
+ (symmetric-interval (/ (* short-height-spaces staff-space) 2))
297
+ center) ; y
298
+ (bar-line::calc-blot thickness extent grob))))
299
+
300
+ (define (make-tick-bar-line grob extent)
301
+ "Draw a tick bar line."
302
+ (let* ((line-thickness (layout-line-thickness grob))
303
+ (thickness (* (ly:grob-property grob 'hair-thickness 1)
304
+ line-thickness))
305
+ (staff-symbol (ly:grob-object grob 'staff-symbol))
306
+ (line-pos (staff-symbol-line-positions staff-symbol))
307
+ (line-count (length line-pos))
308
+ (half-staff (* 1/2 (ly:staff-symbol-staff-space grob)))
309
+ (center (interval-end extent)))
310
+
311
+ ;; The provided extent is for normal bar lines, which do not
312
+ ;; necessarily end at the top staff line: they are expected to be
313
+ ;; extended if the staff is vertically short, and it is always
314
+ ;; possible for BarLine.bar-extent to be overridden. The tick is
315
+ ;; expected to cross the top staff line, so we must find it. If
316
+ ;; there are fewer than two lines, we allow floating ticks so that
317
+ ;; they are not confused with short bar lines.
318
+ (if (>= line-count 2)
319
+ (set! center (* (apply max line-pos) half-staff)))
320
+
321
+ (bar-line::draw-filled-box
322
+ (cons 0 thickness) ; x
323
+ (coord-translate (symmetric-interval half-staff) center) ; y
324
+ thickness
325
+ extent
326
+ grob)))
327
+
328
+ (define (make-colon-bar-line grob extent)
329
+ "Draw repeat dots."
330
+ (let* ((staff-space (ly:staff-symbol-staff-space grob))
331
+ (line-thickness (ly:staff-symbol-line-thickness grob))
332
+ (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot"))
333
+ (dot-y-length (interval-length (ly:stencil-extent dot Y)))
334
+ (stencil empty-stencil)
335
+ ;; the two dots of the repeat sign should be centred at the
336
+ ;; middle of the staff and neither should collide with staff
337
+ ;; lines.
338
+ ;; the required space is measured in line positions,
339
+ ;; i.e., in half staff spaces.
340
+
341
+ ;; dots are to fall into distict spaces, except when there's
342
+ ;; only one space (and it's big enough to hold two dots and
343
+ ;; some space between them)
344
+
345
+ ;; choose defaults working without any staff
346
+ (center 0.0)
347
+ (dist (* 4 dot-y-length)))
348
+
349
+ (if (> staff-space 0)
350
+ (begin
351
+ (set! dist (/ dist staff-space))
352
+ (let ((staff-symbol (ly:grob-object grob 'staff-symbol)))
353
+
354
+ (if (ly:grob? staff-symbol)
355
+ (let ((line-pos (staff-symbol-line-positions staff-symbol)))
356
+
357
+ (if (pair? line-pos)
358
+ (begin
359
+ (set! center
360
+ (interval-center (staff-symbol-line-span
361
+ staff-symbol)))
362
+ ;; fold the staff into two at center
363
+ (let* ((folded-staff
364
+ (sort (map (lambda (lp) (abs (- lp center)))
365
+ line-pos) <))
366
+ (gap-to-find (/ (+ dot-y-length line-thickness)
367
+ (/ staff-space 2)))
368
+ (first (car folded-staff)))
369
+
370
+ ;; find the first space big enough
371
+ ;; to hold a dot and a staff line
372
+ ;; (a space in the folded staff may be
373
+ ;; narrower but can't be wider than the
374
+ ;; corresponding original spaces)
375
+ (set! dist
376
+ (or
377
+ (any (lambda (x y)
378
+ (and (> (- y x) gap-to-find)
379
+ (+ x y)))
380
+ folded-staff (cdr folded-staff))
381
+ (if (< gap-to-find first)
382
+ ;; there's a central space big
383
+ ;; enough to hold both dots
384
+ first
385
+
386
+ ;; dots should go outside
387
+ (+ (* 2 (last folded-staff))
388
+ (/ (* 4 dot-y-length)
389
+ staff-space))))))))))))
390
+ (set! staff-space 1.0))
391
+
392
+ (let* ((stencil empty-stencil)
393
+ (stencil (ly:stencil-add stencil dot))
394
+ (stencil (ly:stencil-translate-axis
395
+ stencil (* dist (/ staff-space 2)) Y))
396
+ (stencil (ly:stencil-add stencil dot))
397
+ (stencil (ly:stencil-translate-axis
398
+ stencil (* (- center (/ dist 2))
399
+ (/ staff-space 2)) Y)))
400
+ stencil)))
401
+
402
+
403
+ (define (make-dotted-bar-line grob extent)
404
+ "Draw a dotted bar line."
405
+ (let* (;; Heuristic: In a call to create a staff bar line, the
406
+ ;; extent will likely cross the center of the staff, and in a
407
+ ;; call to create a span bar line, it likely will not.
408
+ (making-span-bar? (not (interval-contains? extent 0)))
409
+ (top-pos (round (* (interval-end extent) 2)))
410
+ (bottom-pos (round (* (interval-start extent) 2)))
411
+ (dots-pos '())
412
+ (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot")))
413
+
414
+ (define (calc-dot-positions dot-position-interval)
415
+ (if (not (interval-empty? dot-position-interval))
416
+ (iota (1+ (/ (interval-length dot-position-interval) 2))
417
+ (interval-start dot-position-interval)
418
+ 2)
419
+ '()))
420
+
421
+ (if making-span-bar?
422
+ (begin
423
+ ;; If a dot is out of bounds due to rounding, bring it in.
424
+ (if (>= top-pos (* 2 (interval-end extent)))
425
+ (set! top-pos (- top-pos 1)))
426
+ (if (<= bottom-pos (* 2 (interval-start extent)))
427
+ (set! bottom-pos (1+ bottom-pos)))
428
+
429
+ ;; Span an integer number of staff spaces (2 positions per space).
430
+ (if (not (equal? (even? top-pos) (even? bottom-pos)))
431
+ (set! bottom-pos (1+ bottom-pos)))
432
+
433
+ (set! dots-pos (calc-dot-positions (cons bottom-pos top-pos)))))
434
+
435
+ (if (not making-span-bar?)
436
+ (begin
437
+ ;; Narrow the extent by half a dot on each end; if the
438
+ ;; center of a dot is within the reduced interval, then the
439
+ ;; whole dot is within the original interval.
440
+ (let ((extent-less-dot
441
+ (interval-widen
442
+ extent
443
+ (/ (interval-length (ly:stencil-extent dot Y)) -2))))
444
+
445
+ ;; If a dot is out of bounds due to rounding, bring it in.
446
+ (if (> top-pos (* 2 (interval-end extent-less-dot)))
447
+ (set! top-pos (- top-pos 1)))
448
+ (if (< bottom-pos (* 2 (interval-start extent-less-dot)))
449
+ (set! bottom-pos (1+ bottom-pos))))
450
+
451
+ ;; The dots will be separated by one staff space center to
452
+ ;; center, so they will be placed all in even or all in odd
453
+ ;; positions. Choose the alternative with more dots not
454
+ ;; colliding with staff lines.
455
+ (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
456
+ (lines-pos (if (ly:grob? staff-symbol)
457
+ (staff-symbol-line-positions staff-symbol)
458
+ '()))
459
+ (even-interval (cons
460
+ (if (even? bottom-pos)
461
+ bottom-pos
462
+ (1+ bottom-pos))
463
+ (if (even? top-pos)
464
+ top-pos
465
+ (- top-pos 1))))
466
+ (even-dots-pos (calc-dot-positions even-interval))
467
+ (even-score (length (lset-difference
468
+ = even-dots-pos lines-pos)))
469
+ (odd-interval (cons
470
+ (if (odd? bottom-pos)
471
+ bottom-pos
472
+ (1+ bottom-pos))
473
+ (if (odd? top-pos)
474
+ top-pos
475
+ (- top-pos 1))))
476
+ (odd-dots-pos (calc-dot-positions odd-interval))
477
+ (odd-score (length (lset-difference
478
+ = odd-dots-pos lines-pos))))
479
+ ;; choose the even or the odd configuration
480
+ (if (= even-score odd-score)
481
+ ;; break ties by choosing more dots
482
+ (if (> (length odd-dots-pos) (length even-dots-pos))
483
+ (set! dots-pos odd-dots-pos)
484
+ (set! dots-pos even-dots-pos))
485
+ ;; usually, take the config with more dots in spaces
486
+ (if (> odd-score even-score)
487
+ (set! dots-pos odd-dots-pos)
488
+ (set! dots-pos even-dots-pos))))))
489
+
490
+ (let* ((stil-list (map
491
+ (lambda (pos)
492
+ (ly:stencil-translate-axis dot (/ pos 2) Y))
493
+ dots-pos)))
494
+
495
+ (define (add-stencils! stil l)
496
+ (if (null? l)
497
+ stil
498
+ (if (null? (cdr l))
499
+ (ly:stencil-add stil (car l))
500
+ (add-stencils! (ly:stencil-add stil (car l)) (cdr l)))))
501
+
502
+ (add-stencils! empty-stencil stil-list))))
503
+
504
+ (define (make-dashed-bar-line grob extent)
505
+ "Draw a dashed bar line."
506
+ (let* ((height (interval-length extent))
507
+ (staff-symbol (ly:grob-object grob 'staff-symbol grob))
508
+ (staff-space (ly:staff-symbol-staff-space grob))
509
+ (line-thickness (layout-line-thickness grob))
510
+ (thickness (* (ly:grob-property grob 'hair-thickness 1)
511
+ line-thickness))
512
+ (dash-size (- 1.0 (ly:grob-property grob 'gap 0.3)))
513
+ (line-count (staff-symbol-line-count staff-symbol)))
514
+
515
+ (if (< (abs (+ line-thickness
516
+ (* (1- line-count) staff-space)
517
+ (- height)))
518
+ 0.1)
519
+ (let ((blot (layout-blot-diameter grob))
520
+ (half-space (/ staff-space 2.0))
521
+ (half-thick (/ line-thickness 2.0))
522
+ (stencil empty-stencil))
523
+
524
+ (for-each (lambda (i)
525
+ (let ((top-y (min (* (+ i dash-size) half-space)
526
+ (+ (* (1- line-count) half-space)
527
+ half-thick)))
528
+ (bot-y (max (* (- i dash-size) half-space)
529
+ (- 0 (* (1- line-count) half-space)
530
+ half-thick))))
531
+
532
+ (set! stencil
533
+ (ly:stencil-add
534
+ stencil
535
+ (ly:round-filled-box (cons 0 thickness)
536
+ (cons bot-y top-y)
537
+ blot)))))
538
+ (iota line-count (1- line-count) (- 2)))
539
+ (ly:stencil-translate-axis
540
+ stencil
541
+ (interval-center extent)
542
+ Y))
543
+ (let* ((dashes (/ height staff-space))
544
+ (total-dash-size (/ height dashes))
545
+ (factor (/ (- dash-size thickness) staff-space))
546
+ (stencil (ly:stencil-translate-axis
547
+ (ly:make-stencil (list 'dashed-line
548
+ thickness
549
+ (* factor total-dash-size)
550
+ (* (- 1 factor) total-dash-size)
551
+ 0
552
+ height
553
+ (* factor total-dash-size 0.5))
554
+ (cons (/ thickness -2) (/ thickness 2))
555
+ (cons 0 height))
556
+ (interval-start extent)
557
+ Y)))
558
+
559
+ (ly:stencil-translate-axis stencil (/ thickness 2) X)))))
560
+
561
+
562
+ (define ((make-segno-bar-line show-segno) grob extent)
563
+ "Draw a segno bar line. If @var{show-segno} is set to @code{#t},
564
+ the segno sign is drawn over the double bar line; otherwise, it
565
+ draws the span bar variant, i.e., without the segno sign."
566
+ (let* ((line-thickness (layout-line-thickness grob))
567
+ (segno-kern (* (ly:grob-property grob 'segno-kern 1) line-thickness))
568
+ (thin-stil (make-simple-bar-line grob extent))
569
+ (double-line-stil (ly:stencil-combine-at-edge
570
+ thin-stil
571
+ X
572
+ LEFT
573
+ thin-stil
574
+ segno-kern))
575
+ (segno (ly:font-get-glyph (ly:grob-default-font grob)
576
+ "scripts.varsegno"))
577
+ (stencil (ly:stencil-add
578
+ (if show-segno
579
+ segno
580
+ (ly:make-stencil
581
+ ""
582
+ (ly:stencil-extent segno X)
583
+ (cons 0 0)))
584
+ (ly:stencil-translate-axis
585
+ double-line-stil
586
+ (* 1/2 segno-kern)
587
+ X))))
588
+
589
+ stencil))
590
+
591
+ (define (make-kievan-bar-line grob extent)
592
+ "Draw a kievan bar line."
593
+ (let* ((font (ly:grob-default-font grob))
594
+ (stencil (stencil-whiteout-box
595
+ (ly:font-get-glyph font "scripts.barline.kievan"))))
596
+
597
+ ;; the kievan bar line has no staff lines underneath,
598
+ ;; so we whiteout-box them and move the grob to a higher layer
599
+ (ly:grob-set-property! grob 'layer 1)
600
+ stencil))
601
+
602
+ (define ((make-bracket-bar-line dir) grob extent)
603
+ "Draw a bracket-style bar line. If @var{dir} is set to @code{LEFT}, the
604
+ opening bracket will be drawn, for @code{RIGHT} we get the closing bracket."
605
+ (let* ((thick-stil (make-thick-bar-line grob extent))
606
+ (brackettips-up (ly:font-get-glyph (ly:grob-default-font grob)
607
+ "brackettips.up"))
608
+ (brackettips-down (ly:font-get-glyph (ly:grob-default-font grob)
609
+ "brackettips.down"))
610
+ ;; the x-extent of the brackettips must not be taken into account
611
+ ;; for bar line constructs like "[|:", so we set new bounds:
612
+ (tip-up-stil (ly:make-stencil (ly:stencil-expr brackettips-up)
613
+ (cons 0 0)
614
+ (ly:stencil-extent brackettips-up Y)))
615
+ (tip-down-stil (ly:make-stencil (ly:stencil-expr brackettips-down)
616
+ (cons 0 0)
617
+ (ly:stencil-extent brackettips-down Y)))
618
+ (stencil (ly:stencil-add
619
+ thick-stil
620
+ (ly:stencil-translate-axis tip-up-stil
621
+ (interval-end extent)
622
+ Y)
623
+ (ly:stencil-translate-axis tip-down-stil
624
+ (interval-start extent)
625
+ Y))))
626
+
627
+ (if (eqv? dir LEFT)
628
+ stencil
629
+ (flip-stencil X stencil))))
630
+
631
+ (define ((make-spacer-bar-line glyph) grob extent)
632
+ "Draw an invisible bar line which has the same dimensions as the one
633
+ drawn by the procedure associated with glyph @var{glyph}."
634
+ (let* ((stil (glyph->stencil glyph grob extent))
635
+ (stil-x-extent (ly:stencil-extent stil X)))
636
+
637
+ (ly:make-stencil "" stil-x-extent extent)))
638
+
639
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
640
+ ;; bar line callbacks
641
+
642
+ (define-public (ly:bar-line::calc-bar-extent grob)
643
+ (let ((staff-symbol (ly:grob-object grob 'staff-symbol)))
644
+ (if (ly:grob? staff-symbol)
645
+ (let ((staff-extent (ly:grob-property staff-symbol 'widened-extent))
646
+ (bar-line-color (ly:grob-property grob 'color))
647
+ (staff-color (ly:grob-property staff-symbol 'color)))
648
+ ;; FIXME: "red" not eq? to #(rgb-color 1 0 0)
649
+ (if (eq? bar-line-color staff-color)
650
+ ;; Due to rounding problems, bar lines extending to the outermost edges
651
+ ;; of the staff lines appear wrongly in on-screen display
652
+ ;; (and, to a lesser extent, in print) - they stick out a pixel.
653
+ ;; The solution is to extend bar lines only to the middle
654
+ ;; of the staff line - unless they have different colors,
655
+ ;; when it would be undesirable.
656
+ ;;
657
+ ;; This reduction should not influence whether the bar is to be
658
+ ;; expanded later, so length is not updated on purpose.
659
+ (let ((half-staff-line-thickness
660
+ (* 1/2 (ly:staff-symbol-line-thickness grob))))
661
+ (interval-widen staff-extent (- half-staff-line-thickness)))
662
+ staff-extent))
663
+ '(0 . 0))))
664
+
665
+ ;; this function may come in handy when defining new bar line glyphs, so
666
+ ;; we make it public.
667
+ ;; This code should not be included in ly:bar-line::calc-bar-extent, because
668
+ ;; this may confuse the drawing functions for dashed and dotted bar lines.
669
+ (define-public (bar-line::widen-bar-extent-on-span grob extent)
670
+ "Widen the bar line @var{extent} towards span bars adjacent to grob @var{grob}."
671
+ (let ((staff-symbol (ly:grob-object grob 'staff-symbol))
672
+ (has-span-bar (ly:grob-object grob 'has-span-bar)))
673
+
674
+ (if (and (ly:grob? staff-symbol)
675
+ (pair? has-span-bar))
676
+ (let ((bar-line-color (ly:grob-property grob 'color))
677
+ (staff-color (ly:grob-property staff-symbol 'color))
678
+ (half-staff-line-thickness (/ (ly:staff-symbol-line-thickness grob) 2)))
679
+ (if (eq? bar-line-color staff-color)
680
+ ;; if the colors are equal, ly:bar-line::calc-bar-extent has
681
+ ;; shortened the bar line extent by a half-staff-line-thickness
682
+ ;; this is reverted on the interval bounds where span bars appear:
683
+ (begin
684
+ (and (ly:grob? (car has-span-bar))
685
+ (set! extent (cons (- (car extent) half-staff-line-thickness)
686
+ (cdr extent))))
687
+ (and (ly:grob? (cdr has-span-bar))
688
+ (set! extent (cons (car extent)
689
+ (+ (cdr extent) half-staff-line-thickness))))))))
690
+ extent))
691
+
692
+ (define (bar-line::bar-y-extent grob refpoint)
693
+ "Compute the y-extent of the bar line relative to @var{refpoint}."
694
+ (let* ((extent (ly:grob-property grob 'bar-extent '(0 . 0)))
695
+ (rel-y (ly:grob-relative-coordinate grob refpoint Y))
696
+ (y-extent (coord-translate extent rel-y)))
697
+
698
+ y-extent))
699
+
700
+ (define-public (ly:bar-line::print grob)
701
+ "The print routine for bar lines."
702
+ (let ((glyph-name (ly:grob-property grob 'glyph-name))
703
+ (extent (ly:grob-property grob 'bar-extent '(0 . 0))))
704
+
705
+ (if (and glyph-name
706
+ (> (interval-length extent) 0))
707
+ (bar-line::compound-bar-line grob glyph-name extent)
708
+ #f)))
709
+
710
+ (define-public (bar-line::compound-bar-line grob bar-glyph extent)
711
+ "Build the bar line stencil."
712
+ (let* ((line-thickness (layout-line-thickness grob))
713
+ (kern (* (ly:grob-property grob 'kern 1) line-thickness))
714
+ (bar-glyph-list (string->string-list
715
+ (strip-string-annotation bar-glyph)))
716
+ (span-glyph (get-span-glyph bar-glyph))
717
+ (span-glyph-list (string->string-list span-glyph))
718
+ (neg-stencil empty-stencil)
719
+ (stencil empty-stencil)
720
+ (is-first-neg-stencil #t)
721
+ (is-first-stencil #t))
722
+
723
+ ;; We build up two separate stencils first:
724
+ ;; (1) the neg-stencil is built from all glyphs that have
725
+ ;; a replacement-char in the span bar
726
+ ;; (2) the main stencil is built from all remaining glyphs
727
+ ;;
728
+ ;; Afterwards the neg-stencil is attached left to the
729
+ ;; stencil; this ensures that the main stencil starts
730
+ ;; at x = 0.
731
+ ;;
732
+ ;; For both routines holds:
733
+ ;; we stack the stencils obtained by the corresponding
734
+ ;; single glyphs with spacing 'kern' except for the
735
+ ;; first stencil
736
+ ;; (Thanks to Harm who came up with this idea!)
737
+ (for-each (lambda (bar span)
738
+ (if (and (string=? span (string replacement-char))
739
+ is-first-stencil)
740
+ (begin
741
+ (set! neg-stencil
742
+ (ly:stencil-combine-at-edge
743
+ neg-stencil
744
+ X
745
+ RIGHT
746
+ (glyph->stencil bar grob extent)
747
+ (if is-first-neg-stencil 0 kern)))
748
+ (set! is-first-neg-stencil #f))
749
+ (begin
750
+ (set! stencil
751
+ (ly:stencil-combine-at-edge
752
+ stencil
753
+ X
754
+ RIGHT
755
+ (glyph->stencil bar grob extent)
756
+ (if is-first-stencil 0 kern)))
757
+ (set! is-first-stencil #f))))
758
+ bar-glyph-list span-glyph-list)
759
+ ;; if we have a non-empty neg-stencil,
760
+ ;; we attach it to the left side of the stencil
761
+ (and (not is-first-neg-stencil)
762
+ (set! stencil
763
+ (ly:stencil-combine-at-edge
764
+ stencil
765
+ X
766
+ LEFT
767
+ neg-stencil
768
+ kern)))
769
+ stencil))
770
+
771
+ (define-public (ly:bar-line::calc-anchor grob)
772
+ "Calculate the anchor position of a bar line. The anchor is used for
773
+ the correct placement of bar numbers, etc."
774
+ (let* ((bar-glyph (ly:grob-property grob 'glyph-name ""))
775
+ (bar-glyph-list (string->string-list (strip-string-annotation bar-glyph)))
776
+ (span-glyph (assoc-get bar-glyph span-bar-glyph-alist bar-glyph))
777
+ (x-extent (ly:grob-extent grob grob X))
778
+ (anchor 0.0))
779
+
780
+ (and (> (interval-length x-extent) 0)
781
+ (if (or (= (length bar-glyph-list) 1)
782
+ ;; 'span-glyph' may be #f, thus use equal? and not string=? for
783
+ ;; comparing equality
784
+ (equal? bar-glyph span-glyph)
785
+ (equal? span-glyph ""))
786
+ ;; We use the x-extent of the stencil if either
787
+ ;; - we have a single bar-glyph
788
+ ;; - bar-glyph and span-glyph are identical
789
+ ;; - we have no span-glyph
790
+ (set! anchor (interval-center x-extent))
791
+ ;; If the conditions above do not hold,the anchor is the
792
+ ;; center of the corresponding span bar stencil extent
793
+ (set! anchor (interval-center
794
+ (ly:stencil-extent
795
+ (span-bar::compound-bar-line grob bar-glyph dummy-extent)
796
+ X)))))
797
+ anchor))
798
+
799
+ (define-public (bar-line::calc-glyph-name-for-direction glyphs dir)
800
+ "Find the glyph name for a bar line. @code{glyphs} is the list of
801
+ bar-line types to consider in order. Each must have been defined with
802
+ @code{define-bar-line}. @var{dir} is the break direction to consider:
803
+ @code{LEFT} = end of line, @code{CENTER} = middle of line,
804
+ @code{RIGHT} = start of line."
805
+ (define (get-glyph-name glyph)
806
+ "Given a particular @code{glyph} value, get the entry for the relevant
807
+ direction from the alist."
808
+ (let ((alist-entry (assoc-get glyph bar-glyph-alist)))
809
+ (and alist-entry
810
+ (begin
811
+ (when (!= dir CENTER)
812
+ (set! glyph (index-cell alist-entry dir)))
813
+ ;; We want to ignore glyphs that do not yield a stencil.
814
+ ;; Checking the result of glyph->stencil would probably
815
+ ;; be ideal, but the difficulty is that glyph->stencil
816
+ ;; requires a grob, which does not exist yet. Instead,
817
+ ;; we look for glyph "x" as a special case.
818
+ (and (string? glyph)
819
+ (not (equal? "x" (strip-string-annotation glyph)))
820
+ glyph)))))
821
+
822
+ (define (find-first-glyph-name glyphs)
823
+ (and (pair? glyphs)
824
+ (string? (car glyphs)) ; stop at #f for \noBar
825
+ (or (get-glyph-name (car glyphs))
826
+ (find-first-glyph-name (cdr glyphs)))))
827
+
828
+ ;; If we return #f regardless of direction, Bar_engraver does not
829
+ ;; create a BarLine. If we don't have at least one string in the
830
+ ;; glyph list, we don't want to create a BarLine.
831
+ (and (pair? glyphs)
832
+ (string? (car glyphs)) ; stop at #f for \noBar
833
+ (or (find-first-glyph-name glyphs)
834
+ ;; Bar line definitions can have "x" and #f in them to
835
+ ;; allow lower layers to show through, but weird alignment
836
+ ;; and spacing issues can occur when we create BarLine
837
+ ;; grobs with no mid-line or end-of-line stencils, so we
838
+ ;; default to "" in these cases. We could investigate
839
+ ;; whether we can eliminate these special cases. (It isn't
840
+ ;; clear that there are better alternatives.)
841
+ (if (= dir RIGHT)
842
+ #f
843
+ ""))))
844
+
845
+ (define-public (bar-line::calc-glyph-name grob)
846
+ "Return the name of the bar line glyph printed by @var{grob} for the
847
+ actual break direction."
848
+ (let ((dir (ly:item-break-dir grob)))
849
+ (cond
850
+ ((= dir LEFT) (ly:grob-property grob 'glyph-left))
851
+ ((= dir RIGHT) (ly:grob-property grob 'glyph-right))
852
+ (else (ly:grob-property grob 'glyph)))))
853
+
854
+ (define-public (bar-line::calc-break-visibility grob)
855
+ "Calculate the visibility of a bar line at line breaks."
856
+ (vector
857
+ (string? (ly:grob-property grob 'glyph-left))
858
+ (string? (ly:grob-property grob 'glyph))
859
+ (string? (ly:grob-property grob 'glyph-right))))
860
+
861
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
862
+ ;; span bar callbacks
863
+
864
+ (define-public (ly:span-bar::calc-anchor grob)
865
+ "Calculate the anchor position of the @code{SpanBar}. The anchor is
866
+ used for the correct placement of bar numbers, etc."
867
+ (interval-center (ly:span-bar::width grob)))
868
+
869
+ (define-public (ly:span-bar::calc-glyph-name grob)
870
+ "Return the @code{'glyph-name} of the corresponding @code{BarLine} grob.
871
+ The corresponding @code{SpanBar} glyph is computed within
872
+ @code{span-bar::@/compound-bar-line}."
873
+ (let ((model-bar (ly:span-bar::choose-model-bar-line grob)))
874
+ (if (grob::is-live? grob)
875
+ (ly:grob-property model-bar 'glyph-name)
876
+ ;; avoid recursion: model-bar is a dead span bar
877
+ '())))
878
+
879
+ (define (ly:span-bar::choose-model-bar-line grob)
880
+ "Choose one of the bar lines to use as a template for the span bar.
881
+ Ideally, this chooses the same bar line whether it is called from
882
+ ly:span-bar::width, ly:span-bar::print, etc.
883
+
884
+ N.B. If no model bar line is found, this function kills the span bar
885
+ and returns the dead span bar."
886
+
887
+ (define (bar-acceptable? bar)
888
+ "return bar if it is acceptable, otherwise return #f"
889
+ (let ((staff-symbol (ly:grob-object bar 'staff-symbol #f)))
890
+ (and staff-symbol
891
+ (let* ((refp (ly:grob-common-refpoint bar staff-symbol Y))
892
+ (ext (interval-union
893
+ (bar-line::bar-y-extent bar refp)
894
+ (ly:grob-extent staff-symbol refp Y))))
895
+ (and (positive? (interval-length ext)) bar)))))
896
+
897
+ (let ((model-bar
898
+ (find bar-acceptable?
899
+ (ly:grob-array->list (ly:grob-object grob 'elements)))))
900
+ (if model-bar
901
+ model-bar
902
+ (begin
903
+ (ly:grob-suicide! grob)
904
+ grob))))
905
+
906
+ (define-public (ly:span-bar::width grob)
907
+ "Compute the width of the @code{SpanBar} stencil."
908
+ ;; We don't use the grob's actual stencil because it would trigger
909
+ ;; Y-axis calculations.
910
+ (let ((model-bar (ly:span-bar::choose-model-bar-line grob))
911
+ ;; note: choose-model-bar-line might have killed the span bar
912
+ (glyph-name (ly:grob-property grob 'glyph-name)))
913
+ (if (string? glyph-name)
914
+ (let ((stencil (span-bar::compound-bar-line
915
+ model-bar
916
+ glyph-name
917
+ dummy-extent)))
918
+ (ly:stencil-extent stencil X))
919
+ empty-interval)))
920
+
921
+ (define-public (ly:span-bar::before-line-breaking grob)
922
+ "A dummy callback that kills the @code{Grob} @var{grob} if it contains
923
+ no elements."
924
+ (let ((elts (ly:grob-object grob 'elements)))
925
+
926
+ (if (zero? (ly:grob-array-length elts))
927
+ (ly:grob-suicide! grob))))
928
+
929
+ (define-public (span-bar::compound-bar-line grob bar-glyph extent)
930
+ "Build the stencil of the span bar."
931
+ (let* ((line-thickness (layout-line-thickness grob))
932
+ (kern (* (ly:grob-property grob 'kern 1) line-thickness))
933
+ (bar-glyph-list (string->string-list
934
+ (strip-string-annotation bar-glyph)))
935
+ (span-glyph (assoc-get bar-glyph span-bar-glyph-alist 'undefined))
936
+ (stencil empty-stencil))
937
+
938
+ (if (string? span-glyph)
939
+ (let ((span-glyph-list (string->string-list span-glyph))
940
+ (is-first-stencil #t))
941
+
942
+ (for-each (lambda (bar span)
943
+ ;; the stencil stack routine is similar to the one
944
+ ;; used in bar-line::compound-bar-line, but here,
945
+ ;; leading replacement-chars are discarded.
946
+ (if (not (and (string=? span (string replacement-char))
947
+ is-first-stencil))
948
+ (begin
949
+ (set! stencil
950
+ (ly:stencil-combine-at-edge
951
+ stencil
952
+ X
953
+ RIGHT
954
+ ;; if the current glyph is the replacement-char,
955
+ ;; we take the corresponding glyph from the
956
+ ;; bar-glyph-list and insert an empty stencil
957
+ ;; with the appropriate width.
958
+ ;; (this method would fail if the bar-glyph-list
959
+ ;; were shorter than the span-glyph-list,
960
+ ;; but this makes hardly any sense from a
961
+ ;; typographical point of view
962
+ (if (string=? span (string replacement-char))
963
+ ((make-spacer-bar-line bar) grob extent)
964
+ (glyph->stencil span grob extent))
965
+ (if is-first-stencil 0 kern)))
966
+ (set! is-first-stencil #f))))
967
+ bar-glyph-list span-glyph-list))
968
+ ;; if span-glyph is not a string, it may be #f or 'undefined;
969
+ ;; the latter signals that the span bar for the current bar-glyph
970
+ ;; is undefined, so we raise a warning.
971
+ (if (eq? span-glyph 'undefined)
972
+ (ly:warning
973
+ (G_ "No span bar glyph defined for bar glyph '~a'; ignoring.")
974
+ bar-glyph)))
975
+ stencil))
976
+
977
+ ;; The method used in the following routine depends on bar_engraver
978
+ ;; not being removed from staff context. If bar_engraver is removed,
979
+ ;; the size of the staff lines is evaluated as 0, which results in a
980
+ ;; solid span bar line with faulty y coordinate.
981
+ ;;
982
+ ;; This routine was originally by Juergen Reuter, but it was on the
983
+ ;; bulky side. Rewritten by Han-Wen. Ported from c++ to Scheme by Marc Hohl.
984
+ (define-public (ly:span-bar::print grob)
985
+ "The print routine for span bars."
986
+ (let ((span-bar empty-stencil)
987
+ (model-bar (ly:span-bar::choose-model-bar-line grob))
988
+ ;; note: choose-model-bar-line might have killed the span bar
989
+ (bar-glyph (ly:grob-property grob 'glyph-name)))
990
+ (when (string? bar-glyph)
991
+ (let* ((elts-array (ly:grob-object grob 'elements))
992
+ (refp (ly:grob-common-refpoint-of-array grob elts-array Y))
993
+ (elts (reverse (sort (ly:grob-array->list elts-array)
994
+ ly:grob-vertical<?)))
995
+ ;; Elements must be ordered according to their y coordinates
996
+ ;; relative to their common axis group parent.
997
+ ;; Otherwise, the computation goes mad.
998
+ (extents '())
999
+ (make-span-bars '()))
1000
+
1001
+ ;; we compute the extents of each system and store them
1002
+ ;; in a list; dito for the 'allow-span-bar property.
1003
+ (for-each
1004
+ (lambda (bar)
1005
+ (let ((staff-symbol (ly:grob-object bar 'staff-symbol #f)))
1006
+ (when staff-symbol
1007
+ (let ((ext (interval-union
1008
+ (bar-line::bar-y-extent bar refp)
1009
+ (ly:grob-extent staff-symbol refp Y))))
1010
+ (when (positive? (interval-length ext))
1011
+ (set! extents (append extents (list ext)))
1012
+ (set! make-span-bars
1013
+ (append make-span-bars
1014
+ (list (ly:grob-property
1015
+ bar
1016
+ 'allow-span-bar
1017
+ #t)))))))))
1018
+ elts)
1019
+ ;; we discard the first entry in make-span-bars,
1020
+ ;; because its corresponding bar line is the
1021
+ ;; uppermost and therefore not connected to
1022
+ ;; another bar line
1023
+ (when (pair? make-span-bars)
1024
+ (set! make-span-bars (cdr make-span-bars)))
1025
+ ;; the span bar reaches from the lower end of the upper staff
1026
+ ;; to the upper end of the lower staff - when allow-span-bar is #t
1027
+ (reduce (lambda (curr prev)
1028
+ (let ((span-extent (cons 0 0))
1029
+ (allow-span-bar (car make-span-bars)))
1030
+
1031
+ (set! make-span-bars (cdr make-span-bars))
1032
+ (when (positive? (interval-length prev))
1033
+ (set! span-extent (cons (cdr prev) (car curr)))
1034
+ ;; draw the span bar only when the staff lines
1035
+ ;; don't overlap and allow-span-bar is #t:
1036
+ (and (> (interval-length span-extent) 0)
1037
+ allow-span-bar
1038
+ (set! span-bar
1039
+ (ly:stencil-add
1040
+ span-bar
1041
+ (span-bar::compound-bar-line
1042
+ model-bar
1043
+ bar-glyph
1044
+ span-extent)))))
1045
+ curr))
1046
+ "" extents)
1047
+ (set! span-bar (ly:stencil-translate-axis
1048
+ span-bar
1049
+ (- (ly:grob-relative-coordinate grob refp Y))
1050
+ Y))))
1051
+ span-bar))
1052
+
1053
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1054
+ ;; volta bracket functions
1055
+
1056
+ (define-public (allow-volta-hook bar-glyph)
1057
+ "Allow the volta bracket hook being drawn over bar line @var{bar-glyph}."
1058
+ (if (string? bar-glyph)
1059
+ (set! volta-bracket-allow-volta-hook-list
1060
+ (append volta-bracket-allow-volta-hook-list
1061
+ (list bar-glyph)))
1062
+ (ly:warning (G_ ("Volta hook bar line must be a string; ignoring '~a'.")
1063
+ bar-glyph))))
1064
+
1065
+ (define-session volta-bracket-allow-volta-hook-list '())
1066
+
1067
+ (define-public (volta-bracket::calc-hook-visibility bar-glyph)
1068
+ "Determine the visibility of the volta bracket end hook, returning
1069
+ @code{#t} if @emph{no} hook should be drawn."
1070
+ (not (member bar-glyph volta-bracket-allow-volta-hook-list)))
1071
+
1072
+ (define-public (ly:volta-bracket::calc-shorten-pair grob)
1073
+ "Calculate the @code{shorten-pair} values for an ideal placement
1074
+ of the volta brackets relative to the bar lines."
1075
+ (let* ((line-thickness (layout-line-thickness grob))
1076
+ (volta-half-line-thickness (* (ly:grob-property grob 'thickness 1.6)
1077
+ line-thickness
1078
+ 1/2))
1079
+ (bar-array (ly:grob-object grob 'bars))
1080
+ ;; the bar-array starts with the uppermost bar line grob that is
1081
+ ;; covered by the left edge of the volta bracket; more (span)
1082
+ ;; bar line grobs from other staves may follow
1083
+ (left-bar-line (and (ly:grob-array? bar-array)
1084
+ (positive? (ly:grob-array-length bar-array))
1085
+ (ly:grob-array-ref bar-array 0)))
1086
+ ;; we need the vertical-axis-group-index of the left-bar-line
1087
+ ;; to find the corresponding right-bar-line
1088
+ (vag-index (and left-bar-line
1089
+ (ly:grob-get-vertical-axis-group-index left-bar-line)))
1090
+ ;; the bar line corresponding to the right edge of the volta bracket
1091
+ ;; is the last entry with the same vag-index, so we transform the array to a list,
1092
+ ;; reverse it and search for the first suitable entry from
1093
+ ;; the back
1094
+ (right-bar-line (and left-bar-line
1095
+ (find (lambda (e)
1096
+ (eqv? (ly:grob-get-vertical-axis-group-index e)
1097
+ vag-index))
1098
+ (reverse (ly:grob-array->list bar-array)))))
1099
+ ;; the left-bar-line may be a #'<Grob Item >,
1100
+ ;; so we add "" as a fallback return value
1101
+ (left-bar-glyph-name (if left-bar-line
1102
+ (ly:grob-property left-bar-line 'glyph-name "")
1103
+ (string annotation-char)))
1104
+ (right-bar-glyph-name (if right-bar-line
1105
+ (ly:grob-property right-bar-line 'glyph-name "")
1106
+ (string annotation-char)))
1107
+ ;; This is the original logic. It flags left-bar-broken if
1108
+ ;; there is no left-bar-line. That seems strange.
1109
+ (left-bar-broken (not (and left-bar-line
1110
+ (zero? (ly:item-break-dir left-bar-line)))))
1111
+ (right-bar-broken (not (and right-bar-line
1112
+ (zero? (ly:item-break-dir
1113
+ right-bar-line)))))
1114
+ ;; Revert to current grob for getting layout info if no
1115
+ ;; left-bar-line available
1116
+ (left-span-stencil-extent (ly:stencil-extent
1117
+ (span-bar::compound-bar-line
1118
+ (or left-bar-line grob)
1119
+ left-bar-glyph-name
1120
+ dummy-extent)
1121
+ X))
1122
+ (right-span-stencil-extent (ly:stencil-extent
1123
+ (span-bar::compound-bar-line
1124
+ (or right-bar-line grob)
1125
+ right-bar-glyph-name
1126
+ dummy-extent)
1127
+ X))
1128
+ (left-shorten 0.0)
1129
+ (right-shorten 0.0))
1130
+
1131
+ ;; since "empty" intervals may look like (1.0 . -1.0), we use the
1132
+ ;; min/max functions to make sure that the placement is not corrupted
1133
+ ;; in case of empty bar lines
1134
+ (set! left-shorten
1135
+ (if left-bar-broken
1136
+ (- (max 0 (interval-end left-span-stencil-extent))
1137
+ (max 0 (interval-end (ly:stencil-extent
1138
+ (bar-line::compound-bar-line
1139
+ (or left-bar-line grob)
1140
+ left-bar-glyph-name
1141
+ dummy-extent)
1142
+ X)))
1143
+ volta-half-line-thickness)
1144
+ (- (max 0 (interval-end left-span-stencil-extent))
1145
+ volta-half-line-thickness)))
1146
+
1147
+ (set! right-shorten
1148
+ (if right-bar-broken
1149
+ (+ (- (max 0 (interval-end right-span-stencil-extent)))
1150
+ volta-half-line-thickness)
1151
+ (- (min 0 (interval-start right-span-stencil-extent))
1152
+ volta-half-line-thickness)))
1153
+
1154
+ (cons left-shorten right-shorten)))
1155
+
1156
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1157
+ ;; predefined bar glyph print procedures
1158
+
1159
+ (add-bar-glyph-print-procedure "x" make-no-bar-line)
1160
+ (add-bar-glyph-print-procedure "" make-empty-bar-line)
1161
+ (add-bar-glyph-print-procedure "|" make-simple-bar-line)
1162
+ (add-bar-glyph-print-procedure "." make-thick-bar-line)
1163
+ (add-bar-glyph-print-procedure "!" make-dashed-bar-line)
1164
+ (add-bar-glyph-print-procedure "'" make-tick-bar-line)
1165
+ (add-bar-glyph-print-procedure "," make-short-bar-line)
1166
+ (add-bar-glyph-print-procedure ":" make-colon-bar-line)
1167
+ (add-bar-glyph-print-procedure ";" make-dotted-bar-line)
1168
+ (add-bar-glyph-print-procedure "k" make-kievan-bar-line)
1169
+ (add-bar-glyph-print-procedure "S" (make-segno-bar-line #t))
1170
+ (add-bar-glyph-print-procedure "=" (make-segno-bar-line #f))
1171
+ (add-bar-glyph-print-procedure "[" (make-bracket-bar-line LEFT))
1172
+ (add-bar-glyph-print-procedure "]" (make-bracket-bar-line RIGHT))
1173
+
1174
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1175
+ ;; predefined bar lines
1176
+ ;;
1177
+ ;; definition of bar lines goes as follows:
1178
+ ;;
1179
+ ;; (define-bar-line "mid-line bar[-annotation]"
1180
+ ;; "end-of-line bar[-annotation]"
1181
+ ;; "beginning-of-line bar[-annotation]"
1182
+ ;; "span bar")
1183
+ ;;
1184
+ ;; Each argument must be a string or #f. The string "" calls for a
1185
+ ;; zero-width stencil. The string "x" or the value #f call for no
1186
+ ;; stencil. "x" may be annotated, unlike #f.
1187
+ ;;
1188
+ ;; Convention: if two bar lines would be identical in their
1189
+ ;; unbroken bar glyph, we use annotations to make them distinct;
1190
+ ;; as a general rule of thumb the main difference in their
1191
+ ;; behavior at the end of a line is used as annotation, e.g.,
1192
+ ;;
1193
+ ;; (define-bar-line "S" #f #t "=")
1194
+ ;; (define-bar-line "S-|" "|" #t "=")
1195
+ ;; (define-bar-line "S-||" "||" #t "=")
1196
+ ;;
1197
+ ;; When adding a new bar type, you must also add it in
1198
+ ;; Documentation/en/included/bar-lines.ly.
1199
+
1200
+ ;; common bar lines
1201
+ (define-bar-line "" #t #f #f)
1202
+ (define-bar-line "|" #t #f #t)
1203
+ (define-bar-line "|-s" #f #t "|")
1204
+ (define-bar-line "." #t #f #t)
1205
+ (define-bar-line ".|" #f #t #t)
1206
+ (define-bar-line ".|-|" "|" #t ".|")
1207
+ (define-bar-line ".|-||" "||" #t ".|")
1208
+ (define-bar-line "|." #t #f #t)
1209
+ (define-bar-line "||" #t #f #t)
1210
+ (define-bar-line ".." #t #f #t)
1211
+ (define-bar-line "|.|" #t #f #t) ; Should this break into "|." + ".|"?
1212
+ (define-bar-line "!" #t #f #t)
1213
+ (define-bar-line ";" #t #f #t)
1214
+ (define-bar-line "'" #t #f #f)
1215
+ (define-bar-line "," #t #f #f)
1216
+
1217
+ ;; end-of-line caesura
1218
+ (define-bar-line "x-|" "|" #f #f)
1219
+ (define-bar-line "x-||" "||" #f #f)
1220
+ (define-bar-line "x-." "." #f #f)
1221
+
1222
+ ;; repeats
1223
+ (define-bar-line ":|.:" ":|." ".|:" " |.")
1224
+ (define-bar-line ":..:" ":|." ".|:" " ..")
1225
+ (define-bar-line ":|.|:" ":|." ".|:" " |.|")
1226
+ (define-bar-line ":.|.:" ":|." ".|:" " .|.")
1227
+ (define-bar-line ":|." #t #f " |.")
1228
+ (define-bar-line ".|:" #f #t ".|")
1229
+ (define-bar-line ".|:-|" "|" #t ".|")
1230
+ (define-bar-line ".|:-||" "||" #t ".|")
1231
+ (define-bar-line ".|:-|." "|." #t ".|")
1232
+ (define-bar-line "[|:" #f #t " |")
1233
+ (define-bar-line "[|:-|" "|" #t " |")
1234
+ (define-bar-line "[|:-||" "||" #t " |")
1235
+ (define-bar-line "[|:-|." "|." #t " |")
1236
+ (define-bar-line ":|]" #t #f " | ")
1237
+ (define-bar-line ":|][|:" ":|]" "[|:" " | |")
1238
+
1239
+ ;; segno bar lines
1240
+ (define-bar-line "S" #f #t "=")
1241
+ (define-bar-line "S-|" "|" #t "=")
1242
+ (define-bar-line "S-||" "||" #t "=")
1243
+ (define-bar-line "S-S" #t #f "=")
1244
+ (define-bar-line "|.S" "|." "S" "|.")
1245
+ (define-bar-line "|.S-S" #t #f "|.")
1246
+ (define-bar-line ":|.S" ":|." "S" " |.")
1247
+ (define-bar-line ":|.S-S" #t #f " |.")
1248
+ (define-bar-line "S.|:" #f #t " .|")
1249
+ (define-bar-line "S.|:-|" "|" #t " .|")
1250
+ (define-bar-line "S.|:-||" "||" #t " .|")
1251
+ (define-bar-line "S.|:-S" "S" ".|:" " .|")
1252
+ (define-bar-line "|.S.|:" "|." "S.|:" "|. .|")
1253
+ (define-bar-line "|.S.|:-S" "|.S" ".|:" "|. .|")
1254
+ (define-bar-line ":|.S.|:" ":|." "S.|:" " |. .|")
1255
+ (define-bar-line ":|.S.|:-S" ":|.S" ".|:" " |. .|")
1256
+
1257
+ ;; ancient bar lines
1258
+ (define-bar-line "k" #t #f #f) ;; kievan section/final bar line
1259
+ (define-bar-line "-span|" #t #f "|") ; mensurstrich
1260
+
1261
+ ;; The right side of a volta bracket is closed when the corresponding
1262
+ ;; end-of-line bar line glyph would be one of the following. Whether
1263
+ ;; it is actually at a line break does not matter for this purpose.
1264
+ ;;
1265
+ ;; These signify either the end of a repeated section or the end of
1266
+ ;; the piece. Built-in end-of-line bar glyphs with either meaning
1267
+ ;; should be listed here even if they are not normally used with volta
1268
+ ;; brackets.
1269
+ ;;
1270
+ ;; This complication is disappointing because this information is
1271
+ ;; readily available when it comes from commands such as \repeat;
1272
+ ;; however, we want to be able to derive meaning from manual \bar
1273
+ ;; commands also.
1274
+ ;;
1275
+ ;; end of repeated section
1276
+ (allow-volta-hook ":|.")
1277
+ (allow-volta-hook ":|.S")
1278
+ (allow-volta-hook ":|]")
1279
+ ;; end of piece
1280
+ (allow-volta-hook "|.")
1281
+ (allow-volta-hook "|.S")