LilyPond-Ruby 0.0.2.1 → 0.1.2

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