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,2254 @@
1
+ %%%% -*- Mode: Scheme -*-
2
+
3
+ %%%% This file is part of LilyPond, the GNU music typesetter.
4
+ %%%%
5
+ %%%% Copyright (C) 2003--2022 Han-Wen Nienhuys <hanwen@xs4all.nl>
6
+ %%%% Jan Nieuwenhuizen <janneke@gnu.org>
7
+ %%%%
8
+ %%%% LilyPond is free software: you can redistribute it and/or modify
9
+ %%%% it under the terms of the GNU General Public License as published by
10
+ %%%% the Free Software Foundation, either version 3 of the License, or
11
+ %%%% (at your option) any later version.
12
+ %%%%
13
+ %%%% LilyPond is distributed in the hope that it will be useful,
14
+ %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ %%%% GNU General Public License for more details.
17
+ %%%%
18
+ %%%% You should have received a copy of the GNU General Public License
19
+ %%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
20
+
21
+ \version "2.21.0"
22
+
23
+
24
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25
+ %% this file is alphabetically sorted.
26
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
27
+
28
+ %% need SRFI-1 for filter; optargs for lambda*
29
+ #(use-modules (srfi srfi-1)
30
+ (ice-9 optargs))
31
+
32
+ absolute =
33
+ #(define-music-function (music)
34
+ (ly:music?)
35
+ (_i "Make @var{music} absolute. This does not actually change the
36
+ music itself but rather hides it from surrounding @code{\\relative}
37
+ and @code{\\fixed} commands.")
38
+ (make-music 'RelativeOctaveMusic 'element music))
39
+
40
+ acciaccatura =
41
+ #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic
42
+ (_i "Create an acciaccatura from the following music expression"))
43
+
44
+ %% keep these two together
45
+ instrument-definitions = #'()
46
+ addInstrumentDefinition =
47
+ #(define-void-function
48
+ (name lst) (string? list?)
49
+ (_i "Create instrument @var{name} with properties @var{list}.
50
+
51
+ This function is deprecated.")
52
+ (set! instrument-definitions (acons name lst instrument-definitions)))
53
+
54
+ addQuote =
55
+ #(define-void-function (name music) (string? ly:music?)
56
+ (_i "Define @var{music} as a quotable music expression named
57
+ @var{name}")
58
+ (add-quotable name music))
59
+
60
+ after =
61
+ #(define-music-function (delta ev mus) (ly:duration? ly:music? ly:music?)
62
+ (_i "Add music @var{ev} (usually a post-event) with a delay of @var{delta}
63
+ after the onset of @var{mus}.")
64
+ (define (empty-chord? m)
65
+ "Checks whether m is an empty chord <>."
66
+ (and (music-is-of-type? m 'event-chord)
67
+ (null? (ly:music-property m 'elements))
68
+ (null? (ly:music-property m 'duration))))
69
+ (if (and (not (empty-chord? mus))
70
+ (ly:moment<?
71
+ (ly:music-length mus)
72
+ (ly:moment-add (ly:music-length ev) (ly:duration-length delta))))
73
+ (ly:warning (G_ "\\after expression longer than main music argument.")))
74
+ #{ \context Bottom << { \skip $delta <> $ev } #mus >> #})
75
+
76
+ %% keep these two together
77
+ afterGraceFraction = 3/4
78
+ afterGrace =
79
+ #(define-music-function (fraction main grace) ((scale?) ly:music? ly:music?)
80
+ (_i "Create @var{grace} note(s) after a @var{main} music expression.
81
+
82
+ The musical position of the grace expression is after a
83
+ given fraction of the main note's duration has passed. If
84
+ @var{fraction} is not specified as first argument, it is taken from
85
+ @code{afterGraceFraction} which has a default value of @code{3/4}.")
86
+ (let* ((factor
87
+ (scale->factor (or fraction
88
+ (ly:parser-lookup 'afterGraceFraction))))
89
+ (delta
90
+ (* factor (ly:moment-main (ly:music-length main))))
91
+ (grace-music
92
+ (make-music 'GraceMusic 'element grace)))
93
+ (if (> factor 1)
94
+ (ly:warning (G_ "\\afterGrace exceeds duration of main argument.")))
95
+ ;;; Despite the similarity of definitions, don't reduce this to
96
+ ;;; an application of \after. For \afterGrace, the arguments are
97
+ ;;; input in visual order, hence they should be used in that order
98
+ ;;; to ensure
99
+ ;;; \relative \afterGrace c'2 d8
100
+ ;;; gives the expected result.
101
+ #{
102
+ \context Bottom << #main { \skip 1*$delta #grace-music } >>
103
+ #}))
104
+
105
+
106
+ %% music identifiers not allowed at top-level,
107
+ %% so this is a music-function instead.
108
+ allowPageTurn =
109
+ #(define-music-function () ()
110
+ (_i "Allow a page turn. May be used at toplevel (ie between scores or
111
+ markups), or inside a score.")
112
+ (make-music 'EventChord
113
+ 'page-marker #t
114
+ 'page-turn-permission 'allow
115
+ 'elements (list (make-music 'PageTurnEvent
116
+ 'break-permission 'allow))))
117
+
118
+ alterBroken =
119
+ #(define-music-function (property arg target)
120
+ (key-list-or-symbol? list? key-list-or-music?)
121
+ (_i "Override @var{property} for pieces of broken spanner @var{target}
122
+ with values @var{arg}. @var{target} may either be music in the form of
123
+ a starting spanner event, or a symbol list in the form
124
+ @samp{Context.Grob} or just @samp{Grob}. Iff @var{target} is in the
125
+ form of a spanner event, @var{property} may also have the form
126
+ @samp{Grob.property} for specifying a directed tweak.")
127
+ (if (ly:music? target)
128
+ (if (or (eqv? (ly:music-property target 'span-direction) START)
129
+ (music-is-of-type? target 'tie-event))
130
+ (tweak property (value-for-spanner-piece property arg) target)
131
+ (begin
132
+ (ly:music-warning target (G_ "not a spanner"))
133
+ target))
134
+ (propertyOverride (append target (if (symbol? property)
135
+ (list property)
136
+ property))
137
+ (value-for-spanner-piece property arg))))
138
+
139
+ appendToTag =
140
+ #(define-music-function (tag more music)
141
+ (symbol? ly:music? ly:music?)
142
+ (_i "Append @var{more} to the back of music tagged with @var{tag}. A
143
+ @code{post-event} can be added to the articulations of rhythmic events
144
+ or chords; other expressions may be added to chords, sequential or
145
+ simultaneous music.")
146
+ (define (add-right m more)
147
+ (cond
148
+ ((or (music-is-of-type? m 'sequential-music)
149
+ (music-is-of-type? m 'simultaneous-music))
150
+ (if (ly:event? more)
151
+ (begin
152
+ (ly:music-warning m (G_ "\\appendToTag cannot append post-event"))
153
+ (ly:music-message m (G_ "to this music")))
154
+ (set! (ly:music-property m 'elements)
155
+ (append! (ly:music-property m 'elements) (list more)))))
156
+ ((music-is-of-type? m 'event-chord)
157
+ (cond ((ly:event? more)
158
+ (set! (ly:music-property m 'elements)
159
+ (append! (ly:music-property m 'elements (list more)))))
160
+ ((music-is-of-type? more 'rhythmic-event)
161
+ (set! (ly:music-property m 'elements)
162
+ (call-with-values (lambda ()
163
+ (break! ly:event?
164
+ (ly:music-property m 'elements)))
165
+ (lambda (elts posts)
166
+ (append! elts (cons more posts))))))
167
+ (else
168
+ (ly:music-warning more (G_ "\\appendToTag cannot append this"))
169
+ (ly:music-message m (G_ "to this event-chord")))))
170
+ ((music-is-of-type? m 'rhythmic-event)
171
+ (if (ly:event? more)
172
+ (set! (ly:music-property m 'articulations)
173
+ (append! (ly:music-property m 'articulations) (list more)))
174
+ (begin
175
+ (ly:music-warning more (G_ "\\appendToTag cannot append this music"))
176
+ (ly:music-message m (G_ "to this rhythmic-event")))))
177
+ ((music-is-of-type? m 'music-wrapper-music)
178
+ (add-right (ly:music-property m 'element) more))
179
+ (else
180
+ (ly:input-warning (*location*) (G_ "\\appendToTag failed:"))
181
+ (ly:music-message m (G_ "No \\appendToTag destination")))))
182
+ (music-map (lambda (m)
183
+ (if (memq tag (ly:music-property m 'tags))
184
+ (add-right m more))
185
+ m)
186
+ music))
187
+
188
+ applyContext =
189
+ #(define-music-function (proc) (procedure?)
190
+ (_i "Modify context properties with Scheme procedure @var{proc}.")
191
+ (make-music 'ApplyContext
192
+ 'procedure proc))
193
+
194
+ applyMusic =
195
+ #(define-music-function (func music) (procedure? ly:music?)
196
+ (_i"Apply procedure @var{func} to @var{music}.")
197
+ (func music))
198
+
199
+ applyOutput =
200
+ #(define-music-function (target proc) (symbol-list-or-symbol? procedure?)
201
+ (_i "Apply function @code{proc} to every layout object matched by
202
+ @var{target} which takes the form @code{Context} or @code{Context.Grob}.")
203
+ (let ((p (check-grob-path target #:max 2)))
204
+ (if p
205
+ (make-music 'ApplyOutputEvent
206
+ 'procedure proc
207
+ 'context-type (car p)
208
+ (if (pair? (cdr p))
209
+ (list (cons 'symbol (cadr p)))
210
+ '()))
211
+ (make-music 'Music))))
212
+
213
+ appoggiatura =
214
+ #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
215
+ (_i "Create an appoggiatura from @var{music}"))
216
+
217
+ % for regression testing purposes.
218
+ assertBeamQuant =
219
+ #(define-music-function (l r) (pair? pair?)
220
+ (_i "Testing function: check whether the beam quants @var{l} and @var{r} are correct")
221
+ (make-grob-property-override 'Beam 'positions (check-quant-callbacks l r)))
222
+
223
+ % for regression testing purposes.
224
+ assertBeamSlope =
225
+ #(define-music-function (comp) (procedure?)
226
+ (_i "Testing function: check whether the slope of the beam is the same as @code{comp}")
227
+ (make-grob-property-override 'Beam 'positions (check-slope-callbacks comp)))
228
+
229
+ autoChange =
230
+ #(define-music-function (pitch clef-1 clef-2 music)
231
+ ((ly:pitch?) (ly:context-mod?) (ly:context-mod?) ly:music?)
232
+ (_i "Make voices that switch between staves automatically. As an option the
233
+ pitch where to switch staves may be specified. The clefs for the staves are
234
+ optional as well. Setting clefs works only for implicitly instantiated
235
+ staves.")
236
+ (let ;; keep the contexts alive for the full duration
237
+ ((skip (make-duration-of-length (ly:music-length music)))
238
+ (clef-1 (or clef-1 #{ \with { \clef "treble" } #}))
239
+ (clef-2 (or clef-2 #{ \with { \clef "bass" } #})))
240
+ (make-simultaneous-music
241
+ (list
242
+ (descend-to-context (make-autochange-music music pitch) 'Staff
243
+ "up" clef-1)
244
+ (context-spec-music (make-skip-music skip) 'Staff
245
+ "up" clef-1)
246
+ (context-spec-music (make-skip-music skip) 'Staff
247
+ "down" clef-2)))))
248
+
249
+ balloonGrobText =
250
+ #(define-music-function (grob-name offset text)
251
+ (symbol? number-pair? markup?)
252
+ (_i "Attach @var{text} to @var{grob-name} at offset @var{offset}
253
+ (use like @code{\\once})")
254
+ (make-event-chord
255
+ (list
256
+ (make-music 'AnnotateOutputEvent
257
+ 'symbol grob-name
258
+ 'X-offset (car offset)
259
+ 'Y-offset (cdr offset)
260
+ 'text text))))
261
+
262
+ balloonText =
263
+ #(define-event-function (offset text) (number-pair? markup?)
264
+ (_i "Attach @var{text} at @var{offset} (use like @code{\\tweak})")
265
+ (make-music 'AnnotateOutputEvent
266
+ 'X-offset (car offset)
267
+ 'Y-offset (cdr offset)
268
+ 'text text))
269
+
270
+ bar =
271
+ #(define-music-function (type) (string?)
272
+ (_i "Insert a bar line of type @var{type}, overriding any automatic
273
+ bar lines.")
274
+ (make-music 'BarEvent 'bar-type type))
275
+
276
+ barNumberCheck =
277
+ #(define-music-function (n) (integer?)
278
+ (_i "Print a warning if the current bar number is not @var{n}.")
279
+ (make-music 'ApplyContext
280
+ 'procedure
281
+ (lambda (c)
282
+ (if (not (ly:context-property c 'ignoreBarNumberChecks #f))
283
+ (let ((cbn (ly:context-property c 'currentBarNumber)))
284
+ (if (and (number? cbn) (not (= cbn n)))
285
+ (ly:input-warning (*location*)
286
+ "Bar number is ~a; expected ~a"
287
+ cbn n)))))))
288
+
289
+ beamExceptions =
290
+ #(define-scheme-function (music) (ly:music?)
291
+ (_i "Extract a value suitable for setting
292
+ @code{Timing.beamExceptions} from the given pattern with explicit
293
+ beams in @var{music}. A bar check @code{|} has to be used between
294
+ bars of patterns in order to reset the timing.")
295
+ (extract-beam-exceptions music))
296
+
297
+ bendAfter =
298
+ #(define-event-function (delta) (real?)
299
+ (_i "Create a fall or doit of pitch interval @var{delta}.")
300
+ (make-music 'BendAfterEvent
301
+ 'delta-step delta))
302
+
303
+ %% BendSpanner convenience event functions
304
+ bendStartLevel =
305
+ #(define-event-function (idx mus)(index? ly:music?)
306
+ (_i "Sets the @code{details.successive-level} of a @code{BendSpanner} to
307
+ @var{idx}.")
308
+ #{
309
+ \tweak details.successive-level $idx
310
+ $mus
311
+ #})
312
+
313
+ bendHold =
314
+ #(define-event-function (mus)(ly:music?)
315
+ (_i "Sets the @code{'style} of a @code{BendSpanner} to @code{'hold}.")
316
+ #{
317
+ \tweak style #'hold
318
+ \tweak details.head-text-break-visibility ##(#t #t #f)
319
+ $mus
320
+ #})
321
+
322
+ preBend =
323
+ #(define-event-function (mus)(ly:music?)
324
+ (_i "Sets the @code{'style} of a @code{BendSpanner} to @code{'pre-bend}.")
325
+ #{
326
+ \tweak style #'pre-bend
327
+ \tweak details.head-text-break-visibility ##(#t #t #f)
328
+ $mus
329
+ #})
330
+
331
+ preBendHold =
332
+ #(define-event-function (mus)(ly:music?)
333
+ (_i "Sets the @code{'style} of a @code{BendSpanner} to
334
+ @code{'pre-bend-hold}.")
335
+ #{
336
+ \tweak style #'pre-bend-hold
337
+ \tweak details.head-text-break-visibility ##(#t #t #f)
338
+ $mus
339
+ #})
340
+
341
+ bookOutputName =
342
+ #(define-void-function (newfilename) (string?)
343
+ (_i "Direct output for the current book block to @var{newfilename}.")
344
+ (set! (paper-variable #f 'output-filename) newfilename))
345
+
346
+ bookOutputSuffix =
347
+ #(define-void-function (newsuffix) (string?)
348
+ (_i "Set the output filename suffix for the current book block to
349
+ @var{newsuffix}.")
350
+ (set! (paper-variable #f 'output-suffix) newsuffix))
351
+
352
+ %% \breathe is defined as a music function rather than an event identifier to
353
+ %% ensure it gets useful input location information: as an event identifier,
354
+ %% it would have to be wrapped in an EventChord to prevent it from being
355
+ %% treated as a post_event by the parser
356
+ breathe =
357
+ #(define-music-function () ()
358
+ (_i "Insert a breath mark.")
359
+ (make-music 'BreathingEvent))
360
+
361
+ %% \caesura is defined as a music function rather than an event identifier to
362
+ %% ensure it gets useful input location information: as an event identifier,
363
+ %% it would have to be wrapped in an EventChord to prevent it from being
364
+ %% treated as a post_event by the parser
365
+ caesura =
366
+ #(define-music-function () ()
367
+ (_i "Insert a caesura.")
368
+ (make-music 'CaesuraEvent))
369
+
370
+ clef =
371
+ #(define-music-function (type) (string?)
372
+ (_i "Set the current clef to @var{type}.")
373
+ (make-clef-set type))
374
+
375
+ codaMark =
376
+ #(define-music-function (num) ((index?))
377
+ (_i "Create a coda mark. @var{num} may be 1@tie{}for the first
378
+ mark, 2@tie{}for the second, etc., or it may be @code{\\default} to
379
+ use the next number in sequence automatically.")
380
+ (if num
381
+ (make-music 'CodaMarkEvent 'label num)
382
+ (make-music 'CodaMarkEvent)))
383
+
384
+ compoundMeter =
385
+ #(define-music-function (args) (pair?)
386
+ (_i "Create compound time signatures. The argument is a Scheme list of
387
+ lists. Each list describes one fraction, with the last entry being the
388
+ denominator, while the first entries describe the summands in the
389
+ enumerator. If the time signature consists of just one fraction,
390
+ the list can be given directly, i.e. not as a list containing a single list.
391
+ For example, a time signature of (3+1)/8 + 2/4 would be created as
392
+ @code{\\compoundMeter #'((3 1 8) (2 4))}, and a time signature of (3+2)/8
393
+ as @code{\\compoundMeter #'((3 2 8))} or shorter
394
+ @code{\\compoundMeter #'(3 2 8)}.")
395
+ (let* ((mlen (calculate-compound-measure-length args))
396
+ (beat (calculate-compound-base-beat args))
397
+ (beatGrouping (calculate-compound-beat-grouping args))
398
+ (timesig (cons (ly:moment-main-numerator mlen)
399
+ (ly:moment-main-denominator mlen))))
400
+ #{
401
+ \once \override Timing.TimeSignature.stencil = #(lambda (grob)
402
+ (grob-interpret-markup grob (make-compound-meter-markup args)))
403
+ \set Timing.timeSignatureFraction = #timesig
404
+ \set Timing.baseMoment = #beat
405
+ \set Timing.beatStructure = #beatGrouping
406
+ \set Timing.beamExceptions = #'()
407
+ \set Timing.measureLength = #mlen
408
+ #} ))
409
+
410
+ compressMMRests =
411
+ #(define-music-function (music) (ly:music?)
412
+ (_i "Remove the empty bars created by multi-measure rests,
413
+ leaving just the first bar containing the MM rest itself.")
414
+ (music-map
415
+ (lambda (m)
416
+ (if (eq? 'MultiMeasureRestMusic (ly:music-property m 'name))
417
+ #{ \once \set Score.skipBars = ##t #m #}
418
+ #{ #m #} ))
419
+ music))
420
+
421
+ crossStaff =
422
+ #(define-music-function (notes) (ly:music?)
423
+ (_i "Create cross-staff stems")
424
+ #{
425
+ \temporary \override Stem.cross-staff = #cross-staff-connect
426
+ \temporary \override Flag.style = #'no-flag
427
+ #notes
428
+ \revert Stem.cross-staff
429
+ \revert Flag.style
430
+ #})
431
+
432
+ cueClef =
433
+ #(define-music-function (type) (string?)
434
+ (_i "Set the current cue clef to @var{type}.")
435
+ (make-cue-clef-set type))
436
+
437
+ cueClefUnset =
438
+ #(define-music-function () ()
439
+ (_i "Unset the current cue clef.")
440
+ (make-cue-clef-unset))
441
+
442
+ cueDuring =
443
+ #(define-music-function
444
+ (what dir main-music) (string? ly:dir? ly:music?)
445
+ (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
446
+ in a CueVoice oriented by @var{dir}.")
447
+ (make-music 'QuoteMusic
448
+ 'element main-music
449
+ 'quoted-context-type 'CueVoice
450
+ 'quoted-context-id "cue"
451
+ 'quoted-music-name what
452
+ 'quoted-voice-direction dir))
453
+
454
+ cueDuringWithClef =
455
+ #(define-music-function
456
+ (what dir clef main-music) (string? ly:dir? string? ly:music?)
457
+ (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
458
+ in a CueVoice oriented by @var{dir}.")
459
+ (make-music 'QuoteMusic
460
+ 'element main-music
461
+ 'quoted-context-type 'CueVoice
462
+ 'quoted-context-id "cue"
463
+ 'quoted-music-name what
464
+ 'quoted-music-clef clef
465
+ 'quoted-voice-direction dir))
466
+
467
+
468
+
469
+ displayLilyMusic =
470
+ #(define-music-function (port music) ((output-port?) ly:music?)
471
+ (_i "Display the LilyPond input representation of @var{music}
472
+ to @var{port}, defaulting to the console.")
473
+ (let ((port (or port (current-output-port))))
474
+ (newline port)
475
+ (display-lily-music music port))
476
+ music)
477
+
478
+ displayMusic =
479
+ #(define-music-function (port music) ((output-port?) ly:music?)
480
+ (_i "Display the internal representation of @var{music} to
481
+ @var{port}, default to the console.")
482
+ (let ((port (or port (current-output-port))))
483
+ (newline port)
484
+ (display-scheme-music music port))
485
+ music)
486
+
487
+ displayScheme =
488
+ #(define-scheme-function (port expr) ((output-port?) scheme?)
489
+ (_i "Display the internal representation of @var{expr} to
490
+ @var{port}, default to the console.")
491
+ (let ((port (or port (current-output-port))))
492
+ (newline port)
493
+ (display-scheme-music expr port))
494
+ expr)
495
+
496
+
497
+ dropNote =
498
+ #(define-music-function (num music) (integer? ly:music?)
499
+ (_i "Drop a note of any chords in @var{music}, in @var{num}
500
+ position from above.")
501
+ (music-map (move-chord-note (- num) DOWN) music))
502
+
503
+
504
+ endSpanners =
505
+ #(define-music-function (music) (ly:music?)
506
+ (_i "Terminate the next spanner prematurely after exactly one note
507
+ without the need of a specific end spanner.")
508
+ (let* ((start-span-evs (filter (lambda (ev)
509
+ (equal? (ly:music-property ev 'span-direction)
510
+ START))
511
+ (extract-typed-music music 'span-event)))
512
+ (stop-span-evs
513
+ (map (lambda (m)
514
+ (music-clone m 'span-direction STOP))
515
+ start-span-evs))
516
+ (end-ev-chord (make-music 'EventChord
517
+ 'elements stop-span-evs))
518
+ (total (make-music 'SequentialMusic
519
+ 'elements (list music
520
+ end-ev-chord))))
521
+ total))
522
+
523
+ eventChords =
524
+ #(define-music-function (music) (ly:music?)
525
+ (_i "Compatibility function wrapping @code{EventChord} around
526
+ isolated rhythmic events occuring since version 2.15.28, after
527
+ expanding repeat chords @samp{q}.")
528
+ (event-chord-wrap! music))
529
+
530
+ featherDurations=
531
+ #(define-music-function (scale argument) (scale? ly:music?)
532
+ (_i "Adjust durations of music in @var{argument} by @var{scale}.")
533
+ (let ((orig-duration (ly:music-length argument))
534
+ (factor (scale->factor scale))
535
+ (multiplier 1))
536
+
537
+ (for-each
538
+ (lambda (mus)
539
+ (if (< 0 (ly:moment-main-denominator (ly:music-length mus)))
540
+ (begin
541
+ (ly:music-compress mus multiplier)
542
+ (set! multiplier (* factor multiplier)))))
543
+ (extract-named-music argument '(EventChord NoteEvent RestEvent SkipEvent)))
544
+ (ly:music-compress
545
+ argument
546
+ (ly:moment-div orig-duration (ly:music-length argument)))))
547
+
548
+ finger =
549
+ #(define-event-function (finger) (index-or-markup?)
550
+ (_i "Apply @var{finger} as a fingering indication.")
551
+
552
+ (make-music
553
+ 'FingeringEvent
554
+ (if (index? finger) 'digit 'text) finger))
555
+
556
+ fixed =
557
+ #(define-music-function (pitch music)
558
+ (ly:pitch? ly:music?)
559
+ (_i "Use the octave of @var{pitch} as the default octave for @var{music}.")
560
+ (let ((octave-marks (1+ (ly:pitch-octave pitch))))
561
+ (cond ((not (= 0 octave-marks))
562
+ (ly:music-transpose music (ly:make-pitch octave-marks 0 0))
563
+ ;;In order to leave unchanged the notes in any enclosed
564
+ ;; \absolute or \fixed or \relative, make a cancelling shift
565
+ (map (lambda (m)
566
+ (ly:music-transpose m (ly:make-pitch (- octave-marks) 0 0)))
567
+ (extract-named-music music 'RelativeOctaveMusic)))))
568
+ (make-music 'RelativeOctaveMusic 'element music))
569
+
570
+ footnote =
571
+ #(define-music-function (mark offset footnote item)
572
+ ((markup?) number-pair? markup? symbol-list-or-music?)
573
+ (_i "Make the markup @var{footnote} a footnote on @var{item}. The
574
+ footnote is marked with a markup @var{mark} moved by @var{offset} with
575
+ respect to the marked music.
576
+
577
+ If @var{mark} is not given or specified as @var{\\default}, it is
578
+ replaced by an automatically generated sequence number. If @var{item}
579
+ is a symbol list of form @samp{Grob} or @samp{Context.Grob}, then
580
+ grobs of that type will be marked at the current time step in the
581
+ given context (default @code{Bottom}).
582
+
583
+ If @var{item} is music, the music will get a footnote attached to a
584
+ grob immediately attached to the event, like @var{\\tweak} does. For
585
+ attaching a footnote to an @emph{indirectly} caused grob, write
586
+ @code{\\single\\footnote}, use @var{item} to specify the grob, and
587
+ follow it with the music to annotate.
588
+
589
+ Like with @code{\\tweak}, if you use a footnote on a following
590
+ post-event, the @code{\\footnote} command itself needs to be attached
591
+ to the preceding note or rest as a post-event with @code{-}.")
592
+ (let ((mus (make-music
593
+ 'FootnoteEvent
594
+ 'X-offset (car offset)
595
+ 'Y-offset (cdr offset)
596
+ 'automatically-numbered (not mark)
597
+ 'text (or mark (make-null-markup))
598
+ 'footnote-text footnote)))
599
+ (once (propertyTweak 'footnote-music mus item))))
600
+
601
+ grace =
602
+ #(def-grace-function startGraceMusic stopGraceMusic
603
+ (_i "Insert @var{music} as grace notes."))
604
+
605
+ grobdescriptions =
606
+ #(define-scheme-function (descriptions) (list?)
607
+ (_i "Create a context modification from @var{descriptions}, a list
608
+ in the format of @code{all-grob-descriptions}.")
609
+ (ly:make-context-mod
610
+ (map (lambda (p)
611
+ (list 'assign (car p) (ly:make-grob-properties (cdr p))))
612
+ descriptions)))
613
+
614
+ harmonicByFret = #(define-music-function (fret music) (number? ly:music?)
615
+ (_i "Convert @var{music} into mixed harmonics; the resulting notes resemble
616
+ harmonics played on a fretted instrument by touching the strings at @var{fret}.")
617
+ #{
618
+ \set harmonicDots = ##t
619
+ \temporary \override TabNoteHead.stencil = #(tab-note-head::print-custom-fret-label (number->string fret))
620
+ \temporary \override NoteHead.Y-extent = #grob::always-Y-extent-from-stencil
621
+ \temporary \override NoteHead.stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
622
+ (ly:note-head::print grob))
623
+ #(make-harmonic
624
+ (calc-harmonic-pitch (fret->pitch (number->string fret)) music))
625
+ \unset harmonicDots
626
+ \revert TabNoteHead.stencil
627
+ \revert NoteHead.Y-extent
628
+ \revert NoteHead.stencil
629
+ #})
630
+
631
+ harmonicByRatio = #(define-music-function (ratio music) (number? ly:music?)
632
+ (_i "Convert @var{music} into mixed harmonics; the resulting notes resemble
633
+ harmonics played on a fretted instrument by touching the strings at the point
634
+ given through @var{ratio}.")
635
+ #{
636
+ \set harmonicDots = ##t
637
+ \temporary \override TabNoteHead.stencil = #(tab-note-head::print-custom-fret-label (ratio->fret ratio))
638
+ \temporary \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height)
639
+ \temporary \override NoteHead.stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
640
+ (ly:note-head::print grob))
641
+ #(make-harmonic
642
+ (calc-harmonic-pitch (ratio->pitch ratio) music))
643
+ \unset harmonicDots
644
+ \revert TabNoteHead.stencil
645
+ \revert NoteHead.Y-extent
646
+ \revert NoteHead.stencil
647
+ #})
648
+
649
+ hide =
650
+ #(define-music-function (item) (symbol-list-or-music?)
651
+ (_i "Set @var{item}'s @samp{transparent} property to @code{#t},
652
+ making it invisible while still retaining its dimensions.
653
+
654
+ If @var{item} is a symbol list of form @code{GrobName} or
655
+ @code{Context.GrobName}, the result is an override for the grob name
656
+ specified by it. If @var{item} is a music expression, the result is
657
+ the same music expression with an appropriate tweak applied to it.")
658
+ (propertyTweak 'transparent #t item))
659
+
660
+ inStaffSegno =
661
+ #(define-music-function () ()
662
+ (_i "Put the segno variant 'varsegno' at this position into the staff,
663
+ compatible with the repeat command.")
664
+ #{
665
+ {
666
+ \once \set Timing.segnoStyle = #'bar-line
667
+ \segnoMark \default
668
+ }
669
+ #})
670
+
671
+ instrumentSwitch =
672
+ #(define-music-function
673
+ (name) (string?)
674
+ (_i "Switch instrument to @var{name}, which must have been predefined with
675
+ function @code{\\addInstrumentDefinition}.
676
+
677
+ This function is deprecated.")
678
+ (let* ((handle (assoc name instrument-definitions))
679
+ (instrument-def (if handle (cdr handle) '())))
680
+
681
+ (if (not handle)
682
+ (ly:input-warning (*location*) "No such instrument: ~a" name))
683
+ (context-spec-music
684
+ (make-music 'SimultaneousMusic
685
+ 'elements
686
+ (map (lambda (kv)
687
+ (make-property-set
688
+ (car kv)
689
+ (cdr kv)))
690
+ instrument-def))
691
+ 'Staff)))
692
+
693
+ inversion =
694
+ #(define-music-function
695
+ (around to music) (ly:pitch? ly:pitch? ly:music?)
696
+ (_i "Invert @var{music} about @var{around} and
697
+ transpose from @var{around} to @var{to}.")
698
+ (music-invert around to music))
699
+
700
+ invertChords =
701
+ #(define-music-function (num music) (integer? ly:music?)
702
+ (_i "Invert any chords in @var{music} into their @var{num}-th position.
703
+ (Chord inversions may be directed downwards using negative integers.)")
704
+ (let loop ((num num) (music music))
705
+ (cond ((zero? num) music)
706
+ ((negative? num) (loop (1+ num) (dropNote 1 music)))
707
+ (else (loop (1- num) (raiseNote 1 music))))))
708
+
709
+
710
+ jump =
711
+ #(define-music-function (text) (markup?)
712
+ "Mark a point of departure, e.g. @q{Gavotte I D.C.}."
713
+ (make-music 'AdHocJumpEvent 'text text))
714
+
715
+
716
+
717
+ keepWithTag =
718
+ #(define-music-function (tags music)
719
+ (symbol-list-or-symbol? ly:music?)
720
+ (_i "Include only elements of @var{music} that are tagged with one
721
+ of the tags in @var{tags}. @var{tags} may be either a single symbol
722
+ or a list of symbols.
723
+
724
+ Each tag may be declared as a member of at most one tag group (defined
725
+ with @code{\\tagGroup}). If none of a @var{music} element's tags
726
+ share a tag group with one of the specified @var{tags}, the element is
727
+ retained.")
728
+ (music-filter
729
+ (tags-keep-predicate tags)
730
+ music))
731
+
732
+ key =
733
+ #(define-music-function (tonic pitch-alist)
734
+ ((ly:pitch? '()) (number-pair-list? '()))
735
+ (_i "Set key to @var{tonic} and scale @var{pitch-alist}.
736
+ If both are null, just generate @code{KeyChangeEvent}.")
737
+ (cond ((null? tonic) (make-music 'KeyChangeEvent))
738
+ ((null? pitch-alist)
739
+ (ly:parser-error (G_ "second argument must be pitch list")
740
+ (*location*))
741
+ (make-music 'SequentialMusic 'void #t))
742
+ (else
743
+ (ly:music-transpose
744
+ (make-music 'KeyChangeEvent
745
+ 'tonic (ly:make-pitch 0 0 0)
746
+ 'pitch-alist pitch-alist)
747
+ tonic))))
748
+
749
+ killCues =
750
+ #(define-music-function (music) (ly:music?)
751
+ (_i "Remove cue notes from @var{music}.")
752
+ (music-map
753
+ (lambda (mus)
754
+ (if (and (string? (ly:music-property mus 'quoted-music-name))
755
+ (string=? (ly:music-property mus 'quoted-context-id "") "cue"))
756
+ (ly:music-property mus 'element)
757
+ mus))
758
+ music))
759
+
760
+
761
+
762
+ label =
763
+ #(define-music-function (label) (symbol?)
764
+ (_i "Create @var{label} as a referrable label.")
765
+ (make-music 'EventChord
766
+ 'page-marker #t
767
+ 'page-label label
768
+ 'elements (list (make-music 'LabelEvent
769
+ 'page-label label))))
770
+
771
+ previous-pitchnames = #'()
772
+
773
+ language =
774
+ #(define-void-function (language) (string?)
775
+ (_i "Set note names for language @var{language}.")
776
+ (note-names-language language))
777
+
778
+ languageSaveAndChange =
779
+ #(define-void-function (language) (string?)
780
+ (_i "Store the previous pitchnames alist, and set a new one.")
781
+ (set! previous-pitchnames pitchnames)
782
+ (note-names-language language))
783
+
784
+ languageRestore =
785
+ #(define-void-function () ()
786
+ (_i "Restore a previously-saved pitchnames alist.")
787
+ (if previous-pitchnames
788
+ (begin
789
+ (set! pitchnames previous-pitchnames)
790
+ (ly:parser-set-note-names pitchnames))
791
+ (ly:input-warning (*location*) (G_ "No other language was defined previously. Ignoring."))))
792
+
793
+
794
+ magnifyMusic =
795
+ #(define-music-function (mag music) (positive? ly:music?)
796
+ (_i "Magnify the notation of @var{music} without changing the
797
+ staff-size, using @var{mag} as a size factor. Stems, beams,
798
+ slurs, ties, and horizontal spacing are adjusted automatically.")
799
+
800
+ ;; these props are NOT allowed to shrink below default size
801
+ (define unshrinkable-props
802
+ '(
803
+ ;; stems
804
+ (Stem thickness)
805
+
806
+ ;; slurs
807
+ (Slur line-thickness)
808
+ (Slur thickness)
809
+ (PhrasingSlur line-thickness)
810
+ (PhrasingSlur thickness)
811
+
812
+ ;; ties
813
+ (Tie line-thickness)
814
+ (Tie thickness)
815
+ (LaissezVibrerTie line-thickness)
816
+ (LaissezVibrerTie thickness)
817
+ (RepeatTie line-thickness)
818
+ (RepeatTie thickness)
819
+ ))
820
+
821
+ ;; these props ARE allowed to shrink below default size
822
+ (define shrinkable-props
823
+ (let ((baseline-skip-props
824
+ (find-named-props 'baseline-skip all-grob-descriptions))
825
+ (word-space-props
826
+ (find-named-props 'word-space all-grob-descriptions)))
827
+ (append
828
+ baseline-skip-props
829
+ word-space-props
830
+ '(
831
+ ;; TODO: uncomment spacing-increment here once Issue 3987 is fixed
832
+ ;; override at the 'Score level
833
+ ;(SpacingSpanner spacing-increment)
834
+
835
+ ;; lengths and heights
836
+ (Beam length-fraction)
837
+ (Stem length-fraction)
838
+ (Stem beamlet-default-length)
839
+ (Stem double-stem-separation)
840
+ (Slur height-limit)
841
+ (Slur minimum-length)
842
+ (PhrasingSlur height-limit)
843
+ (PhrasingSlur minimum-length)
844
+
845
+ ;; Beam.beam-thickness is dealt with separately below
846
+ ))))
847
+ #{
848
+ \context Bottom {
849
+ %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed
850
+ %\newSpacingSection
851
+ #(scale-fontSize 'magnifyMusic mag)
852
+ #(scale-props 'magnifyMusic mag #f unshrinkable-props)
853
+ #(scale-props 'magnifyMusic mag #t shrinkable-props)
854
+ #(scale-beam-thickness mag)
855
+
856
+ #music
857
+
858
+ %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed
859
+ %\newSpacingSection
860
+ %% reverse engineer the former fontSize value instead of using \unset
861
+ #(revert-fontSize 'magnifyMusic mag)
862
+ #(revert-props 'magnifyMusic mag (append unshrinkable-props
863
+ shrinkable-props
864
+ '((Beam beam-thickness))))
865
+ }
866
+ #})
867
+
868
+ magnifyStaff =
869
+ #(define-music-function (mag) (positive?)
870
+ (_i "Change the size of the staff, adjusting notation size and
871
+ horizontal spacing automatically, using @var{mag} as a size factor.")
872
+
873
+ ;; these props are NOT allowed to shrink below default size
874
+ (define unshrinkable-props
875
+ '((StaffSymbol thickness)))
876
+
877
+ ;; these props ARE allowed to shrink below default size
878
+ (define shrinkable-props
879
+ (let* ((baseline-skip-props
880
+ (find-named-props 'baseline-skip all-grob-descriptions))
881
+ (word-space-props
882
+ (find-named-props 'word-space all-grob-descriptions))
883
+ (space-alist-props
884
+ (find-named-props 'space-alist all-grob-descriptions)))
885
+ (append
886
+ baseline-skip-props
887
+ word-space-props
888
+ space-alist-props
889
+ '(
890
+ ;; override at the 'Score level
891
+ (SpacingSpanner spacing-increment)
892
+
893
+ (StaffSymbol staff-space)
894
+ (BarLine kern)
895
+ (BarLine segno-kern)
896
+ (BarLine hair-thickness)
897
+ (BarLine thick-thickness)
898
+ (Stem beamlet-default-length)
899
+ (Stem double-stem-separation)
900
+ ))))
901
+
902
+ #{
903
+ \stopStaff
904
+
905
+ %% revert settings from last time
906
+ %% (but only if \magnifyStaff has already been used
907
+ %% and the staff magnification is changing)
908
+ #(revert-fontSize 'magnifyStaff mag)
909
+ #(revert-props 'magnifyStaff mag (append unshrinkable-props
910
+ shrinkable-props))
911
+
912
+ %% scale settings
913
+ %% (but only if staff magnification is changing
914
+ %% and does not equal 1)
915
+ #(scale-fontSize 'magnifyStaff mag)
916
+ #(scale-props 'magnifyStaff mag #f unshrinkable-props)
917
+ #(scale-props 'magnifyStaff mag #t shrinkable-props)
918
+
919
+ %% this might cause problems until Issue 3990 is fixed
920
+ \newSpacingSection
921
+
922
+ \startStaff
923
+ \set Staff.magnifyStaffValue = #mag
924
+ #})
925
+
926
+ makeClusters =
927
+ #(define-music-function (arg) (ly:music?)
928
+ (_i "Display chords in @var{arg} as clusters.")
929
+ (music-map note-to-cluster arg))
930
+
931
+ mark =
932
+ #(define-music-function (label) ((index-or-markup?))
933
+ (_i "Create a rehearsal mark. If @var{label} is an integer, create the
934
+ rehearsal mark for the given sequence number. If @var{label} is
935
+ @code{\\default}, create the next sequential rehearsal mark. If
936
+ @var{label} is markup, use it for the mark.")
937
+ (cond ((not label)
938
+ (make-music 'RehearsalMarkEvent))
939
+ ((index? label)
940
+ (make-music 'RehearsalMarkEvent 'label label))
941
+ (else
942
+ (make-music 'AdHocMarkEvent 'text label))))
943
+
944
+ markupMap =
945
+ #(define-music-function (path markupfun music)
946
+ (symbol-list-or-symbol? markup-function? ly:music?)
947
+ (_i "This applies the given markup function @var{markupfun} to all markup
948
+ music properties matching @var{path} in @var{music}.
949
+
950
+ For example,
951
+ @example
952
+ \\new Voice @{ g'2 c'' @}
953
+ \\addlyrics @{
954
+ \\markupMap LyricEvent.text
955
+ \\markup \\with-color #red \\etc
956
+ @{ Oh yes! @}
957
+ @}
958
+ @end example
959
+ ")
960
+ (let* ((p (check-music-path path))
961
+ (name (and p (car p)))
962
+ (prop (and p (cadr p))))
963
+ (if p
964
+ (for-some-music
965
+ (lambda (m)
966
+ (if (or (not name) (eq? (ly:music-property m 'name) name))
967
+ (let ((text (ly:music-property m prop)))
968
+ (if (markup? text)
969
+ (set! (ly:music-property m prop)
970
+ (list markupfun text)))))
971
+ #f)
972
+ music)))
973
+ music)
974
+
975
+ modalInversion =
976
+ #(define-music-function (around to scale music)
977
+ (ly:pitch? ly:pitch? ly:music? ly:music?)
978
+ (_i "Invert @var{music} about @var{around} using @var{scale} and
979
+ transpose from @var{around} to @var{to}.")
980
+ (let ((inverter (make-modal-inverter around to scale)))
981
+ (change-pitches music inverter)
982
+ music))
983
+
984
+ modalTranspose =
985
+ #(define-music-function (from to scale music)
986
+ (ly:pitch? ly:pitch? ly:music? ly:music?)
987
+ (_i "Transpose @var{music} from pitch @var{from} to pitch @var{to}
988
+ using @var{scale}.")
989
+ (let ((transposer (make-modal-transposer from to scale)))
990
+ (change-pitches music transposer)
991
+ music))
992
+
993
+ musicMap =
994
+ #(define-music-function (proc mus) (procedure? ly:music?)
995
+ (_i "Apply @var{proc} to @var{mus} and all of the music it contains.")
996
+ (music-map proc mus))
997
+
998
+ %% noPageBreak and noPageTurn are music functions (not music identifiers),
999
+ %% because music identifiers are not allowed at top-level.
1000
+ noPageBreak =
1001
+ #(define-music-function () ()
1002
+ (_i "Forbid a page break. May be used at toplevel (i.e., between scores or
1003
+ markups), or inside a score.")
1004
+ (make-music 'EventChord
1005
+ 'page-marker #t
1006
+ 'page-break-permission 'forbid
1007
+ 'elements (list (make-music 'PageBreakEvent
1008
+ 'break-permission '()))))
1009
+
1010
+ noPageTurn =
1011
+ #(define-music-function () ()
1012
+ (_i "Forbid a page turn. May be used at toplevel (i.e., between scores or
1013
+ markups), or inside a score.")
1014
+ (make-music 'EventChord
1015
+ 'page-marker #t
1016
+ 'page-turn-permission 'forbid
1017
+ 'elements (list (make-music 'PageTurnEvent
1018
+ 'break-permission '()))))
1019
+
1020
+
1021
+
1022
+ octaveCheck =
1023
+ #(define-music-function (pitch) (ly:pitch?)
1024
+ (_i "Octave check.")
1025
+ (make-music 'RelativeOctaveCheck
1026
+ 'pitch pitch))
1027
+
1028
+ offset =
1029
+ #(define-music-function (property offsets item)
1030
+ (symbol-list-or-symbol? scheme? key-list-or-music?)
1031
+ (_i "Offset the default value of @var{property} of @var{item} by
1032
+ @var{offsets}. If @var{item} is a string, the result is
1033
+ @code{\\override} for the specified grob type. If @var{item} is
1034
+ a music expression, the result is the same music expression with an
1035
+ appropriate tweak applied.")
1036
+ (if (ly:music? item)
1037
+ ; In case of a tweak, grob property path is Grob.property
1038
+ (let ((prop-path (check-grob-path
1039
+ (if (symbol? property)
1040
+ (list property)
1041
+ property)
1042
+ #:start 1 #:default #t #:min 2 #:max 2)))
1043
+ (if prop-path
1044
+ ; If the head of the grob property path is a symbol--i.e.,
1045
+ ; a grob name, produce a directed tweak. Otherwise, create
1046
+ ; an ordinary tweak.
1047
+ (if (symbol? (car prop-path))
1048
+ (tweak prop-path (offsetter (second prop-path) offsets) item)
1049
+ (tweak (second prop-path)
1050
+ (offsetter (second prop-path) offsets)
1051
+ item))
1052
+ item))
1053
+ ; In case of an override, grob property path is Context.Grob.property.
1054
+ (let ((prop-path (check-grob-path
1055
+ (append item
1056
+ (if (symbol? property)
1057
+ (list property)
1058
+ property))
1059
+ #:default 'Bottom #:min 3 #:max 3)))
1060
+ (if prop-path
1061
+ (propertyOverride prop-path (offsetter (third prop-path) offsets))
1062
+ (make-music 'Music)))))
1063
+
1064
+ omit =
1065
+ #(define-music-function (item) (symbol-list-or-music?)
1066
+ (_i "Set @var{item}'s @samp{stencil} property to @code{#f},
1067
+ effectively omitting it without taking up space.
1068
+
1069
+ If @var{item} is a symbol list of form @code{GrobName} or
1070
+ @code{Context.GrobName}, the result is an override for the grob name
1071
+ specified by it. If @var{item} is a music expression, the result is
1072
+ the same music expression with an appropriate tweak applied to it.")
1073
+ (propertyTweak 'stencil #f item))
1074
+
1075
+ once =
1076
+ #(define-music-function (music) (ly:music?)
1077
+ (_i "Set @code{once} to @code{#t} on all layout instruction events
1078
+ in @var{music}. This will complain about music with an actual
1079
+ duration. As a special exception, if @var{music} might be the result
1080
+ of a @code{\\tweak} command, no warning will be given in order to
1081
+ allow for @code{\\once \\propertyTweak} to work as both one-time
1082
+ override and proper tweak.")
1083
+ ;; is the warning worth this effort and reliable enough?
1084
+ ;;
1085
+ ;; Note that a repeat chord has a duration but an empty list of
1086
+ ;; tweakable music, so quiet? is trivially true for it. Which is
1087
+ ;; just as well, considering that tweaks will not register on it.
1088
+ (let ((quiet? (every
1089
+ (lambda (m) (pair? (ly:music-property m 'tweaks)))
1090
+ (get-tweakable-music music))))
1091
+ (for-some-music
1092
+ (lambda (m)
1093
+ (cond ((music-is-of-type? m 'layout-instruction-event)
1094
+ (set! (ly:music-property m 'once) #t)
1095
+ #t)
1096
+ ((ly:duration? (ly:music-property m 'duration))
1097
+ (if (not quiet?)
1098
+ (ly:music-warning m (G_ "Cannot apply \\once to timed music")))
1099
+ #t)
1100
+ (else #f)))
1101
+ music))
1102
+ music)
1103
+
1104
+ ottava =
1105
+ #(define-music-function (octave) (integer?)
1106
+ (_i "Set the octavation.")
1107
+ (make-music 'OttavaEvent
1108
+ 'ottava-number octave))
1109
+
1110
+ overrideTimeSignatureSettings =
1111
+ #(define-music-function
1112
+ (time-signature base-moment beat-structure beam-exceptions)
1113
+ (fraction? fraction? list? list?)
1114
+
1115
+ (_i "Override @code{timeSignatureSettings}
1116
+ for time signatures of @var{time-signature} to have settings
1117
+ of @var{base-moment}, @var{beat-structure}, and @var{beam-exceptions}.")
1118
+
1119
+ ;; TODO -- add warning if largest value of grouping is
1120
+ ;; greater than time-signature.
1121
+ (let ((setting (make-setting base-moment beat-structure beam-exceptions)))
1122
+ (override-time-signature-setting time-signature setting)))
1123
+
1124
+ overrideProperty =
1125
+ #(define-music-function (grob-property-path value)
1126
+ (key-list? scheme?)
1127
+
1128
+ (_i "Set the grob property specified by @var{grob-property-path} to
1129
+ @var{value}. @var{grob-property-path} is a symbol list of the form
1130
+ @code{Context.GrobName.property} or @code{GrobName.property}, possibly
1131
+ with subproperties given as well.
1132
+
1133
+ As opposed to @code{\\override} which overrides the context-dependent
1134
+ defaults with which a grob is created, this command uses
1135
+ @code{Output_property_engraver} at the grob acknowledge stage. This
1136
+ may be necessary for overriding values set after the initial grob
1137
+ creation.")
1138
+ (let ((p (check-grob-path grob-property-path
1139
+ #:default 'Bottom
1140
+ #:min 3)))
1141
+ (if p
1142
+ (make-music 'ApplyOutputEvent
1143
+ 'context-type (first p)
1144
+ 'symbol (second p)
1145
+ 'procedure
1146
+ (lambda (grob orig-context context)
1147
+ (ly:grob-set-nested-property! grob (cddr p) value)))
1148
+ (make-music 'Music))))
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+ %% pageBreak and pageTurn are music functions (iso music identifiers),
1156
+ %% because music identifiers are not allowed at top-level.
1157
+ pageBreak =
1158
+ #(define-music-function () ()
1159
+ (_i "Force a page break. May be used at toplevel (i.e., between scores or
1160
+ markups), or inside a score.")
1161
+ (make-music 'EventChord
1162
+ 'page-marker #t
1163
+ 'line-break-permission 'force
1164
+ 'page-break-permission 'force
1165
+ 'elements (list (make-music 'LineBreakEvent
1166
+ 'break-permission 'force)
1167
+ (make-music 'PageBreakEvent
1168
+ 'break-permission 'force))))
1169
+
1170
+ pageTurn =
1171
+ #(define-music-function () ()
1172
+ (_i "Force a page turn between two scores or top-level markups.")
1173
+ (make-music 'EventChord
1174
+ 'page-marker #t
1175
+ 'line-break-permission 'force
1176
+ 'page-break-permission 'force
1177
+ 'page-turn-permission 'force
1178
+ 'elements (list (make-music 'LineBreakEvent
1179
+ 'break-permission 'force)
1180
+ (make-music 'PageBreakEvent
1181
+ 'break-permission 'force)
1182
+ (make-music 'PageTurnEvent
1183
+ 'break-permission 'force))))
1184
+
1185
+ parallelMusic =
1186
+ #(define-void-function (voice-ids music) (list? ly:music?)
1187
+ (_i "Define parallel music sequences, separated by '|' (bar check signs),
1188
+ and assign them to the identifiers provided in @var{voice-ids}.
1189
+
1190
+ @var{voice-ids}: a list of music identifiers (symbols containing only letters)
1191
+
1192
+ @var{music}: a music sequence, containing BarChecks as limiting expressions.
1193
+
1194
+ Example:
1195
+
1196
+ @verbatim
1197
+ \\parallelMusic A,B,C {
1198
+ c c | d d | e e |
1199
+ d d | e e | f f |
1200
+ }
1201
+ <==>
1202
+ A = { c c | d d }
1203
+ B = { d d | e e }
1204
+ C = { e e | f f }
1205
+ @end verbatim
1206
+
1207
+ The last bar checks in a sequence are not copied to the result in
1208
+ order to facilitate ending the last entry at non-bar boundaries.
1209
+ ")
1210
+ (define voice-count (length voice-ids))
1211
+ (define (bar-check? m)
1212
+ "Checks whether m is a bar check."
1213
+ (eq? (ly:music-property m 'name) 'BarCheck))
1214
+ (define (recurse-and-split-list lst)
1215
+ "Return either a list of music lists split along barchecks, or @code{#f}."
1216
+ (if (any bar-check? lst)
1217
+ (let* ((voices (apply circular-list (make-list voice-count '())))
1218
+ (current-voices voices)
1219
+ (current-sequence '()))
1220
+ ;;
1221
+ ;; utilities
1222
+ (define (push-music m)
1223
+ "Push the music expression into the current sequence"
1224
+ (set! current-sequence (cons m current-sequence)))
1225
+ (define (change-voice)
1226
+ "Store the previously built sequence into the current voice and
1227
+ change to the following voice."
1228
+ (set-car! current-voices
1229
+ (cons current-sequence
1230
+ (car current-voices)))
1231
+ (set! current-sequence '())
1232
+ (set! current-voices (cdr current-voices)))
1233
+ (for-each (lambda (m)
1234
+ (let ((split? (recurse-and-split m)))
1235
+ (if split?
1236
+ (for-each
1237
+ (lambda (m)
1238
+ (push-music m)
1239
+ (change-voice))
1240
+ split?)
1241
+ (begin
1242
+ (push-music m)
1243
+ (if (bar-check? m) (change-voice))))))
1244
+ lst)
1245
+ (if (pair? current-sequence) (change-voice))
1246
+ ;; Un-circularize voices
1247
+ (set! voices (list-head voices voice-count))
1248
+
1249
+ ;; Remove trailing bar checks to facilitate ending a
1250
+ ;; sequence on a non-bar, reverse partial sequences and sequences
1251
+ (set! voices (map!
1252
+ (lambda (l)
1253
+ (map! reverse!
1254
+ (reverse!
1255
+ (if (and (pair? l) (pair? (car l))
1256
+ (bar-check? (caar l)))
1257
+ (cons (cdar l) (cdr l))
1258
+ l))))
1259
+ voices))
1260
+
1261
+ ;; check sequence length
1262
+ (apply for-each (lambda seqs
1263
+ (define (seq-len seq)
1264
+ (reduce ly:moment-add
1265
+ (ly:make-moment 0)
1266
+ (map ly:music-length seq)))
1267
+ (let ((moment-reference (seq-len (car seqs))))
1268
+ (for-each (lambda (seq)
1269
+ (if (not (equal? (seq-len seq)
1270
+ moment-reference))
1271
+ (ly:music-warning
1272
+ (if (pair? seq)
1273
+ (last seq)
1274
+ (caar seqs))
1275
+ (G_ "Bars in parallel music don't have the same length"))))
1276
+ seqs)))
1277
+ voices)
1278
+ (map concatenate! voices))
1279
+ (let ((deeper (map recurse-and-split lst)))
1280
+ (and (any pair? deeper)
1281
+ (apply zip (map
1282
+ (lambda (m split)
1283
+ (or split
1284
+ (ly:music-deep-copy (make-list voice-count m))))
1285
+ lst deeper))))))
1286
+ (define (recurse-and-split music)
1287
+ "This returns either a list of music split along barchecks, or
1288
+ @code{#f}."
1289
+ (let* ((elt (ly:music-property music 'element))
1290
+ (elts (ly:music-property music 'elements))
1291
+ (split-elt (and (ly:music? elt) (recurse-and-split elt)))
1292
+ (split-elts (and (pair? elts) (recurse-and-split-list elts))))
1293
+ (and (or split-elt split-elts)
1294
+ (map
1295
+ (lambda (e es)
1296
+ (let ((m (ly:music-deep-copy music
1297
+ ;;; reassigning the origin of the parent only
1298
+ ;;; makes sense if the first expression in the
1299
+ ;;; result is from a distributed origin
1300
+ (or (and (ly:music? e) e)
1301
+ (and (pair? es) (car es))))))
1302
+ (if (ly:music? e)
1303
+ (set! (ly:music-property m 'element) e))
1304
+ (if (pair? es)
1305
+ (set! (ly:music-property m 'elements) es))
1306
+ m))
1307
+ (or split-elt (circular-list #f))
1308
+ (or split-elts (circular-list #f))))))
1309
+ (let ((voices (recurse-and-split music)))
1310
+ (if voices
1311
+ ;;
1312
+ ;; bind voice identifiers to the voices
1313
+ (for-each (lambda (voice-id voice)
1314
+ (ly:parser-define! voice-id voice))
1315
+ voice-ids voices)
1316
+ (ly:music-warning music
1317
+ (G_ "ignoring parallel music without barchecks")))))
1318
+
1319
+ parenthesize =
1320
+ #(define-music-function (arg) (symbol-list-or-music?)
1321
+ (_i "Tag @var{arg} to be parenthesized. @var{arg} may
1322
+ be either a music event or a grob path.")
1323
+ (let ((maybe-with-id (if (and (ly:music? arg)
1324
+ (music-is-of-type? arg 'event-chord))
1325
+ (tweak 'parenthesis-id
1326
+ (gensym "unique-parenthesis-id")
1327
+ arg)
1328
+ arg)))
1329
+ (once (propertyTweak 'parenthesized #t maybe-with-id))))
1330
+
1331
+ #(define (make-directed-part-combine-music direction chord-range part1 part2
1332
+ one-context-settings
1333
+ two-context-settings
1334
+ shared-context-settings)
1335
+
1336
+ (let* ((pc-music (make-music 'PartCombineMusic))
1337
+ (listener (ly:parser-lookup 'partCombineListener))
1338
+ (evs2 (recording-group-emulate
1339
+ (context-spec-music (make-non-relative-music part2)
1340
+ 'Voice "two")
1341
+ listener))
1342
+ (evs1 (recording-group-emulate
1343
+ (context-spec-music (make-non-relative-music part1)
1344
+ 'Voice "one")
1345
+ listener))
1346
+ (split-list
1347
+ (determine-split-list (reverse! (assoc-get "one" evs1 '()) '())
1348
+ (reverse! (assoc-get "two" evs2 '()) '())
1349
+ chord-range))
1350
+ (L1 (ly:music-length part1))
1351
+ (L2 (ly:music-length part2))
1352
+ ;; keep the contexts alive for the full duration
1353
+ (skip (make-skip-music (make-duration-of-length
1354
+ (if (ly:moment<? L1 L2) L2 L1)))))
1355
+
1356
+ ;; \partCombine depends on Simultaneous_music_iterator's
1357
+ ;; processing its children in order (at each timestep) so that
1358
+ ;; context changes occur before notation events. If
1359
+ ;; Simultaneous_music_iterator's behavior is ever changed, this
1360
+ ;; will need to be changed too.
1361
+ (define (make-part-music initial-voice-name changes notation)
1362
+ (context-spec-music
1363
+ ;; TODO: Is non-relative music necessary here, or only for the
1364
+ ;; analysis above?
1365
+ (make-music 'SimultaneousMusic
1366
+ 'elements (list changes (make-non-relative-music notation))
1367
+ 'tags '($partCombine))
1368
+ 'Voice initial-voice-name))
1369
+
1370
+ (set! (ly:music-property pc-music 'elements)
1371
+ (list (make-part-music
1372
+ "one"
1373
+ (make-part-combine-context-changes
1374
+ default-part-combine-context-change-state-machine-one
1375
+ split-list)
1376
+ part1)
1377
+ (make-part-music
1378
+ "two"
1379
+ (make-part-combine-context-changes
1380
+ default-part-combine-context-change-state-machine-two
1381
+ split-list)
1382
+ part2)))
1383
+
1384
+ (set! (ly:music-property pc-music 'direction) direction)
1385
+
1386
+ #{ \context Staff <<
1387
+ \context Voice = "one" \with #one-context-settings { #skip }
1388
+ \context Voice = "two" \with #two-context-settings { #skip }
1389
+ \context Voice = "shared" \with #shared-context-settings { #skip }
1390
+ \context Voice = "solo" { #skip }
1391
+ \context NullVoice = "null" { #skip }
1392
+ #pc-music
1393
+ #(make-part-combine-marks
1394
+ default-part-combine-mark-state-machine split-list)
1395
+ >> #} ))
1396
+
1397
+ partCombine =
1398
+ #(define-music-function (chord-range part1 part2)
1399
+ ((number-pair? '(0 . 8)) ly:music? ly:music?)
1400
+ (_i "Take the music in @var{part1} and @var{part2} and return
1401
+ a music expression containing simultaneous voices, where @var{part1}
1402
+ and @var{part2} are combined into one voice where appropriate.
1403
+ Optional @var{chord-range} sets the distance in steps between notes
1404
+ that may be combined into a chord or unison.")
1405
+ (make-directed-part-combine-music #f chord-range part1 part2
1406
+ #{ \with { \voiceOne \override DynamicLineSpanner.direction = #UP } #}
1407
+ #{ \with { \voiceTwo \override DynamicLineSpanner.direction = #DOWN } #}
1408
+ #{ #} ))
1409
+
1410
+ partCombineUp =
1411
+ #(define-music-function (chord-range part1 part2)
1412
+ ((number-pair? '(0 . 8)) ly:music? ly:music?)
1413
+ (_i "Take the music in @var{part1} and @var{part2} and typeset so
1414
+ that they share a staff with stems directed upward.")
1415
+ (make-directed-part-combine-music UP chord-range part1 part2
1416
+ #{ \with { \voiceOne \override DynamicLineSpanner.direction = #UP } #}
1417
+ #{ \with { \voiceThree \override DynamicLineSpanner.direction = #UP } #}
1418
+ #{ \with { \voiceOne \override DynamicLineSpanner.direction = #UP } #} ))
1419
+
1420
+ partCombineDown =
1421
+ #(define-music-function (chord-range part1 part2)
1422
+ ((number-pair? '(0 . 8)) ly:music? ly:music?)
1423
+ (_i "Take the music in @var{part1} and @var{part2} and typeset so
1424
+ that they share a staff with stems directed downward.")
1425
+ (make-directed-part-combine-music DOWN chord-range part1 part2
1426
+ #{ \with { \voiceFour \override DynamicLineSpanner.direction = #DOWN } #}
1427
+ #{ \with { \voiceTwo \override DynamicLineSpanner.direction = #DOWN } #}
1428
+ #{ \with { \voiceTwo \override DynamicLineSpanner.direction = #DOWN } #} ))
1429
+
1430
+ %% Part combine forcing to be found in ly/property-init.ly
1431
+
1432
+ partial =
1433
+ #(define-music-function (dur) (ly:duration?)
1434
+ (_i "Make a partial measure.")
1435
+ (context-spec-music (make-music 'PartialSet
1436
+ 'origin (*location*)
1437
+ 'duration dur)
1438
+ 'Timing))
1439
+
1440
+ pitchedTrill =
1441
+ #(define-music-function
1442
+ (main-note secondary-note)
1443
+ (ly:music? ly:music?)
1444
+ (_i "Print a trill with @var{main-note} as the main note of the trill and
1445
+ print @var{secondary-note} as a stemless note head in parentheses.")
1446
+ (let* ((get-notes (lambda (ev-chord)
1447
+ (extract-named-music ev-chord 'NoteEvent)))
1448
+ (sec-note-events (get-notes secondary-note))
1449
+ (trill-events (extract-named-music main-note 'TrillSpanEvent)))
1450
+ (if (pair? sec-note-events)
1451
+ (begin
1452
+ (let* ((trill-pitch (ly:music-property (car sec-note-events) 'pitch))
1453
+ (forced (ly:music-property (car sec-note-events) 'force-accidental)))
1454
+
1455
+ (if (ly:pitch? trill-pitch)
1456
+ (for-each (lambda (m)
1457
+ (ly:music-set-property! m 'pitch trill-pitch)) trill-events)
1458
+ (begin
1459
+ (ly:input-warning (*location*) (G_ "Second argument of \\pitchedTrill should be single note: "))
1460
+ (display sec-note-events)))
1461
+
1462
+ (if (eq? forced #t)
1463
+ (for-each (lambda (m)
1464
+ (ly:music-set-property! m 'force-accidental forced))
1465
+ trill-events)))))
1466
+ main-note))
1467
+
1468
+ propertyOverride =
1469
+ #(define-music-function (grob-property-path value)
1470
+ (key-list? scheme?)
1471
+ (_i "Set the grob property specified by @var{grob-property-path} to
1472
+ @var{value}. @var{grob-property-path} is a symbol list of the form
1473
+ @code{Context.GrobName.property} or @code{GrobName.property}, possibly
1474
+ with subproperties given as well. This music function is mostly intended
1475
+ for use from Scheme as a substitute for the built-in @code{\\override}
1476
+ command.")
1477
+ (let ((p (check-grob-path grob-property-path
1478
+ #:default 'Bottom
1479
+ #:min 3)))
1480
+ (if p
1481
+ (context-spec-music
1482
+ (make-music 'OverrideProperty
1483
+ 'symbol (cadr p)
1484
+ 'origin (*location*)
1485
+ 'grob-value value
1486
+ 'grob-property-path (cddr p)
1487
+ 'pop-first #t)
1488
+ (car p))
1489
+ (make-music 'Music))))
1490
+
1491
+ propertyRevert =
1492
+ #(define-music-function (grob-property-path)
1493
+ (key-list?)
1494
+ (_i "Revert the grob property specified by @var{grob-property-path} to
1495
+ its previous value. @var{grob-property-path} is a symbol list of the form
1496
+ @code{Context.GrobName.property} or @code{GrobName.property}, possibly
1497
+ with subproperties given as well. This music function is mostly intended
1498
+ for use from Scheme as a substitute for the built-in @code{\\revert}
1499
+ command.")
1500
+ (let ((p (check-grob-path grob-property-path
1501
+ #:default 'Bottom
1502
+ #:min 3)))
1503
+ (if p
1504
+ (context-spec-music
1505
+ (make-music 'RevertProperty
1506
+ 'symbol (cadr p)
1507
+ 'origin (*location*)
1508
+ 'grob-property-path (cddr p))
1509
+ (car p))
1510
+ (make-music 'Music))))
1511
+
1512
+ propertySet =
1513
+ #(define-music-function (property-path value)
1514
+ (symbol-list-or-symbol? scheme?)
1515
+ (_i "Set the context property specified by @var{property-path} to
1516
+ @var{value}. This music function is mostly intended for use from
1517
+ Scheme as a substitute for the built-in @code{\\set} command.")
1518
+ (let ((p (check-context-path property-path)))
1519
+ (if p
1520
+ (context-spec-music
1521
+ (make-music 'PropertySet
1522
+ 'symbol (cadr p)
1523
+ 'value value
1524
+ 'origin (*location*))
1525
+ (car p))
1526
+ (make-music 'Music))))
1527
+
1528
+ propertyTweak =
1529
+ #(define-music-function (prop value item)
1530
+ (key-list-or-symbol? scheme? key-list-or-music?)
1531
+ (_i "Add a tweak to the following @var{item}, usually music.
1532
+ This generally behaves like @code{\\tweak} but will turn into an
1533
+ @code{\\override} when @var{item} is a symbol list.
1534
+
1535
+ In that case, @var{item} specifies the grob path to override. This is
1536
+ mainly useful when using @code{\\propertyTweak} as as a component for
1537
+ building other functions like @code{\\omit}. It is not the default
1538
+ behavior for @code{\\tweak} since many input strings in
1539
+ @code{\\lyricmode} can serve equally as music or as symbols which
1540
+ causes surprising behavior when tweaking lyrics using the less
1541
+ specific semantics of @code{\\propertyTweak}.
1542
+
1543
+ @var{prop} can contain additional elements in which case a nested
1544
+ property (inside of an alist) is tweaked.")
1545
+ ;; Why not instead make the parser treat strings preferably as
1546
+ ;; music in lyrics mode rather than as symbol? Because then
1547
+ ;;
1548
+ ;; \tweak text "whatever" mylyrics
1549
+ ;;
1550
+ ;; will try putting a lyric event with text "whatever" in the text
1551
+ ;; property of lyrics. So we want expressions allowing both
1552
+ ;; strings and lyrics to deliver strings: more complex conversions
1553
+ ;; should only be attempted when the simple uses don't match the
1554
+ ;; given predicate.
1555
+ (if (ly:music? item)
1556
+ (if (music-is-of-type? item 'context-specification)
1557
+ ;; This is essentially dealing with the case
1558
+ ;; \propertyTweak color #red \propertyTweak font-size #3 NoteHead
1559
+ ;; namely when stacked tweaks end in a symbol list
1560
+ ;; rather than a music expression.
1561
+ ;;
1562
+ ;; We have a tweak here to convert into an override,
1563
+ ;; so we need to know the grob to apply it to. That's
1564
+ ;; easy if we have a directed tweak, and otherwise we
1565
+ ;; need to find the symbol in the expression itself.
1566
+ (let* ((p (check-grob-path prop
1567
+ #:start 1
1568
+ #:default #t
1569
+ #:min 2))
1570
+ (elt (ly:music-property item 'element))
1571
+ (seq (if (music-is-of-type? elt 'sequential-music)
1572
+ elt
1573
+ (make-sequential-music (list elt))))
1574
+ (elts (ly:music-property seq 'elements))
1575
+ (symbol (if (symbol? (car p))
1576
+ (car p)
1577
+ (and (pair? elts)
1578
+ (ly:music-property (car elts)
1579
+ 'symbol)))))
1580
+ (if (symbol? symbol)
1581
+ (begin
1582
+ (set! (ly:music-property seq 'elements)
1583
+ (cons (make-music 'OverrideProperty
1584
+ 'symbol symbol
1585
+ 'grob-property-path (cdr p)
1586
+ 'pop-first #t
1587
+ 'grob-value value
1588
+ 'origin (*location*))
1589
+ elts))
1590
+ (set! (ly:music-property item 'element) seq))
1591
+ (begin
1592
+ (ly:parser-error (G_ "Cannot \\propertyTweak")
1593
+ (*location*))
1594
+ (ly:music-message item (G_ "untweakable"))))
1595
+ item)
1596
+ (tweak prop value item))
1597
+ (propertyOverride (append item (if (symbol? prop) (list prop) prop))
1598
+ value)))
1599
+
1600
+ propertyUnset =
1601
+ #(define-music-function (property-path)
1602
+ (symbol-list-or-symbol?)
1603
+ (_i "Unset the context property specified by @var{property-path}.
1604
+ This music function is mostly intended for use from Scheme as a
1605
+ substitute for the built-in @code{\\unset} command.")
1606
+ (let ((p (check-context-path property-path)))
1607
+ (if p
1608
+ (context-spec-music
1609
+ (make-music 'PropertyUnset
1610
+ 'symbol (cadr p)
1611
+ 'origin (*location*))
1612
+ (car p))
1613
+ (make-music 'Music))))
1614
+
1615
+ pushToTag =
1616
+ #(define-music-function (tag more music)
1617
+ (symbol? ly:music? ly:music?)
1618
+ (_i "Add @var{more} to the front of music tagged with @var{tag}. A
1619
+ @code{post-event} can be added to the articulations of rhythmic events
1620
+ or chords; other expressions may be added to chords, sequential or
1621
+ simultaneous music.")
1622
+ (define (add-left m more)
1623
+ (cond
1624
+ ((or (music-is-of-type? m 'sequential-music)
1625
+ (music-is-of-type? m 'simultaneous-music))
1626
+ (if (ly:event? more)
1627
+ (begin
1628
+ (ly:music-warning more (G_ "\\pushToTag cannot push post-event"))
1629
+ (ly:music-message m (G_ "to this music")))
1630
+ (set! (ly:music-property m 'elements)
1631
+ (cons more (ly:music-property m 'elements)))))
1632
+ ((music-is-of-type? m 'event-chord)
1633
+ (cond ((ly:event? more)
1634
+ (set! (ly:music-property m 'elements)
1635
+ (call-with-values (lambda ()
1636
+ (break! ly:event?
1637
+ (ly:music-property m 'elements)))
1638
+ (lambda (elts posts)
1639
+ (append! elts (cons more posts))))))
1640
+ ((music-is-of-type? more 'rhythmic-event)
1641
+ (set! (ly:music-property m 'elements)
1642
+ (cons more (ly:music-property m 'elements))))
1643
+ (else
1644
+ (ly:music-warning more (G_ "\\pushToTag cannot push this"))
1645
+ (ly:music-message m (G_ "to this event-chord")))))
1646
+ ((music-is-of-type? m 'rhythmic-event)
1647
+ (if (ly:event? more)
1648
+ (set! (ly:music-property m 'articulations)
1649
+ (cons more (ly:music-property m 'articulations)))
1650
+ (begin
1651
+ (ly:music-warning more (G_ "\\pushToTag cannot push this music"))
1652
+ (ly:music-message m (G_ "to this rhythmic-event")))))
1653
+ ((music-is-of-type? m 'music-wrapper-music)
1654
+ (add-left (ly:music-property m 'element) more))
1655
+ (else
1656
+ (ly:input-warning (*location*) (G_ "\\pushToTag failed:"))
1657
+ (ly:music-message m (G_ "No \\pushToTag destination")))))
1658
+ (music-map (lambda (m)
1659
+ (if (memq tag (ly:music-property m 'tags))
1660
+ (add-left m more))
1661
+ m)
1662
+ music))
1663
+
1664
+ quoteDuring =
1665
+ #(define-music-function (what main-music) (string? ly:music?)
1666
+ (_i "Indicate a section of music to be quoted. @var{what} indicates the name
1667
+ of the quoted voice, as specified in an @code{\\addQuote} command.
1668
+ @var{main-music} is used to indicate the length of music to be quoted;
1669
+ usually contains spacers or multi-measure rests.")
1670
+ (make-music 'QuoteMusic
1671
+ 'element main-music
1672
+ 'quoted-music-name what))
1673
+
1674
+ raiseNote =
1675
+ #(define-music-function (num music) (integer? ly:music?)
1676
+ (_i "Raise a note of any chords in @var{music}, in @var{num}
1677
+ position from below.")
1678
+ (music-map (move-chord-note (1- num) UP) music))
1679
+
1680
+ reduceChords =
1681
+ #(define-music-function (music) (ly:music?)
1682
+ (_i "Reduce chords contained in @var{music} to single notes,
1683
+ intended mainly for reusing music in RhythmicStaff. Does not
1684
+ reduce parallel music.")
1685
+ (event-chord-reduce music))
1686
+
1687
+ relative =
1688
+ #(define-music-function (pitch music)
1689
+ ((ly:pitch?) ly:music?)
1690
+ (_i "Make @var{music} relative to @var{pitch}. If @var{pitch} is
1691
+ omitted, the first note in @var{music} is given in absolute pitch.")
1692
+ ;; When \relative has no clear decision (can only happen with
1693
+ ;; scales with an even number of steps), it goes down (see
1694
+ ;; pitch.cc). The following formula puts out f for both the normal
1695
+ ;; 7-step scale as well as for a "shortened" scale missing the
1696
+ ;; final b. In either case, a first note of c will end up as c,
1697
+ ;; namely pitch (-1, 0, 0).
1698
+ (ly:make-music-relative! music
1699
+ (or pitch
1700
+ (ly:make-pitch
1701
+ -1
1702
+ (quotient
1703
+ ;; size of current scale:
1704
+ (ly:pitch-steps (ly:make-pitch 1 0))
1705
+ 2))))
1706
+ (make-music 'RelativeOctaveMusic
1707
+ 'element music))
1708
+
1709
+ removeWithTag =
1710
+ #(define-music-function (tags music)
1711
+ (symbol-list-or-symbol? ly:music?)
1712
+ (_i "Remove elements of @var{music} that are tagged with one of the
1713
+ tags in @var{tags}. @var{tags} may be either a single symbol or a list
1714
+ of symbols.")
1715
+ (music-filter
1716
+ (tags-remove-predicate tags)
1717
+ music))
1718
+
1719
+ resetRelativeOctave =
1720
+ #(define-music-function (pitch) (ly:pitch?)
1721
+ (_i "Set the octave inside a \\relative section.")
1722
+
1723
+ (make-music 'SequentialMusic
1724
+ 'to-relative-callback
1725
+ (lambda (music last-pitch) pitch)))
1726
+
1727
+ retrograde =
1728
+ #(define-music-function (music)
1729
+ (ly:music?)
1730
+ (_i "Return @var{music} in reverse order.")
1731
+ (retrograde-music
1732
+ (expand-repeat-notes!
1733
+ (expand-repeat-chords!
1734
+ (cons 'rhythmic-event
1735
+ (ly:parser-lookup '$chord-repeat-events))
1736
+ music))))
1737
+
1738
+ revertTimeSignatureSettings =
1739
+ #(define-music-function
1740
+ (time-signature)
1741
+ (pair?)
1742
+
1743
+ (_i "Revert @code{timeSignatureSettings}
1744
+ for time signatures of @var{time-signature}.")
1745
+ (revert-time-signature-setting time-signature))
1746
+
1747
+ rightHandFinger =
1748
+ #(define-event-function (finger) (index-or-markup?)
1749
+ (_i "Apply @var{finger} as a fingering indication.")
1750
+
1751
+ (make-music
1752
+ 'StrokeFingerEvent
1753
+ (if (index? finger) 'digit 'text) finger))
1754
+
1755
+ scaleDurations =
1756
+ #(define-music-function (fraction music)
1757
+ (scale? ly:music?)
1758
+ (_i "Multiply the duration of events in @var{music} by @var{fraction}.")
1759
+ (ly:music-compress music fraction))
1760
+
1761
+ sectionLabel =
1762
+ #(define-music-function (text) (markup?)
1763
+ (_i "Mark the beginning of a named passage, e.g. @qq{Coda}. This
1764
+ is well suited for use at a section division created with
1765
+ @code{\\section}, but it does not imply @code{\\section} and may be
1766
+ used alone.")
1767
+ (make-music 'SectionLabelEvent 'text text))
1768
+
1769
+ segnoMark =
1770
+ #(define-music-function (num) ((index?))
1771
+ (_i "Create a segno mark (or bar line, if the @code{segnoStyle}
1772
+ context property is @code{'bar-line}). @var{num} may be 1@tie{}for
1773
+ the first segno, 2@tie{}for the second, etc., or it may be
1774
+ @code{\\default} to use the next number in sequence automatically.")
1775
+ (if num
1776
+ (make-music 'SegnoMarkEvent 'label num)
1777
+ (make-music 'SegnoMarkEvent)))
1778
+
1779
+ settingsFrom =
1780
+ #(define-scheme-function (ctx music)
1781
+ ((symbol?) ly:music?)
1782
+ (_i "Take the layout instruction events from @var{music}, optionally
1783
+ restricted to those applying to context type @var{ctx}, and return
1784
+ a context modification duplicating their effect.")
1785
+ (let ((mods (ly:make-context-mod)))
1786
+ (define (musicop m)
1787
+ (if (music-is-of-type? m 'layout-instruction-event)
1788
+ (ly:add-context-mod
1789
+ mods
1790
+ (case (ly:music-property m 'name)
1791
+ ((PropertySet)
1792
+ (list 'assign
1793
+ (ly:music-property m 'symbol)
1794
+ (ly:music-property m 'value)))
1795
+ ((PropertyUnset)
1796
+ (list 'unset
1797
+ (ly:music-property m 'symbol)))
1798
+ ((OverrideProperty)
1799
+ (cons* 'push
1800
+ (ly:music-property m 'symbol)
1801
+ (ly:music-property m 'grob-value)
1802
+ (cond
1803
+ ((ly:music-property m 'grob-property #f) => list)
1804
+ (else
1805
+ (ly:music-property m 'grob-property-path)))))
1806
+ ((RevertProperty)
1807
+ (cons* 'pop
1808
+ (ly:music-property m 'symbol)
1809
+ (cond
1810
+ ((ly:music-property m 'grob-property #f) => list)
1811
+ (else
1812
+ (ly:music-property m 'grob-property-path)))))))
1813
+ (case (ly:music-property m 'name)
1814
+ ((ApplyContext)
1815
+ (ly:add-context-mod mods
1816
+ (list 'apply
1817
+ (ly:music-property m 'procedure))))
1818
+ ((ContextSpeccedMusic)
1819
+ (if (or (not ctx)
1820
+ (eq? ctx (ly:music-property m 'context-type)))
1821
+ (musicop (ly:music-property m 'element))))
1822
+ (else
1823
+ (let ((callback (ly:music-property m 'elements-callback)))
1824
+ (if (procedure? callback)
1825
+ (for-each musicop (callback m))))))))
1826
+ (musicop music)
1827
+ mods))
1828
+
1829
+ shape =
1830
+ #(define-music-function (offsets item)
1831
+ (list? key-list-or-music?)
1832
+ (_i "Offset control-points of @var{item} by @var{offsets}. The
1833
+ argument is a list of number pairs or list of such lists. Each
1834
+ element of a pair represents an offset to one of the coordinates of a
1835
+ control-point. The y-coordinate of each number pair is scaled by staff space.
1836
+ If @var{item} is a string, the result is @code{\\once\\override} for the
1837
+ specified grob type. If @var{item} is a music expression, the result is the
1838
+ same music expression with an appropriate tweak applied.")
1839
+ (define (shape-curve grob coords)
1840
+ (let* ((orig (ly:grob-original grob))
1841
+ (siblings (if (ly:spanner? grob)
1842
+ (ly:spanner-broken-into orig) '()))
1843
+ (total-found (length siblings))
1844
+ (staff-space (ly:staff-symbol-staff-space grob))
1845
+ (scaled-offsets
1846
+ (map
1847
+ (lambda (offset)
1848
+ (if (number-pair? offset)
1849
+ (cons (car offset) (* (cdr offset) staff-space))
1850
+ offset))
1851
+ offsets)))
1852
+
1853
+ (define (offset-control-points offsets)
1854
+ (if (null? offsets)
1855
+ coords
1856
+ (map coord-translate coords offsets)))
1857
+
1858
+ (define (helper sibs offs)
1859
+ (if (pair? offs)
1860
+ (if (eq? (car sibs) grob)
1861
+ (offset-control-points (car offs))
1862
+ (helper (cdr sibs) (cdr offs)))
1863
+ coords))
1864
+
1865
+ ;; we work with lists of lists
1866
+ (if (or (null? scaled-offsets)
1867
+ (not (list? (car scaled-offsets))))
1868
+ (set! scaled-offsets (list scaled-offsets)))
1869
+
1870
+ (if (>= total-found 2)
1871
+ (helper siblings scaled-offsets)
1872
+ (offset-control-points (car scaled-offsets)))))
1873
+
1874
+ (once (propertyTweak 'control-points
1875
+ (grob-transformer 'control-points shape-curve)
1876
+ item)))
1877
+
1878
+ shiftDurations =
1879
+ #(define-music-function (dur dots arg)
1880
+ (integer? integer? ly:music?)
1881
+ (_i "Change the duration of @var{arg} by adding @var{dur} to the
1882
+ @code{durlog} of @var{arg} and @var{dots} to the @code{dots} of @var{arg}.")
1883
+
1884
+ (shift-duration-log arg dur dots))
1885
+
1886
+ single =
1887
+ #(define-music-function (overrides music)
1888
+ (ly:music? ly:music?)
1889
+ (_i "Convert @var{overrides} to tweaks and apply them to @var{music}.
1890
+ This does not convert @code{\\revert}, @code{\\set} or @code{\\unset}.")
1891
+ (fold-some-music
1892
+ (lambda (m) (eq? (ly:music-property m 'name)
1893
+ 'OverrideProperty))
1894
+ (lambda (m music)
1895
+ (tweak (cons (ly:music-property m 'symbol) ;grob name
1896
+ (cond
1897
+ ((ly:music-property m 'grob-property #f) => list)
1898
+ (else
1899
+ (ly:music-property m 'grob-property-path))))
1900
+ (ly:music-property m 'grob-value) music))
1901
+ music
1902
+ overrides))
1903
+
1904
+ skip =
1905
+ #(define-music-function (arg) (duration-or-music?)
1906
+ (_i "Skip over @var{arg}, which may be music or a duration.")
1907
+ (if (ly:duration? arg)
1908
+ (make-music 'SkipMusic
1909
+ 'duration arg)
1910
+ (make-music 'SkippedMusic
1911
+ 'element arg)))
1912
+
1913
+
1914
+ slashedGrace =
1915
+ #(def-grace-function startSlashedGraceMusic stopSlashedGraceMusic
1916
+ (_i "Create slashed graces (slashes through stems, but no slur) from
1917
+ the following music expression"))
1918
+
1919
+ styledNoteHeads =
1920
+ #(define-music-function (style heads music)
1921
+ (symbol? symbol-list-or-symbol? ly:music?)
1922
+ (_i "Set @var{heads} in @var{music} to @var{style}.")
1923
+ (style-note-heads heads style music))
1924
+
1925
+ tag =
1926
+ #(define-music-function (tags music) (symbol-list-or-symbol? ly:music?)
1927
+ (_i "Tag the following @var{music} with @var{tags} and return the
1928
+ result, by adding the single symbol or symbol list @var{tags} to the
1929
+ @code{tags} property of @var{music}.")
1930
+
1931
+ (set!
1932
+ (ly:music-property music 'tags)
1933
+ ((if (symbol? tags) cons append)
1934
+ tags
1935
+ (ly:music-property music 'tags)))
1936
+ music)
1937
+
1938
+ tagGroup =
1939
+ #(define-void-function (tags) (symbol-list?)
1940
+ (_i "Define a tag group comprising the symbols in the symbol list
1941
+ @var{tags}. Tag groups must not overlap.")
1942
+ (let ((err (define-tag-group tags)))
1943
+ (if err (ly:parser-error err (*location*)))))
1944
+
1945
+ temporary =
1946
+ #(define-music-function (music)
1947
+ (ly:music?)
1948
+ (_i "Make any @code{\\override} in @var{music} replace an existing
1949
+ grob property value only temporarily, restoring the old value when a
1950
+ corresponding @code{\\revert} is executed. This is achieved by
1951
+ clearing the @samp{pop-first} property normally set on
1952
+ @code{\\override}s.
1953
+
1954
+ An @code{\\override}/@/@code{\\revert} sequence created by using
1955
+ @code{\\temporary} and @code{\\undo} on the same music containing
1956
+ overrides will cancel out perfectly or cause a@tie{}warning.
1957
+
1958
+ Non-property-related music is ignored, warnings are generated for any
1959
+ property-changing music that isn't an @code{\\override}.")
1960
+ (define warned #f)
1961
+ (for-some-music
1962
+ (lambda (m)
1963
+ (and (or (music-is-of-type? m 'layout-instruction-event)
1964
+ (music-is-of-type? m 'context-specification)
1965
+ (music-is-of-type? m 'apply-context)
1966
+ (music-is-of-type? m 'time-signature-music))
1967
+ (case (ly:music-property m 'name)
1968
+ ((OverrideProperty)
1969
+ (if (ly:music-property m 'pop-first #f)
1970
+ (set! (ly:music-property m 'pop-first) '()))
1971
+ (if (ly:music-property m 'once #f)
1972
+ (set! (ly:music-property m 'once) '()))
1973
+ #t)
1974
+ ((ContextSpeccedMusic)
1975
+ #f)
1976
+ (else
1977
+ (if (not warned)
1978
+ (begin
1979
+ (ly:input-warning (*location*) (G_ "Cannot make ~a revertible")
1980
+ (ly:music-property m 'name))
1981
+ (set! warned #t)))
1982
+ #t))))
1983
+ music)
1984
+ music)
1985
+
1986
+ %% The reasoning behind using RIGHT for \textMark and LEFT for \textEndMark
1987
+ %% is that we may want to generalize horizontal-direction to be also a grob
1988
+ %% property and apply to more items, and this way it is similar to the break
1989
+ %% status direction of an item.
1990
+
1991
+ textMark =
1992
+ #(define-music-function (text) (markup?)
1993
+ (make-music 'TextMarkEvent 'text text 'horizontal-direction RIGHT))
1994
+
1995
+ textEndMark =
1996
+ #(define-music-function (text) (markup?)
1997
+ (make-music 'TextMarkEvent 'text text 'horizontal-direction LEFT))
1998
+
1999
+ time =
2000
+ #(define-music-function (beat-structure fraction)
2001
+ ((number-list? '()) fraction?)
2002
+ (_i "Set @var{fraction} as time signature, with optional
2003
+ number list @var{beat-structure} before it.")
2004
+ (make-music 'TimeSignatureMusic
2005
+ 'numerator (car fraction)
2006
+ 'denominator (cdr fraction)
2007
+ 'beat-structure beat-structure))
2008
+
2009
+ times =
2010
+ #(define-music-function (fraction music)
2011
+ (fraction? ly:music?)
2012
+ (_i "Scale @var{music} in time by @var{fraction}.")
2013
+ (make-music 'TimeScaledMusic
2014
+ 'element (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction)))
2015
+ 'numerator (car fraction)
2016
+ 'denominator (cdr fraction)))
2017
+
2018
+ transpose =
2019
+ #(define-music-function
2020
+ (from to music)
2021
+ (ly:pitch? ly:pitch? ly:music?)
2022
+
2023
+ (_i "Transpose @var{music} from pitch @var{from} to pitch @var{to}.")
2024
+ (make-music 'TransposedMusic
2025
+ 'element (ly:music-transpose music (ly:pitch-diff to from))))
2026
+
2027
+ transposedCueDuring =
2028
+ #(define-music-function
2029
+ (what dir pitch main-music)
2030
+ (string? ly:dir? ly:pitch? ly:music?)
2031
+
2032
+ (_i "Insert notes from the part @var{what} into a voice called @code{cue},
2033
+ using the transposition defined by @var{pitch}. This happens
2034
+ simultaneously with @var{main-music}, which is usually a rest. The
2035
+ argument @var{dir} determines whether the cue notes should be notated
2036
+ as a first or second voice.")
2037
+
2038
+ (make-music 'QuoteMusic
2039
+ 'element main-music
2040
+ 'quoted-context-type 'CueVoice
2041
+ 'quoted-context-id "cue"
2042
+ 'quoted-music-name what
2043
+ 'quoted-voice-direction dir
2044
+ ;; following is inverse of instrumentTransposition for
2045
+ ;; historical reasons
2046
+ 'quoted-transposition pitch))
2047
+
2048
+ transposition =
2049
+ #(define-music-function (pitch) (ly:pitch?)
2050
+ (_i "Set instrument transposition")
2051
+
2052
+ (context-spec-music
2053
+ (make-property-set 'instrumentTransposition pitch)
2054
+ 'Staff))
2055
+
2056
+ tuplet =
2057
+ #(define-music-function (ratio tuplet-span music)
2058
+ (fraction? (ly:duration? '()) ly:music?)
2059
+ (_i "Scale the given @var{music} to tuplets. @var{ratio} is a
2060
+ fraction that specifies how many notes are played in place of the
2061
+ nominal value: it will be @samp{3/2} for triplets, namely three notes
2062
+ being played in place of two. If the optional duration
2063
+ @var{tuplet-span} is specified, it is used instead of
2064
+ @code{tupletSpannerDuration} for grouping the tuplets.
2065
+ For example,
2066
+ @example
2067
+ \\tuplet 3/2 4 @{ c8 c c c c c @}
2068
+ @end example
2069
+ will result in two groups of three tuplets, each group lasting for a
2070
+ quarter note.")
2071
+ (make-music 'TimeScaledMusic
2072
+ 'element (ly:music-compress
2073
+ music
2074
+ (ly:make-moment (cdr ratio) (car ratio)))
2075
+ 'numerator (cdr ratio)
2076
+ 'denominator (car ratio)
2077
+ 'duration tuplet-span))
2078
+
2079
+ tupletSpan =
2080
+ #(define-music-function (tuplet-span)
2081
+ ((ly:duration?))
2082
+ (_i "Set @code{tupletSpannerDuration}, the length into which
2083
+ @code{\\tuplet} without an explicit @samp{tuplet-span} argument of its
2084
+ own will group its tuplets, to the duration @var{tuplet-span}. To
2085
+ revert to the default of not subdividing the contents of a @code{\\tuplet}
2086
+ command without explicit @samp{tuplet-span}, use
2087
+ @example
2088
+ \\tupletSpan \\default
2089
+ @end example
2090
+ ")
2091
+ (if tuplet-span
2092
+ #{ \set tupletSpannerDuration = #(ly:duration-length tuplet-span) #}
2093
+ #{ \unset tupletSpannerDuration #}))
2094
+
2095
+ tweak =
2096
+ #(define-music-function (prop value music)
2097
+ (key-list-or-symbol? scheme? ly:music?)
2098
+ (_i "Add a tweak to the following @var{music}.
2099
+ Layout objects created by @var{music} get their property @var{prop}
2100
+ set to @var{value}. If @var{prop} has the form @samp{Grob.property}, like with
2101
+ @example
2102
+ \\tweak Accidental.color #red cis'
2103
+ @end example
2104
+ an indirectly created grob (@samp{Accidental} is caused by
2105
+ @samp{NoteHead}) can be tweaked; otherwise only directly created grobs
2106
+ are affected.
2107
+
2108
+ @var{prop} can contain additional elements in which case a nested
2109
+ property (inside of an alist) is tweaked.
2110
+
2111
+ If @var{music} is an @samp{event-chord}, every contained
2112
+ @samp{rhythmic-event} is tweaked instead.")
2113
+ (let ((p (check-grob-path prop
2114
+ #:start 1
2115
+ #:default #t
2116
+ #:min 2)))
2117
+ (define (tweak-this music)
2118
+ (set! (ly:music-property music 'tweaks)
2119
+ (acons (cond ((pair? (cddr p)) p)
2120
+ ((symbol? (car p))
2121
+ (cons (car p) (cadr p)))
2122
+ (else (cadr p)))
2123
+ value
2124
+ (ly:music-property music 'tweaks))))
2125
+ (if p
2126
+ ;; p now contains at least two elements. The first
2127
+ ;; element is #t when no grob has been explicitly
2128
+ ;; specified, otherwise it is a grob name.
2129
+ (for-each tweak-this (get-tweakable-music music)))
2130
+ music))
2131
+
2132
+
2133
+ undo =
2134
+ #(define-music-function (music)
2135
+ (ly:music?)
2136
+ (_i "Convert @code{\\override} and @code{\\set} in @var{music} to
2137
+ @code{\\revert} and @code{\\unset}, respectively. Any reverts and
2138
+ unsets already in @var{music} cause a warning. Non-property-related music is ignored.")
2139
+ (define warned #f)
2140
+ (let loop
2141
+ ((music music))
2142
+ (let
2143
+ ((lst
2144
+ (fold-some-music
2145
+ (music-type-predicate '(layout-instruction-event
2146
+ context-specification
2147
+ apply-context
2148
+ time-signature-music))
2149
+ (lambda (m overrides)
2150
+ (case (ly:music-property m 'name)
2151
+ ((OverrideProperty)
2152
+ (cons
2153
+ (make-music 'RevertProperty
2154
+ 'symbol (ly:music-property m 'symbol)
2155
+ 'grob-property-path
2156
+ (cond
2157
+ ((ly:music-property m 'grob-property #f) => list)
2158
+ (else
2159
+ (ly:music-property m 'grob-property-path))))
2160
+ overrides))
2161
+ ((PropertySet)
2162
+ (cons
2163
+ (make-music 'PropertyUnset
2164
+ 'symbol (ly:music-property m 'symbol))
2165
+ overrides))
2166
+ ((ContextSpeccedMusic)
2167
+ (cons
2168
+ (make-music 'ContextSpeccedMusic
2169
+ 'element (loop (ly:music-property m 'element))
2170
+ 'context-type (ly:music-property m 'context-type))
2171
+ overrides))
2172
+ (else
2173
+ (if (not warned)
2174
+ (begin
2175
+ (ly:input-warning (*location*) (G_ "Cannot revert ~a")
2176
+ (ly:music-property m 'name))
2177
+ (set! warned #t)))
2178
+ overrides)))
2179
+ '()
2180
+ music)))
2181
+ (cond
2182
+ ((null? lst) (make-music 'Music))
2183
+ ((null? (cdr lst)) (car lst))
2184
+ (else (make-sequential-music lst))))))
2185
+
2186
+ unfolded =
2187
+ #(define-music-function (music)
2188
+ (ly:music?)
2189
+ (_i "Mask @var{music} until the innermost enclosing repeat is
2190
+ unfolded.")
2191
+ (make-music 'UnfoldedSpeccedMusic
2192
+ 'element music))
2193
+
2194
+ unfoldRepeats =
2195
+ #(define-music-function (types music)
2196
+ ((symbol-list-or-symbol? '()) ly:music?)
2197
+ (_i "Force @code{\\repeat volta}, @code{\\repeat tremolo} or
2198
+ @code{\\repeat percent} commands in @var{music} to be interpreted
2199
+ as @code{\\repeat unfold}, if specified in the optional symbol-list @var{types}.
2200
+ The default for @var{types} is an empty list, which will force any of those
2201
+ commands in @var{music} to be interpreted as @code{\\repeat unfold}. Possible
2202
+ entries are @code{volta}, @code{tremolo} or @code{percent}. Multiple entries
2203
+ are possible.")
2204
+ (unfold-repeats types music))
2205
+
2206
+ voices =
2207
+ #(define-music-function (ids music) (key-list? ly:music?)
2208
+ (_i "Take the given key list of numbers (indicating the use of
2209
+ @samp{\\voiceOne}@dots{}) or symbols (indicating voice names,
2210
+ typically converted from strings by argument list processing)
2211
+ and assign the following @code{\\\\}-separated music to
2212
+ contexts according to that list. Named rather than numbered
2213
+ contexts can be used for continuing one voice (for the sake of
2214
+ spanners and lyrics), usually requiring a @code{\\voiceOne}-style
2215
+ override at the beginning of the passage and a @code{\\oneVoice}
2216
+ override at its end.
2217
+
2218
+ The default
2219
+ @example
2220
+ << @dots{} \\\\ @dots{} \\\\ @dots{} >>
2221
+ @end example
2222
+ construct would correspond to
2223
+ @example
2224
+ \\voices 1,2,3 << @dots{} \\\\ @dots{} \\\\ @dots{} >>
2225
+ @end example")
2226
+ (voicify-music music ids))
2227
+
2228
+ void =
2229
+ #(define-void-function (arg) (scheme?)
2230
+ (_i "Accept a scheme argument, return a void expression.
2231
+ Use this if you want to have a scheme expression evaluated
2232
+ because of its side-effects, but its value ignored."))
2233
+
2234
+ volta =
2235
+ #(define-music-function (volta-numbers music) (number-list? ly:music?)
2236
+ (_i "Mark @var{music} as being limited to the volte given in
2237
+ @var{volta-numbers} when the innermost enclosing repeat is unfolded.
2238
+ Volta number begins at 1 and increases by 1 with each repetition.")
2239
+ (volta-spec-music volta-numbers music))
2240
+
2241
+ vshape =
2242
+ #(define-music-function (offsets item)
2243
+ (list? key-list-or-music?)
2244
+ "Like @code{\\shape}, but additionally show control points for
2245
+ ease of tweaking."
2246
+ (once (propertyTweak 'show-control-points #t (shape offsets item))))
2247
+
2248
+ withMusicProperty =
2249
+ #(define-music-function (sym val music)
2250
+ (symbol? scheme? ly:music?)
2251
+ (_i "Set @var{sym} to @var{val} in @var{music}.")
2252
+
2253
+ (set! (ly:music-property music sym) val)
2254
+ music)