LilyPond-Ruby 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1896) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lilypond-ruby.rb +1 -1
  3. data/{bin → lilypond-2.24.1/bin}/abc2ly +0 -0
  4. data/{bin → lilypond-2.24.1/bin}/convert-ly +0 -0
  5. data/{bin → lilypond-2.24.1/bin}/etf2ly +0 -0
  6. data/{bin → lilypond-2.24.1/bin}/lilymidi +0 -0
  7. data/{bin → lilypond-2.24.1/bin}/lilypond +0 -0
  8. data/{bin → lilypond-2.24.1/bin}/lilypond-book +0 -0
  9. data/{bin → lilypond-2.24.1/bin}/lilypond-invoke-editor +0 -0
  10. data/{bin → lilypond-2.24.1/bin}/lilysong +0 -0
  11. data/{bin → lilypond-2.24.1/bin}/midi2ly +0 -0
  12. data/{bin → lilypond-2.24.1/bin}/musicxml2ly +0 -0
  13. data/lilypond-2.24.1/lib/python3.10/LICENSE.txt +279 -0
  14. data/lilypond-2.24.1/lib/python3.10/__future__.py +147 -0
  15. data/lilypond-2.24.1/lib/python3.10/__phello__.foo.py +1 -0
  16. data/lilypond-2.24.1/lib/python3.10/__pycache__/_collections_abc.cpython-310.pyc +0 -0
  17. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compat_pickle.cpython-310.opt-1.pyc +0 -0
  18. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compat_pickle.cpython-310.opt-2.pyc +0 -0
  19. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compat_pickle.cpython-310.pyc +0 -0
  20. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compression.cpython-310.opt-1.pyc +0 -0
  21. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compression.cpython-310.opt-2.pyc +0 -0
  22. data/lilypond-2.24.1/lib/python3.10/__pycache__/_compression.cpython-310.pyc +0 -0
  23. data/lilypond-2.24.1/lib/python3.10/__pycache__/_sitebuiltins.cpython-310.pyc +0 -0
  24. data/lilypond-2.24.1/lib/python3.10/__pycache__/_weakrefset.cpython-310.opt-1.pyc +0 -0
  25. data/lilypond-2.24.1/lib/python3.10/__pycache__/_weakrefset.cpython-310.opt-2.pyc +0 -0
  26. data/lilypond-2.24.1/lib/python3.10/__pycache__/_weakrefset.cpython-310.pyc +0 -0
  27. data/lilypond-2.24.1/lib/python3.10/__pycache__/abc.cpython-310.pyc +0 -0
  28. data/lilypond-2.24.1/lib/python3.10/__pycache__/argparse.cpython-310.opt-1.pyc +0 -0
  29. data/lilypond-2.24.1/lib/python3.10/__pycache__/argparse.cpython-310.opt-2.pyc +0 -0
  30. data/lilypond-2.24.1/lib/python3.10/__pycache__/argparse.cpython-310.pyc +0 -0
  31. data/lilypond-2.24.1/lib/python3.10/__pycache__/bz2.cpython-310.opt-1.pyc +0 -0
  32. data/lilypond-2.24.1/lib/python3.10/__pycache__/bz2.cpython-310.opt-2.pyc +0 -0
  33. data/lilypond-2.24.1/lib/python3.10/__pycache__/bz2.cpython-310.pyc +0 -0
  34. data/lilypond-2.24.1/lib/python3.10/__pycache__/codecs.cpython-310.pyc +0 -0
  35. data/lilypond-2.24.1/lib/python3.10/__pycache__/contextlib.cpython-310.opt-1.pyc +0 -0
  36. data/lilypond-2.24.1/lib/python3.10/__pycache__/contextlib.cpython-310.opt-2.pyc +0 -0
  37. data/lilypond-2.24.1/lib/python3.10/__pycache__/contextlib.cpython-310.pyc +0 -0
  38. data/lilypond-2.24.1/lib/python3.10/__pycache__/copyreg.cpython-310.opt-1.pyc +0 -0
  39. data/lilypond-2.24.1/lib/python3.10/__pycache__/copyreg.cpython-310.opt-2.pyc +0 -0
  40. data/lilypond-2.24.1/lib/python3.10/__pycache__/copyreg.cpython-310.pyc +0 -0
  41. data/lilypond-2.24.1/lib/python3.10/__pycache__/enum.cpython-310.opt-1.pyc +0 -0
  42. data/lilypond-2.24.1/lib/python3.10/__pycache__/enum.cpython-310.opt-2.pyc +0 -0
  43. data/lilypond-2.24.1/lib/python3.10/__pycache__/enum.cpython-310.pyc +0 -0
  44. data/lilypond-2.24.1/lib/python3.10/__pycache__/filecmp.cpython-310.opt-1.pyc +0 -0
  45. data/lilypond-2.24.1/lib/python3.10/__pycache__/filecmp.cpython-310.opt-2.pyc +0 -0
  46. data/lilypond-2.24.1/lib/python3.10/__pycache__/filecmp.cpython-310.pyc +0 -0
  47. data/lilypond-2.24.1/lib/python3.10/__pycache__/fnmatch.cpython-310.opt-1.pyc +0 -0
  48. data/lilypond-2.24.1/lib/python3.10/__pycache__/fnmatch.cpython-310.opt-2.pyc +0 -0
  49. data/lilypond-2.24.1/lib/python3.10/__pycache__/fnmatch.cpython-310.pyc +0 -0
  50. data/lilypond-2.24.1/lib/python3.10/__pycache__/functools.cpython-310.opt-1.pyc +0 -0
  51. data/lilypond-2.24.1/lib/python3.10/__pycache__/functools.cpython-310.opt-2.pyc +0 -0
  52. data/lilypond-2.24.1/lib/python3.10/__pycache__/functools.cpython-310.pyc +0 -0
  53. data/lilypond-2.24.1/lib/python3.10/__pycache__/genericpath.cpython-310.pyc +0 -0
  54. data/lilypond-2.24.1/lib/python3.10/__pycache__/gettext.cpython-310.opt-1.pyc +0 -0
  55. data/lilypond-2.24.1/lib/python3.10/__pycache__/gettext.cpython-310.opt-2.pyc +0 -0
  56. data/lilypond-2.24.1/lib/python3.10/__pycache__/gettext.cpython-310.pyc +0 -0
  57. data/lilypond-2.24.1/lib/python3.10/__pycache__/heapq.cpython-310.opt-1.pyc +0 -0
  58. data/lilypond-2.24.1/lib/python3.10/__pycache__/heapq.cpython-310.opt-2.pyc +0 -0
  59. data/lilypond-2.24.1/lib/python3.10/__pycache__/heapq.cpython-310.pyc +0 -0
  60. data/lilypond-2.24.1/lib/python3.10/__pycache__/io.cpython-310.pyc +0 -0
  61. data/lilypond-2.24.1/lib/python3.10/__pycache__/keyword.cpython-310.opt-1.pyc +0 -0
  62. data/lilypond-2.24.1/lib/python3.10/__pycache__/keyword.cpython-310.opt-2.pyc +0 -0
  63. data/lilypond-2.24.1/lib/python3.10/__pycache__/keyword.cpython-310.pyc +0 -0
  64. data/lilypond-2.24.1/lib/python3.10/__pycache__/linecache.cpython-310.opt-1.pyc +0 -0
  65. data/lilypond-2.24.1/lib/python3.10/__pycache__/linecache.cpython-310.opt-2.pyc +0 -0
  66. data/lilypond-2.24.1/lib/python3.10/__pycache__/linecache.cpython-310.pyc +0 -0
  67. data/lilypond-2.24.1/lib/python3.10/__pycache__/locale.cpython-310.opt-1.pyc +0 -0
  68. data/lilypond-2.24.1/lib/python3.10/__pycache__/locale.cpython-310.opt-2.pyc +0 -0
  69. data/lilypond-2.24.1/lib/python3.10/__pycache__/locale.cpython-310.pyc +0 -0
  70. data/lilypond-2.24.1/lib/python3.10/__pycache__/lzma.cpython-310.opt-1.pyc +0 -0
  71. data/lilypond-2.24.1/lib/python3.10/__pycache__/lzma.cpython-310.opt-2.pyc +0 -0
  72. data/lilypond-2.24.1/lib/python3.10/__pycache__/lzma.cpython-310.pyc +0 -0
  73. data/lilypond-2.24.1/lib/python3.10/__pycache__/ntpath.cpython-310.opt-1.pyc +0 -0
  74. data/lilypond-2.24.1/lib/python3.10/__pycache__/ntpath.cpython-310.opt-2.pyc +0 -0
  75. data/lilypond-2.24.1/lib/python3.10/__pycache__/ntpath.cpython-310.pyc +0 -0
  76. data/lilypond-2.24.1/lib/python3.10/__pycache__/operator.cpython-310.opt-1.pyc +0 -0
  77. data/lilypond-2.24.1/lib/python3.10/__pycache__/operator.cpython-310.opt-2.pyc +0 -0
  78. data/lilypond-2.24.1/lib/python3.10/__pycache__/operator.cpython-310.pyc +0 -0
  79. data/lilypond-2.24.1/lib/python3.10/__pycache__/os.cpython-310.pyc +0 -0
  80. data/lilypond-2.24.1/lib/python3.10/__pycache__/pathlib.cpython-310.opt-1.pyc +0 -0
  81. data/lilypond-2.24.1/lib/python3.10/__pycache__/pathlib.cpython-310.opt-2.pyc +0 -0
  82. data/lilypond-2.24.1/lib/python3.10/__pycache__/pathlib.cpython-310.pyc +0 -0
  83. data/lilypond-2.24.1/lib/python3.10/__pycache__/pickle.cpython-310.opt-1.pyc +0 -0
  84. data/lilypond-2.24.1/lib/python3.10/__pycache__/pickle.cpython-310.opt-2.pyc +0 -0
  85. data/lilypond-2.24.1/lib/python3.10/__pycache__/pickle.cpython-310.pyc +0 -0
  86. data/lilypond-2.24.1/lib/python3.10/__pycache__/posixpath.cpython-310.pyc +0 -0
  87. data/lilypond-2.24.1/lib/python3.10/__pycache__/py_compile.cpython-310.opt-1.pyc +0 -0
  88. data/lilypond-2.24.1/lib/python3.10/__pycache__/py_compile.cpython-310.opt-2.pyc +0 -0
  89. data/lilypond-2.24.1/lib/python3.10/__pycache__/py_compile.cpython-310.pyc +0 -0
  90. data/lilypond-2.24.1/lib/python3.10/__pycache__/queue.cpython-310.opt-1.pyc +0 -0
  91. data/lilypond-2.24.1/lib/python3.10/__pycache__/queue.cpython-310.opt-2.pyc +0 -0
  92. data/lilypond-2.24.1/lib/python3.10/__pycache__/queue.cpython-310.pyc +0 -0
  93. data/lilypond-2.24.1/lib/python3.10/__pycache__/re.cpython-310.opt-1.pyc +0 -0
  94. data/lilypond-2.24.1/lib/python3.10/__pycache__/re.cpython-310.opt-2.pyc +0 -0
  95. data/lilypond-2.24.1/lib/python3.10/__pycache__/re.cpython-310.pyc +0 -0
  96. data/lilypond-2.24.1/lib/python3.10/__pycache__/reprlib.cpython-310.opt-1.pyc +0 -0
  97. data/lilypond-2.24.1/lib/python3.10/__pycache__/reprlib.cpython-310.opt-2.pyc +0 -0
  98. data/lilypond-2.24.1/lib/python3.10/__pycache__/reprlib.cpython-310.pyc +0 -0
  99. data/lilypond-2.24.1/lib/python3.10/__pycache__/shutil.cpython-310.opt-1.pyc +0 -0
  100. data/lilypond-2.24.1/lib/python3.10/__pycache__/shutil.cpython-310.opt-2.pyc +0 -0
  101. data/lilypond-2.24.1/lib/python3.10/__pycache__/shutil.cpython-310.pyc +0 -0
  102. data/lilypond-2.24.1/lib/python3.10/__pycache__/signal.cpython-310.opt-1.pyc +0 -0
  103. data/lilypond-2.24.1/lib/python3.10/__pycache__/signal.cpython-310.opt-2.pyc +0 -0
  104. data/lilypond-2.24.1/lib/python3.10/__pycache__/signal.cpython-310.pyc +0 -0
  105. data/lilypond-2.24.1/lib/python3.10/__pycache__/site.cpython-310.pyc +0 -0
  106. data/lilypond-2.24.1/lib/python3.10/__pycache__/socket.cpython-310.opt-1.pyc +0 -0
  107. data/lilypond-2.24.1/lib/python3.10/__pycache__/socket.cpython-310.opt-2.pyc +0 -0
  108. data/lilypond-2.24.1/lib/python3.10/__pycache__/socket.cpython-310.pyc +0 -0
  109. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_compile.cpython-310.opt-1.pyc +0 -0
  110. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_compile.cpython-310.opt-2.pyc +0 -0
  111. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_compile.cpython-310.pyc +0 -0
  112. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_constants.cpython-310.opt-1.pyc +0 -0
  113. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_constants.cpython-310.opt-2.pyc +0 -0
  114. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_constants.cpython-310.pyc +0 -0
  115. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_parse.cpython-310.opt-1.pyc +0 -0
  116. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_parse.cpython-310.opt-2.pyc +0 -0
  117. data/lilypond-2.24.1/lib/python3.10/__pycache__/sre_parse.cpython-310.pyc +0 -0
  118. data/lilypond-2.24.1/lib/python3.10/__pycache__/stat.cpython-310.pyc +0 -0
  119. data/lilypond-2.24.1/lib/python3.10/__pycache__/string.cpython-310.opt-1.pyc +0 -0
  120. data/lilypond-2.24.1/lib/python3.10/__pycache__/string.cpython-310.opt-2.pyc +0 -0
  121. data/lilypond-2.24.1/lib/python3.10/__pycache__/string.cpython-310.pyc +0 -0
  122. data/lilypond-2.24.1/lib/python3.10/__pycache__/struct.cpython-310.opt-1.pyc +0 -0
  123. data/lilypond-2.24.1/lib/python3.10/__pycache__/struct.cpython-310.opt-2.pyc +0 -0
  124. data/lilypond-2.24.1/lib/python3.10/__pycache__/struct.cpython-310.pyc +0 -0
  125. data/lilypond-2.24.1/lib/python3.10/__pycache__/threading.cpython-310.opt-1.pyc +0 -0
  126. data/lilypond-2.24.1/lib/python3.10/__pycache__/threading.cpython-310.opt-2.pyc +0 -0
  127. data/lilypond-2.24.1/lib/python3.10/__pycache__/threading.cpython-310.pyc +0 -0
  128. data/lilypond-2.24.1/lib/python3.10/__pycache__/token.cpython-310.opt-1.pyc +0 -0
  129. data/lilypond-2.24.1/lib/python3.10/__pycache__/token.cpython-310.opt-2.pyc +0 -0
  130. data/lilypond-2.24.1/lib/python3.10/__pycache__/token.cpython-310.pyc +0 -0
  131. data/lilypond-2.24.1/lib/python3.10/__pycache__/tokenize.cpython-310.opt-1.pyc +0 -0
  132. data/lilypond-2.24.1/lib/python3.10/__pycache__/tokenize.cpython-310.opt-2.pyc +0 -0
  133. data/lilypond-2.24.1/lib/python3.10/__pycache__/tokenize.cpython-310.pyc +0 -0
  134. data/lilypond-2.24.1/lib/python3.10/__pycache__/traceback.cpython-310.opt-1.pyc +0 -0
  135. data/lilypond-2.24.1/lib/python3.10/__pycache__/traceback.cpython-310.opt-2.pyc +0 -0
  136. data/lilypond-2.24.1/lib/python3.10/__pycache__/traceback.cpython-310.pyc +0 -0
  137. data/lilypond-2.24.1/lib/python3.10/__pycache__/types.cpython-310.opt-1.pyc +0 -0
  138. data/lilypond-2.24.1/lib/python3.10/__pycache__/types.cpython-310.opt-2.pyc +0 -0
  139. data/lilypond-2.24.1/lib/python3.10/__pycache__/types.cpython-310.pyc +0 -0
  140. data/lilypond-2.24.1/lib/python3.10/__pycache__/warnings.cpython-310.pyc +0 -0
  141. data/lilypond-2.24.1/lib/python3.10/__pycache__/weakref.cpython-310.opt-1.pyc +0 -0
  142. data/lilypond-2.24.1/lib/python3.10/__pycache__/weakref.cpython-310.opt-2.pyc +0 -0
  143. data/lilypond-2.24.1/lib/python3.10/__pycache__/weakref.cpython-310.pyc +0 -0
  144. data/lilypond-2.24.1/lib/python3.10/_aix_support.py +89 -0
  145. data/lilypond-2.24.1/lib/python3.10/_bootsubprocess.py +97 -0
  146. data/lilypond-2.24.1/lib/python3.10/_collections_abc.py +1166 -0
  147. data/lilypond-2.24.1/lib/python3.10/_compat_pickle.py +251 -0
  148. data/lilypond-2.24.1/lib/python3.10/_compression.py +162 -0
  149. data/lilypond-2.24.1/lib/python3.10/_markupbase.py +396 -0
  150. data/lilypond-2.24.1/lib/python3.10/_osx_support.py +574 -0
  151. data/lilypond-2.24.1/lib/python3.10/_py_abc.py +147 -0
  152. data/lilypond-2.24.1/lib/python3.10/_pydecimal.py +6410 -0
  153. data/lilypond-2.24.1/lib/python3.10/_pyio.py +2718 -0
  154. data/lilypond-2.24.1/lib/python3.10/_sitebuiltins.py +103 -0
  155. data/lilypond-2.24.1/lib/python3.10/_strptime.py +579 -0
  156. data/lilypond-2.24.1/lib/python3.10/_sysconfigdata__linux_x86_64-linux-gnu.py +804 -0
  157. data/lilypond-2.24.1/lib/python3.10/_threading_local.py +242 -0
  158. data/lilypond-2.24.1/lib/python3.10/_weakrefset.py +206 -0
  159. data/lilypond-2.24.1/lib/python3.10/abc.py +188 -0
  160. data/lilypond-2.24.1/lib/python3.10/aifc.py +947 -0
  161. data/lilypond-2.24.1/lib/python3.10/antigravity.py +17 -0
  162. data/lilypond-2.24.1/lib/python3.10/argparse.py +2583 -0
  163. data/lilypond-2.24.1/lib/python3.10/ast.py +1703 -0
  164. data/lilypond-2.24.1/lib/python3.10/asynchat.py +315 -0
  165. data/lilypond-2.24.1/lib/python3.10/asyncio/__init__.py +43 -0
  166. data/lilypond-2.24.1/lib/python3.10/asyncio/__main__.py +125 -0
  167. data/lilypond-2.24.1/lib/python3.10/asyncio/base_events.py +1924 -0
  168. data/lilypond-2.24.1/lib/python3.10/asyncio/base_futures.py +80 -0
  169. data/lilypond-2.24.1/lib/python3.10/asyncio/base_subprocess.py +285 -0
  170. data/lilypond-2.24.1/lib/python3.10/asyncio/base_tasks.py +85 -0
  171. data/lilypond-2.24.1/lib/python3.10/asyncio/constants.py +27 -0
  172. data/lilypond-2.24.1/lib/python3.10/asyncio/coroutines.py +269 -0
  173. data/lilypond-2.24.1/lib/python3.10/asyncio/events.py +818 -0
  174. data/lilypond-2.24.1/lib/python3.10/asyncio/exceptions.py +58 -0
  175. data/lilypond-2.24.1/lib/python3.10/asyncio/format_helpers.py +76 -0
  176. data/lilypond-2.24.1/lib/python3.10/asyncio/futures.py +426 -0
  177. data/lilypond-2.24.1/lib/python3.10/asyncio/locks.py +438 -0
  178. data/lilypond-2.24.1/lib/python3.10/asyncio/log.py +7 -0
  179. data/lilypond-2.24.1/lib/python3.10/asyncio/mixins.py +31 -0
  180. data/lilypond-2.24.1/lib/python3.10/asyncio/proactor_events.py +871 -0
  181. data/lilypond-2.24.1/lib/python3.10/asyncio/protocols.py +216 -0
  182. data/lilypond-2.24.1/lib/python3.10/asyncio/queues.py +245 -0
  183. data/lilypond-2.24.1/lib/python3.10/asyncio/runners.py +73 -0
  184. data/lilypond-2.24.1/lib/python3.10/asyncio/selector_events.py +1097 -0
  185. data/lilypond-2.24.1/lib/python3.10/asyncio/sslproto.py +739 -0
  186. data/lilypond-2.24.1/lib/python3.10/asyncio/staggered.py +149 -0
  187. data/lilypond-2.24.1/lib/python3.10/asyncio/streams.py +725 -0
  188. data/lilypond-2.24.1/lib/python3.10/asyncio/subprocess.py +223 -0
  189. data/lilypond-2.24.1/lib/python3.10/asyncio/tasks.py +946 -0
  190. data/lilypond-2.24.1/lib/python3.10/asyncio/threads.py +25 -0
  191. data/lilypond-2.24.1/lib/python3.10/asyncio/transports.py +335 -0
  192. data/lilypond-2.24.1/lib/python3.10/asyncio/trsock.py +206 -0
  193. data/lilypond-2.24.1/lib/python3.10/asyncio/unix_events.py +1467 -0
  194. data/lilypond-2.24.1/lib/python3.10/asyncio/windows_events.py +913 -0
  195. data/lilypond-2.24.1/lib/python3.10/asyncio/windows_utils.py +173 -0
  196. data/lilypond-2.24.1/lib/python3.10/asyncore.py +649 -0
  197. data/lilypond-2.24.1/lib/python3.10/base64.py +603 -0
  198. data/lilypond-2.24.1/lib/python3.10/bdb.py +890 -0
  199. data/lilypond-2.24.1/lib/python3.10/binhex.py +502 -0
  200. data/lilypond-2.24.1/lib/python3.10/bisect.py +110 -0
  201. data/lilypond-2.24.1/lib/python3.10/bz2.py +344 -0
  202. data/lilypond-2.24.1/lib/python3.10/cProfile.py +190 -0
  203. data/lilypond-2.24.1/lib/python3.10/calendar.py +759 -0
  204. data/lilypond-2.24.1/lib/python3.10/cgi.py +1004 -0
  205. data/lilypond-2.24.1/lib/python3.10/cgitb.py +321 -0
  206. data/lilypond-2.24.1/lib/python3.10/chunk.py +169 -0
  207. data/lilypond-2.24.1/lib/python3.10/cmd.py +401 -0
  208. data/lilypond-2.24.1/lib/python3.10/code.py +315 -0
  209. data/lilypond-2.24.1/lib/python3.10/codecs.py +1126 -0
  210. data/lilypond-2.24.1/lib/python3.10/codeop.py +153 -0
  211. data/lilypond-2.24.1/lib/python3.10/collections/__init__.py +1556 -0
  212. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  213. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  214. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/__init__.cpython-310.pyc +0 -0
  215. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/abc.cpython-310.opt-1.pyc +0 -0
  216. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/abc.cpython-310.opt-2.pyc +0 -0
  217. data/lilypond-2.24.1/lib/python3.10/collections/__pycache__/abc.cpython-310.pyc +0 -0
  218. data/lilypond-2.24.1/lib/python3.10/collections/abc.py +3 -0
  219. data/lilypond-2.24.1/lib/python3.10/colorsys.py +165 -0
  220. data/lilypond-2.24.1/lib/python3.10/compileall.py +463 -0
  221. data/lilypond-2.24.1/lib/python3.10/concurrent/__init__.py +1 -0
  222. data/lilypond-2.24.1/lib/python3.10/concurrent/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  223. data/lilypond-2.24.1/lib/python3.10/concurrent/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  224. data/lilypond-2.24.1/lib/python3.10/concurrent/__pycache__/__init__.cpython-310.pyc +0 -0
  225. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__init__.py +53 -0
  226. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  227. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  228. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/__init__.cpython-310.pyc +0 -0
  229. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/_base.cpython-310.opt-1.pyc +0 -0
  230. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/_base.cpython-310.opt-2.pyc +0 -0
  231. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/_base.cpython-310.pyc +0 -0
  232. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/process.cpython-310.opt-1.pyc +0 -0
  233. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/process.cpython-310.opt-2.pyc +0 -0
  234. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/__pycache__/process.cpython-310.pyc +0 -0
  235. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/_base.py +656 -0
  236. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/process.py +786 -0
  237. data/lilypond-2.24.1/lib/python3.10/concurrent/futures/thread.py +236 -0
  238. data/lilypond-2.24.1/lib/python3.10/configparser.py +1367 -0
  239. data/lilypond-2.24.1/lib/python3.10/contextlib.py +745 -0
  240. data/lilypond-2.24.1/lib/python3.10/contextvars.py +4 -0
  241. data/lilypond-2.24.1/lib/python3.10/copy.py +304 -0
  242. data/lilypond-2.24.1/lib/python3.10/copyreg.py +219 -0
  243. data/lilypond-2.24.1/lib/python3.10/crypt.py +120 -0
  244. data/lilypond-2.24.1/lib/python3.10/csv.py +444 -0
  245. data/lilypond-2.24.1/lib/python3.10/ctypes/__init__.py +563 -0
  246. data/lilypond-2.24.1/lib/python3.10/ctypes/_aix.py +331 -0
  247. data/lilypond-2.24.1/lib/python3.10/ctypes/_endian.py +61 -0
  248. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/README.ctypes +7 -0
  249. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/__init__.py +9 -0
  250. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/dyld.py +173 -0
  251. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/dylib.py +63 -0
  252. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/fetch_macholib +2 -0
  253. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/fetch_macholib.bat +1 -0
  254. data/lilypond-2.24.1/lib/python3.10/ctypes/macholib/framework.py +65 -0
  255. data/lilypond-2.24.1/lib/python3.10/ctypes/util.py +376 -0
  256. data/lilypond-2.24.1/lib/python3.10/ctypes/wintypes.py +202 -0
  257. data/lilypond-2.24.1/lib/python3.10/curses/__init__.py +101 -0
  258. data/lilypond-2.24.1/lib/python3.10/curses/ascii.py +99 -0
  259. data/lilypond-2.24.1/lib/python3.10/curses/has_key.py +192 -0
  260. data/lilypond-2.24.1/lib/python3.10/curses/panel.py +6 -0
  261. data/lilypond-2.24.1/lib/python3.10/curses/textpad.py +201 -0
  262. data/lilypond-2.24.1/lib/python3.10/dataclasses.py +1454 -0
  263. data/lilypond-2.24.1/lib/python3.10/datetime.py +2524 -0
  264. data/lilypond-2.24.1/lib/python3.10/dbm/__init__.py +189 -0
  265. data/lilypond-2.24.1/lib/python3.10/dbm/dumb.py +316 -0
  266. data/lilypond-2.24.1/lib/python3.10/dbm/gnu.py +3 -0
  267. data/lilypond-2.24.1/lib/python3.10/dbm/ndbm.py +3 -0
  268. data/lilypond-2.24.1/lib/python3.10/decimal.py +11 -0
  269. data/lilypond-2.24.1/lib/python3.10/difflib.py +2056 -0
  270. data/lilypond-2.24.1/lib/python3.10/dis.py +540 -0
  271. data/lilypond-2.24.1/lib/python3.10/doctest.py +2810 -0
  272. data/lilypond-2.24.1/lib/python3.10/email/__init__.py +62 -0
  273. data/lilypond-2.24.1/lib/python3.10/email/_encoded_words.py +233 -0
  274. data/lilypond-2.24.1/lib/python3.10/email/_header_value_parser.py +3003 -0
  275. data/lilypond-2.24.1/lib/python3.10/email/_parseaddr.py +557 -0
  276. data/lilypond-2.24.1/lib/python3.10/email/_policybase.py +374 -0
  277. data/lilypond-2.24.1/lib/python3.10/email/architecture.rst +216 -0
  278. data/lilypond-2.24.1/lib/python3.10/email/base64mime.py +119 -0
  279. data/lilypond-2.24.1/lib/python3.10/email/charset.py +404 -0
  280. data/lilypond-2.24.1/lib/python3.10/email/contentmanager.py +248 -0
  281. data/lilypond-2.24.1/lib/python3.10/email/encoders.py +69 -0
  282. data/lilypond-2.24.1/lib/python3.10/email/errors.py +113 -0
  283. data/lilypond-2.24.1/lib/python3.10/email/feedparser.py +536 -0
  284. data/lilypond-2.24.1/lib/python3.10/email/generator.py +512 -0
  285. data/lilypond-2.24.1/lib/python3.10/email/header.py +578 -0
  286. data/lilypond-2.24.1/lib/python3.10/email/headerregistry.py +604 -0
  287. data/lilypond-2.24.1/lib/python3.10/email/iterators.py +71 -0
  288. data/lilypond-2.24.1/lib/python3.10/email/message.py +1173 -0
  289. data/lilypond-2.24.1/lib/python3.10/email/mime/__init__.py +0 -0
  290. data/lilypond-2.24.1/lib/python3.10/email/mime/application.py +37 -0
  291. data/lilypond-2.24.1/lib/python3.10/email/mime/audio.py +74 -0
  292. data/lilypond-2.24.1/lib/python3.10/email/mime/base.py +30 -0
  293. data/lilypond-2.24.1/lib/python3.10/email/mime/image.py +47 -0
  294. data/lilypond-2.24.1/lib/python3.10/email/mime/message.py +34 -0
  295. data/lilypond-2.24.1/lib/python3.10/email/mime/multipart.py +48 -0
  296. data/lilypond-2.24.1/lib/python3.10/email/mime/nonmultipart.py +22 -0
  297. data/lilypond-2.24.1/lib/python3.10/email/mime/text.py +42 -0
  298. data/lilypond-2.24.1/lib/python3.10/email/parser.py +131 -0
  299. data/lilypond-2.24.1/lib/python3.10/email/policy.py +224 -0
  300. data/lilypond-2.24.1/lib/python3.10/email/quoprimime.py +299 -0
  301. data/lilypond-2.24.1/lib/python3.10/email/utils.py +371 -0
  302. data/lilypond-2.24.1/lib/python3.10/encodings/__init__.py +170 -0
  303. data/lilypond-2.24.1/lib/python3.10/encodings/__pycache__/__init__.cpython-310.pyc +0 -0
  304. data/lilypond-2.24.1/lib/python3.10/encodings/__pycache__/aliases.cpython-310.pyc +0 -0
  305. data/lilypond-2.24.1/lib/python3.10/encodings/__pycache__/utf_8.cpython-310.pyc +0 -0
  306. data/lilypond-2.24.1/lib/python3.10/encodings/aliases.py +551 -0
  307. data/lilypond-2.24.1/lib/python3.10/encodings/ascii.py +50 -0
  308. data/lilypond-2.24.1/lib/python3.10/encodings/base64_codec.py +55 -0
  309. data/lilypond-2.24.1/lib/python3.10/encodings/big5.py +39 -0
  310. data/lilypond-2.24.1/lib/python3.10/encodings/big5hkscs.py +39 -0
  311. data/lilypond-2.24.1/lib/python3.10/encodings/bz2_codec.py +78 -0
  312. data/lilypond-2.24.1/lib/python3.10/encodings/charmap.py +69 -0
  313. data/lilypond-2.24.1/lib/python3.10/encodings/cp037.py +307 -0
  314. data/lilypond-2.24.1/lib/python3.10/encodings/cp1006.py +307 -0
  315. data/lilypond-2.24.1/lib/python3.10/encodings/cp1026.py +307 -0
  316. data/lilypond-2.24.1/lib/python3.10/encodings/cp1125.py +698 -0
  317. data/lilypond-2.24.1/lib/python3.10/encodings/cp1140.py +307 -0
  318. data/lilypond-2.24.1/lib/python3.10/encodings/cp1250.py +307 -0
  319. data/lilypond-2.24.1/lib/python3.10/encodings/cp1251.py +307 -0
  320. data/lilypond-2.24.1/lib/python3.10/encodings/cp1252.py +307 -0
  321. data/lilypond-2.24.1/lib/python3.10/encodings/cp1253.py +307 -0
  322. data/lilypond-2.24.1/lib/python3.10/encodings/cp1254.py +307 -0
  323. data/lilypond-2.24.1/lib/python3.10/encodings/cp1255.py +307 -0
  324. data/lilypond-2.24.1/lib/python3.10/encodings/cp1256.py +307 -0
  325. data/lilypond-2.24.1/lib/python3.10/encodings/cp1257.py +307 -0
  326. data/lilypond-2.24.1/lib/python3.10/encodings/cp1258.py +307 -0
  327. data/lilypond-2.24.1/lib/python3.10/encodings/cp273.py +307 -0
  328. data/lilypond-2.24.1/lib/python3.10/encodings/cp424.py +307 -0
  329. data/lilypond-2.24.1/lib/python3.10/encodings/cp437.py +698 -0
  330. data/lilypond-2.24.1/lib/python3.10/encodings/cp500.py +307 -0
  331. data/lilypond-2.24.1/lib/python3.10/encodings/cp720.py +309 -0
  332. data/lilypond-2.24.1/lib/python3.10/encodings/cp737.py +698 -0
  333. data/lilypond-2.24.1/lib/python3.10/encodings/cp775.py +697 -0
  334. data/lilypond-2.24.1/lib/python3.10/encodings/cp850.py +698 -0
  335. data/lilypond-2.24.1/lib/python3.10/encodings/cp852.py +698 -0
  336. data/lilypond-2.24.1/lib/python3.10/encodings/cp855.py +698 -0
  337. data/lilypond-2.24.1/lib/python3.10/encodings/cp856.py +307 -0
  338. data/lilypond-2.24.1/lib/python3.10/encodings/cp857.py +694 -0
  339. data/lilypond-2.24.1/lib/python3.10/encodings/cp858.py +698 -0
  340. data/lilypond-2.24.1/lib/python3.10/encodings/cp860.py +698 -0
  341. data/lilypond-2.24.1/lib/python3.10/encodings/cp861.py +698 -0
  342. data/lilypond-2.24.1/lib/python3.10/encodings/cp862.py +698 -0
  343. data/lilypond-2.24.1/lib/python3.10/encodings/cp863.py +698 -0
  344. data/lilypond-2.24.1/lib/python3.10/encodings/cp864.py +690 -0
  345. data/lilypond-2.24.1/lib/python3.10/encodings/cp865.py +698 -0
  346. data/lilypond-2.24.1/lib/python3.10/encodings/cp866.py +698 -0
  347. data/lilypond-2.24.1/lib/python3.10/encodings/cp869.py +689 -0
  348. data/lilypond-2.24.1/lib/python3.10/encodings/cp874.py +307 -0
  349. data/lilypond-2.24.1/lib/python3.10/encodings/cp875.py +307 -0
  350. data/lilypond-2.24.1/lib/python3.10/encodings/cp932.py +39 -0
  351. data/lilypond-2.24.1/lib/python3.10/encodings/cp949.py +39 -0
  352. data/lilypond-2.24.1/lib/python3.10/encodings/cp950.py +39 -0
  353. data/lilypond-2.24.1/lib/python3.10/encodings/euc_jis_2004.py +39 -0
  354. data/lilypond-2.24.1/lib/python3.10/encodings/euc_jisx0213.py +39 -0
  355. data/lilypond-2.24.1/lib/python3.10/encodings/euc_jp.py +39 -0
  356. data/lilypond-2.24.1/lib/python3.10/encodings/euc_kr.py +39 -0
  357. data/lilypond-2.24.1/lib/python3.10/encodings/gb18030.py +39 -0
  358. data/lilypond-2.24.1/lib/python3.10/encodings/gb2312.py +39 -0
  359. data/lilypond-2.24.1/lib/python3.10/encodings/gbk.py +39 -0
  360. data/lilypond-2.24.1/lib/python3.10/encodings/hex_codec.py +55 -0
  361. data/lilypond-2.24.1/lib/python3.10/encodings/hp_roman8.py +314 -0
  362. data/lilypond-2.24.1/lib/python3.10/encodings/hz.py +39 -0
  363. data/lilypond-2.24.1/lib/python3.10/encodings/idna.py +309 -0
  364. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp.py +39 -0
  365. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp_1.py +39 -0
  366. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp_2.py +39 -0
  367. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp_2004.py +39 -0
  368. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp_3.py +39 -0
  369. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_jp_ext.py +39 -0
  370. data/lilypond-2.24.1/lib/python3.10/encodings/iso2022_kr.py +39 -0
  371. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_1.py +307 -0
  372. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_10.py +307 -0
  373. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_11.py +307 -0
  374. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_13.py +307 -0
  375. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_14.py +307 -0
  376. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_15.py +307 -0
  377. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_16.py +307 -0
  378. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_2.py +307 -0
  379. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_3.py +307 -0
  380. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_4.py +307 -0
  381. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_5.py +307 -0
  382. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_6.py +307 -0
  383. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_7.py +307 -0
  384. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_8.py +307 -0
  385. data/lilypond-2.24.1/lib/python3.10/encodings/iso8859_9.py +307 -0
  386. data/lilypond-2.24.1/lib/python3.10/encodings/johab.py +39 -0
  387. data/lilypond-2.24.1/lib/python3.10/encodings/koi8_r.py +307 -0
  388. data/lilypond-2.24.1/lib/python3.10/encodings/koi8_t.py +308 -0
  389. data/lilypond-2.24.1/lib/python3.10/encodings/koi8_u.py +307 -0
  390. data/lilypond-2.24.1/lib/python3.10/encodings/kz1048.py +307 -0
  391. data/lilypond-2.24.1/lib/python3.10/encodings/latin_1.py +50 -0
  392. data/lilypond-2.24.1/lib/python3.10/encodings/mac_arabic.py +698 -0
  393. data/lilypond-2.24.1/lib/python3.10/encodings/mac_croatian.py +307 -0
  394. data/lilypond-2.24.1/lib/python3.10/encodings/mac_cyrillic.py +307 -0
  395. data/lilypond-2.24.1/lib/python3.10/encodings/mac_farsi.py +307 -0
  396. data/lilypond-2.24.1/lib/python3.10/encodings/mac_greek.py +307 -0
  397. data/lilypond-2.24.1/lib/python3.10/encodings/mac_iceland.py +307 -0
  398. data/lilypond-2.24.1/lib/python3.10/encodings/mac_latin2.py +312 -0
  399. data/lilypond-2.24.1/lib/python3.10/encodings/mac_roman.py +307 -0
  400. data/lilypond-2.24.1/lib/python3.10/encodings/mac_romanian.py +307 -0
  401. data/lilypond-2.24.1/lib/python3.10/encodings/mac_turkish.py +307 -0
  402. data/lilypond-2.24.1/lib/python3.10/encodings/mbcs.py +47 -0
  403. data/lilypond-2.24.1/lib/python3.10/encodings/oem.py +41 -0
  404. data/lilypond-2.24.1/lib/python3.10/encodings/palmos.py +308 -0
  405. data/lilypond-2.24.1/lib/python3.10/encodings/ptcp154.py +312 -0
  406. data/lilypond-2.24.1/lib/python3.10/encodings/punycode.py +237 -0
  407. data/lilypond-2.24.1/lib/python3.10/encodings/quopri_codec.py +56 -0
  408. data/lilypond-2.24.1/lib/python3.10/encodings/raw_unicode_escape.py +46 -0
  409. data/lilypond-2.24.1/lib/python3.10/encodings/rot_13.py +113 -0
  410. data/lilypond-2.24.1/lib/python3.10/encodings/shift_jis.py +39 -0
  411. data/lilypond-2.24.1/lib/python3.10/encodings/shift_jis_2004.py +39 -0
  412. data/lilypond-2.24.1/lib/python3.10/encodings/shift_jisx0213.py +39 -0
  413. data/lilypond-2.24.1/lib/python3.10/encodings/tis_620.py +307 -0
  414. data/lilypond-2.24.1/lib/python3.10/encodings/undefined.py +49 -0
  415. data/lilypond-2.24.1/lib/python3.10/encodings/unicode_escape.py +46 -0
  416. data/lilypond-2.24.1/lib/python3.10/encodings/utf_16.py +155 -0
  417. data/lilypond-2.24.1/lib/python3.10/encodings/utf_16_be.py +42 -0
  418. data/lilypond-2.24.1/lib/python3.10/encodings/utf_16_le.py +42 -0
  419. data/lilypond-2.24.1/lib/python3.10/encodings/utf_32.py +150 -0
  420. data/lilypond-2.24.1/lib/python3.10/encodings/utf_32_be.py +37 -0
  421. data/lilypond-2.24.1/lib/python3.10/encodings/utf_32_le.py +37 -0
  422. data/lilypond-2.24.1/lib/python3.10/encodings/utf_7.py +38 -0
  423. data/lilypond-2.24.1/lib/python3.10/encodings/utf_8.py +42 -0
  424. data/lilypond-2.24.1/lib/python3.10/encodings/utf_8_sig.py +130 -0
  425. data/lilypond-2.24.1/lib/python3.10/encodings/uu_codec.py +103 -0
  426. data/lilypond-2.24.1/lib/python3.10/encodings/zlib_codec.py +77 -0
  427. data/lilypond-2.24.1/lib/python3.10/ensurepip/__init__.py +294 -0
  428. data/lilypond-2.24.1/lib/python3.10/ensurepip/__main__.py +5 -0
  429. data/lilypond-2.24.1/lib/python3.10/ensurepip/_bundled/__init__.py +0 -0
  430. data/lilypond-2.24.1/lib/python3.10/ensurepip/_bundled/pip-22.2.2-py3-none-any.whl +0 -0
  431. data/lilypond-2.24.1/lib/python3.10/ensurepip/_bundled/setuptools-63.2.0-py3-none-any.whl +0 -0
  432. data/lilypond-2.24.1/lib/python3.10/ensurepip/_uninstall.py +31 -0
  433. data/lilypond-2.24.1/lib/python3.10/enum.py +1053 -0
  434. data/lilypond-2.24.1/lib/python3.10/filecmp.py +313 -0
  435. data/lilypond-2.24.1/lib/python3.10/fileinput.py +462 -0
  436. data/lilypond-2.24.1/lib/python3.10/fnmatch.py +199 -0
  437. data/lilypond-2.24.1/lib/python3.10/fractions.py +748 -0
  438. data/lilypond-2.24.1/lib/python3.10/ftplib.py +981 -0
  439. data/lilypond-2.24.1/lib/python3.10/functools.py +992 -0
  440. data/lilypond-2.24.1/lib/python3.10/genericpath.py +155 -0
  441. data/lilypond-2.24.1/lib/python3.10/getopt.py +215 -0
  442. data/lilypond-2.24.1/lib/python3.10/getpass.py +185 -0
  443. data/lilypond-2.24.1/lib/python3.10/gettext.py +788 -0
  444. data/lilypond-2.24.1/lib/python3.10/glob.py +237 -0
  445. data/lilypond-2.24.1/lib/python3.10/graphlib.py +246 -0
  446. data/lilypond-2.24.1/lib/python3.10/gzip.py +609 -0
  447. data/lilypond-2.24.1/lib/python3.10/hashlib.py +269 -0
  448. data/lilypond-2.24.1/lib/python3.10/heapq.py +601 -0
  449. data/lilypond-2.24.1/lib/python3.10/hmac.py +219 -0
  450. data/lilypond-2.24.1/lib/python3.10/html/__init__.py +132 -0
  451. data/lilypond-2.24.1/lib/python3.10/html/entities.py +2510 -0
  452. data/lilypond-2.24.1/lib/python3.10/html/parser.py +462 -0
  453. data/lilypond-2.24.1/lib/python3.10/http/__init__.py +150 -0
  454. data/lilypond-2.24.1/lib/python3.10/http/client.py +1525 -0
  455. data/lilypond-2.24.1/lib/python3.10/http/cookiejar.py +2125 -0
  456. data/lilypond-2.24.1/lib/python3.10/http/cookies.py +612 -0
  457. data/lilypond-2.24.1/lib/python3.10/http/server.py +1302 -0
  458. data/lilypond-2.24.1/lib/python3.10/imaplib.py +1649 -0
  459. data/lilypond-2.24.1/lib/python3.10/imghdr.py +168 -0
  460. data/lilypond-2.24.1/lib/python3.10/imp.py +346 -0
  461. data/lilypond-2.24.1/lib/python3.10/importlib/__init__.py +176 -0
  462. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  463. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  464. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/__init__.cpython-310.pyc +0 -0
  465. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/_abc.cpython-310.opt-1.pyc +0 -0
  466. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/_abc.cpython-310.opt-2.pyc +0 -0
  467. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/_abc.cpython-310.pyc +0 -0
  468. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/machinery.cpython-310.opt-1.pyc +0 -0
  469. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/machinery.cpython-310.opt-2.pyc +0 -0
  470. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/machinery.cpython-310.pyc +0 -0
  471. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/util.cpython-310.opt-1.pyc +0 -0
  472. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/util.cpython-310.opt-2.pyc +0 -0
  473. data/lilypond-2.24.1/lib/python3.10/importlib/__pycache__/util.cpython-310.pyc +0 -0
  474. data/lilypond-2.24.1/lib/python3.10/importlib/_abc.py +54 -0
  475. data/lilypond-2.24.1/lib/python3.10/importlib/_adapters.py +83 -0
  476. data/lilypond-2.24.1/lib/python3.10/importlib/_bootstrap.py +1209 -0
  477. data/lilypond-2.24.1/lib/python3.10/importlib/_bootstrap_external.py +1686 -0
  478. data/lilypond-2.24.1/lib/python3.10/importlib/_common.py +118 -0
  479. data/lilypond-2.24.1/lib/python3.10/importlib/abc.py +442 -0
  480. data/lilypond-2.24.1/lib/python3.10/importlib/machinery.py +19 -0
  481. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/__init__.py +1045 -0
  482. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_adapters.py +68 -0
  483. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_collections.py +30 -0
  484. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_functools.py +85 -0
  485. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_itertools.py +19 -0
  486. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_meta.py +47 -0
  487. data/lilypond-2.24.1/lib/python3.10/importlib/metadata/_text.py +99 -0
  488. data/lilypond-2.24.1/lib/python3.10/importlib/readers.py +123 -0
  489. data/lilypond-2.24.1/lib/python3.10/importlib/resources.py +185 -0
  490. data/lilypond-2.24.1/lib/python3.10/importlib/util.py +302 -0
  491. data/lilypond-2.24.1/lib/python3.10/inspect.py +3313 -0
  492. data/lilypond-2.24.1/lib/python3.10/io.py +114 -0
  493. data/lilypond-2.24.1/lib/python3.10/ipaddress.py +2287 -0
  494. data/lilypond-2.24.1/lib/python3.10/json/__init__.py +359 -0
  495. data/lilypond-2.24.1/lib/python3.10/json/decoder.py +356 -0
  496. data/lilypond-2.24.1/lib/python3.10/json/encoder.py +442 -0
  497. data/lilypond-2.24.1/lib/python3.10/json/scanner.py +73 -0
  498. data/lilypond-2.24.1/lib/python3.10/json/tool.py +85 -0
  499. data/lilypond-2.24.1/lib/python3.10/keyword.py +63 -0
  500. data/lilypond-2.24.1/lib/python3.10/linecache.py +182 -0
  501. data/lilypond-2.24.1/lib/python3.10/locale.py +1761 -0
  502. data/lilypond-2.24.1/lib/python3.10/logging/__init__.py +2261 -0
  503. data/lilypond-2.24.1/lib/python3.10/logging/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  504. data/lilypond-2.24.1/lib/python3.10/logging/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  505. data/lilypond-2.24.1/lib/python3.10/logging/__pycache__/__init__.cpython-310.pyc +0 -0
  506. data/lilypond-2.24.1/lib/python3.10/logging/config.py +947 -0
  507. data/lilypond-2.24.1/lib/python3.10/logging/handlers.py +1587 -0
  508. data/lilypond-2.24.1/lib/python3.10/lzma.py +356 -0
  509. data/lilypond-2.24.1/lib/python3.10/mailbox.py +2151 -0
  510. data/lilypond-2.24.1/lib/python3.10/mailcap.py +298 -0
  511. data/lilypond-2.24.1/lib/python3.10/mimetypes.py +641 -0
  512. data/lilypond-2.24.1/lib/python3.10/modulefinder.py +685 -0
  513. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__init__.py +37 -0
  514. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  515. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  516. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/__init__.cpython-310.pyc +0 -0
  517. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/context.cpython-310.opt-1.pyc +0 -0
  518. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/context.cpython-310.opt-2.pyc +0 -0
  519. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/context.cpython-310.pyc +0 -0
  520. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/process.cpython-310.opt-1.pyc +0 -0
  521. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/process.cpython-310.opt-2.pyc +0 -0
  522. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/process.cpython-310.pyc +0 -0
  523. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/reduction.cpython-310.opt-1.pyc +0 -0
  524. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/reduction.cpython-310.opt-2.pyc +0 -0
  525. data/lilypond-2.24.1/lib/python3.10/multiprocessing/__pycache__/reduction.cpython-310.pyc +0 -0
  526. data/lilypond-2.24.1/lib/python3.10/multiprocessing/connection.py +978 -0
  527. data/lilypond-2.24.1/lib/python3.10/multiprocessing/context.py +376 -0
  528. data/lilypond-2.24.1/lib/python3.10/multiprocessing/dummy/__init__.py +126 -0
  529. data/lilypond-2.24.1/lib/python3.10/multiprocessing/dummy/connection.py +75 -0
  530. data/lilypond-2.24.1/lib/python3.10/multiprocessing/forkserver.py +348 -0
  531. data/lilypond-2.24.1/lib/python3.10/multiprocessing/heap.py +337 -0
  532. data/lilypond-2.24.1/lib/python3.10/multiprocessing/managers.py +1378 -0
  533. data/lilypond-2.24.1/lib/python3.10/multiprocessing/pool.py +957 -0
  534. data/lilypond-2.24.1/lib/python3.10/multiprocessing/popen_fork.py +83 -0
  535. data/lilypond-2.24.1/lib/python3.10/multiprocessing/popen_forkserver.py +74 -0
  536. data/lilypond-2.24.1/lib/python3.10/multiprocessing/popen_spawn_posix.py +72 -0
  537. data/lilypond-2.24.1/lib/python3.10/multiprocessing/popen_spawn_win32.py +131 -0
  538. data/lilypond-2.24.1/lib/python3.10/multiprocessing/process.py +438 -0
  539. data/lilypond-2.24.1/lib/python3.10/multiprocessing/queues.py +379 -0
  540. data/lilypond-2.24.1/lib/python3.10/multiprocessing/reduction.py +281 -0
  541. data/lilypond-2.24.1/lib/python3.10/multiprocessing/resource_sharer.py +154 -0
  542. data/lilypond-2.24.1/lib/python3.10/multiprocessing/resource_tracker.py +239 -0
  543. data/lilypond-2.24.1/lib/python3.10/multiprocessing/shared_memory.py +531 -0
  544. data/lilypond-2.24.1/lib/python3.10/multiprocessing/sharedctypes.py +240 -0
  545. data/lilypond-2.24.1/lib/python3.10/multiprocessing/spawn.py +297 -0
  546. data/lilypond-2.24.1/lib/python3.10/multiprocessing/synchronize.py +394 -0
  547. data/lilypond-2.24.1/lib/python3.10/multiprocessing/util.py +489 -0
  548. data/lilypond-2.24.1/lib/python3.10/netrc.py +143 -0
  549. data/lilypond-2.24.1/lib/python3.10/nntplib.py +1090 -0
  550. data/lilypond-2.24.1/lib/python3.10/ntpath.py +835 -0
  551. data/lilypond-2.24.1/lib/python3.10/nturl2path.py +81 -0
  552. data/lilypond-2.24.1/lib/python3.10/numbers.py +393 -0
  553. data/lilypond-2.24.1/lib/python3.10/opcode.py +216 -0
  554. data/lilypond-2.24.1/lib/python3.10/operator.py +460 -0
  555. data/lilypond-2.24.1/lib/python3.10/optparse.py +1681 -0
  556. data/lilypond-2.24.1/lib/python3.10/os.py +1123 -0
  557. data/lilypond-2.24.1/lib/python3.10/pathlib.py +1461 -0
  558. data/lilypond-2.24.1/lib/python3.10/pdb.py +1753 -0
  559. data/lilypond-2.24.1/lib/python3.10/pickle.py +1820 -0
  560. data/lilypond-2.24.1/lib/python3.10/pickletools.py +2890 -0
  561. data/lilypond-2.24.1/lib/python3.10/pipes.py +247 -0
  562. data/lilypond-2.24.1/lib/python3.10/pkgutil.py +715 -0
  563. data/lilypond-2.24.1/lib/python3.10/platform.py +1312 -0
  564. data/lilypond-2.24.1/lib/python3.10/plistlib.py +902 -0
  565. data/lilypond-2.24.1/lib/python3.10/poplib.py +483 -0
  566. data/lilypond-2.24.1/lib/python3.10/posixpath.py +541 -0
  567. data/lilypond-2.24.1/lib/python3.10/pprint.py +670 -0
  568. data/lilypond-2.24.1/lib/python3.10/profile.py +610 -0
  569. data/lilypond-2.24.1/lib/python3.10/pstats.py +779 -0
  570. data/lilypond-2.24.1/lib/python3.10/pty.py +187 -0
  571. data/lilypond-2.24.1/lib/python3.10/py_compile.py +212 -0
  572. data/lilypond-2.24.1/lib/python3.10/pyclbr.py +314 -0
  573. data/lilypond-2.24.1/lib/python3.10/pydoc.py +2842 -0
  574. data/lilypond-2.24.1/lib/python3.10/pydoc_data/__init__.py +0 -0
  575. data/lilypond-2.24.1/lib/python3.10/pydoc_data/_pydoc.css +6 -0
  576. data/lilypond-2.24.1/lib/python3.10/pydoc_data/topics.py +15359 -0
  577. data/lilypond-2.24.1/lib/python3.10/queue.py +326 -0
  578. data/lilypond-2.24.1/lib/python3.10/quopri.py +242 -0
  579. data/lilypond-2.24.1/lib/python3.10/random.py +930 -0
  580. data/lilypond-2.24.1/lib/python3.10/re.py +383 -0
  581. data/lilypond-2.24.1/lib/python3.10/reprlib.py +161 -0
  582. data/lilypond-2.24.1/lib/python3.10/rlcompleter.py +219 -0
  583. data/lilypond-2.24.1/lib/python3.10/runpy.py +321 -0
  584. data/lilypond-2.24.1/lib/python3.10/sched.py +167 -0
  585. data/lilypond-2.24.1/lib/python3.10/secrets.py +72 -0
  586. data/lilypond-2.24.1/lib/python3.10/selectors.py +619 -0
  587. data/lilypond-2.24.1/lib/python3.10/shelve.py +243 -0
  588. data/lilypond-2.24.1/lib/python3.10/shlex.py +350 -0
  589. data/lilypond-2.24.1/lib/python3.10/shutil.py +1509 -0
  590. data/lilypond-2.24.1/lib/python3.10/signal.py +92 -0
  591. data/lilypond-2.24.1/lib/python3.10/site-packages/README.txt +2 -0
  592. data/lilypond-2.24.1/lib/python3.10/site.py +674 -0
  593. data/lilypond-2.24.1/lib/python3.10/smtpd.py +979 -0
  594. data/lilypond-2.24.1/lib/python3.10/smtplib.py +1140 -0
  595. data/lilypond-2.24.1/lib/python3.10/sndhdr.py +257 -0
  596. data/lilypond-2.24.1/lib/python3.10/socket.py +960 -0
  597. data/lilypond-2.24.1/lib/python3.10/socketserver.py +844 -0
  598. data/lilypond-2.24.1/lib/python3.10/sqlite3/__init__.py +71 -0
  599. data/lilypond-2.24.1/lib/python3.10/sqlite3/dbapi2.py +103 -0
  600. data/lilypond-2.24.1/lib/python3.10/sqlite3/dump.py +82 -0
  601. data/lilypond-2.24.1/lib/python3.10/sre_compile.py +808 -0
  602. data/lilypond-2.24.1/lib/python3.10/sre_constants.py +261 -0
  603. data/lilypond-2.24.1/lib/python3.10/sre_parse.py +1076 -0
  604. data/lilypond-2.24.1/lib/python3.10/ssl.py +1529 -0
  605. data/lilypond-2.24.1/lib/python3.10/stat.py +195 -0
  606. data/lilypond-2.24.1/lib/python3.10/statistics.py +1267 -0
  607. data/lilypond-2.24.1/lib/python3.10/string.py +280 -0
  608. data/lilypond-2.24.1/lib/python3.10/stringprep.py +272 -0
  609. data/lilypond-2.24.1/lib/python3.10/struct.py +15 -0
  610. data/lilypond-2.24.1/lib/python3.10/subprocess.py +2106 -0
  611. data/lilypond-2.24.1/lib/python3.10/sunau.py +526 -0
  612. data/lilypond-2.24.1/lib/python3.10/symtable.py +322 -0
  613. data/lilypond-2.24.1/lib/python3.10/sysconfig.py +803 -0
  614. data/lilypond-2.24.1/lib/python3.10/tabnanny.py +331 -0
  615. data/lilypond-2.24.1/lib/python3.10/tarfile.py +2614 -0
  616. data/lilypond-2.24.1/lib/python3.10/telnetlib.py +677 -0
  617. data/lilypond-2.24.1/lib/python3.10/tempfile.py +875 -0
  618. data/lilypond-2.24.1/lib/python3.10/textwrap.py +494 -0
  619. data/lilypond-2.24.1/lib/python3.10/this.py +28 -0
  620. data/lilypond-2.24.1/lib/python3.10/threading.py +1645 -0
  621. data/lilypond-2.24.1/lib/python3.10/timeit.py +376 -0
  622. data/lilypond-2.24.1/lib/python3.10/tkinter/__init__.py +4621 -0
  623. data/lilypond-2.24.1/lib/python3.10/tkinter/__main__.py +7 -0
  624. data/lilypond-2.24.1/lib/python3.10/tkinter/colorchooser.py +86 -0
  625. data/lilypond-2.24.1/lib/python3.10/tkinter/commondialog.py +53 -0
  626. data/lilypond-2.24.1/lib/python3.10/tkinter/constants.py +110 -0
  627. data/lilypond-2.24.1/lib/python3.10/tkinter/dialog.py +49 -0
  628. data/lilypond-2.24.1/lib/python3.10/tkinter/dnd.py +324 -0
  629. data/lilypond-2.24.1/lib/python3.10/tkinter/filedialog.py +493 -0
  630. data/lilypond-2.24.1/lib/python3.10/tkinter/font.py +239 -0
  631. data/lilypond-2.24.1/lib/python3.10/tkinter/messagebox.py +146 -0
  632. data/lilypond-2.24.1/lib/python3.10/tkinter/scrolledtext.py +56 -0
  633. data/lilypond-2.24.1/lib/python3.10/tkinter/simpledialog.py +441 -0
  634. data/lilypond-2.24.1/lib/python3.10/tkinter/tix.py +1948 -0
  635. data/lilypond-2.24.1/lib/python3.10/tkinter/ttk.py +1662 -0
  636. data/lilypond-2.24.1/lib/python3.10/token.py +137 -0
  637. data/lilypond-2.24.1/lib/python3.10/tokenize.py +684 -0
  638. data/lilypond-2.24.1/lib/python3.10/trace.py +740 -0
  639. data/lilypond-2.24.1/lib/python3.10/traceback.py +692 -0
  640. data/lilypond-2.24.1/lib/python3.10/tracemalloc.py +560 -0
  641. data/lilypond-2.24.1/lib/python3.10/tty.py +36 -0
  642. data/lilypond-2.24.1/lib/python3.10/turtle.py +4141 -0
  643. data/lilypond-2.24.1/lib/python3.10/turtledemo/__init__.py +14 -0
  644. data/lilypond-2.24.1/lib/python3.10/turtledemo/__main__.py +398 -0
  645. data/lilypond-2.24.1/lib/python3.10/turtledemo/bytedesign.py +161 -0
  646. data/lilypond-2.24.1/lib/python3.10/turtledemo/chaos.py +59 -0
  647. data/lilypond-2.24.1/lib/python3.10/turtledemo/clock.py +131 -0
  648. data/lilypond-2.24.1/lib/python3.10/turtledemo/colormixer.py +58 -0
  649. data/lilypond-2.24.1/lib/python3.10/turtledemo/forest.py +108 -0
  650. data/lilypond-2.24.1/lib/python3.10/turtledemo/fractalcurves.py +138 -0
  651. data/lilypond-2.24.1/lib/python3.10/turtledemo/lindenmayer.py +119 -0
  652. data/lilypond-2.24.1/lib/python3.10/turtledemo/minimal_hanoi.py +79 -0
  653. data/lilypond-2.24.1/lib/python3.10/turtledemo/nim.py +226 -0
  654. data/lilypond-2.24.1/lib/python3.10/turtledemo/paint.py +54 -0
  655. data/lilypond-2.24.1/lib/python3.10/turtledemo/peace.py +61 -0
  656. data/lilypond-2.24.1/lib/python3.10/turtledemo/penrose.py +175 -0
  657. data/lilypond-2.24.1/lib/python3.10/turtledemo/planet_and_moon.py +111 -0
  658. data/lilypond-2.24.1/lib/python3.10/turtledemo/rosette.py +65 -0
  659. data/lilypond-2.24.1/lib/python3.10/turtledemo/round_dance.py +86 -0
  660. data/lilypond-2.24.1/lib/python3.10/turtledemo/sorting_animate.py +204 -0
  661. data/lilypond-2.24.1/lib/python3.10/turtledemo/tree.py +62 -0
  662. data/lilypond-2.24.1/lib/python3.10/turtledemo/turtle.cfg +10 -0
  663. data/lilypond-2.24.1/lib/python3.10/turtledemo/two_canvases.py +54 -0
  664. data/lilypond-2.24.1/lib/python3.10/turtledemo/yinyang.py +49 -0
  665. data/lilypond-2.24.1/lib/python3.10/types.py +307 -0
  666. data/lilypond-2.24.1/lib/python3.10/typing.py +2676 -0
  667. data/lilypond-2.24.1/lib/python3.10/unittest/__init__.py +95 -0
  668. data/lilypond-2.24.1/lib/python3.10/unittest/__main__.py +18 -0
  669. data/lilypond-2.24.1/lib/python3.10/unittest/_log.py +86 -0
  670. data/lilypond-2.24.1/lib/python3.10/unittest/async_case.py +170 -0
  671. data/lilypond-2.24.1/lib/python3.10/unittest/case.py +1452 -0
  672. data/lilypond-2.24.1/lib/python3.10/unittest/loader.py +517 -0
  673. data/lilypond-2.24.1/lib/python3.10/unittest/main.py +275 -0
  674. data/lilypond-2.24.1/lib/python3.10/unittest/mock.py +2954 -0
  675. data/lilypond-2.24.1/lib/python3.10/unittest/result.py +242 -0
  676. data/lilypond-2.24.1/lib/python3.10/unittest/runner.py +230 -0
  677. data/lilypond-2.24.1/lib/python3.10/unittest/signals.py +71 -0
  678. data/lilypond-2.24.1/lib/python3.10/unittest/suite.py +379 -0
  679. data/lilypond-2.24.1/lib/python3.10/unittest/util.py +170 -0
  680. data/lilypond-2.24.1/lib/python3.10/urllib/__init__.py +0 -0
  681. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  682. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/__init__.cpython-310.opt-2.pyc +0 -0
  683. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/__init__.cpython-310.pyc +0 -0
  684. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/parse.cpython-310.opt-1.pyc +0 -0
  685. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/parse.cpython-310.opt-2.pyc +0 -0
  686. data/lilypond-2.24.1/lib/python3.10/urllib/__pycache__/parse.cpython-310.pyc +0 -0
  687. data/lilypond-2.24.1/lib/python3.10/urllib/error.py +77 -0
  688. data/lilypond-2.24.1/lib/python3.10/urllib/parse.py +1196 -0
  689. data/lilypond-2.24.1/lib/python3.10/urllib/request.py +2785 -0
  690. data/lilypond-2.24.1/lib/python3.10/urllib/response.py +84 -0
  691. data/lilypond-2.24.1/lib/python3.10/urllib/robotparser.py +273 -0
  692. data/lilypond-2.24.1/lib/python3.10/uu.py +206 -0
  693. data/lilypond-2.24.1/lib/python3.10/uuid.py +728 -0
  694. data/lilypond-2.24.1/lib/python3.10/venv/__init__.py +515 -0
  695. data/lilypond-2.24.1/lib/python3.10/venv/__main__.py +10 -0
  696. data/lilypond-2.24.1/lib/python3.10/venv/scripts/common/Activate.ps1 +247 -0
  697. data/lilypond-2.24.1/lib/python3.10/venv/scripts/common/activate +69 -0
  698. data/lilypond-2.24.1/lib/python3.10/venv/scripts/posix/activate.csh +26 -0
  699. data/lilypond-2.24.1/lib/python3.10/venv/scripts/posix/activate.fish +66 -0
  700. data/lilypond-2.24.1/lib/python3.10/warnings.py +549 -0
  701. data/lilypond-2.24.1/lib/python3.10/wave.py +513 -0
  702. data/lilypond-2.24.1/lib/python3.10/weakref.py +675 -0
  703. data/lilypond-2.24.1/lib/python3.10/webbrowser.py +717 -0
  704. data/lilypond-2.24.1/lib/python3.10/wsgiref/__init__.py +23 -0
  705. data/lilypond-2.24.1/lib/python3.10/wsgiref/handlers.py +571 -0
  706. data/lilypond-2.24.1/lib/python3.10/wsgiref/headers.py +184 -0
  707. data/lilypond-2.24.1/lib/python3.10/wsgiref/simple_server.py +165 -0
  708. data/lilypond-2.24.1/lib/python3.10/wsgiref/util.py +172 -0
  709. data/lilypond-2.24.1/lib/python3.10/wsgiref/validate.py +441 -0
  710. data/lilypond-2.24.1/lib/python3.10/xdrlib.py +241 -0
  711. data/lilypond-2.24.1/lib/python3.10/xml/__init__.py +20 -0
  712. data/lilypond-2.24.1/lib/python3.10/xml/dom/NodeFilter.py +27 -0
  713. data/lilypond-2.24.1/lib/python3.10/xml/dom/__init__.py +140 -0
  714. data/lilypond-2.24.1/lib/python3.10/xml/dom/domreg.py +99 -0
  715. data/lilypond-2.24.1/lib/python3.10/xml/dom/expatbuilder.py +965 -0
  716. data/lilypond-2.24.1/lib/python3.10/xml/dom/minicompat.py +109 -0
  717. data/lilypond-2.24.1/lib/python3.10/xml/dom/minidom.py +2013 -0
  718. data/lilypond-2.24.1/lib/python3.10/xml/dom/pulldom.py +349 -0
  719. data/lilypond-2.24.1/lib/python3.10/xml/dom/xmlbuilder.py +387 -0
  720. data/lilypond-2.24.1/lib/python3.10/xml/etree/ElementInclude.py +185 -0
  721. data/lilypond-2.24.1/lib/python3.10/xml/etree/ElementPath.py +421 -0
  722. data/lilypond-2.24.1/lib/python3.10/xml/etree/ElementTree.py +2083 -0
  723. data/lilypond-2.24.1/lib/python3.10/xml/etree/__init__.py +33 -0
  724. data/lilypond-2.24.1/lib/python3.10/xml/etree/cElementTree.py +3 -0
  725. data/lilypond-2.24.1/lib/python3.10/xml/parsers/__init__.py +8 -0
  726. data/lilypond-2.24.1/lib/python3.10/xml/parsers/expat.py +8 -0
  727. data/lilypond-2.24.1/lib/python3.10/xml/sax/__init__.py +107 -0
  728. data/lilypond-2.24.1/lib/python3.10/xml/sax/_exceptions.py +131 -0
  729. data/lilypond-2.24.1/lib/python3.10/xml/sax/expatreader.py +446 -0
  730. data/lilypond-2.24.1/lib/python3.10/xml/sax/handler.py +387 -0
  731. data/lilypond-2.24.1/lib/python3.10/xml/sax/saxutils.py +369 -0
  732. data/lilypond-2.24.1/lib/python3.10/xml/sax/xmlreader.py +380 -0
  733. data/lilypond-2.24.1/lib/python3.10/xmlrpc/__init__.py +1 -0
  734. data/lilypond-2.24.1/lib/python3.10/xmlrpc/client.py +1532 -0
  735. data/lilypond-2.24.1/lib/python3.10/xmlrpc/server.py +993 -0
  736. data/lilypond-2.24.1/lib/python3.10/zipapp.py +206 -0
  737. data/lilypond-2.24.1/lib/python3.10/zipfile.py +2474 -0
  738. data/lilypond-2.24.1/lib/python3.10/zipimport.py +772 -0
  739. data/lilypond-2.24.1/lib/python3.10/zoneinfo/__init__.py +31 -0
  740. data/lilypond-2.24.1/lib/python3.10/zoneinfo/_common.py +164 -0
  741. data/lilypond-2.24.1/lib/python3.10/zoneinfo/_tzpath.py +175 -0
  742. data/lilypond-2.24.1/lib/python3.10/zoneinfo/_zoneinfo.py +752 -0
  743. data/lilypond-2.24.1/libexec/abc2ly +1557 -0
  744. data/lilypond-2.24.1/libexec/convert-ly +445 -0
  745. data/lilypond-2.24.1/libexec/etf2ly +1326 -0
  746. data/lilypond-2.24.1/libexec/gs +0 -0
  747. data/lilypond-2.24.1/libexec/lilymidi +304 -0
  748. data/lilypond-2.24.1/libexec/lilypond-book +790 -0
  749. data/lilypond-2.24.1/libexec/lilypond-invoke-editor +135 -0
  750. data/lilypond-2.24.1/libexec/lilysong +273 -0
  751. data/lilypond-2.24.1/libexec/midi2ly +1329 -0
  752. data/lilypond-2.24.1/libexec/musicxml2ly +3482 -0
  753. data/lilypond-2.24.1/libexec/python3.10 +0 -0
  754. data/lilypond-2.24.1/licenses/Python-3.10.8.LICENSE +279 -0
  755. data/lilypond-2.24.1/licenses/cairo-1.16.0.COPYING +33 -0
  756. data/lilypond-2.24.1/licenses/expat-2.4.9.COPYING +21 -0
  757. data/lilypond-2.24.1/licenses/fontconfig-2.14.0.COPYING +200 -0
  758. data/lilypond-2.24.1/licenses/freetype-2.12.1.GPLv2.TXT +340 -0
  759. data/lilypond-2.24.1/licenses/freetype-2.12.1.LICENSE.TXT +42 -0
  760. data/lilypond-2.24.1/licenses/fribidi-1.0.12.COPYING +504 -0
  761. data/lilypond-2.24.1/licenses/gc-8.2.2.README +48 -0
  762. data/lilypond-2.24.1/licenses/ghostscript-9.56.1.COPYING +661 -0
  763. data/lilypond-2.24.1/licenses/ghostscript-9.56.1.LICENSE +41 -0
  764. data/lilypond-2.24.1/licenses/glib-2.72.4.COPYING +502 -0
  765. data/lilypond-2.24.1/licenses/gmp-6.2.1.COPYING.LESSERv3 +165 -0
  766. data/lilypond-2.24.1/licenses/gmp-6.2.1.README +27 -0
  767. data/lilypond-2.24.1/licenses/guile-2.2.7.COPYING.LESSER +165 -0
  768. data/lilypond-2.24.1/licenses/guile-2.2.7.LICENSE +2 -0
  769. data/lilypond-2.24.1/licenses/harfbuzz-4.4.1.COPYING +38 -0
  770. data/lilypond-2.24.1/licenses/libffi-3.4.3.LICENSE +21 -0
  771. data/lilypond-2.24.1/licenses/libpng-1.6.38.LICENSE +134 -0
  772. data/lilypond-2.24.1/licenses/libtool-2.4.7.COPYING +339 -0
  773. data/lilypond-2.24.1/licenses/libunistring-1.0.COPYING.LIB +165 -0
  774. data/lilypond-2.24.1/licenses/libunistring-1.0.README +16 -0
  775. data/lilypond-2.24.1/licenses/lilypond-2.24.1.COPYING +674 -0
  776. data/lilypond-2.24.1/licenses/pango-1.50.11.COPYING +482 -0
  777. data/lilypond-2.24.1/licenses/pcre-8.45.LICENCE +93 -0
  778. data/lilypond-2.24.1/licenses/pixman-0.40.0.COPYING +42 -0
  779. data/lilypond-2.24.1/licenses/tg2_501otf.GUST-FONT-LICENSE.txt +29 -0
  780. data/lilypond-2.24.1/licenses/urw-base35-fonts-20200910.COPYING +661 -0
  781. data/lilypond-2.24.1/licenses/urw-base35-fonts-20200910.LICENSE +9 -0
  782. data/lilypond-2.24.1/licenses/zlib-1.2.13.README +38 -0
  783. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/0bd3dc0958fa2205aaaa8ebb13e2872b-le64.cache-8 +0 -0
  784. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/188ac73a183f12857f63bb60a4a6d603-le64.cache-8 +0 -0
  785. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/32b6488e5b8292a2e95c79d947e009e8-le64.cache-8 +0 -0
  786. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le64.cache-8 +0 -0
  787. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/3f7329c5293ffd510edef78f73874cfd-le64.cache-8 +0 -0
  788. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-le64.cache-8 +0 -0
  789. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/514326a2194e4bf2f4c575aa94baac18-le64.cache-8 +0 -0
  790. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/573ec803664ed168555e0e8b6d0f0c7f-le64.cache-8 +0 -0
  791. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/57e423e26b20ab21d0f2f29c145174c3-le64.cache-8 +0 -0
  792. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/5d1cca7074f29429a8d18692746c2426-le64.cache-8 +0 -0
  793. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/62f91419b9ebdb6975e7e41ab6412357-le64.cache-8 +0 -0
  794. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/6aa41aa22e18b8fa06a12da28ea9c28b-le64.cache-8 +0 -0
  795. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-8 +0 -0
  796. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/89034621ae2a8922916bb6bfa5799546-le64.cache-8 +0 -0
  797. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-8 +0 -0
  798. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/95530828ff6c81d309f8258d8d02a23e-le64.cache-8 +0 -0
  799. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/CACHEDIR.TAG +4 -0
  800. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/bf3b770c553c462765856025a94f1ce6-le64.cache-8 +0 -0
  801. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/c855463f699352c367813e37f3f70ea7-le64.cache-8 +0 -0
  802. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/d3e5c4ee2ceb1fc347f91d4cefc53bc0-le64.cache-8 +0 -0
  803. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/d589a48862398ed80a3d6066f4f56f4c-le64.cache-8 +0 -0
  804. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/d82eb4fd963d448e2fcb7d7b793b5df3-le64.cache-8 +0 -0
  805. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le64.cache-8 +0 -0
  806. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/e52a45a1c8c8fe895fc0fc8c4e6999b8-le64.cache-8 +0 -0
  807. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/e7de81b01590fb7e12b38e274e17d0db-le64.cache-8 +0 -0
  808. data/lilypond-2.24.1/share/lilypond/2.24.1/fontconfig/f1f2465696798768e9653f19e17ccdc8-le64.cache-8 +0 -0
  809. metadata +1896 -1110
  810. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/10-hinting-slight.conf +0 -0
  811. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/10-scale-bitmap-fonts.conf +0 -0
  812. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/11-lcdfilter-default.conf +0 -0
  813. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/20-unhint-small-vera.conf +0 -0
  814. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/30-metric-aliases.conf +0 -0
  815. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/40-nonlatin.conf +0 -0
  816. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/45-generic.conf +0 -0
  817. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/45-latin.conf +0 -0
  818. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/48-spacing.conf +0 -0
  819. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/49-sansserif.conf +0 -0
  820. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/50-user.conf +0 -0
  821. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/51-local.conf +0 -0
  822. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/60-generic.conf +0 -0
  823. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/60-latin.conf +0 -0
  824. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/65-fonts-persian.conf +0 -0
  825. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/65-nonlatin.conf +0 -0
  826. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/69-unifont.conf +0 -0
  827. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/80-delicious.conf +0 -0
  828. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/90-synthetic.conf +0 -0
  829. /data/{etc → lilypond-2.24.1/etc}/fonts/conf.d/README +0 -0
  830. /data/{etc → lilypond-2.24.1/etc}/fonts/fonts.conf +0 -0
  831. /data/{etc → lilypond-2.24.1/etc}/relocate/fontconfig.reloc +0 -0
  832. /data/{etc → lilypond-2.24.1/etc}/relocate/guile.reloc +0 -0
  833. /data/{etc → lilypond-2.24.1/etc}/relocate/libexec.reloc +0 -0
  834. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/and-let-star.go +0 -0
  835. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/arrays.go +0 -0
  836. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/atomic.go +0 -0
  837. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/binary-ports.go +0 -0
  838. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/boot-9.go +0 -0
  839. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/buffered-input.go +0 -0
  840. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/calling.go +0 -0
  841. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/channel.go +0 -0
  842. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/command-line.go +0 -0
  843. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/common-list.go +0 -0
  844. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/control.go +0 -0
  845. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/curried-definitions.go +0 -0
  846. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/debug.go +0 -0
  847. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/deprecated.go +0 -0
  848. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/documentation.go +0 -0
  849. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/eval-string.go +0 -0
  850. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/eval.go +0 -0
  851. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/expect.go +0 -0
  852. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/fdes-finalizers.go +0 -0
  853. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/format.go +0 -0
  854. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/ftw.go +0 -0
  855. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/futures.go +0 -0
  856. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/gap-buffer.go +0 -0
  857. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/getopt-long.go +0 -0
  858. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/hash-table.go +0 -0
  859. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/hcons.go +0 -0
  860. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/history.go +0 -0
  861. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/i18n.go +0 -0
  862. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/iconv.go +0 -0
  863. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/lineio.go +0 -0
  864. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/list.go +0 -0
  865. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/local-eval.go +0 -0
  866. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/ls.go +0 -0
  867. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/mapping.go +0 -0
  868. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/match.go +0 -0
  869. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/networking.go +0 -0
  870. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/null.go +0 -0
  871. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/occam-channel.go +0 -0
  872. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/optargs.go +0 -0
  873. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg/cache.go +0 -0
  874. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg/codegen.go +0 -0
  875. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg/simplify-tree.go +0 -0
  876. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg/string-peg.go +0 -0
  877. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg/using-parsers.go +0 -0
  878. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/peg.go +0 -0
  879. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/poe.go +0 -0
  880. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/poll.go +0 -0
  881. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/popen.go +0 -0
  882. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/ports.go +0 -0
  883. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/posix.go +0 -0
  884. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/pretty-print.go +0 -0
  885. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/psyntax-pp.go +0 -0
  886. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/q.go +0 -0
  887. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/r5rs.go +0 -0
  888. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/rdelim.go +0 -0
  889. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/receive.go +0 -0
  890. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/regex.go +0 -0
  891. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/runq.go +0 -0
  892. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/rw.go +0 -0
  893. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/safe-r5rs.go +0 -0
  894. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/safe.go +0 -0
  895. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/sandbox.go +0 -0
  896. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/save-stack.go +0 -0
  897. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/scm-style-repl.go +0 -0
  898. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/serialize.go +0 -0
  899. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/session.go +0 -0
  900. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/slib.go +0 -0
  901. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/stack-catch.go +0 -0
  902. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/streams.go +0 -0
  903. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/string-fun.go +0 -0
  904. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/suspendable-ports.go +0 -0
  905. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/syncase.go +0 -0
  906. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/textual-ports.go +0 -0
  907. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/threads.go +0 -0
  908. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/time.go +0 -0
  909. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/top-repl.go +0 -0
  910. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/unicode.go +0 -0
  911. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/vlist.go +0 -0
  912. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/ice-9/weak-vector.go +0 -0
  913. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/brainfuck/compile-scheme.go +0 -0
  914. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/brainfuck/compile-tree-il.go +0 -0
  915. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/brainfuck/parse.go +0 -0
  916. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/brainfuck/spec.go +0 -0
  917. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/bytecode/spec.go +0 -0
  918. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/bytecode.go +0 -0
  919. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/closure-conversion.go +0 -0
  920. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/compile-bytecode.go +0 -0
  921. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/constructors.go +0 -0
  922. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/contification.go +0 -0
  923. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/cse.go +0 -0
  924. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/dce.go +0 -0
  925. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/effects-analysis.go +0 -0
  926. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/elide-values.go +0 -0
  927. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/handle-interrupts.go +0 -0
  928. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/intmap.go +0 -0
  929. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/intset.go +0 -0
  930. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/licm.go +0 -0
  931. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/optimize.go +0 -0
  932. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/peel-loops.go +0 -0
  933. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/primitives.go +0 -0
  934. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/prune-bailouts.go +0 -0
  935. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/prune-top-level-scopes.go +0 -0
  936. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/reify-primitives.go +0 -0
  937. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/renumber.go +0 -0
  938. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/rotate-loops.go +0 -0
  939. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/self-references.go +0 -0
  940. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/simplify.go +0 -0
  941. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/slot-allocation.go +0 -0
  942. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/spec.go +0 -0
  943. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/specialize-numbers.go +0 -0
  944. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/specialize-primcalls.go +0 -0
  945. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/split-rec.go +0 -0
  946. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/type-checks.go +0 -0
  947. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/type-fold.go +0 -0
  948. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/types.go +0 -0
  949. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/utils.go +0 -0
  950. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/verify.go +0 -0
  951. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps/with-cps.go +0 -0
  952. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/cps.go +0 -0
  953. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/array.go +0 -0
  954. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/base.go +0 -0
  955. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/compile-tree-il.go +0 -0
  956. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/function.go +0 -0
  957. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/impl.go +0 -0
  958. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/parse.go +0 -0
  959. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/spec.go +0 -0
  960. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/ecmascript/tokenize.go +0 -0
  961. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/bindings.go +0 -0
  962. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/boot.go +0 -0
  963. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/compile-tree-il.go +0 -0
  964. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/falias.go +0 -0
  965. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/lexer.go +0 -0
  966. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/parser.go +0 -0
  967. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/runtime/function-slot.go +0 -0
  968. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/runtime/value-slot.go +0 -0
  969. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/runtime.go +0 -0
  970. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/elisp/spec.go +0 -0
  971. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/scheme/compile-tree-il.go +0 -0
  972. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/scheme/decompile-tree-il.go +0 -0
  973. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/scheme/spec.go +0 -0
  974. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/analyze.go +0 -0
  975. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/canonicalize.go +0 -0
  976. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/compile-cps.go +0 -0
  977. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/debug.go +0 -0
  978. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/effects.go +0 -0
  979. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/fix-letrec.go +0 -0
  980. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/optimize.go +0 -0
  981. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/peval.go +0 -0
  982. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/primitives.go +0 -0
  983. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il/spec.go +0 -0
  984. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/tree-il.go +0 -0
  985. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/language/value/spec.go +0 -0
  986. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/accessors.go +0 -0
  987. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/active-slot.go +0 -0
  988. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/composite-slot.go +0 -0
  989. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/describe.go +0 -0
  990. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/internal.go +0 -0
  991. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/save.go +0 -0
  992. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/simple.go +0 -0
  993. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops/stklos.go +0 -0
  994. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/oop/goops.go +0 -0
  995. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/arithmetic/bitwise.go +0 -0
  996. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/arithmetic/fixnums.go +0 -0
  997. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/arithmetic/flonums.go +0 -0
  998. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/base.go +0 -0
  999. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/bytevectors.go +0 -0
  1000. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/conditions.go +0 -0
  1001. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/control.go +0 -0
  1002. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/enums.go +0 -0
  1003. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/eval.go +0 -0
  1004. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/exceptions.go +0 -0
  1005. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/files.go +0 -0
  1006. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/hashtables.go +0 -0
  1007. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/io/ports.go +0 -0
  1008. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/io/simple.go +0 -0
  1009. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/lists.go +0 -0
  1010. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/mutable-pairs.go +0 -0
  1011. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/mutable-strings.go +0 -0
  1012. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/programs.go +0 -0
  1013. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/r5rs.go +0 -0
  1014. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/records/inspection.go +0 -0
  1015. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/records/procedural.go +0 -0
  1016. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/records/syntactic.go +0 -0
  1017. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/sorting.go +0 -0
  1018. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/syntax-case.go +0 -0
  1019. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs/unicode.go +0 -0
  1020. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/rnrs.go +0 -0
  1021. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/api-diff.go +0 -0
  1022. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/autofrisk.go +0 -0
  1023. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/compile.go +0 -0
  1024. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/disassemble.go +0 -0
  1025. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/display-commentary.go +0 -0
  1026. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/doc-snarf.go +0 -0
  1027. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/frisk.go +0 -0
  1028. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/generate-autoload.go +0 -0
  1029. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/help.go +0 -0
  1030. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/lint.go +0 -0
  1031. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/list.go +0 -0
  1032. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/punify.go +0 -0
  1033. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/read-rfc822.go +0 -0
  1034. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/read-scheme-source.go +0 -0
  1035. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/read-text-outline.go +0 -0
  1036. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/scan-api.go +0 -0
  1037. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/snarf-check-and-output-texi.go +0 -0
  1038. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/snarf-guile-m4-docs.go +0 -0
  1039. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/summarize-guile-TODO.go +0 -0
  1040. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/scripts/use2dot.go +0 -0
  1041. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-1.go +0 -0
  1042. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-10.go +0 -0
  1043. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-11.go +0 -0
  1044. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-111.go +0 -0
  1045. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-13.go +0 -0
  1046. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-14.go +0 -0
  1047. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-16.go +0 -0
  1048. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-17.go +0 -0
  1049. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-18.go +0 -0
  1050. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-19.go +0 -0
  1051. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-2.go +0 -0
  1052. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-26.go +0 -0
  1053. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-27.go +0 -0
  1054. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-28.go +0 -0
  1055. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-31.go +0 -0
  1056. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-34.go +0 -0
  1057. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-35.go +0 -0
  1058. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-37.go +0 -0
  1059. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-38.go +0 -0
  1060. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-39.go +0 -0
  1061. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-4/gnu.go +0 -0
  1062. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-4.go +0 -0
  1063. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-41.go +0 -0
  1064. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-42.go +0 -0
  1065. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-43.go +0 -0
  1066. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-45.go +0 -0
  1067. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-6.go +0 -0
  1068. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-60.go +0 -0
  1069. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-64.go +0 -0
  1070. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-67.go +0 -0
  1071. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-69.go +0 -0
  1072. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-71.go +0 -0
  1073. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-8.go +0 -0
  1074. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-88.go +0 -0
  1075. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-9/gnu.go +0 -0
  1076. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-9.go +0 -0
  1077. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/srfi/srfi-98.go +0 -0
  1078. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/statprof.go +0 -0
  1079. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/apply-templates.go +0 -0
  1080. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/fold.go +0 -0
  1081. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/match.go +0 -0
  1082. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/simple.go +0 -0
  1083. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/ssax/input-parse.go +0 -0
  1084. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/ssax.go +0 -0
  1085. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/transform.go +0 -0
  1086. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/sxml/xpath.go +0 -0
  1087. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/ck.go +0 -0
  1088. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/compile.go +0 -0
  1089. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/lalr.go +0 -0
  1090. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/language.go +0 -0
  1091. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/message.go +0 -0
  1092. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/pmatch.go +0 -0
  1093. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/syntax.go +0 -0
  1094. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/target.go +0 -0
  1095. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/base/types.go +0 -0
  1096. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/foreign-object.go +0 -0
  1097. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/foreign.go +0 -0
  1098. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/command.go +0 -0
  1099. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/common.go +0 -0
  1100. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/coop-server.go +0 -0
  1101. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/debug.go +0 -0
  1102. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/error-handling.go +0 -0
  1103. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/repl.go +0 -0
  1104. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/repl/server.go +0 -0
  1105. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/syntax.go +0 -0
  1106. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/assembler.go +0 -0
  1107. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/coverage.go +0 -0
  1108. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/debug.go +0 -0
  1109. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/disassembler.go +0 -0
  1110. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/dwarf.go +0 -0
  1111. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/elf.go +0 -0
  1112. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/frame.go +0 -0
  1113. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/inspect.go +0 -0
  1114. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/linker.go +0 -0
  1115. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/loader.go +0 -0
  1116. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/program.go +0 -0
  1117. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/trace.go +0 -0
  1118. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/trap-state.go +0 -0
  1119. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/traps.go +0 -0
  1120. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/vm/vm.go +0 -0
  1121. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/system/xref.go +0 -0
  1122. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/docbook.go +0 -0
  1123. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/html.go +0 -0
  1124. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/indexing.go +0 -0
  1125. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/plain-text.go +0 -0
  1126. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/reflection.go +0 -0
  1127. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/serialize.go +0 -0
  1128. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo/string-utils.go +0 -0
  1129. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/texinfo.go +0 -0
  1130. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/client.go +0 -0
  1131. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/http.go +0 -0
  1132. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/request.go +0 -0
  1133. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/response.go +0 -0
  1134. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/server/http.go +0 -0
  1135. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/server.go +0 -0
  1136. /data/{lib → lilypond-2.24.1/lib}/guile/2.2/ccache/web/uri.go +0 -0
  1137. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/accreg.go +0 -0
  1138. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/auto-beam.go +0 -0
  1139. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/autochange.go +0 -0
  1140. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/backend-library.go +0 -0
  1141. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/bar-line.go +0 -0
  1142. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/breath.go +0 -0
  1143. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/c++.go +0 -0
  1144. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/chord-entry.go +0 -0
  1145. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/chord-ignatzek-names.go +0 -0
  1146. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/chord-name.go +0 -0
  1147. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/clip-region.go +0 -0
  1148. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/color.go +0 -0
  1149. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/curried-definitions.go +0 -0
  1150. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-context-properties.go +0 -0
  1151. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-event-classes.go +0 -0
  1152. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-grob-interfaces.go +0 -0
  1153. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-grob-properties.go +0 -0
  1154. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-grobs.go +0 -0
  1155. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-markup-commands.go +0 -0
  1156. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-music-callbacks.go +0 -0
  1157. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-music-display-methods.go +0 -0
  1158. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-music-properties.go +0 -0
  1159. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-music-types.go +0 -0
  1160. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-note-names.go +0 -0
  1161. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-stencil-commands.go +0 -0
  1162. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/define-woodwind-diagrams.go +0 -0
  1163. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/display-lily.go +0 -0
  1164. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/display-woodwind-diagrams.go +0 -0
  1165. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/file-cache.go +0 -0
  1166. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/flag-styles.go +0 -0
  1167. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/font-encodings.go +0 -0
  1168. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/font.go +0 -0
  1169. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/framework-cairo.go +0 -0
  1170. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/framework-ps.go +0 -0
  1171. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/framework-svg.go +0 -0
  1172. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/fret-diagrams.go +0 -0
  1173. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/graphviz.go +0 -0
  1174. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/harp-pedals.go +0 -0
  1175. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/layout-beam.go +0 -0
  1176. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/layout-slur.go +0 -0
  1177. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/lily-library.go +0 -0
  1178. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/lily.go +0 -0
  1179. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/ly-syntax-constructors.go +0 -0
  1180. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/markup-macros.go +0 -0
  1181. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/markup.go +0 -0
  1182. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/midi.go +0 -0
  1183. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/modal-transforms.go +0 -0
  1184. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/music-functions.go +0 -0
  1185. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/output-lib.go +0 -0
  1186. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/output-ps.go +0 -0
  1187. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/output-svg.go +0 -0
  1188. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/page.go +0 -0
  1189. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/paper-system.go +0 -0
  1190. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/paper.go +0 -0
  1191. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/parser-clef.go +0 -0
  1192. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/parser-ly-from-scheme.go +0 -0
  1193. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/part-combiner.go +0 -0
  1194. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/predefined-fretboards.go +0 -0
  1195. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/ps-to-png.go +0 -0
  1196. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/scheme-engravers.go +0 -0
  1197. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/scheme-performers.go +0 -0
  1198. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/script.go +0 -0
  1199. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/skyline.go +0 -0
  1200. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/song-util.go +0 -0
  1201. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/song.go +0 -0
  1202. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/stencil.go +0 -0
  1203. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/tablature.go +0 -0
  1204. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/time-signature-settings.go +0 -0
  1205. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/time-signature.go +0 -0
  1206. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/titling.go +0 -0
  1207. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/to-xml.go +0 -0
  1208. /data/{lib → lilypond-2.24.1/lib}/lilypond/2.24.1/ccache/lily/translation-functions.go +0 -0
  1209. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-font-lock.el +0 -0
  1210. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-indent.el +0 -0
  1211. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-init.el +0 -0
  1212. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-mode.el +0 -0
  1213. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-song.el +0 -0
  1214. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-what-beat.el +0 -0
  1215. /data/{share → lilypond-2.24.1/share}/emacs/site-lisp/lilypond-words.el +0 -0
  1216. /data/{share → lilypond-2.24.1/share}/guile/2.2/guile-procedures.txt +0 -0
  1217. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/and-let-star.scm +0 -0
  1218. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/arrays.scm +0 -0
  1219. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/atomic.scm +0 -0
  1220. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/binary-ports.scm +0 -0
  1221. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/boot-9.scm +0 -0
  1222. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/buffered-input.scm +0 -0
  1223. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/calling.scm +0 -0
  1224. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/channel.scm +0 -0
  1225. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/command-line.scm +0 -0
  1226. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/common-list.scm +0 -0
  1227. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/control.scm +0 -0
  1228. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/curried-definitions.scm +0 -0
  1229. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/debug.scm +0 -0
  1230. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/deprecated.scm +0 -0
  1231. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/documentation.scm +0 -0
  1232. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/eval-string.scm +0 -0
  1233. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/eval.scm +0 -0
  1234. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/expect.scm +0 -0
  1235. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/fdes-finalizers.scm +0 -0
  1236. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/format.scm +0 -0
  1237. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/ftw.scm +0 -0
  1238. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/futures.scm +0 -0
  1239. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/gap-buffer.scm +0 -0
  1240. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/getopt-long.scm +0 -0
  1241. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/hash-table.scm +0 -0
  1242. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/hcons.scm +0 -0
  1243. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/history.scm +0 -0
  1244. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/i18n.scm +0 -0
  1245. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/iconv.scm +0 -0
  1246. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/lineio.scm +0 -0
  1247. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/list.scm +0 -0
  1248. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/local-eval.scm +0 -0
  1249. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/ls.scm +0 -0
  1250. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/mapping.scm +0 -0
  1251. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/match.scm +0 -0
  1252. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/match.upstream.scm +0 -0
  1253. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/networking.scm +0 -0
  1254. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/null.scm +0 -0
  1255. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/occam-channel.scm +0 -0
  1256. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/optargs.scm +0 -0
  1257. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg/cache.scm +0 -0
  1258. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg/codegen.scm +0 -0
  1259. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg/simplify-tree.scm +0 -0
  1260. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg/string-peg.scm +0 -0
  1261. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg/using-parsers.scm +0 -0
  1262. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/peg.scm +0 -0
  1263. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/poe.scm +0 -0
  1264. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/poll.scm +0 -0
  1265. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/popen.scm +0 -0
  1266. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/ports.scm +0 -0
  1267. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/posix.scm +0 -0
  1268. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/pretty-print.scm +0 -0
  1269. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/psyntax-pp.scm +0 -0
  1270. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/psyntax.scm +0 -0
  1271. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/q.scm +0 -0
  1272. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/quasisyntax.scm +0 -0
  1273. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/r5rs.scm +0 -0
  1274. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/r6rs-libraries.scm +0 -0
  1275. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/rdelim.scm +0 -0
  1276. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/receive.scm +0 -0
  1277. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/regex.scm +0 -0
  1278. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/runq.scm +0 -0
  1279. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/rw.scm +0 -0
  1280. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/safe-r5rs.scm +0 -0
  1281. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/safe.scm +0 -0
  1282. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/sandbox.scm +0 -0
  1283. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/save-stack.scm +0 -0
  1284. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/scm-style-repl.scm +0 -0
  1285. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/serialize.scm +0 -0
  1286. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/session.scm +0 -0
  1287. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/slib.scm +0 -0
  1288. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/stack-catch.scm +0 -0
  1289. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/streams.scm +0 -0
  1290. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/string-fun.scm +0 -0
  1291. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/suspendable-ports.scm +0 -0
  1292. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/syncase.scm +0 -0
  1293. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/textual-ports.scm +0 -0
  1294. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/threads.scm +0 -0
  1295. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/time.scm +0 -0
  1296. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/top-repl.scm +0 -0
  1297. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/unicode.scm +0 -0
  1298. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/vlist.scm +0 -0
  1299. /data/{share → lilypond-2.24.1/share}/guile/2.2/ice-9/weak-vector.scm +0 -0
  1300. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/brainfuck/compile-scheme.scm +0 -0
  1301. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/brainfuck/compile-tree-il.scm +0 -0
  1302. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/brainfuck/parse.scm +0 -0
  1303. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/brainfuck/spec.scm +0 -0
  1304. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/bytecode/spec.scm +0 -0
  1305. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/bytecode.scm +0 -0
  1306. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/closure-conversion.scm +0 -0
  1307. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/compile-bytecode.scm +0 -0
  1308. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/constructors.scm +0 -0
  1309. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/contification.scm +0 -0
  1310. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/cse.scm +0 -0
  1311. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/dce.scm +0 -0
  1312. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/effects-analysis.scm +0 -0
  1313. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/elide-values.scm +0 -0
  1314. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/handle-interrupts.scm +0 -0
  1315. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/intmap.scm +0 -0
  1316. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/intset.scm +0 -0
  1317. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/licm.scm +0 -0
  1318. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/optimize.scm +0 -0
  1319. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/peel-loops.scm +0 -0
  1320. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/primitives.scm +0 -0
  1321. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/prune-bailouts.scm +0 -0
  1322. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/prune-top-level-scopes.scm +0 -0
  1323. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/reify-primitives.scm +0 -0
  1324. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/renumber.scm +0 -0
  1325. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/rotate-loops.scm +0 -0
  1326. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/self-references.scm +0 -0
  1327. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/simplify.scm +0 -0
  1328. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/slot-allocation.scm +0 -0
  1329. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/spec.scm +0 -0
  1330. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/specialize-numbers.scm +0 -0
  1331. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/specialize-primcalls.scm +0 -0
  1332. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/split-rec.scm +0 -0
  1333. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/type-checks.scm +0 -0
  1334. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/type-fold.scm +0 -0
  1335. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/types.scm +0 -0
  1336. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/utils.scm +0 -0
  1337. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/verify.scm +0 -0
  1338. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps/with-cps.scm +0 -0
  1339. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/cps.scm +0 -0
  1340. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/array.scm +0 -0
  1341. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/base.scm +0 -0
  1342. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/compile-tree-il.scm +0 -0
  1343. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/function.scm +0 -0
  1344. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/impl.scm +0 -0
  1345. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/parse.scm +0 -0
  1346. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/spec.scm +0 -0
  1347. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/ecmascript/tokenize.scm +0 -0
  1348. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/bindings.scm +0 -0
  1349. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/boot.el +0 -0
  1350. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/compile-tree-il.scm +0 -0
  1351. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/falias.scm +0 -0
  1352. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/lexer.scm +0 -0
  1353. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/parser.scm +0 -0
  1354. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/runtime/function-slot.scm +0 -0
  1355. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/runtime/value-slot.scm +0 -0
  1356. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/runtime.scm +0 -0
  1357. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/elisp/spec.scm +0 -0
  1358. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/scheme/compile-tree-il.scm +0 -0
  1359. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/scheme/decompile-tree-il.scm +0 -0
  1360. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/scheme/spec.scm +0 -0
  1361. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/analyze.scm +0 -0
  1362. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/canonicalize.scm +0 -0
  1363. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/compile-cps.scm +0 -0
  1364. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/debug.scm +0 -0
  1365. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/effects.scm +0 -0
  1366. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/fix-letrec.scm +0 -0
  1367. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/optimize.scm +0 -0
  1368. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/peval.scm +0 -0
  1369. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/primitives.scm +0 -0
  1370. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il/spec.scm +0 -0
  1371. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/tree-il.scm +0 -0
  1372. /data/{share → lilypond-2.24.1/share}/guile/2.2/language/value/spec.scm +0 -0
  1373. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/accessors.scm +0 -0
  1374. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/active-slot.scm +0 -0
  1375. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/composite-slot.scm +0 -0
  1376. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/describe.scm +0 -0
  1377. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/internal.scm +0 -0
  1378. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/save.scm +0 -0
  1379. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/simple.scm +0 -0
  1380. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops/stklos.scm +0 -0
  1381. /data/{share → lilypond-2.24.1/share}/guile/2.2/oop/goops.scm +0 -0
  1382. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/arithmetic/bitwise.scm +0 -0
  1383. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/arithmetic/fixnums.scm +0 -0
  1384. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/arithmetic/flonums.scm +0 -0
  1385. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/base.scm +0 -0
  1386. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/bytevectors.scm +0 -0
  1387. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/conditions.scm +0 -0
  1388. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/control.scm +0 -0
  1389. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/enums.scm +0 -0
  1390. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/eval.scm +0 -0
  1391. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/exceptions.scm +0 -0
  1392. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/files.scm +0 -0
  1393. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/hashtables.scm +0 -0
  1394. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/io/ports.scm +0 -0
  1395. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/io/simple.scm +0 -0
  1396. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/lists.scm +0 -0
  1397. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/mutable-pairs.scm +0 -0
  1398. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/mutable-strings.scm +0 -0
  1399. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/programs.scm +0 -0
  1400. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/r5rs.scm +0 -0
  1401. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/records/inspection.scm +0 -0
  1402. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/records/procedural.scm +0 -0
  1403. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/records/syntactic.scm +0 -0
  1404. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/sorting.scm +0 -0
  1405. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/syntax-case.scm +0 -0
  1406. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs/unicode.scm +0 -0
  1407. /data/{share → lilypond-2.24.1/share}/guile/2.2/rnrs.scm +0 -0
  1408. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/api-diff.scm +0 -0
  1409. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/autofrisk.scm +0 -0
  1410. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/compile.scm +0 -0
  1411. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/disassemble.scm +0 -0
  1412. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/display-commentary.scm +0 -0
  1413. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/doc-snarf.scm +0 -0
  1414. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/frisk.scm +0 -0
  1415. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/generate-autoload.scm +0 -0
  1416. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/help.scm +0 -0
  1417. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/lint.scm +0 -0
  1418. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/list.scm +0 -0
  1419. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/punify.scm +0 -0
  1420. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/read-rfc822.scm +0 -0
  1421. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/read-scheme-source.scm +0 -0
  1422. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/read-text-outline.scm +0 -0
  1423. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/scan-api.scm +0 -0
  1424. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/snarf-check-and-output-texi.scm +0 -0
  1425. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/snarf-guile-m4-docs.scm +0 -0
  1426. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/summarize-guile-TODO.scm +0 -0
  1427. /data/{share → lilypond-2.24.1/share}/guile/2.2/scripts/use2dot.scm +0 -0
  1428. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-1.scm +0 -0
  1429. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-10.scm +0 -0
  1430. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-11.scm +0 -0
  1431. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-111.scm +0 -0
  1432. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-13.scm +0 -0
  1433. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-14.scm +0 -0
  1434. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-16.scm +0 -0
  1435. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-17.scm +0 -0
  1436. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-18.scm +0 -0
  1437. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-19.scm +0 -0
  1438. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-2.scm +0 -0
  1439. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-26.scm +0 -0
  1440. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-27.scm +0 -0
  1441. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-28.scm +0 -0
  1442. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-31.scm +0 -0
  1443. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-34.scm +0 -0
  1444. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-35.scm +0 -0
  1445. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-37.scm +0 -0
  1446. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-38.scm +0 -0
  1447. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-39.scm +0 -0
  1448. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-4/gnu.scm +0 -0
  1449. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-4.scm +0 -0
  1450. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-41.scm +0 -0
  1451. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-42/ec.scm +0 -0
  1452. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-42.scm +0 -0
  1453. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-43.scm +0 -0
  1454. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-45.scm +0 -0
  1455. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-6.scm +0 -0
  1456. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-60.scm +0 -0
  1457. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-64/testing.scm +0 -0
  1458. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-64.scm +0 -0
  1459. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-67/compare.scm +0 -0
  1460. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-67.scm +0 -0
  1461. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-69.scm +0 -0
  1462. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-71.scm +0 -0
  1463. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-8.scm +0 -0
  1464. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-88.scm +0 -0
  1465. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-9/gnu.scm +0 -0
  1466. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-9.scm +0 -0
  1467. /data/{share → lilypond-2.24.1/share}/guile/2.2/srfi/srfi-98.scm +0 -0
  1468. /data/{share → lilypond-2.24.1/share}/guile/2.2/statprof.scm +0 -0
  1469. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/apply-templates.scm +0 -0
  1470. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/fold.scm +0 -0
  1471. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/match.scm +0 -0
  1472. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/simple.scm +0 -0
  1473. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/ssax/input-parse.scm +0 -0
  1474. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/ssax.scm +0 -0
  1475. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/sxml-match.ss +0 -0
  1476. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/transform.scm +0 -0
  1477. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/upstream/SSAX.scm +0 -0
  1478. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/upstream/SXML-tree-trans.scm +0 -0
  1479. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/upstream/SXPath-old.scm +0 -0
  1480. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/upstream/assert.scm +0 -0
  1481. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/upstream/input-parse.scm +0 -0
  1482. /data/{share → lilypond-2.24.1/share}/guile/2.2/sxml/xpath.scm +0 -0
  1483. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/ck.scm +0 -0
  1484. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/compile.scm +0 -0
  1485. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/lalr.scm +0 -0
  1486. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/lalr.upstream.scm +0 -0
  1487. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/language.scm +0 -0
  1488. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/message.scm +0 -0
  1489. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/pmatch.scm +0 -0
  1490. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/syntax.scm +0 -0
  1491. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/target.scm +0 -0
  1492. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/base/types.scm +0 -0
  1493. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/foreign-object.scm +0 -0
  1494. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/foreign.scm +0 -0
  1495. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/command.scm +0 -0
  1496. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/common.scm +0 -0
  1497. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/coop-server.scm +0 -0
  1498. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/debug.scm +0 -0
  1499. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/describe.scm +0 -0
  1500. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/error-handling.scm +0 -0
  1501. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/repl.scm +0 -0
  1502. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/repl/server.scm +0 -0
  1503. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/syntax.scm +0 -0
  1504. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/assembler.scm +0 -0
  1505. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/coverage.scm +0 -0
  1506. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/debug.scm +0 -0
  1507. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/disassembler.scm +0 -0
  1508. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/dwarf.scm +0 -0
  1509. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/elf.scm +0 -0
  1510. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/frame.scm +0 -0
  1511. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/inspect.scm +0 -0
  1512. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/linker.scm +0 -0
  1513. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/loader.scm +0 -0
  1514. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/program.scm +0 -0
  1515. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/trace.scm +0 -0
  1516. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/trap-state.scm +0 -0
  1517. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/traps.scm +0 -0
  1518. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/vm/vm.scm +0 -0
  1519. /data/{share → lilypond-2.24.1/share}/guile/2.2/system/xref.scm +0 -0
  1520. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/docbook.scm +0 -0
  1521. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/html.scm +0 -0
  1522. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/indexing.scm +0 -0
  1523. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/plain-text.scm +0 -0
  1524. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/reflection.scm +0 -0
  1525. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/serialize.scm +0 -0
  1526. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo/string-utils.scm +0 -0
  1527. /data/{share → lilypond-2.24.1/share}/guile/2.2/texinfo.scm +0 -0
  1528. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/client.scm +0 -0
  1529. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/http.scm +0 -0
  1530. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/request.scm +0 -0
  1531. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/response.scm +0 -0
  1532. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/server/http.scm +0 -0
  1533. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/server.scm +0 -0
  1534. /data/{share → lilypond-2.24.1/share}/guile/2.2/web/uri.scm +0 -0
  1535. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/00-lilypond-fonts.conf +0 -0
  1536. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/99-lilypond-fonts.conf +0 -0
  1537. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/C059-BdIta.otf +0 -0
  1538. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/C059-Bold.otf +0 -0
  1539. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/C059-Italic.otf +0 -0
  1540. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/C059-Roman.otf +0 -0
  1541. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Bold.otf +0 -0
  1542. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusMonoPS-BoldItalic.otf +0 -0
  1543. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Italic.otf +0 -0
  1544. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Regular.otf +0 -0
  1545. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusSans-Bold.otf +0 -0
  1546. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusSans-BoldItalic.otf +0 -0
  1547. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusSans-Italic.otf +0 -0
  1548. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/NimbusSans-Regular.otf +0 -0
  1549. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-11.otf +0 -0
  1550. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-13.otf +0 -0
  1551. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-14.otf +0 -0
  1552. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-16.otf +0 -0
  1553. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-18.otf +0 -0
  1554. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-20.otf +0 -0
  1555. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-23.otf +0 -0
  1556. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-26.otf +0 -0
  1557. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/emmentaler-brace.otf +0 -0
  1558. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyrecursor-bold.otf +0 -0
  1559. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyrecursor-bolditalic.otf +0 -0
  1560. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyrecursor-italic.otf +0 -0
  1561. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyrecursor-regular.otf +0 -0
  1562. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreheros-bold.otf +0 -0
  1563. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreheros-bolditalic.otf +0 -0
  1564. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreheros-italic.otf +0 -0
  1565. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreheros-regular.otf +0 -0
  1566. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreschola-bold.otf +0 -0
  1567. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreschola-bolditalic.otf +0 -0
  1568. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreschola-italic.otf +0 -0
  1569. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/otf/texgyreschola-regular.otf +0 -0
  1570. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/common-modules-and-initialization.mf +0 -0
  1571. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/debugging-settings.mf +0 -0
  1572. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/declare-autometric-parameters.mf +0 -0
  1573. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-accidentals.mf +0 -0
  1574. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-accordion.mf +0 -0
  1575. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet-generic.mf +0 -0
  1576. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet11.mf +0 -0
  1577. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet13.mf +0 -0
  1578. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet14.mf +0 -0
  1579. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet16.mf +0 -0
  1580. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet18.mf +0 -0
  1581. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet20.mf +0 -0
  1582. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet23.mf +0 -0
  1583. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-alphabet26.mf +0 -0
  1584. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-arrow.mf +0 -0
  1585. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-arrowheads.mf +0 -0
  1586. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-autometric.mf +0 -0
  1587. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-a.mf +0 -0
  1588. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-b.mf +0 -0
  1589. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-c.mf +0 -0
  1590. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-d.mf +0 -0
  1591. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-e.mf +0 -0
  1592. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-f.mf +0 -0
  1593. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-g.mf +0 -0
  1594. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-generic.mf +0 -0
  1595. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-h.mf +0 -0
  1596. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces-i.mf +0 -0
  1597. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-braces.mf +0 -0
  1598. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-brackettips.mf +0 -0
  1599. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-clefs.mf +0 -0
  1600. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-dots.mf +0 -0
  1601. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-dynamics.mf +0 -0
  1602. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags-generic.mf +0 -0
  1603. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags.mf +0 -0
  1604. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags11.mf +0 -0
  1605. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags13.mf +0 -0
  1606. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags14.mf +0 -0
  1607. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags16.mf +0 -0
  1608. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags18.mf +0 -0
  1609. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags20.mf +0 -0
  1610. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags23.mf +0 -0
  1611. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flags26.mf +0 -0
  1612. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-flats.mf +0 -0
  1613. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-macros.mf +0 -0
  1614. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-naturals.mf +0 -0
  1615. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads-generic.mf +0 -0
  1616. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads.mf +0 -0
  1617. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads11.mf +0 -0
  1618. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads13.mf +0 -0
  1619. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads14.mf +0 -0
  1620. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads16.mf +0 -0
  1621. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads18.mf +0 -0
  1622. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads20.mf +0 -0
  1623. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads23.mf +0 -0
  1624. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-noteheads26.mf +0 -0
  1625. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-numbers.mf +0 -0
  1626. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-other-generic.mf +0 -0
  1627. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-params.mf +0 -0
  1628. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-parenthesis.mf +0 -0
  1629. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-pedals.mf +0 -0
  1630. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-rests.mf +0 -0
  1631. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-scripts.mf +0 -0
  1632. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-sharps.mf +0 -0
  1633. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-sori-koron.mf +0 -0
  1634. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-ties.mf +0 -0
  1635. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-timesignatures.mf +0 -0
  1636. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta-trills.mf +0 -0
  1637. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta11.mf +0 -0
  1638. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta13.mf +0 -0
  1639. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta14.mf +0 -0
  1640. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta16.mf +0 -0
  1641. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta18.mf +0 -0
  1642. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta20.mf +0 -0
  1643. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta23.mf +0 -0
  1644. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/feta26.mf +0 -0
  1645. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-accidentals.mf +0 -0
  1646. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-clefs.mf +0 -0
  1647. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-custodes.mf +0 -0
  1648. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-dots.mf +0 -0
  1649. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-flags.mf +0 -0
  1650. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-macros.mf +0 -0
  1651. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads-generic.mf +0 -0
  1652. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads.mf +0 -0
  1653. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads11.mf +0 -0
  1654. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads13.mf +0 -0
  1655. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads14.mf +0 -0
  1656. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads16.mf +0 -0
  1657. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads18.mf +0 -0
  1658. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads20.mf +0 -0
  1659. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads23.mf +0 -0
  1660. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-noteheads26.mf +0 -0
  1661. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-other-generic.mf +0 -0
  1662. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-rests.mf +0 -0
  1663. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-scripts.mf +0 -0
  1664. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan-timesignatures.mf +0 -0
  1665. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan11.mf +0 -0
  1666. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan13.mf +0 -0
  1667. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan14.mf +0 -0
  1668. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan16.mf +0 -0
  1669. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan18.mf +0 -0
  1670. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan20.mf +0 -0
  1671. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan23.mf +0 -0
  1672. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/source/parmesan26.mf +0 -0
  1673. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-11.svg +0 -0
  1674. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-11.woff +0 -0
  1675. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-13.svg +0 -0
  1676. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-13.woff +0 -0
  1677. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-14.svg +0 -0
  1678. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-14.woff +0 -0
  1679. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-16.svg +0 -0
  1680. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-16.woff +0 -0
  1681. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-18.svg +0 -0
  1682. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-18.woff +0 -0
  1683. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-20.svg +0 -0
  1684. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-20.woff +0 -0
  1685. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-23.svg +0 -0
  1686. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-23.woff +0 -0
  1687. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-26.svg +0 -0
  1688. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-26.woff +0 -0
  1689. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-brace.svg +0 -0
  1690. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/fonts/svg/emmentaler-brace.woff +0 -0
  1691. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/Welcome_to_LilyPond.ly +0 -0
  1692. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/arabic.ly +0 -0
  1693. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/articulate.ly +0 -0
  1694. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/bagpipe.ly +0 -0
  1695. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/base-tkit.ly +0 -0
  1696. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/catalan.ly +0 -0
  1697. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/chord-modifiers-init.ly +0 -0
  1698. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/chord-repetition-init.ly +0 -0
  1699. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/context-mods-init.ly +0 -0
  1700. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/declarations-init.ly +0 -0
  1701. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/deutsch.ly +0 -0
  1702. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/drumpitch-init.ly +0 -0
  1703. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/dynamic-scripts-init.ly +0 -0
  1704. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/english.ly +0 -0
  1705. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/engraver-init.ly +0 -0
  1706. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/espanol.ly +0 -0
  1707. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/event-listener.ly +0 -0
  1708. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/festival.ly +0 -0
  1709. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/generate-documentation.ly +0 -0
  1710. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/grace-init.ly +0 -0
  1711. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/graphviz-init.ly +0 -0
  1712. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/gregorian.ly +0 -0
  1713. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/guile-debugger.ly +0 -0
  1714. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/hel-arabic.ly +0 -0
  1715. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/init.ly +0 -0
  1716. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/italiano.ly +0 -0
  1717. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/lilypond-book-preamble.ly +0 -0
  1718. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/lyrics-tkit.ly +0 -0
  1719. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/makam.ly +0 -0
  1720. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/midi-init.ly +0 -0
  1721. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/music-functions-init.ly +0 -0
  1722. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/nederlands.ly +0 -0
  1723. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/norsk.ly +0 -0
  1724. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/paper-defaults-init.ly +0 -0
  1725. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/performer-init.ly +0 -0
  1726. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/persian.ly +0 -0
  1727. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/piano-tkit.ly +0 -0
  1728. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/portugues.ly +0 -0
  1729. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/predefined-fretboards-init.ly +0 -0
  1730. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/predefined-guitar-fretboards.ly +0 -0
  1731. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/predefined-guitar-ninth-fretboards.ly +0 -0
  1732. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/predefined-mandolin-fretboards.ly +0 -0
  1733. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/predefined-ukulele-fretboards.ly +0 -0
  1734. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/property-init.ly +0 -0
  1735. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/satb.ly +0 -0
  1736. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/scale-definitions-init.ly +0 -0
  1737. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/scheme-sandbox.ly +0 -0
  1738. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/script-init.ly +0 -0
  1739. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/spanners-init.ly +0 -0
  1740. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/ssaattbb.ly +0 -0
  1741. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/staff-tkit.ly +0 -0
  1742. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/string-tunings-init.ly +0 -0
  1743. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/suomi.ly +0 -0
  1744. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/svenska.ly +0 -0
  1745. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/swing.ly +0 -0
  1746. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/text-replacements.ly +0 -0
  1747. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/titling-init.ly +0 -0
  1748. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/toc-init.ly +0 -0
  1749. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/turkish-makam.ly +0 -0
  1750. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/vlaams.ly +0 -0
  1751. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/vocal-tkit.ly +0 -0
  1752. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ly/voice-tkit.ly +0 -0
  1753. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ps/encodingdefs.ps +0 -0
  1754. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ps/lilyponddefs.ps +0 -0
  1755. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/ps/music-drawing-routines.ps +0 -0
  1756. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_base.cpython-310.pyc +0 -0
  1757. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_docbook.cpython-310.pyc +0 -0
  1758. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_html.cpython-310.pyc +0 -0
  1759. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_latex.cpython-310.pyc +0 -0
  1760. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_snippets.cpython-310.pyc +0 -0
  1761. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/book_texinfo.cpython-310.pyc +0 -0
  1762. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/convertrules.cpython-310.pyc +0 -0
  1763. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/langdefs.cpython-310.pyc +0 -0
  1764. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/lilylib.cpython-310.pyc +0 -0
  1765. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/midi.cpython-310.pyc +0 -0
  1766. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/musicexp.cpython-310.pyc +0 -0
  1767. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/musicxml.cpython-310.pyc +0 -0
  1768. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/musicxml2ly_conversion.cpython-310.pyc +0 -0
  1769. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/__pycache__/utilities.cpython-310.pyc +0 -0
  1770. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_base.py +0 -0
  1771. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_docbook.py +0 -0
  1772. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_html.py +0 -0
  1773. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_latex.py +0 -0
  1774. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_snippets.py +0 -0
  1775. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/book_texinfo.py +0 -0
  1776. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/convertrules.py +0 -0
  1777. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/langdefs.py +0 -0
  1778. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/lilylib.py +0 -0
  1779. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/midi.py +0 -0
  1780. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/musicexp.py +0 -0
  1781. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/musicxml.py +0 -0
  1782. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/musicxml2ly_conversion.py +0 -0
  1783. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/python/utilities.py +0 -0
  1784. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/accreg.scm +0 -0
  1785. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/auto-beam.scm +0 -0
  1786. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/autochange.scm +0 -0
  1787. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/backend-library.scm +0 -0
  1788. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/bar-line.scm +0 -0
  1789. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/breath.scm +0 -0
  1790. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/c++.scm +0 -0
  1791. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/chord-entry.scm +0 -0
  1792. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/chord-ignatzek-names.scm +0 -0
  1793. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/chord-name.scm +0 -0
  1794. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/clip-region.scm +0 -0
  1795. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/color.scm +0 -0
  1796. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/curried-definitions.scm +0 -0
  1797. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-context-properties.scm +0 -0
  1798. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-event-classes.scm +0 -0
  1799. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-grob-interfaces.scm +0 -0
  1800. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-grob-properties.scm +0 -0
  1801. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-grobs.scm +0 -0
  1802. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-markup-commands.scm +0 -0
  1803. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-music-callbacks.scm +0 -0
  1804. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-music-display-methods.scm +0 -0
  1805. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-music-properties.scm +0 -0
  1806. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-music-types.scm +0 -0
  1807. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-note-names.scm +0 -0
  1808. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-stencil-commands.scm +0 -0
  1809. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/define-woodwind-diagrams.scm +0 -0
  1810. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/display-lily.scm +0 -0
  1811. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/display-woodwind-diagrams.scm +0 -0
  1812. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-backend.scm +0 -0
  1813. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-context-mods.scm +0 -0
  1814. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-functions.scm +0 -0
  1815. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-identifiers.scm +0 -0
  1816. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-markup.scm +0 -0
  1817. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-music.scm +0 -0
  1818. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-outside-staff-priorities.scm +0 -0
  1819. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-paper-sizes.scm +0 -0
  1820. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-translation.scm +0 -0
  1821. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/document-type-predicates.scm +0 -0
  1822. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/documentation-generate.scm +0 -0
  1823. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/documentation-lib.scm +0 -0
  1824. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/file-cache.scm +0 -0
  1825. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/flag-styles.scm +0 -0
  1826. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/font-encodings.scm +0 -0
  1827. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/font.scm +0 -0
  1828. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/framework-cairo.scm +0 -0
  1829. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/framework-ps.scm +0 -0
  1830. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/framework-svg.scm +0 -0
  1831. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/fret-diagrams.scm +0 -0
  1832. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/graphviz.scm +0 -0
  1833. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/guile-debugger.scm +0 -0
  1834. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/harp-pedals.scm +0 -0
  1835. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/hyphenate-internal-words.scm +0 -0
  1836. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/layout-beam.scm +0 -0
  1837. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/layout-slur.scm +0 -0
  1838. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/lily-library.scm +0 -0
  1839. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/lily-sort.scm +0 -0
  1840. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/lily.scm +0 -0
  1841. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/ly-syntax-constructors.scm +0 -0
  1842. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/markup-macros.scm +0 -0
  1843. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/markup.scm +0 -0
  1844. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/midi.scm +0 -0
  1845. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/modal-transforms.scm +0 -0
  1846. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/music-functions.scm +0 -0
  1847. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/output-lib.scm +0 -0
  1848. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/output-ps.scm +0 -0
  1849. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/output-svg.scm +0 -0
  1850. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/page.scm +0 -0
  1851. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/paper-system.scm +0 -0
  1852. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/paper.scm +0 -0
  1853. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/parser-clef.scm +0 -0
  1854. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/parser-ly-from-scheme.scm +0 -0
  1855. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/part-combiner.scm +0 -0
  1856. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/predefined-fretboards.scm +0 -0
  1857. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/ps-to-png.scm +0 -0
  1858. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/scheme-engravers.scm +0 -0
  1859. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/scheme-performers.scm +0 -0
  1860. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/script.scm +0 -0
  1861. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/skyline.scm +0 -0
  1862. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/song-util.scm +0 -0
  1863. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/song.scm +0 -0
  1864. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/stencil.scm +0 -0
  1865. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/tablature.scm +0 -0
  1866. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/time-signature-settings.scm +0 -0
  1867. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/time-signature.scm +0 -0
  1868. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/titling.scm +0 -0
  1869. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/to-xml.scm +0 -0
  1870. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/scm/lily/translation-functions.scm +0 -0
  1871. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/compiler/lilypond.vim +0 -0
  1872. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/ftdetect/lilypond.vim +0 -0
  1873. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/ftplugin/lilypond.vim +0 -0
  1874. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/indent/lilypond.vim +0 -0
  1875. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/syntax/lilypond-words +0 -0
  1876. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/syntax/lilypond-words.vim +0 -0
  1877. /data/{share → lilypond-2.24.1/share}/lilypond/2.24.1/vim/syntax/lilypond.vim +0 -0
  1878. /data/{share → lilypond-2.24.1/share}/locale/ca/LC_MESSAGES/lilypond.mo +0 -0
  1879. /data/{share → lilypond-2.24.1/share}/locale/cs/LC_MESSAGES/lilypond.mo +0 -0
  1880. /data/{share → lilypond-2.24.1/share}/locale/da/LC_MESSAGES/lilypond.mo +0 -0
  1881. /data/{share → lilypond-2.24.1/share}/locale/de/LC_MESSAGES/lilypond.mo +0 -0
  1882. /data/{share → lilypond-2.24.1/share}/locale/el/LC_MESSAGES/lilypond.mo +0 -0
  1883. /data/{share → lilypond-2.24.1/share}/locale/eo/LC_MESSAGES/lilypond.mo +0 -0
  1884. /data/{share → lilypond-2.24.1/share}/locale/es/LC_MESSAGES/lilypond.mo +0 -0
  1885. /data/{share → lilypond-2.24.1/share}/locale/fi/LC_MESSAGES/lilypond.mo +0 -0
  1886. /data/{share → lilypond-2.24.1/share}/locale/fr/LC_MESSAGES/lilypond.mo +0 -0
  1887. /data/{share → lilypond-2.24.1/share}/locale/it/LC_MESSAGES/lilypond.mo +0 -0
  1888. /data/{share → lilypond-2.24.1/share}/locale/ja/LC_MESSAGES/lilypond.mo +0 -0
  1889. /data/{share → lilypond-2.24.1/share}/locale/nl/LC_MESSAGES/lilypond.mo +0 -0
  1890. /data/{share → lilypond-2.24.1/share}/locale/ru/LC_MESSAGES/lilypond.mo +0 -0
  1891. /data/{share → lilypond-2.24.1/share}/locale/sv/LC_MESSAGES/lilypond.mo +0 -0
  1892. /data/{share → lilypond-2.24.1/share}/locale/tr/LC_MESSAGES/lilypond.mo +0 -0
  1893. /data/{share → lilypond-2.24.1/share}/locale/uk/LC_MESSAGES/lilypond.mo +0 -0
  1894. /data/{share → lilypond-2.24.1/share}/locale/vi/LC_MESSAGES/lilypond.mo +0 -0
  1895. /data/{share → lilypond-2.24.1/share}/locale/zh_CN/LC_MESSAGES/lilypond.mo +0 -0
  1896. /data/{share → lilypond-2.24.1/share}/locale/zh_TW/LC_MESSAGES/lilypond.mo +0 -0
@@ -0,0 +1,3482 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # This file is part of LilyPond, the GNU music typesetter.
5
+ #
6
+ # Copyright (C) 2005--2022 Han-Wen Nienhuys <hanwen@xs4all.nl>,
7
+ # Jan Nieuwenhuizen <janneke@gnu.org>,
8
+ # Reinhold Kainhofer <reinhold@kainhofer.com>,
9
+ # Patrick L. Schmidt <pls@philomelos.net>
10
+ #
11
+ # LilyPond is free software: you can redistribute it and/or modify
12
+ # it under the terms of the GNU General Public License as published by
13
+ # the Free Software Foundation, either version 3 of the License, or
14
+ # (at your option) any later version.
15
+ #
16
+ # LilyPond is distributed in the hope that it will be useful,
17
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ # GNU General Public License for more details.
20
+ #
21
+ # You should have received a copy of the GNU General Public License
22
+ # along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
23
+
24
+
25
+ from collections import OrderedDict
26
+ from fractions import Fraction
27
+ from functools import reduce
28
+ import gettext
29
+ import io
30
+ import optparse
31
+ import os
32
+ import re
33
+ import sys
34
+ import tempfile
35
+ import warnings
36
+ import zipfile
37
+
38
+ """
39
+
40
+ # relocate-preamble.py.in
41
+ #
42
+ # This file is part of LilyPond, the GNU music typesetter.
43
+ #
44
+ # Copyright (C) 2007--2022 Han-Wen Nienhuys <hanwen@xs4all.nl>
45
+ #
46
+ # LilyPond is free software: you can redistribute it and/or modify
47
+ # it under the terms of the GNU General Public License as published by
48
+ # the Free Software Foundation, either version 3 of the License, or
49
+ # (at your option) any later version.
50
+ #
51
+ # LilyPond is distributed in the hope that it will be useful,
52
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
53
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
54
+ # GNU General Public License for more details.
55
+ #
56
+ # You should have received a copy of the GNU General Public License
57
+ # along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
58
+ #
59
+
60
+ This is generic code, used for all python scripts.
61
+
62
+ The quotes are to ensure that the source .py file can still be
63
+ run as a python script, but does not include any sys.path handling.
64
+ Otherwise, the lilypond-book calls inside the build
65
+ might modify installed .pyc files.
66
+
67
+ """
68
+
69
+ # This is needed for installations with a non-default layout, ie where share/
70
+ # is not next to bin/.
71
+ sys.path.insert (0, os.path.join ('/home/lily/lilypond-2.24.1/release/binaries/lilypond/install/share/lilypond/2.24.1', 'python'))
72
+
73
+ # Dynamic relocation, for installations with a default layout including GUB,
74
+ # but also for execution from the build directory.
75
+ bindir = os.path.abspath (os.path.dirname (sys.argv[0]))
76
+ topdir = os.path.dirname (bindir)
77
+ if bindir.endswith (r'/scripts/out'):
78
+ topdir = os.path.join (os.path.dirname (topdir), 'out')
79
+ datadir = os.path.abspath (os.path.join (topdir, 'share', 'lilypond'))
80
+ for v in [ 'current', '2.24.1' ]:
81
+ sys.path.insert (0, os.path.join (datadir, v, 'python'))
82
+
83
+ """
84
+ """
85
+
86
+ import musicexp
87
+ import musicxml
88
+ import musicxml2ly_conversion
89
+ import utilities
90
+
91
+ # Load translation and install _() into Python's builtins namespace.
92
+ gettext.install('lilypond', '/home/lily/lilypond-2.24.1/release/binaries/lilypond/install/share/locale')
93
+
94
+ import lilylib as ly
95
+
96
+ lilypond_version = "2.24.1"
97
+
98
+ # Store command-line options in a global variable, so we can access them everywhere
99
+ options = None
100
+
101
+
102
+ class Conversion_Settings:
103
+ def __init__(self):
104
+ self.ignore_beaming = False
105
+ self.convert_stem_directions = False
106
+ self.convert_rest_positions = True
107
+
108
+
109
+ conversion_settings = Conversion_Settings()
110
+ # Use a global variable to store the setting needed inside a \layout block.
111
+ # whenever we need to change a setting or add/remove an engraver, we can access
112
+ # this layout and add the corresponding settings
113
+ layout_information = musicexp.Layout()
114
+ # Use a global variable to store the setting needed inside a \paper block.
115
+ paper = musicexp.Paper()
116
+
117
+ needed_additional_definitions = []
118
+ additional_definitions = {
119
+ "tuplet-note-wrapper": """ % a formatter function, which is simply a wrapper around an existing
120
+ % tuplet formatter function. It takes the value returned by the given
121
+ % function and appends a note of given length.
122
+ #(define-public ((tuplet-number::append-note-wrapper function note) grob)
123
+ (let* ((txt (if function (function grob) #f)))
124
+ (if txt
125
+ (markup txt #:fontsize -5 #:note note UP)
126
+ (markup #:fontsize -5 #:note note UP)
127
+ )
128
+ )
129
+ )""",
130
+
131
+ "tuplet-non-default-denominator": """#(define ((tuplet-number::non-default-tuplet-denominator-text denominator) grob)
132
+ (number->string (if denominator
133
+ denominator
134
+ (ly:event-property (event-cause grob) 'denominator))))
135
+ """,
136
+
137
+ "tuplet-non-default-fraction": """#(define ((tuplet-number::non-default-tuplet-fraction-text denominator numerator) grob)
138
+ (let* ((ev (event-cause grob))
139
+ (den (if denominator denominator (ly:event-property ev 'denominator)))
140
+ (num (if numerator numerator (ly:event-property ev 'numerator))))
141
+ (format #f "~a:~a" den num)))
142
+ """,
143
+ }
144
+
145
+
146
+ def round_to_two_digits(val):
147
+ return round(val * 100) / 100
148
+
149
+
150
+ def extract_paper_information(score_partwise):
151
+ defaults = score_partwise.get_maybe_exist_named_child('defaults')
152
+ if not defaults:
153
+ return None
154
+ tenths = -1
155
+ scaling = defaults.get_maybe_exist_named_child('scaling')
156
+ default_tenths_to_millimeters_ratio = 0.175
157
+ default_staff_size = 20
158
+ if scaling:
159
+ mm = scaling.get_named_child('millimeters')
160
+ mm = float(mm.get_text())
161
+ tn = scaling.get_maybe_exist_named_child('tenths')
162
+ tn = float(tn.get_text())
163
+ # The variable 'tenths' is actually a ratio, NOT the value of <tenths>.
164
+ # TODO: rename and replace.
165
+ tenths = mm / tn
166
+ ratio = tenths / default_tenths_to_millimeters_ratio
167
+ staff_size = default_staff_size * ratio
168
+
169
+ if 1 < staff_size < 100:
170
+ paper.global_staff_size = staff_size
171
+ else:
172
+ msg = "paper.global_staff_size %s is too large, using defaults=20" % staff_size
173
+ warnings.warn(msg)
174
+ paper.global_staff_size = 20
175
+
176
+ # We need the scaling(i.e. the size of staff tenths for everything!
177
+ if tenths < 0:
178
+ return None
179
+
180
+ def from_tenths(txt):
181
+ return round_to_two_digits(float(txt) * tenths / 10)
182
+
183
+ def set_paper_variable(varname, parent, element_name):
184
+ el = parent.get_maybe_exist_named_child(element_name)
185
+ if el: # Convert to cm from tenths
186
+ setattr(paper, varname, from_tenths(el.get_text()))
187
+
188
+ pagelayout = defaults.get_maybe_exist_named_child('page-layout')
189
+ if pagelayout:
190
+ # TODO: How can one have different margins for even and odd pages???
191
+ set_paper_variable("page_height", pagelayout, 'page-height')
192
+ set_paper_variable("page_width", pagelayout, 'page-width')
193
+
194
+ if conversion_settings.convert_page_margins:
195
+ pmargins = pagelayout.get_named_children('page-margins')
196
+ for pm in pmargins:
197
+ set_paper_variable("left_margin", pm, 'left-margin')
198
+ set_paper_variable("right_margin", pm, 'right-margin')
199
+ set_paper_variable("bottom_margin", pm, 'bottom-margin')
200
+ set_paper_variable("top_margin", pm, 'top-margin')
201
+
202
+ systemlayout = defaults.get_maybe_exist_named_child('system-layout')
203
+ if systemlayout:
204
+ sl = systemlayout.get_maybe_exist_named_child('system-margins')
205
+ if sl:
206
+ set_paper_variable("system_left_margin", sl, 'left-margin')
207
+ set_paper_variable("system_right_margin", sl, 'right-margin')
208
+ set_paper_variable("system_distance", systemlayout, 'system-distance')
209
+ set_paper_variable("top_system_distance",
210
+ systemlayout, 'top-system-distance')
211
+
212
+ stafflayout = defaults.get_named_children('staff-layout')
213
+ for sl in stafflayout:
214
+ nr = getattr(sl, 'number', 1)
215
+ dist = sl.get_named_child('staff-distance')
216
+ # TODO: the staff distance needs to be set in the Staff context!!!
217
+
218
+ # TODO: Finish appearance?, music-font?, word-font?, lyric-font*, lyric-language*
219
+ appearance = defaults.get_named_child('appearance')
220
+ if appearance:
221
+ lws = appearance.get_named_children('line-width')
222
+ for lw in lws:
223
+ # Possible types are: beam, bracket, dashes,
224
+ # enclosure, ending, extend, heavy barline, leger,
225
+ # light barline, octave shift, pedal, slur middle, slur tip,
226
+ # staff, stem, tie middle, tie tip, tuplet bracket, and wedge
227
+ tp = lw.type
228
+ w = from_tenths(lw.get_text())
229
+ # TODO: Do something with these values!
230
+ nss = appearance.get_named_children('note-size')
231
+ for ns in nss:
232
+ # Possible types are: cue, grace and large
233
+ tp = ns.type
234
+ sz = from_tenths(ns.get_text())
235
+ # TODO: Do something with these values!
236
+ # <other-appearance> elements have no specified meaning
237
+
238
+ rawmusicfont = defaults.get_named_child('music-font')
239
+ if rawmusicfont:
240
+ # TODO: Convert the font
241
+ pass
242
+ rawwordfont = defaults.get_named_child('word-font')
243
+ if rawwordfont:
244
+ # TODO: Convert the font
245
+ pass
246
+ rawlyricsfonts = defaults.get_named_children('lyric-font')
247
+ for lyricsfont in rawlyricsfonts:
248
+ # TODO: Convert the font
249
+ pass
250
+
251
+ return paper
252
+
253
+
254
+ credit_dict = {
255
+ None: None,
256
+ '': None,
257
+ 'page number': None, # TODO: what is it used for ?
258
+ 'title': 'title',
259
+ 'subtitle': 'subtitle',
260
+ 'composer': 'composer',
261
+ 'arranger': 'arranger',
262
+ 'lyricist': 'poet',
263
+ 'rights': 'copyright'
264
+ }
265
+ # score information is contained in the <work>, <identification> or <movement-title> tags
266
+ # extract those into a hash, indexed by proper lilypond header attributes
267
+
268
+
269
+ def extract_score_information(tree):
270
+ header = musicexp.Header()
271
+
272
+ def set_if_exists(field, value):
273
+ if value:
274
+ header.set_field(field, utilities.escape_ly_output_string(value))
275
+
276
+ movement_title = tree.get_maybe_exist_named_child('movement-title')
277
+ movement_number = tree.get_maybe_exist_named_child('movement-number')
278
+ if movement_title:
279
+ set_if_exists('title', movement_title.get_text())
280
+ if movement_number:
281
+ set_if_exists('movementnumber', movement_number.get_text())
282
+ # set_if_exists('piece', movement_number.get_text()) # the movement number should be visible in the score.
283
+
284
+ work = tree.get_maybe_exist_named_child('work')
285
+ if work:
286
+ work_number = work.get_work_number()
287
+ work_title = work.get_work_title()
288
+ # Overwrite the title from movement-title with work->title
289
+ set_if_exists('title', work.get_work_title())
290
+ set_if_exists('opus', work.get_work_number())
291
+ # Use movement-title as subtitle
292
+ if movement_title:
293
+ set_if_exists('subtitle', movement_title.get_text())
294
+
295
+ # TODO: Translation of opus element. Not to be confused with opus in LilyPond. MusicXML opus is a document element for opus DTD
296
+ identifications = tree.get_named_children('identification')
297
+ for ids in identifications:
298
+ set_if_exists('copyright', ids.get_rights())
299
+ set_if_exists('composer', ids.get_composer())
300
+ set_if_exists('arranger', ids.get_arranger())
301
+ set_if_exists('editor', ids.get_editor())
302
+ set_if_exists('poet', ids.get_poet())
303
+
304
+ set_if_exists('encodingsoftware', ids.get_encoding_software())
305
+ set_if_exists('encodingdate', ids.get_encoding_date())
306
+ set_if_exists('encoder', ids.get_encoding_person())
307
+ set_if_exists('encodingdescription', ids.get_encoding_description())
308
+ set_if_exists('source', ids.get_source())
309
+
310
+ # <miscellaneous><miscellaneous-field name="description"> ... becomes
311
+ # \header { texidoc = ...
312
+ set_if_exists('texidoc', ids.get_file_description())
313
+
314
+ # Finally, apply the required compatibility modes
315
+ # Some applications created wrong MusicXML files, so we need to
316
+ # apply some compatibility mode, e.g. ignoring some features/tags
317
+ # in those files
318
+ software = ids.get_encoding_software_list()
319
+
320
+ # Case 1: "Sibelius 5.1" with the "Dolet 3.4 for Sibelius" plugin
321
+ # is missing all beam ends => ignore all beaming information
322
+ ignore_beaming_software = {
323
+ "Dolet 4 for Sibelius, Beta 2": "Dolet 4 for Sibelius, Beta 2",
324
+ "Dolet 3.5 for Sibelius": "Dolet 3.5 for Sibelius",
325
+ "Dolet 3.4 for Sibelius": "Dolet 3.4 for Sibelius",
326
+ "Dolet 3.3 for Sibelius": "Dolet 3.3 for Sibelius",
327
+ "Dolet 3.2 for Sibelius": "Dolet 3.2 for Sibelius",
328
+ "Dolet 3.1 for Sibelius": "Dolet 3.1 for Sibelius",
329
+ "Dolet for Sibelius 1.3": "Dolet for Sibelius 1.3",
330
+ "Noteworthy Composer": "Noteworthy Composer's nwc2xm[",
331
+ }
332
+ for s in software:
333
+ app_description = ignore_beaming_software.get(s, False)
334
+ if app_description:
335
+ conversion_settings.ignore_beaming = True
336
+ ly.warning(_("Encountered file created by %s, containing "
337
+ "wrong beaming information. All beaming "
338
+ "information in the MusicXML file will be "
339
+ "ignored") % app_description)
340
+
341
+ credits = tree.get_named_children('credit')
342
+ has_composer = False
343
+ for cred in credits:
344
+ type = credit_dict.get(cred.get_type())
345
+ if type is None:
346
+ type = credit_dict.get(cred.find_type(credits))
347
+ if type == 'composer':
348
+ if has_composer:
349
+ type = 'poet'
350
+ else:
351
+ has_composer = True
352
+ set_if_exists(type, cred.get_text())
353
+ elif type == 'title':
354
+ if not work and not movement_title:
355
+ set_if_exists('title', cred.get_text())
356
+ # elif(not(movement_title)): #bullshit!
357
+ # set_if_exists('subtitle', cred.get_text()) #bullshit! otherwise both title and subtitle show the work-title.
358
+ elif type is None:
359
+ pass
360
+ else:
361
+ set_if_exists(type, cred.get_text())
362
+
363
+ # TODO: Check for other unsupported features
364
+ return header
365
+
366
+
367
+ class PartGroupInfo:
368
+ def __init__(self):
369
+ self.start = {}
370
+ self.end = {}
371
+
372
+ def is_empty(self):
373
+ return len(self.start) + len(self.end) == 0
374
+
375
+ def add_start(self, g):
376
+ self.start[getattr(g, 'number', "1")] = g
377
+
378
+ def add_end(self, g):
379
+ self.end[getattr(g, 'number', "1")] = g
380
+
381
+ def print_ly(self, printer):
382
+ ly.warning(_("Unprocessed PartGroupInfo %s encountered") % self)
383
+
384
+ def ly_expression(self):
385
+ ly.warning(_("Unprocessed PartGroupInfo %s encountered") % self)
386
+ return ''
387
+
388
+
389
+ def staff_attributes_to_string_tunings(mxl_attr):
390
+ details = mxl_attr.get_maybe_exist_named_child('staff-details')
391
+ if not details:
392
+ return []
393
+ lines = 6
394
+ staff_lines = details.get_maybe_exist_named_child('staff-lines')
395
+ if staff_lines:
396
+ lines = int(staff_lines.get_text())
397
+ tunings = [musicexp.Pitch()] * lines
398
+ staff_tunings = details.get_named_children('staff-tuning')
399
+ for i in staff_tunings:
400
+ p = musicexp.Pitch()
401
+ line = 0
402
+ try:
403
+ line = int(i.line) - 1
404
+ except ValueError:
405
+ pass
406
+ tunings[line] = p
407
+
408
+ step = i.get_named_child('tuning-step')
409
+ step = step.get_text().strip()
410
+ p.step = musicxml2ly_conversion.musicxml_step_to_lily(step)
411
+
412
+ octave = i.get_named_child('tuning-octave')
413
+ octave = octave.get_text().strip()
414
+ p.octave = int(octave) - 4
415
+
416
+ alter = i.get_named_child('tuning-alter')
417
+ if alter:
418
+ p.alteration = int(alter.get_text().strip())
419
+ # lilypond seems to use the opposite ordering than MusicXML...
420
+ tunings.reverse()
421
+ return tunings
422
+
423
+
424
+ def staff_attributes_to_lily_staff(mxl_attr):
425
+ if not mxl_attr:
426
+ return musicexp.Staff()
427
+
428
+ (staff_id, attributes) = list(mxl_attr.items())[0]
429
+
430
+ # distinguish by clef:
431
+ # percussion(percussion and rhythmic), tab, and everything else
432
+ clef_sign = None
433
+ clef = attributes.get_maybe_exist_named_child('clef')
434
+ if clef:
435
+ sign = clef.get_maybe_exist_named_child('sign')
436
+ if sign:
437
+ clef_sign = {"percussion": "percussion",
438
+ "TAB": "tab"}.get(sign.get_text(), None)
439
+
440
+ lines = 5
441
+ details = attributes.get_named_children('staff-details')
442
+ for d in details:
443
+ staff_lines = d.get_maybe_exist_named_child('staff-lines')
444
+ if staff_lines:
445
+ lines = int(staff_lines.get_text())
446
+
447
+ # TODO: Handle other staff attributes like staff-space, etc.
448
+
449
+ staff = None
450
+ if clef_sign == "percussion" and lines == 1:
451
+ staff = musicexp.RhythmicStaff()
452
+ elif clef_sign == "percussion":
453
+ staff = musicexp.DrumStaff()
454
+ # staff.drum_style_table = ???
455
+ elif clef_sign == "tab":
456
+ staff = musicexp.TabStaff()
457
+ staff.string_tunings = staff_attributes_to_string_tunings(attributes)
458
+ # staff.tablature_format = ???
459
+ else:
460
+ staff = musicexp.Staff()
461
+ # TODO: Handle case with lines != 5!
462
+ if lines != 5:
463
+ staff.add_context_modification(
464
+ "\\override StaffSymbol.line-count = #%s" % lines)
465
+
466
+ return staff
467
+
468
+
469
+ def extract_instrument_sound(score_part):
470
+ score_instrument = score_part.get_maybe_exist_named_child(
471
+ 'score-instrument')
472
+ if not score_instrument:
473
+ return None
474
+ sound = score_instrument.get_maybe_exist_named_child('instrument-sound')
475
+ if sound:
476
+ return utilities.musicxml_sound_to_lilypond_midi_instrument(sound.get_text())
477
+
478
+
479
+ def extract_score_structure(part_list, staffinfo):
480
+ score = musicexp.Score()
481
+ structure = musicexp.StaffGroup(None)
482
+ score.set_contents(structure)
483
+
484
+ if not part_list:
485
+ return structure
486
+
487
+ def read_score_part(el):
488
+ if not isinstance(el, musicxml.Score_part):
489
+ return
490
+ # Depending on the attributes of the first measure, we create different
491
+ # types of staves(Staff, RhythmicStaff, DrumStaff, TabStaff, etc.)
492
+ staff = staff_attributes_to_lily_staff(staffinfo.get(el.id, None))
493
+ if not staff:
494
+ return None
495
+ staff.id = el.id
496
+ partname = el.get_maybe_exist_named_child('part-name')
497
+ # Finale gives unnamed parts the name "MusicXML Part" automatically!
498
+ if partname and partname.get_text() != "MusicXML Part":
499
+ staff.instrument_name = partname.get_text()
500
+ # part-name-display overrides part-name!
501
+ partname = el.get_maybe_exist_named_child("part-name-display")
502
+ if partname:
503
+ staff.instrument_name = extract_display_text(partname)
504
+ if hasattr(options, 'midi') and options.midi:
505
+ staff.sound = extract_instrument_sound(el)
506
+ if staff.instrument_name:
507
+ paper.indent = max(paper.indent, len(staff.instrument_name))
508
+ paper.instrument_names.append(staff.instrument_name)
509
+ partdisplay = el.get_maybe_exist_named_child('part-abbreviation')
510
+ if partdisplay:
511
+ staff.short_instrument_name = partdisplay.get_text()
512
+ # part-abbreviation-display overrides part-abbreviation!
513
+ partdisplay = el.get_maybe_exist_named_child(
514
+ "part-abbreviation-display")
515
+ if partdisplay:
516
+ staff.short_instrument_name = extract_display_text(partdisplay)
517
+ # TODO: Read in the MIDI device / instrument
518
+ if staff.short_instrument_name:
519
+ paper.short_indent = max(
520
+ paper.short_indent, len(staff.short_instrument_name))
521
+
522
+ return staff
523
+
524
+ def read_score_group(el):
525
+ if not isinstance(el, musicxml.Part_group):
526
+ return
527
+ group = musicexp.StaffGroup()
528
+ if hasattr(el, 'number'):
529
+ id = el.number
530
+ group.id = id
531
+ #currentgroups_dict[id] = group
532
+ # currentgroups.append(id)
533
+ if el.get_maybe_exist_named_child('group-name'):
534
+ group.instrument_name = el.get_maybe_exist_named_child(
535
+ 'group-name').get_text()
536
+ if el.get_maybe_exist_named_child('group-abbreviation'):
537
+ group.short_instrument_name = el.get_maybe_exist_named_child(
538
+ 'group-abbreviation').get_text()
539
+ if el.get_maybe_exist_named_child('group-symbol'):
540
+ group.symbol = el.get_maybe_exist_named_child(
541
+ 'group-symbol').get_text()
542
+ if el.get_maybe_exist_named_child('group-barline'):
543
+ group.spanbar = el.get_maybe_exist_named_child(
544
+ 'group-barline').get_text()
545
+ return group
546
+
547
+ parts_groups = part_list.get_all_children()
548
+
549
+ # the start/end group tags are not necessarily ordered correctly and groups
550
+ # might even overlap, so we can't go through the children sequentially!
551
+
552
+ # 1) Replace all Score_part objects by their corresponding Staff objects,
553
+ # also collect all group start/stop points into one PartGroupInfo object
554
+ staves = []
555
+ group_info = PartGroupInfo()
556
+ for el in parts_groups:
557
+ if isinstance(el, musicxml.Score_part):
558
+ if not group_info.is_empty():
559
+ staves.append(group_info)
560
+ group_info = PartGroupInfo()
561
+ staff = read_score_part(el)
562
+ if staff:
563
+ staves.append(staff)
564
+ elif isinstance(el, musicxml.Part_group):
565
+ if el.type == "start":
566
+ group_info.add_start(el)
567
+ elif el.type == "stop":
568
+ group_info.add_end(el)
569
+ if not group_info.is_empty():
570
+ staves.append(group_info)
571
+
572
+ # 2) Now, detect the groups:
573
+ group_starts = []
574
+ pos = 0
575
+ while pos < len(staves):
576
+ el = staves[pos]
577
+ if isinstance(el, PartGroupInfo):
578
+ prev_start = 0
579
+ if len(group_starts) > 0:
580
+ prev_start = group_starts[-1]
581
+ elif len(el.end) > 0: # no group to end here
582
+ el.end = {}
583
+ if len(el.end) > 0: # closes an existing group
584
+ ends = list(el.end.keys())
585
+ prev_started = list(staves[prev_start].start.keys())
586
+ grpid = None
587
+ intersection = [x for x in prev_started if x in ends]
588
+ if len(intersection) > 0:
589
+ grpid = intersection[0]
590
+ else:
591
+ # Close the last started group
592
+ grpid = list(staves[prev_start].start.keys())[0]
593
+ # Find the corresponding closing tag and remove it!
594
+ j = pos + 1
595
+ foundclosing = False
596
+ while j < len(staves) and not foundclosing:
597
+ if isinstance(staves[j], PartGroupInfo) and grpid in staves[j].end:
598
+ foundclosing = True
599
+ del staves[j].end[grpid]
600
+ if staves[j].is_empty():
601
+ del staves[j]
602
+ j += 1
603
+ grpobj = staves[prev_start].start[grpid]
604
+ group = read_score_group(grpobj)
605
+ # remove the id from both the start and end
606
+ if grpid in el.end:
607
+ del el.end[grpid]
608
+ del staves[prev_start].start[grpid]
609
+ if el.is_empty():
610
+ del staves[pos]
611
+ # replace the staves with the whole group
612
+ for j in staves[(prev_start + 1):pos]:
613
+ group.append_staff(j)
614
+ del staves[(prev_start + 1):pos]
615
+ staves.insert(prev_start + 1, group)
616
+ # reset pos so that we continue at the correct position
617
+ pos = prev_start
618
+ # remove an empty start group
619
+ if staves[prev_start].is_empty():
620
+ del staves[prev_start]
621
+ group_starts.remove(prev_start)
622
+ pos -= 1
623
+ elif len(el.start) > 0: # starts new part groups
624
+ group_starts.append(pos)
625
+ pos += 1
626
+
627
+ for i in staves:
628
+ structure.append_staff(i)
629
+ return score
630
+
631
+
632
+ def musicxml_partial_to_lily(partial_len):
633
+ if partial_len > 0:
634
+ p = musicexp.Partial()
635
+ p.partial = musicxml2ly_conversion.rational_to_lily_duration(
636
+ partial_len)
637
+ return p
638
+ else:
639
+ return None
640
+
641
+ # Detect repeats and alternative endings in the chord event list(music_list)
642
+ # and convert them to the corresponding musicexp objects, containing nested
643
+ # music
644
+
645
+
646
+ def group_repeats(music_list):
647
+ repeat_replaced = True
648
+ music_start = 0
649
+ i = 0
650
+ # Walk through the list of expressions, looking for repeat structure
651
+ # (repeat start/end, corresponding endings). If we find one, try to find the
652
+ # last event of the repeat, replace the whole structure and start over again.
653
+ # For nested repeats, as soon as we encounter another starting repeat bar,
654
+ # treat that one first, and start over for the outer repeat.
655
+ while repeat_replaced and i < 100:
656
+ i += 1
657
+ repeat_start = -1 # position of repeat start / end
658
+ repeat_end = -1 # position of repeat start / end
659
+ repeat_times = 0
660
+ ending_start = -1 # position of current ending start
661
+ endings = [] # list of already finished endings
662
+ pos = 0
663
+ last = len(music_list) - 1
664
+ repeat_replaced = False
665
+ final_marker = 0
666
+ while pos < len(music_list) and not repeat_replaced:
667
+ e = music_list[pos]
668
+ repeat_finished = False
669
+ if isinstance(e, musicxml2ly_conversion.RepeatMarker):
670
+ if not repeat_times and e.times:
671
+ repeat_times = e.times
672
+ if e.direction == -1:
673
+ if repeat_end >= 0:
674
+ repeat_finished = True
675
+ else:
676
+ repeat_start = pos
677
+ repeat_end = -1
678
+ ending_start = -1
679
+ endings = []
680
+ elif e.direction == 1:
681
+ if repeat_start < 0:
682
+ repeat_start = 0
683
+ if repeat_end < 0:
684
+ repeat_end = pos
685
+ final_marker = pos
686
+ elif isinstance(e, musicxml2ly_conversion.EndingMarker):
687
+ if e.direction == -1:
688
+ if repeat_start < 0:
689
+ repeat_start = 0
690
+ if repeat_end < 0:
691
+ repeat_end = pos
692
+ ending_start = pos
693
+ elif e.direction == 1:
694
+ if ending_start < 0:
695
+ ending_start = 0
696
+ endings.append([ending_start, pos])
697
+ ending_start = -1
698
+ final_marker = pos
699
+ elif not isinstance(e, musicexp.BarLine):
700
+ # As soon as we encounter an element when repeat start and end
701
+ # is set and we are not inside an alternative ending,
702
+ # this whole repeat structure is finished => replace it
703
+ if repeat_start >= 0 and repeat_end > 0 and ending_start < 0:
704
+ repeat_finished = True
705
+
706
+ # Finish off all repeats without explicit ending bar(e.g. when
707
+ # we convert only one page of a multi-page score with repeats)
708
+ if pos == last and repeat_start >= 0:
709
+ repeat_finished = True
710
+ final_marker = pos
711
+ if repeat_end < 0:
712
+ repeat_end = pos
713
+ if ending_start >= 0:
714
+ endings.append([ending_start, pos])
715
+ ending_start = -1
716
+
717
+ if repeat_finished:
718
+ # We found the whole structure replace it!
719
+ r = musicexp.RepeatedMusic()
720
+ if repeat_times <= 0:
721
+ repeat_times = 2
722
+ r.repeat_count = repeat_times
723
+ # don't erase the first element for "implicit" repeats(i.e. no
724
+ # starting repeat bars at the very beginning)
725
+ start = repeat_start + 1
726
+ if repeat_start == music_start:
727
+ start = music_start
728
+ r.set_music(music_list[start:repeat_end])
729
+ for(start, end) in endings:
730
+ s = musicexp.SequentialMusic()
731
+ s.elements = music_list[start + 1:end]
732
+ r.add_ending(s)
733
+ del music_list[repeat_start:final_marker + 1]
734
+ music_list.insert(repeat_start, r)
735
+ repeat_replaced = True
736
+ pos += 1
737
+ # TODO: Implement repeats until the end without explicit ending bar
738
+ return music_list
739
+
740
+
741
+ # Extract the settings for tuplets from the <notations><tuplet> and the
742
+ # <time-modification> elements of the note:
743
+ def musicxml_tuplet_to_lily(tuplet_elt, time_modification):
744
+ tsm = musicexp.TimeScaledMusic()
745
+ fraction = (1, 1)
746
+ if time_modification:
747
+ fraction = time_modification.get_fraction()
748
+ tsm.numerator = fraction[0]
749
+ tsm.denominator = fraction[1]
750
+
751
+ normal_type = tuplet_elt.get_normal_type()
752
+ if not normal_type and time_modification:
753
+ normal_type = time_modification.get_normal_type()
754
+ if not normal_type and time_modification:
755
+ note = time_modification.get_parent()
756
+ if note:
757
+ normal_type = note.get_duration_info()
758
+ if normal_type:
759
+ normal_note = musicexp.Duration()
760
+ (normal_note.duration_log, normal_note.dots) = normal_type
761
+ tsm.normal_type = normal_note
762
+
763
+ actual_type = tuplet_elt.get_actual_type()
764
+ if actual_type:
765
+ actual_note = musicexp.Duration()
766
+ (actual_note.duration_log, actual_note.dots) = actual_type
767
+ tsm.actual_type = actual_note
768
+
769
+ # Obtain non-default nrs of notes from the tuplet object!
770
+ tsm.display_numerator = tuplet_elt.get_normal_nr()
771
+ tsm.display_denominator = tuplet_elt.get_actual_nr()
772
+
773
+ if hasattr(tuplet_elt, 'bracket') and tuplet_elt.bracket == "no":
774
+ tsm.display_bracket = None
775
+ elif hasattr(tuplet_elt, 'line-shape') and getattr(tuplet_elt, 'line-shape') == "curved":
776
+ tsm.display_bracket = "curved"
777
+ else:
778
+ tsm.display_bracket = "bracket"
779
+
780
+ display_values = {"none": None, "actual": "actual", "both": "both"}
781
+ if hasattr(tuplet_elt, "show-number"):
782
+ tsm.display_number = display_values.get(
783
+ getattr(tuplet_elt, "show-number"), "actual")
784
+
785
+ if hasattr(tuplet_elt, "show-type"):
786
+ tsm.display_type = display_values.get(
787
+ getattr(tuplet_elt, "show-type"), None)
788
+
789
+ return tsm
790
+
791
+
792
+ def group_tuplets(music_list, events):
793
+ """Collect Musics from
794
+ MUSIC_LIST demarcated by EVENTS_LIST in TimeScaledMusic objects.
795
+ """
796
+
797
+ indices = []
798
+ brackets = {}
799
+
800
+ j = 0
801
+ for(ev_chord, tuplet_elt, time_modification) in events:
802
+ while j < len(music_list):
803
+ if music_list[j] == ev_chord:
804
+ break
805
+ j += 1
806
+ nr = 0
807
+ if hasattr(tuplet_elt, 'number'):
808
+ nr = getattr(tuplet_elt, 'number')
809
+ if tuplet_elt.type == 'start':
810
+ tuplet_object = musicxml_tuplet_to_lily(
811
+ tuplet_elt, time_modification)
812
+ tuplet_info = [j, None, tuplet_object]
813
+ indices.append(tuplet_info)
814
+ brackets[nr] = tuplet_info
815
+ elif tuplet_elt.type == 'stop':
816
+ bracket_info = brackets.get(nr, None)
817
+ if bracket_info:
818
+ bracket_info[1] = j # Set the ending position to j
819
+ del brackets[nr]
820
+
821
+ new_list = []
822
+ last = 0
823
+ for(i1, i2, tsm) in indices:
824
+ if i1 > i2:
825
+ continue
826
+
827
+ new_list.extend(music_list[last:i1])
828
+ seq = musicexp.SequentialMusic()
829
+ last = i2 + 1
830
+
831
+ # At this point music_list[i1:last] encompasses all the notes of the
832
+ # tuplet. There might be dynamics following this range, however, which
833
+ # apply to the last note of the tuplet. Advance last to include them
834
+ # in the range.
835
+ while last < len(music_list) and isinstance(music_list[last], musicexp.DynamicsEvent):
836
+ last += 1
837
+
838
+ seq.elements = music_list[i1:last]
839
+
840
+ tsm.element = seq
841
+
842
+ new_list.append(tsm)
843
+ # TODO: Handle nested tuplets!!!!
844
+
845
+ new_list.extend(music_list[last:])
846
+ return new_list
847
+
848
+
849
+ def musicxml_clef_to_lily(attributes):
850
+ change = musicexp.ClefChange()
851
+ (change.type, change.position, change.octave) = attributes.get_clef_information()
852
+ return change
853
+
854
+
855
+ def musicxml_time_to_lily(attributes):
856
+ change = musicexp.TimeSignatureChange()
857
+ # time signature function
858
+ if hasattr(options, 'shift_meter') and options.shift_meter:
859
+ tmp_meter = options.shift_meter.split("/", 1)
860
+ sig = [int(tmp_meter[0]), int(tmp_meter[1])]
861
+ change.originalFractions = attributes.get_time_signature()
862
+ else:
863
+ sig = attributes.get_time_signature()
864
+ if not sig:
865
+ return None
866
+ change.fractions = sig
867
+
868
+ time_elm = attributes.get_maybe_exist_named_child('time')
869
+ if time_elm and hasattr(time_elm, 'symbol'):
870
+ change.style = {'single-number': "'single-digit",
871
+ 'cut': None,
872
+ 'common': None,
873
+ 'normal': "'()"}.get(time_elm.symbol, "'()")
874
+ else:
875
+ change.style = "'()"
876
+
877
+ if getattr(time_elm, 'print-object', 'yes') == 'no':
878
+ change.visible = False
879
+
880
+ # TODO: Handle senza-misura measures
881
+ # TODO: What shall we do if the symbol clashes with the sig? e.g. "cut"
882
+ # with 3/8 or "single-number" with(2+3)/8 or 3/8+2/4?
883
+ return change
884
+
885
+
886
+ def musicxml_key_to_lily(attributes):
887
+ key_sig = attributes.get_key_signature()
888
+ if not key_sig or not(isinstance(key_sig, list) or isinstance(key_sig, tuple)):
889
+ ly.warning(_("Unable to extract key signature!"))
890
+ return None
891
+
892
+ change = musicexp.KeySignatureChange()
893
+
894
+ if len(key_sig) == 2 and not isinstance(key_sig[0], list):
895
+ # standard key signature,(fifths, mode)
896
+ (fifths, mode) = key_sig
897
+ change.mode = mode
898
+
899
+ start_pitch = musicexp.Pitch()
900
+ start_pitch.octave = 0
901
+ try:
902
+ (n, a) = {
903
+ 'major': (0, 0),
904
+ 'minor': (5, 0),
905
+ 'ionian': (0, 0),
906
+ 'dorian': (1, 0),
907
+ 'phrygian': (2, 0),
908
+ 'lydian': (3, 0),
909
+ 'mixolydian': (4, 0),
910
+ 'aeolian': (5, 0),
911
+ 'locrian': (6, 0),
912
+ }[mode]
913
+ start_pitch.step = n
914
+ start_pitch.alteration = a
915
+ except KeyError:
916
+ ly.warning(_("unknown mode %s, expecting 'major' or 'minor' "
917
+ "or a church mode!") % mode)
918
+
919
+ fifth = musicexp.Pitch()
920
+ fifth.step = 4
921
+ if fifths < 0:
922
+ fifths *= -1
923
+ fifth.step *= -1
924
+ fifth.normalize()
925
+ for x in range(fifths):
926
+ start_pitch = start_pitch.transposed(fifth)
927
+ change.tonic = start_pitch
928
+
929
+ else:
930
+ # Non-standard key signature of the form [[step,alter<,octave>],...]
931
+ # MusicXML contains C,D,E,F,G,A,B as steps, lily uses 0-7, so convert
932
+ alterations = []
933
+ for k in key_sig:
934
+ k[0] = musicxml2ly_conversion.musicxml_step_to_lily(k[0])
935
+ alterations.append(k)
936
+ change.non_standard_alterations = alterations
937
+ return change
938
+
939
+
940
+ def musicxml_transpose_to_lily(attributes):
941
+ transpose = attributes.get_transposition()
942
+ if not transpose:
943
+ return None
944
+
945
+ shift = musicexp.Pitch()
946
+ octave_change = transpose.get_maybe_exist_named_child('octave-change')
947
+ if octave_change:
948
+ shift.octave = int(octave_change.get_text())
949
+ chromatic_shift = int(transpose.get_named_child('chromatic').get_text())
950
+ chromatic_shift_normalized = chromatic_shift % 12
951
+ (shift.step, shift.alteration) = [
952
+ (0, 0), (0, 1), (1, 0), (2, -1), (2, 0),
953
+ (3, 0), (3, 1), (4, 0), (5, -1), (5, 0),
954
+ (6, -1), (6, 0)][chromatic_shift_normalized]
955
+
956
+ shift.octave += (chromatic_shift - chromatic_shift_normalized) // 12
957
+
958
+ diatonic = transpose.get_maybe_exist_named_child('diatonic')
959
+ if diatonic:
960
+ diatonic_step = int(diatonic.get_text()) % 7
961
+ if diatonic_step != shift.step:
962
+ # We got the alter incorrect!
963
+ old_semitones = shift.semitones()
964
+ shift.step = diatonic_step
965
+ new_semitones = shift.semitones()
966
+ shift.alteration += old_semitones - new_semitones
967
+
968
+ transposition = musicexp.Transposition()
969
+ transposition.pitch = musicexp.Pitch().transposed(shift)
970
+ return transposition
971
+
972
+
973
+ def musicxml_staff_details_to_lily(attributes):
974
+ details = attributes.get_maybe_exist_named_child('staff-details')
975
+ if not details:
976
+ return None
977
+
978
+ # TODO: Handle staff-type, staff-lines, staff-tuning, capo, staff-size
979
+ ret = []
980
+
981
+ stafflines = details.get_maybe_exist_named_child('staff-lines')
982
+ if stafflines:
983
+ lines = int(stafflines.get_text())
984
+ lines_event = musicexp.StaffLinesEvent(lines)
985
+ ret.append(lines_event)
986
+
987
+ return ret
988
+
989
+
990
+ def musicxml_attributes_to_lily(attrs):
991
+ elts = []
992
+ attr_dispatch = [
993
+ ('clef', musicxml_clef_to_lily),
994
+ ('time', musicxml_time_to_lily),
995
+ ('key', musicxml_key_to_lily),
996
+ ('transpose', musicxml_transpose_to_lily),
997
+ ('staff-details', musicxml_staff_details_to_lily),
998
+ ]
999
+ for (k, func) in attr_dispatch:
1000
+ children = attrs.get_named_children(k)
1001
+ if children:
1002
+ ev = func(attrs)
1003
+ if isinstance(ev, list):
1004
+ for e in ev:
1005
+ elts.append(e)
1006
+ elif ev:
1007
+ elts.append(ev)
1008
+
1009
+ return elts
1010
+
1011
+
1012
+ def extract_display_text(el):
1013
+ children = el.get_typed_children(musicxml.get_class("display-text"))
1014
+ if children:
1015
+ return " ".join([child.get_text() for child in children])
1016
+ else:
1017
+ return False
1018
+
1019
+
1020
+ def musicxml_print_to_lily(el):
1021
+ # TODO: Implement other print attributes
1022
+ # <!ELEMENT print (page-layout?, system-layout?, staff-layout*,
1023
+ # measure-layout?, measure-numbering?, part-name-display?,
1024
+ # part-abbreviation-display?)>
1025
+ # <!ATTLIST print
1026
+ # staff-spacing %tenths; #IMPLIED
1027
+ # new-system %yes-no; #IMPLIED
1028
+ # new-page %yes-no-number; #IMPLIED
1029
+ # blank-page NMTOKEN #IMPLIED
1030
+ # page-number CDATA #IMPLIED
1031
+ # >
1032
+ elts = []
1033
+ if (hasattr(el, "new-system") and conversion_settings.convert_system_breaks):
1034
+ val = getattr(el, "new-system")
1035
+ if val == "yes":
1036
+ elts.append(musicexp.Break("break"))
1037
+ if hasattr(el, "new-page") and conversion_settings.convert_page_breaks:
1038
+ val = getattr(el, "new-page")
1039
+ if val == "yes":
1040
+ elts.append(musicexp.Break("pageBreak"))
1041
+ child = el.get_maybe_exist_named_child("part-name-display")
1042
+ if child:
1043
+ elts.append(musicexp.SetEvent("Staff.instrumentName",
1044
+ "\"%s\"" % extract_display_text(child)))
1045
+ child = el.get_maybe_exist_named_child("part-abbreviation-display")
1046
+ if child:
1047
+ elts.append(musicexp.SetEvent("Staff.shortInstrumentName",
1048
+ "\"%s\"" % extract_display_text(child)))
1049
+ return elts
1050
+
1051
+
1052
+ spanner_event_dict = {
1053
+ 'beam': musicexp.BeamEvent,
1054
+ 'dashes': musicexp.TextSpannerEvent,
1055
+ 'bracket': musicexp.BracketSpannerEvent,
1056
+ 'glissando': musicexp.GlissandoEvent,
1057
+ 'octave-shift': musicexp.OctaveShiftEvent,
1058
+ 'pedal': musicexp.PedalEvent,
1059
+ 'slide': musicexp.GlissandoEvent,
1060
+ 'slur': musicexp.SlurEvent,
1061
+ 'wavy-line': musicexp.TextSpannerEvent,
1062
+ 'wedge': musicexp.HairpinEvent
1063
+ }
1064
+ spanner_type_dict = {
1065
+ 'start': -1,
1066
+ 'begin': -1,
1067
+ 'crescendo': -1,
1068
+ 'decreschendo': -1,
1069
+ 'diminuendo': -1,
1070
+ 'continue': 0,
1071
+ 'change': 0,
1072
+ 'up': -1,
1073
+ 'down': -1,
1074
+ 'stop': 1,
1075
+ 'end': 1
1076
+ }
1077
+
1078
+
1079
+ def musicxml_spanner_to_lily_event(mxl_event):
1080
+ ev = None
1081
+
1082
+ name = mxl_event.get_name()
1083
+ func = spanner_event_dict.get(name)
1084
+ if func:
1085
+ ev = func()
1086
+ else:
1087
+ ly.warning(_('unknown span event %s') % mxl_event)
1088
+
1089
+ if name == "wavy-line":
1090
+ ev.style = OrnamenthasWhat(mxl_event)
1091
+
1092
+ type = mxl_event.get_type()
1093
+ span_direction = spanner_type_dict.get(type)
1094
+ # really check for None, because some types will be translated to 0, which
1095
+ # would otherwise also lead to the unknown span warning
1096
+ if span_direction is not None:
1097
+ ev.span_direction = span_direction
1098
+ else:
1099
+ ly.warning(_('unknown span type %s for %s') % (type, name))
1100
+
1101
+ ev.set_span_type(type)
1102
+ ev.line_type = getattr(mxl_event, 'line-type', 'solid')
1103
+
1104
+ # assign the size, which is used for octave-shift, etc.
1105
+ ev.size = mxl_event.get_size()
1106
+
1107
+ return ev
1108
+
1109
+
1110
+ def musicxml_direction_to_indicator(direction):
1111
+ return {"above": 1, "upright": 1, "up": 1, "below": -1, "downright": -1, "down": -1, "inverted": -1}.get(direction, 0)
1112
+
1113
+
1114
+ def musicxml_fermata_to_lily_event(mxl_event):
1115
+
1116
+ ev = musicexp.ArticulationEvent()
1117
+ txt = mxl_event.get_text()
1118
+
1119
+ # The contents of the element defined the shape, possible are normal, angled and square
1120
+ ev.type = {"angled": "shortfermata",
1121
+ "square": "longfermata"}.get(txt, "fermata")
1122
+ fermata_types = {"angled": "shortfermata",
1123
+ "square": "longfermata"}
1124
+
1125
+ # MusicXML fermata types can be specified in two different ways:
1126
+ # 1. <fermata>angled</fermata> and
1127
+ # 2. <fermata type="angled"/> -- both need to be handled.
1128
+ if hasattr(mxl_event, 'type'):
1129
+ fermata_type = fermata_types.get(mxl_event.type, 'fermata')
1130
+ else:
1131
+ fermata_type = fermata_types.get(mxl_event.get_text(), 'fermata')
1132
+
1133
+ ev.type = fermata_type
1134
+
1135
+ if hasattr(mxl_event, 'type'):
1136
+ dir = musicxml_direction_to_indicator(mxl_event.type)
1137
+ if dir and options.convert_directions:
1138
+ ev.force_direction = dir
1139
+ return ev
1140
+
1141
+
1142
+ def musicxml_arpeggiate_to_lily_event(mxl_event):
1143
+ ev = musicexp.ArpeggioEvent()
1144
+ ev.direction = musicxml_direction_to_indicator(
1145
+ getattr(mxl_event, 'direction', None))
1146
+ return ev
1147
+
1148
+
1149
+ def musicxml_nonarpeggiate_to_lily_event(mxl_event):
1150
+ ev = musicexp.ArpeggioEvent()
1151
+ ev.non_arpeggiate = True
1152
+ ev.direction = musicxml_direction_to_indicator(
1153
+ getattr(mxl_event, 'direction', None))
1154
+ return ev
1155
+
1156
+
1157
+ def musicxml_tremolo_to_lily_event(mxl_event):
1158
+ ev = musicexp.TremoloEvent()
1159
+ txt = mxl_event.get_text()
1160
+ if txt:
1161
+ ev.strokes = txt
1162
+ else:
1163
+ # This is supposed to be a default for empty tremolo elements
1164
+ # TODO: Add empty tremolo element to test cases in tremolo.xml
1165
+ # TODO: Test empty tremolo element
1166
+ # TODO: Consideration: Is 3 really a reasonable default?
1167
+ ev.strokes = "3"
1168
+ return ev
1169
+
1170
+
1171
+ def musicxml_falloff_to_lily_event(mxl_event):
1172
+ ev = musicexp.BendEvent()
1173
+ ev.alter = -4
1174
+ return ev
1175
+
1176
+
1177
+ def musicxml_doit_to_lily_event(mxl_event):
1178
+ ev = musicexp.BendEvent()
1179
+ ev.alter = 4
1180
+ return ev
1181
+
1182
+
1183
+ def musicxml_bend_to_lily_event(mxl_event):
1184
+ ev = musicexp.BendEvent()
1185
+ ev.alter = mxl_event.bend_alter()
1186
+ return ev
1187
+
1188
+
1189
+ def musicxml_breath_mark_to_lily_event(mxl_event):
1190
+ # TODO: Read the <breath-mark-value> child and override the type
1191
+ # of symbol: comma, tick, upbow, salzedo.
1192
+ return musicexp.BreatheEvent()
1193
+
1194
+
1195
+ def musicxml_caesura_to_lily_event(mxl_event):
1196
+ # TODO: Read the <caesura-value> child and override the type of
1197
+ # symbol: normal, thick, short, curved, single.
1198
+ return musicexp.CaesuraEvent()
1199
+
1200
+
1201
+ def musicxml_fingering_event(mxl_event):
1202
+ ev = musicexp.ShortArticulationEvent()
1203
+ ev.type = mxl_event.get_text()
1204
+ return ev
1205
+
1206
+
1207
+ def musicxml_string_event(mxl_event):
1208
+ ev = musicexp.NoDirectionArticulationEvent()
1209
+ ev.type = mxl_event.get_text()
1210
+ return ev
1211
+
1212
+
1213
+ def musicxml_accidental_mark(mxl_event):
1214
+ ev = musicexp.MarkupEvent()
1215
+ contents = {"sharp": "\\sharp",
1216
+ "natural": "\\natural",
1217
+ "flat": "\\flat",
1218
+ "double-sharp": "\\doublesharp",
1219
+ "sharp-sharp": "\\sharp\\sharp",
1220
+ "flat-flat": "\\flat\\flat",
1221
+ "flat-flat": "\\doubleflat",
1222
+ "natural-sharp": "\\natural\\sharp",
1223
+ "natural-flat": "\\natural\\flat",
1224
+ "quarter-flat": "\\semiflat",
1225
+ "quarter-sharp": "\\semisharp",
1226
+ "three-quarters-flat": "\\sesquiflat",
1227
+ "three-quarters-sharp": "\\sesquisharp",
1228
+ }.get(mxl_event.get_text())
1229
+ if contents:
1230
+ ev.contents = contents
1231
+ return ev
1232
+ else:
1233
+ return None
1234
+
1235
+
1236
+ # translate articulations, ornaments and other notations into ArticulationEvents
1237
+ # possible values:
1238
+ # -) string (ArticulationEvent with that name)
1239
+ # -) function (function(mxl_event) needs to return a full ArticulationEvent-derived object
1240
+ # -) (class, name) (like string, only that a different class than ArticulationEvent is used)
1241
+ # TODO: Some translations are missing!
1242
+ articulations_dict = {
1243
+ "accent": (musicexp.ShortArticulationEvent, ">"), # or "accent"
1244
+ "accidental-mark": musicxml_accidental_mark,
1245
+ "bend": musicxml_bend_to_lily_event,
1246
+ "breath-mark": musicxml_breath_mark_to_lily_event,
1247
+ "caesura": musicxml_caesura_to_lily_event,
1248
+ # "delayed-turn": "?",
1249
+ "detached-legato": (musicexp.ShortArticulationEvent, "_"), # or "portato"
1250
+ "doit": musicxml_doit_to_lily_event,
1251
+ # "double-tongue": "?",
1252
+ "down-bow": "downbow",
1253
+ "falloff": musicxml_falloff_to_lily_event,
1254
+ "fingering": musicxml_fingering_event,
1255
+ # "fingernails": "?",
1256
+ # "fret": "?",
1257
+ # "hammer-on": "?",
1258
+ "harmonic": "flageolet",
1259
+ # "heel": "?",
1260
+ "inverted-mordent": "prall",
1261
+ "inverted-turn": "reverseturn",
1262
+ "mordent": "mordent",
1263
+ "open-string": "open",
1264
+ # "plop": "?",
1265
+ # "pluck": "?",
1266
+ # "pull-off": "?",
1267
+ # "schleifer": "?",
1268
+ # "scoop": "?",
1269
+ # "shake": "?",
1270
+ "snap-pizzicato": "snappizzicato",
1271
+ # "spiccato": "?",
1272
+ # or "staccatissimo"
1273
+ "staccatissimo": (musicexp.ShortArticulationEvent, "!"),
1274
+ "staccato": (musicexp.ShortArticulationEvent, "."), # or "staccato"
1275
+ "stopped": (musicexp.ShortArticulationEvent, "+"), # or "stopped"
1276
+ # "stress": "?",
1277
+ "string": musicxml_string_event,
1278
+ "strong-accent": (musicexp.ShortArticulationEvent, "^"), # or "marcato"
1279
+ # "tap": "?",
1280
+ "tenuto": (musicexp.ShortArticulationEvent, "-"), # or "tenuto"
1281
+ "thumb-position": "thumb",
1282
+ # "toe": "?",
1283
+ "turn": "turn",
1284
+ "tremolo": musicxml_tremolo_to_lily_event,
1285
+ "trill-mark": "trill",
1286
+ # "triple-tongue": "?",
1287
+ # "unstress": "?"
1288
+ "up-bow": "upbow",
1289
+ # "wavy-line": "?",
1290
+ }
1291
+ articulation_spanners = ["wavy-line"]
1292
+
1293
+
1294
+ def OrnamenthasWhat(mxl_event):
1295
+ wavy = trilly = ignore = start = stop = False
1296
+ for i in mxl_event._parent._children:
1297
+ if i._name == "wavy-line":
1298
+ wavy = True
1299
+ elif i._name == "trill-mark":
1300
+ trilly = True
1301
+ try:
1302
+ if i.type == "continue":
1303
+ ignore = True
1304
+ elif i.type == "start":
1305
+ start = True
1306
+ elif i.type == "stop":
1307
+ stop = True
1308
+ except Exception: ## TODO: find out what to except.
1309
+ pass
1310
+ if start == True:
1311
+ if wavy == True and trilly == False:
1312
+ musicexp.whatOrnament = "wave"
1313
+ else:
1314
+ musicexp.whatOrnament = "trill"
1315
+ if ignore == True:
1316
+ return "ignore"
1317
+ elif stop == True:
1318
+ return "stop"
1319
+ elif wavy == True and trilly == True:
1320
+ return "trill and wave"
1321
+ elif wavy == True:
1322
+ return "wave"
1323
+ elif trilly == True:
1324
+ return "trill"
1325
+
1326
+
1327
+ def OrnamenthasWavyline(mxl_event):
1328
+ for i in mxl_event._parent._children:
1329
+ if i._name == "wavy-line":
1330
+ return True
1331
+ return False
1332
+
1333
+
1334
+ def musicxml_articulation_to_lily_event(mxl_event):
1335
+ # wavy-line elements are treated as trill spanners, not as articulation ornaments
1336
+ if mxl_event.get_name() in articulation_spanners:
1337
+ return musicxml_spanner_to_lily_event(mxl_event)
1338
+
1339
+ tmp_tp = articulations_dict.get(mxl_event.get_name())
1340
+ if OrnamenthasWavyline(mxl_event):
1341
+ return
1342
+ if not tmp_tp:
1343
+ return
1344
+
1345
+ if isinstance(tmp_tp, str):
1346
+ ev = musicexp.ArticulationEvent()
1347
+ ev.type = tmp_tp
1348
+ elif isinstance(tmp_tp, tuple):
1349
+ ev = tmp_tp[0]()
1350
+ ev.type = tmp_tp[1]
1351
+ else:
1352
+ ev = tmp_tp(mxl_event)
1353
+
1354
+ # Some articulations use the type attribute, other the placement...
1355
+ dir = None
1356
+ if hasattr(mxl_event, 'type') and hasattr(options, 'convert_directions') and options.convert_directions:
1357
+ dir = musicxml_direction_to_indicator(mxl_event.type)
1358
+ if hasattr(mxl_event, 'placement') and hasattr(options, 'convert_directions') and options.convert_directions:
1359
+ dir = musicxml_direction_to_indicator(mxl_event.placement)
1360
+ if dir:
1361
+ ev.force_direction = dir
1362
+ return ev
1363
+
1364
+
1365
+ def musicxml_dynamics_to_lily_event(dynentry):
1366
+ dynamics_available = (
1367
+ "ppppp", "pppp", "ppp", "pp", "p", "mp", "mf",
1368
+ "f", "ff", "fff", "ffff", "fp", "sf", "sff", "sp", "spp", "sfz", "rfz")
1369
+ dynamicsname = dynentry.get_name()
1370
+ if dynamicsname == "other-dynamics":
1371
+ dynamicsname = dynentry.get_text()
1372
+ if not dynamicsname or dynamicsname == "#text":
1373
+ return None
1374
+
1375
+ if not dynamicsname in dynamics_available:
1376
+ # Get rid of - in tag names (illegal in ly tags!)
1377
+ dynamicstext = dynamicsname
1378
+ dynamicsname = dynamicsname.replace("-", "")
1379
+ additional_definitions[dynamicsname] = dynamicsname + \
1380
+ " = #(make-dynamic-script \"" + dynamicstext + "\")"
1381
+ needed_additional_definitions.append(dynamicsname)
1382
+ event = musicexp.DynamicsEvent()
1383
+ event.type = dynamicsname
1384
+ return event
1385
+
1386
+ # Convert single-color two-byte strings to numbers 0.0 - 1.0
1387
+
1388
+
1389
+ def hexcolorval_to_nr(hex_val):
1390
+ try:
1391
+ v = int(hex_val, 16)
1392
+ if v == 255:
1393
+ v = 256
1394
+ return v / 256.
1395
+ except ValueError:
1396
+ return 0.
1397
+
1398
+
1399
+ def hex_to_color(hex_val):
1400
+ res = re.match(
1401
+ r'#([0-9a-f][0-9a-f]|)([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])$', hex_val, re.IGNORECASE)
1402
+ if res:
1403
+ return [hexcolorval_to_nr(x) for x in res.group(2, 3, 4)]
1404
+ else:
1405
+ return None
1406
+
1407
+
1408
+ def font_size_number_to_lily_command(size):
1409
+ d = {
1410
+ (0, 8): r'\teeny',
1411
+ (8, 10): r'\tiny',
1412
+ (10, 12): r'\small',
1413
+ (12, 16): r'',
1414
+ (16, 24): r'\large',
1415
+ (24, float('inf')): r'\huge',
1416
+ }
1417
+ result = None
1418
+ for r in list(d.keys()):
1419
+ if r[0] <= size < r[1]:
1420
+ result = d[r]
1421
+ break
1422
+ return result
1423
+
1424
+
1425
+ def font_size_word_to_lily_command(size):
1426
+ font_size_dict = {
1427
+ "xx-small": '\\teeny',
1428
+ "x-small": '\\tiny',
1429
+ "small": '\\small',
1430
+ "medium": '',
1431
+ "large": '\\large',
1432
+ "x-large": '\\huge',
1433
+ "xx-large": '\\larger\\huge'
1434
+ }
1435
+ return font_size_dict.get(size, '')
1436
+
1437
+
1438
+ def get_font_size(size):
1439
+ try:
1440
+ size = float(size)
1441
+ return font_size_number_to_lily_command(size)
1442
+ except ValueError:
1443
+ return font_size_word_to_lily_command(size)
1444
+
1445
+
1446
+ def musicxml_words_to_lily_event(words):
1447
+ event = musicexp.TextEvent()
1448
+ text = words.get_text()
1449
+ # remove white spaces and line breaks before text
1450
+ text = re.sub('^ *\n? *', '', text)
1451
+ # remove white spaces and line breaks before text
1452
+ text = re.sub(' *\n? *$', '', text)
1453
+ event.text = text
1454
+
1455
+ if hasattr(words, 'default-y') and hasattr(options, 'convert_directions') and options.convert_directions:
1456
+ offset = getattr(words, 'default-y')
1457
+ try:
1458
+ off = int(offset)
1459
+ if off > 0:
1460
+ event.force_direction = 1
1461
+ else:
1462
+ event.force_direction = -1
1463
+ except ValueError:
1464
+ event.force_direction = 0
1465
+
1466
+ if hasattr(words, 'font-weight'):
1467
+ font_weight = {"normal": '', "bold": '\\bold'}.get(
1468
+ getattr(words, 'font-weight'), '')
1469
+ if font_weight:
1470
+ event.markup += font_weight
1471
+
1472
+ if hasattr(words, 'font-size'):
1473
+ size = getattr(words, 'font-size')
1474
+ # font_size = font_size_dict.get(size, '')
1475
+ font_size = get_font_size(size)
1476
+ if font_size:
1477
+ event.markup += font_size
1478
+
1479
+ if hasattr(words, 'color'):
1480
+ color = getattr(words, 'color')
1481
+ rgb = hex_to_color(color)
1482
+ if rgb:
1483
+ event.markup += "\\with-color #(rgb-color %s %s %s)" % (
1484
+ rgb[0], rgb[1], rgb[2])
1485
+
1486
+ if hasattr(words, 'font-style'):
1487
+ font_style = {"italic": '\\italic'}.get(
1488
+ getattr(words, 'font-style'), '')
1489
+ if font_style:
1490
+ event.markup += font_style
1491
+
1492
+ # TODO: How should I best convert the font-family attribute?
1493
+
1494
+ # TODO: How can I represent the underline, overline and line-through
1495
+ # attributes in LilyPond? Values of these attributes indicate
1496
+ # the number of lines
1497
+
1498
+ return event
1499
+
1500
+
1501
+ # convert accordion-registration to lilypond.
1502
+ # Since lilypond does not have any built-in commands, we need to create
1503
+ # the markup commands manually and define our own variables.
1504
+ # Idea was taken from: http://lsr.dsi.unimi.it/LSR/Item?id=194
1505
+ def musicxml_accordion_to_markup(mxl_event):
1506
+ commandname = "accReg"
1507
+ command = ""
1508
+
1509
+ high = mxl_event.get_maybe_exist_named_child('accordion-high')
1510
+ if high:
1511
+ commandname += "H"
1512
+ command += """\\combine
1513
+ \\raise #2.5 \\musicglyph #\"accordion.dot\"
1514
+ """
1515
+ middle = mxl_event.get_maybe_exist_named_child('accordion-middle')
1516
+ if middle:
1517
+ # By default, use one dot (when no or invalid content is given). The
1518
+ # MusicXML spec is quiet about this case...
1519
+ txt = 1
1520
+ try:
1521
+ txt = int(middle.get_text())
1522
+ except ValueError:
1523
+ pass
1524
+ if txt == 3:
1525
+ commandname += "MMM"
1526
+ command += r"""\combine
1527
+ \raise #1.5 \musicglyph #"accordion.dot"
1528
+ \combine
1529
+ \raise #1.5 \translate #(cons 1 0) \musicglyph #"accordion.dot"
1530
+ \combine
1531
+ \raise #1.5 \translate #(cons -1 0) \musicglyph #"accordion.dot"
1532
+ """
1533
+ elif txt == 2:
1534
+ commandname += "MM"
1535
+ command += r"""\combine
1536
+ \raise #1.5 \translate #(cons 0.5 0) \musicglyph #"accordion.dot"
1537
+ \combine
1538
+ \raise #1.5 \translate #(cons -0.5 0) \musicglyph #"accordion.dot"
1539
+ """
1540
+ elif not txt <= 0:
1541
+ commandname += "M"
1542
+ command += r"""\combine
1543
+ \raise #1.5 \musicglyph #"accordion.dot"
1544
+ """
1545
+ low = mxl_event.get_maybe_exist_named_child('accordion-low')
1546
+ if low:
1547
+ commandname += "L"
1548
+ command += r"""\combine
1549
+ \raise #0.5 \musicglyph #"accordion.dot"
1550
+ """
1551
+
1552
+ command += r'\musicglyph #"accordion.discant"'
1553
+ command = r"\markup { \normalsize %s }" % command
1554
+ # Define the newly built command \accReg[H][MMM][L]
1555
+ additional_definitions[commandname] = "%s = %s" % (commandname, command)
1556
+ needed_additional_definitions.append(commandname)
1557
+ return "\\%s" % commandname
1558
+
1559
+
1560
+ def musicxml_accordion_to_ly(mxl_event):
1561
+ txt = musicxml_accordion_to_markup(mxl_event)
1562
+ if txt:
1563
+ ev = musicexp.MarkEvent(txt)
1564
+ return ev
1565
+ return
1566
+
1567
+
1568
+ def musicxml_rehearsal_to_ly_mark(mxl_event):
1569
+ text = mxl_event.get_text()
1570
+ if not text:
1571
+ return
1572
+ # default is boxed rehearsal marks!
1573
+ encl = "box"
1574
+ if hasattr(mxl_event, 'enclosure'):
1575
+ encl = {"none": None, "square": "box", "circle": "circle"}.get(
1576
+ mxl_event.enclosure, None)
1577
+ if encl:
1578
+ text = "\\%s { %s }" % (encl, text)
1579
+ ev = musicexp.MarkEvent("\\markup { %s }" % text)
1580
+ return ev
1581
+
1582
+
1583
+ def musicxml_harp_pedals_to_ly(mxl_event):
1584
+ count = 0
1585
+ result = "\\harp-pedal #\""
1586
+ for t in mxl_event.get_named_children('pedal-tuning'):
1587
+ alter = t.get_named_child('pedal-alter')
1588
+ if alter:
1589
+ val = int(alter.get_text().strip())
1590
+ result += {1: "v", 0: "-", -1: "^"}.get(val, "")
1591
+ count += 1
1592
+ if count == 3:
1593
+ result += "|"
1594
+ ev = musicexp.MarkupEvent()
1595
+ ev.contents = result + "\""
1596
+ return ev
1597
+
1598
+
1599
+ def musicxml_eyeglasses_to_ly(mxl_event):
1600
+ needed_additional_definitions.append("eyeglasses")
1601
+ return musicexp.MarkEvent("\\markup { \\eyeglasses }")
1602
+
1603
+
1604
+ def next_non_hash_index(lst, pos):
1605
+ pos += 1
1606
+ while pos < len(lst) and isinstance(lst[pos], musicxml.Hash_text):
1607
+ pos += 1
1608
+ return pos
1609
+
1610
+
1611
+ def musicxml_metronome_to_ly(mxl_event, text_event=None):
1612
+ children = mxl_event.get_all_children()
1613
+ if not children:
1614
+ return
1615
+
1616
+ index = -1
1617
+ index = next_non_hash_index(children, index)
1618
+ if isinstance(children[index], musicxml.BeatUnit):
1619
+ # first form of metronome-mark, using unit and beats/min or other unit
1620
+ ev = musicexp.TempoMark()
1621
+ if text_event:
1622
+ ev.set_text(text_event.get_text().strip())
1623
+
1624
+ if hasattr(mxl_event, 'parentheses'):
1625
+ ev.set_parentheses(mxl_event.parentheses == "yes")
1626
+
1627
+ d = musicexp.Duration()
1628
+ d.duration_log = utilities.musicxml_duration_to_log(
1629
+ children[index].get_text())
1630
+ index = next_non_hash_index(children, index)
1631
+ if isinstance(children[index], musicxml.BeatUnitDot):
1632
+ d.dots = 1
1633
+ index = next_non_hash_index(children, index)
1634
+ ev.set_base_duration(d)
1635
+ if isinstance(children[index], musicxml.BeatUnit):
1636
+ # Form "note = newnote"
1637
+ newd = musicexp.Duration()
1638
+ newd.duration_log = utilities.musicxml_duration_to_log(
1639
+ children[index].get_text())
1640
+ index = next_non_hash_index(children, index)
1641
+ if isinstance(children[index], musicxml.BeatUnitDot):
1642
+ newd.dots = 1
1643
+ index = next_non_hash_index(children, index)
1644
+ ev.set_new_duration(newd)
1645
+ elif isinstance(children[index], musicxml.PerMinute):
1646
+ # Form "note = bpm"
1647
+ try:
1648
+ beats = int(children[index].get_text())
1649
+ ev.set_beats_per_minute(beats)
1650
+ except ValueError:
1651
+ pass
1652
+ else:
1653
+ ly.warning(_("Unknown metronome mark, ignoring"))
1654
+ return
1655
+ return ev
1656
+ else:
1657
+ # TODO: Implement the other (more complex) way for tempo marks!
1658
+ ly.warning(
1659
+ _("Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."))
1660
+ return
1661
+
1662
+
1663
+ # translate directions into Events, possible values:
1664
+ # -) string (MarkEvent with that command)
1665
+ # -) function (function(mxl_event) needs to return a full Event-derived object
1666
+ # -) (class, name) (like string, only that a different class than MarkEvent is used)
1667
+ directions_dict = {
1668
+ 'accordion-registration': musicxml_accordion_to_ly,
1669
+ 'coda': (musicexp.MusicGlyphMarkEvent, "coda"),
1670
+ # 'damp' : ???
1671
+ # 'damp-all' : ???
1672
+ 'eyeglasses': musicxml_eyeglasses_to_ly,
1673
+ 'harp-pedals': musicxml_harp_pedals_to_ly,
1674
+ # 'image' : ???
1675
+ 'metronome': musicxml_metronome_to_ly,
1676
+ 'rehearsal': musicxml_rehearsal_to_ly_mark,
1677
+ # 'scordatura' : ???
1678
+ 'segno': (musicexp.MusicGlyphMarkEvent, "segno"),
1679
+ 'words': musicxml_words_to_lily_event,
1680
+ }
1681
+ directions_spanners = ['octave-shift', 'pedal', 'wedge', 'dashes', 'bracket']
1682
+
1683
+
1684
+ def musicxml_direction_to_lily(n):
1685
+ # TODO: Handle the <staff> element!
1686
+ res = []
1687
+ # placement applies to all children!
1688
+ dir = None
1689
+ if hasattr(n, 'placement') and hasattr(options, 'convert_directions') and options.convert_directions:
1690
+ dir = musicxml_direction_to_indicator(n.placement)
1691
+ dirtype_children = []
1692
+ # TODO: The direction-type is used for grouping (e.g. dynamics with text),
1693
+ # so we can't simply flatten them out!
1694
+ for dt in n.get_typed_children(musicxml.DirType):
1695
+ dirtype_children += dt.get_all_children()
1696
+
1697
+ dirtype_children = [d for d in dirtype_children if d.get_name() != "#text"]
1698
+
1699
+ for i, entry in enumerate(dirtype_children):
1700
+ if not entry:
1701
+ continue
1702
+
1703
+ # brackets, dashes, octave shifts. pedal marks, hairpins etc. are spanners:
1704
+ if entry.get_name() in directions_spanners:
1705
+ event = musicxml_spanner_to_lily_event(entry)
1706
+ if event:
1707
+ event.force_direction = dir
1708
+ res.append(event)
1709
+ continue
1710
+
1711
+ # handle text+bpm marks like "Allegro moderato (♩ = 144)"
1712
+ if entry.get_name() == 'words' and i < len(dirtype_children) - 1:
1713
+ next_entry = dirtype_children[i+1]
1714
+ if next_entry.get_name() == 'metronome':
1715
+ event = musicxml_metronome_to_ly(next_entry, entry)
1716
+ if event:
1717
+ res.append(event)
1718
+ dirtype_children[i+1] = None
1719
+ continue
1720
+
1721
+ # now treat all the "simple" ones, that can be translated using the dict
1722
+ ev = None
1723
+ tmp_tp = directions_dict.get(entry.get_name(), None)
1724
+ if isinstance(tmp_tp, str): # string means MarkEvent
1725
+ ev = musicexp.MarkEvent(tmp_tp)
1726
+ elif isinstance(tmp_tp, tuple): # tuple means (EventClass, "text")
1727
+ ev = tmp_tp[0](tmp_tp[1])
1728
+ elif tmp_tp:
1729
+ ev = tmp_tp(entry)
1730
+ if ev:
1731
+ # TODO: set the correct direction! Unfortunately, \mark in ly does
1732
+ # not seem to support directions!
1733
+ ev.force_direction = dir
1734
+ res.append(ev)
1735
+ continue
1736
+
1737
+ if entry.get_name() == "dynamics":
1738
+ for dynentry in entry.get_all_children():
1739
+ ev = musicxml_dynamics_to_lily_event(dynentry)
1740
+ if ev:
1741
+ ev.force_direction = dir
1742
+ res.append(ev)
1743
+
1744
+ return res
1745
+
1746
+
1747
+ notehead_styles_dict = {
1748
+ 'slash': '\'slash',
1749
+ 'triangle': '\'triangle',
1750
+ 'diamond': '\'diamond',
1751
+ 'square': '\'la', # TODO: Proper squared note head
1752
+ 'cross': None, # TODO: + shaped note head
1753
+ 'x': '\'cross',
1754
+ 'circle-x': '\'xcircle',
1755
+ 'inverted triangle': None, # TODO: Implement
1756
+ 'arrow down': None, # TODO: Implement
1757
+ 'arrow up': None, # TODO: Implement
1758
+ 'slashed': None, # TODO: Implement
1759
+ 'back slashed': None, # TODO: Implement
1760
+ 'normal': None,
1761
+ 'cluster': None, # TODO: Implement
1762
+ 'none': '#f',
1763
+ 'do': '\'do',
1764
+ 're': '\'re',
1765
+ 'mi': '\'mi',
1766
+ 'fa': '\'fa',
1767
+ 'so': None,
1768
+ 'la': '\'la',
1769
+ 'ti': '\'ti',
1770
+ }
1771
+
1772
+
1773
+ def musicxml_chordpitch_to_lily(mxl_cpitch):
1774
+ r = musicexp.ChordPitch()
1775
+ r.alteration = mxl_cpitch.get_alteration()
1776
+ r.step = musicxml2ly_conversion.musicxml_step_to_lily(
1777
+ mxl_cpitch.get_step())
1778
+ return r
1779
+
1780
+
1781
+ chordkind_dict = {
1782
+ 'major': ':5',
1783
+ 'minor': ':m5',
1784
+ 'augmented': ':aug5',
1785
+ 'diminished': ':dim5',
1786
+ # Sevenths:
1787
+ 'dominant': ':7',
1788
+ 'dominant-seventh': ':7',
1789
+ 'major-seventh': ':maj7',
1790
+ 'minor-seventh': ':m7',
1791
+ 'diminished-seventh': ':dim7',
1792
+ 'augmented-seventh': ':aug7',
1793
+ 'half-diminished': ':dim5m7',
1794
+ 'major-minor': ':maj7m5',
1795
+ # Sixths:
1796
+ 'major-sixth': ':6',
1797
+ 'minor-sixth': ':m6',
1798
+ # Ninths:
1799
+ 'dominant-ninth': ':9',
1800
+ 'major-ninth': ':maj9',
1801
+ 'minor-ninth': ':m9',
1802
+ # 11ths (usually as the basis for alteration):
1803
+ 'dominant-11th': ':11',
1804
+ 'major-11th': ':maj11',
1805
+ 'minor-11th': ':m11',
1806
+ # 13ths (usually as the basis for alteration):
1807
+ 'dominant-13th': ':13.11',
1808
+ 'major-13th': ':maj13.11',
1809
+ 'minor-13th': ':m13',
1810
+ # Suspended:
1811
+ 'suspended-second': ':sus2',
1812
+ 'suspended-fourth': ':sus4',
1813
+ # Functional sixths:
1814
+ # TODO
1815
+ # 'Neapolitan': '???',
1816
+ # 'Italian': '???',
1817
+ # 'French': '???',
1818
+ # 'German': '???',
1819
+ # Other:
1820
+ # 'pedal': '???',(pedal-point bass)
1821
+ 'power': ':1.5',
1822
+ # 'Tristan': '???',
1823
+ 'other': ':1',
1824
+ 'none': None,
1825
+ }
1826
+
1827
+
1828
+ def musicxml_chordkind_to_lily(kind):
1829
+ res = chordkind_dict.get(kind, None)
1830
+ # Check for None, since a major chord is converted to ''
1831
+ if res is None:
1832
+ ly.warning(_("Unable to convert chord type %s to lilypond.") % kind)
1833
+ return res
1834
+
1835
+
1836
+ # Global variable for guitar string tunings
1837
+ string_tunings = None
1838
+
1839
+
1840
+ def musicxml_get_string_tunings(lines):
1841
+ global string_tunings
1842
+ if string_tunings is None:
1843
+ if not lines:
1844
+ lines = 6
1845
+ string_tunings = [musicexp.Pitch()] * lines
1846
+ for i in range(0, lines):
1847
+ p = musicexp.Pitch()
1848
+ p.step = musicxml2ly_conversion.musicxml_step_to_lily(
1849
+ ((("E", "A", "D", "G", "B")*(lines/5+1))[0:lines])[i])
1850
+ p.octave = (([-2+int(x % 5 > 1)+2*(x/5)
1851
+ for x in range(0, lines)][0:lines])[i])
1852
+ p.alteration = 0
1853
+ p._force_absolute_pitch = True
1854
+ string_tunings[i] = p
1855
+ string_tunings = string_tunings[::-1]
1856
+ return string_tunings[0:lines]
1857
+
1858
+
1859
+ def musicxml_frame_to_lily_event(frame):
1860
+ ev = musicexp.FretEvent()
1861
+ ev.strings = frame.get_strings()
1862
+ ev.frets = frame.get_frets()
1863
+ #offset = frame.get_first_fret() - 1
1864
+ #offset = frame.get_first_fret()
1865
+ barre = []
1866
+ open_strings = list(range(1, ev.strings+1))
1867
+ for fn in frame.get_named_children('frame-note'):
1868
+ fret = fn.get_fret()
1869
+ if fret <= 0:
1870
+ fret = "o"
1871
+ el = [fn.get_string(), fret]
1872
+ fingering = fn.get_fingering()
1873
+ if fingering >= 0:
1874
+ el.append(fingering)
1875
+ ev.elements.append(el)
1876
+ open_strings.remove(fn.get_string())
1877
+ b = fn.get_barre()
1878
+ if b == 'start':
1879
+ barre.append(el[0]) # start string
1880
+ barre.append(el[1]) # fret
1881
+ elif b == 'stop':
1882
+ barre.insert(1, el[0]) # end string
1883
+ for string in open_strings:
1884
+ ev.elements.append([string, 'x'])
1885
+ ev.elements.sort()
1886
+ ev.elements.reverse()
1887
+ if barre:
1888
+ ev.barre = barre
1889
+ return ev
1890
+
1891
+
1892
+ def musicxml_harmony_to_lily(n):
1893
+ res = []
1894
+ for f in n.get_named_children('frame'):
1895
+ ev = musicxml_frame_to_lily_event(f)
1896
+ if ev:
1897
+ res.append(ev)
1898
+ return res
1899
+
1900
+
1901
+ def musicxml_harmony_to_lily_fretboards(n):
1902
+ res = []
1903
+ frame = n.get_maybe_exist_named_child('frame')
1904
+ if frame:
1905
+ strings = frame.get_strings()
1906
+ if not strings:
1907
+ strings = 6
1908
+ tunings = musicxml_get_string_tunings(strings)
1909
+ ev = musicexp.FretBoardEvent()
1910
+ #barre = []
1911
+ for fn in frame.get_named_children('frame-note'):
1912
+ fbn = musicexp.FretBoardNote()
1913
+ string = fn.get_string()
1914
+ fbn.string = string
1915
+ fingering = fn.get_fingering()
1916
+ if fingering >= 0:
1917
+ fbn.fingering = fingering
1918
+ p = tunings[string-1].copy()
1919
+ p.add_semitones(fn.get_fret())
1920
+ fbn.pitch = p
1921
+ ev.append(fbn)
1922
+ res.append(ev)
1923
+ return res
1924
+
1925
+
1926
+ def musicxml_harmony_to_lily_chordname(n):
1927
+ res = []
1928
+ root = n.get_maybe_exist_named_child('root')
1929
+ if root:
1930
+ ev = musicexp.ChordNameEvent()
1931
+ ev.root = musicxml_chordpitch_to_lily(root)
1932
+ kind = n.get_maybe_exist_named_child('kind')
1933
+ if kind:
1934
+ ev.kind = musicxml_chordkind_to_lily(kind.get_text())
1935
+ if not ev.kind:
1936
+ return res
1937
+ bass = n.get_maybe_exist_named_child('bass')
1938
+ if bass:
1939
+ ev.bass = musicxml_chordpitch_to_lily(bass)
1940
+ inversion = n.get_maybe_exist_named_child('inversion')
1941
+ if inversion:
1942
+ # TODO: LilyPond does not support inversions, does it?
1943
+
1944
+ # Mail from Carl Sorensen on lilypond-devel, June 11, 2008:
1945
+ # 4. LilyPond supports the first inversion in the form of added
1946
+ # bass notes. So the first inversion of C major would be c:/g.
1947
+ # To get the second inversion of C major, you would need to do
1948
+ # e:6-3-^5 or e:m6-^5. However, both of these techniques
1949
+ # require you to know the chord and calculate either the fifth
1950
+ # pitch (for the first inversion) or the third pitch (for the
1951
+ # second inversion) so they may not be helpful for musicxml2ly.
1952
+ inversion_count = int(inversion.get_text())
1953
+ if inversion_count == 1:
1954
+ # TODO: Calculate the bass note for the inversion...
1955
+ pass
1956
+ pass
1957
+ for deg in n.get_named_children('degree'):
1958
+ d = musicexp.ChordModification()
1959
+ d.type = deg.get_type()
1960
+ d.step = deg.get_value()
1961
+ d.alteration = deg.get_alter()
1962
+ ev.add_modification(d)
1963
+ # TODO: convert the user-symbols attribute:
1964
+ # major: a triangle, like Unicode 25B3
1965
+ # minor: -, like Unicode 002D
1966
+ # augmented: +, like Unicode 002B
1967
+ # diminished: (degree), like Unicode 00B0
1968
+ # half-diminished: (o with slash), like Unicode 00F8
1969
+ if ev and ev.root:
1970
+ res.append(ev)
1971
+ return res
1972
+
1973
+
1974
+ def musicxml_figured_bass_note_to_lily(n):
1975
+ res = musicexp.FiguredBassNote()
1976
+ suffix_dict = {'sharp': "+",
1977
+ 'flat': "-",
1978
+ 'natural': "!",
1979
+ 'double-sharp': "++",
1980
+ 'flat-flat': "--",
1981
+ 'sharp-sharp': "++",
1982
+ 'slash': "/"}
1983
+ prefix = n.get_maybe_exist_named_child('prefix')
1984
+ if prefix:
1985
+ res.set_prefix(suffix_dict.get(prefix.get_text(), ""))
1986
+ fnumber = n.get_maybe_exist_named_child('figure-number')
1987
+ if fnumber:
1988
+ res.set_number(fnumber.get_text())
1989
+ suffix = n.get_maybe_exist_named_child('suffix')
1990
+ if suffix:
1991
+ res.set_suffix(suffix_dict.get(suffix.get_text(), ""))
1992
+ if n.get_maybe_exist_named_child('extend'):
1993
+ # TODO: Implement extender lines (unfortunately, in lilypond you have
1994
+ # to use \set useBassFigureExtenders = ##t, which turns them on
1995
+ # globally, while MusicXML has a property for each note...
1996
+ # I'm not sure there is a proper way to implement this cleanly
1997
+ # n.extend
1998
+ pass
1999
+ return res
2000
+
2001
+
2002
+ def musicxml_figured_bass_to_lily(n):
2003
+ if not isinstance(n, musicxml.FiguredBass):
2004
+ return
2005
+ res = musicexp.FiguredBassEvent()
2006
+ for i in n.get_named_children('figure'):
2007
+ note = musicxml_figured_bass_note_to_lily(i)
2008
+ if note:
2009
+ res.append(note)
2010
+ dur = n.get_maybe_exist_named_child('duration')
2011
+ if dur:
2012
+ # apply the duration to res
2013
+ length = Fraction(int(dur.get_text()), n._divisions) * Fraction(1, 4)
2014
+ res.set_real_duration(length)
2015
+ duration = musicxml2ly_conversion.rational_to_lily_duration(length)
2016
+ if duration:
2017
+ res.set_duration(duration)
2018
+ if hasattr(n, 'parentheses') and n.parentheses == "yes":
2019
+ res.set_parentheses(True)
2020
+ return res
2021
+
2022
+
2023
+ def musicxml_lyrics_to_text(lyrics, ignoremelismata):
2024
+ # TODO: Implement text styles for lyrics syllables
2025
+ continued = False
2026
+ extended = False
2027
+ text = ''
2028
+ for e in lyrics.get_all_children():
2029
+ if isinstance(e, musicxml.Syllabic):
2030
+ continued = e.continued()
2031
+ elif isinstance(e, musicxml.Text):
2032
+ # We need to convert soft hyphens to -, otherwise the ascii codec as well
2033
+ # as lilypond will barf on that character
2034
+ text += e.get_text().replace('\xad', '-')
2035
+ elif isinstance(e, musicxml.Elision):
2036
+ if text:
2037
+ text += " "
2038
+ continued = False
2039
+ extended = False
2040
+ elif isinstance(e, musicxml.Extend):
2041
+ if text:
2042
+ text += " "
2043
+ extended = True
2044
+
2045
+ if text == "-" and continued:
2046
+ return "--"
2047
+ elif text == "_" and extended:
2048
+ return "__"
2049
+ elif continued and text:
2050
+ if hasattr(options, 'convert_beaming') and options.convert_beaming:
2051
+ if ignoremelismata == "on":
2052
+ return r" \set ignoreMelismata = ##t " + utilities.escape_ly_output_string(text)
2053
+ elif ignoremelismata == "off":
2054
+ return " " + utilities.escape_ly_output_string(text) + " -- \\unset ignoreMelismata"
2055
+ else:
2056
+ return " " + utilities.escape_ly_output_string(text) + " --"
2057
+ else:
2058
+ return " " + utilities.escape_ly_output_string(text) + " -- "
2059
+ elif continued:
2060
+ return "--"
2061
+ elif extended and text:
2062
+ return " " + utilities.escape_ly_output_string(text) + " __"
2063
+ elif extended:
2064
+ return "__"
2065
+ elif text:
2066
+ return " " + utilities.escape_ly_output_string(text)
2067
+ else:
2068
+ return ""
2069
+
2070
+ # TODO
2071
+
2072
+
2073
+ class NegativeSkip:
2074
+ def __init__(self, here, dest):
2075
+ self.here = here
2076
+ self.dest = dest
2077
+
2078
+
2079
+ class LilyPondVoiceBuilder:
2080
+ def __init__(self):
2081
+ self.elements = []
2082
+ self.pending_dynamics = []
2083
+ self.end_moment = Fraction(0)
2084
+ self.begin_moment = Fraction(0)
2085
+ self.pending_multibar = Fraction(0)
2086
+ self.ignore_skips = False
2087
+ self.has_relevant_elements = False
2088
+ self.measure_length = Fraction(4, 4)
2089
+ self.stay_here = False
2090
+
2091
+ def _insert_multibar(self):
2092
+ layout_information.set_context_item('Score', 'skipBars = ##t')
2093
+ r = musicexp.MultiMeasureRest()
2094
+ lenfrac = self.measure_length
2095
+ r.duration = musicxml2ly_conversion.rational_to_lily_duration(lenfrac)
2096
+ r.duration.factor *= self.pending_multibar / lenfrac
2097
+ self.elements.append(r)
2098
+ self.begin_moment = self.end_moment
2099
+ self.end_moment = self.begin_moment + self.pending_multibar
2100
+ self.pending_multibar = Fraction(0)
2101
+
2102
+ def set_measure_length(self, mlen):
2103
+ if (mlen != self.measure_length) and self.pending_multibar:
2104
+ self._insert_multibar()
2105
+ self.measure_length = mlen
2106
+
2107
+ def add_multibar_rest(self, duration):
2108
+ self.pending_multibar += duration
2109
+
2110
+ def set_duration(self, duration):
2111
+ self.end_moment = self.begin_moment + duration
2112
+
2113
+ def current_duration(self):
2114
+ return self.end_moment - self.begin_moment
2115
+
2116
+ def add_pending_dynamics(self):
2117
+ for d in self.pending_dynamics:
2118
+ self.elements.append(d)
2119
+ self.pending_dynamics = []
2120
+
2121
+ def add_music(self, music, duration, relevant=True):
2122
+ assert isinstance(music, musicexp.Music)
2123
+ if self.pending_multibar > Fraction(0):
2124
+ self._insert_multibar()
2125
+
2126
+ self.has_relevant_elements = self.has_relevant_elements or relevant
2127
+
2128
+ if isinstance(music, musicexp.BarLine):
2129
+ if self.pending_dynamics:
2130
+ for d in self.pending_dynamics:
2131
+ if not isinstance(d, (musicexp.SpanEvent, musicexp.DynamicsEvent)):
2132
+ index = self.pending_dynamics.index(d)
2133
+ dyn = self.pending_dynamics.pop(index)
2134
+ self.elements.append(dyn)
2135
+
2136
+ self.elements.append(music)
2137
+ self.begin_moment = self.end_moment
2138
+ self.set_duration(duration)
2139
+
2140
+ # Insert all pending dynamics right after the note/rest:
2141
+ if isinstance(music, musicexp.ChordEvent) and self.pending_dynamics:
2142
+ self.add_pending_dynamics()
2143
+
2144
+ # Insert some music command that does not affect the position in the measure
2145
+ def add_command(self, command, relevant=True):
2146
+ assert isinstance(command, musicexp.Music)
2147
+ if self.pending_multibar > Fraction(0):
2148
+ self._insert_multibar()
2149
+ self.has_relevant_elements = self.has_relevant_elements or relevant
2150
+ self.elements.append(command)
2151
+
2152
+ def add_barline(self, barline, relevant=False):
2153
+ # Insert only if we don't have a barline already
2154
+ # TODO: Implement proper merging of default barline and custom bar line
2155
+ has_relevant = self.has_relevant_elements
2156
+ if (not (self.elements) or
2157
+ not (isinstance(self.elements[-1], musicexp.BarLine)) or
2158
+ (self.pending_multibar > Fraction(0))):
2159
+
2160
+ self.add_music(barline, Fraction(0))
2161
+
2162
+ self.has_relevant_elements = has_relevant or relevant
2163
+
2164
+ def add_partial(self, command):
2165
+ self.ignore_skips = True
2166
+ # insert the partial, but restore relevant_elements (partial is not relevant)
2167
+ relevant = self.has_relevant_elements
2168
+ self.add_command(command)
2169
+ self.has_relevant_elements = relevant
2170
+
2171
+ def add_dynamics(self, dynamic):
2172
+ # store the dynamic item(s) until we encounter the next note/rest:
2173
+ self.pending_dynamics.append(dynamic)
2174
+
2175
+ def add_bar_check(self, number):
2176
+ # re/store has_relevant_elements, so that a barline alone does not
2177
+ # trigger output for figured bass, chord names
2178
+ b = musicexp.BarLine()
2179
+ b.bar_number = number
2180
+ self.add_barline(b)
2181
+
2182
+ def jumpto(self, moment):
2183
+ if not self.stay_here:
2184
+ current_end = self.end_moment + self.pending_multibar
2185
+ diff = moment - current_end
2186
+
2187
+ if diff < Fraction(0):
2188
+ ly.warning(_('Negative skip %s (from position %s to %s)') %
2189
+ (diff, current_end, moment))
2190
+ diff = Fraction(0)
2191
+
2192
+ if diff > Fraction(0) and not(self.ignore_skips and moment == 0):
2193
+ skip = musicexp.SkipEvent()
2194
+ duration_factor = 1
2195
+ duration_log = {1: 0, 2: 1, 4: 2, 8: 3, 16: 4, 32: 5,
2196
+ 64: 6, 128: 7, 256: 8, 512: 9}.get(diff.denominator, -1)
2197
+ duration_dots = 0
2198
+ # TODO: Use the time signature for skips, too. Problem: The skip
2199
+ # might not start at a measure boundary!
2200
+ if duration_log > 0: # denominator is a power of 2...
2201
+ if diff.numerator == 3:
2202
+ duration_log -= 1
2203
+ duration_dots = 1
2204
+ else:
2205
+ duration_factor = Fraction(diff.numerator)
2206
+ else:
2207
+ # for skips of a whole or more, simply use s1*factor
2208
+ duration_log = 0
2209
+ duration_factor = diff
2210
+ skip.duration.duration_log = duration_log
2211
+ skip.duration.factor = duration_factor
2212
+ skip.duration.dots = duration_dots
2213
+
2214
+ evc = musicexp.ChordEvent()
2215
+ evc.elements.append(skip)
2216
+ self.add_music(evc, diff, False)
2217
+
2218
+ if diff > Fraction(0) and moment == 0:
2219
+ self.ignore_skips = False
2220
+
2221
+ def last_event_chord(self, starting_at):
2222
+ value = None
2223
+
2224
+ # if the position matches, find the last ChordEvent, do not cross a bar line!
2225
+ at = len(self.elements) - 1
2226
+ while (at >= 0 and
2227
+ not isinstance(self.elements[at], musicexp.ChordEvent) and
2228
+ not isinstance(self.elements[at], musicexp.BarLine)):
2229
+ at -= 1
2230
+
2231
+ if (self.elements
2232
+ and at >= 0
2233
+ and isinstance(self.elements[at], musicexp.ChordEvent)
2234
+ and self.begin_moment == starting_at):
2235
+ value = self.elements[at]
2236
+ else:
2237
+ self.jumpto(starting_at)
2238
+ value = None
2239
+ return value
2240
+
2241
+ def correct_negative_skip(self, goto):
2242
+ self.end_moment = goto
2243
+ self.begin_moment = goto
2244
+ evc = musicexp.ChordEvent()
2245
+ self.elements.append(evc)
2246
+
2247
+
2248
+ class VoiceData:
2249
+ def __init__(self):
2250
+ self.voicename = None
2251
+ self.voicedata = None
2252
+ self.ly_voice = None
2253
+ self.figured_bass = None
2254
+ self.chordnames = None
2255
+ self.fretboards = None
2256
+ self.lyrics_dict = {}
2257
+ self.lyrics_order = []
2258
+
2259
+
2260
+ def measure_length_from_attributes(attr, current_measure_length):
2261
+ len = attr.get_measure_length()
2262
+ if not len:
2263
+ len = current_measure_length
2264
+ return len
2265
+
2266
+
2267
+ def music_xml_voice_name_to_lily_name(part_id, name):
2268
+ s = "Part%sVoice%s" % (part_id, name)
2269
+ return musicxml_id_to_lily(s)
2270
+
2271
+
2272
+ def music_xml_lyrics_name_to_lily_name(part_id, name, lyricsnr):
2273
+ s = music_xml_voice_name_to_lily_name(
2274
+ part_id, name)+("Lyrics%s" % lyricsnr)
2275
+ return musicxml_id_to_lily(s)
2276
+
2277
+
2278
+ def music_xml_figuredbass_name_to_lily_name(part_id, voicename):
2279
+ s = music_xml_voice_name_to_lily_name(part_id, voicename)+"FiguredBass"
2280
+ return musicxml_id_to_lily(s)
2281
+
2282
+
2283
+ def music_xml_chordnames_name_to_lily_name(part_id, voicename):
2284
+ s = music_xml_voice_name_to_lily_name(part_id, voicename)+"Chords"
2285
+ return musicxml_id_to_lily(s)
2286
+
2287
+
2288
+ def music_xml_fretboards_name_to_lily_name(part_id, voicename):
2289
+ s = music_xml_voice_name_to_lily_name(part_id, voicename)+"FretBoards"
2290
+ return musicxml_id_to_lily(s)
2291
+
2292
+
2293
+ def get_all_lyric_parts_in_voice(voice):
2294
+ r'''
2295
+ Collect the indexes of all lyric parts in this voice.
2296
+ In case not all of the current lyric parts are active (a typical case would be
2297
+ a refrain/chorus), the current implementation inserts \skip-commands in the
2298
+ inactive parts to keep them in sync.
2299
+ '''
2300
+ all_lyric_parts = []
2301
+ for elem in voice._elements:
2302
+ lyrics = elem.get_typed_children(musicxml.Lyric)
2303
+ if lyrics:
2304
+ for lyric in lyrics:
2305
+ index = lyric.get_number()
2306
+ if not index in all_lyric_parts:
2307
+ all_lyric_parts.append(index)
2308
+ return all_lyric_parts
2309
+
2310
+
2311
+ def extract_lyrics(voice, lyric_key, lyrics_dict):
2312
+ curr_number = None
2313
+ result = []
2314
+
2315
+ def is_note(elem):
2316
+ return isinstance(elem, musicxml.Note)
2317
+
2318
+ def is_rest(elem):
2319
+ return elem.get_typed_children(musicxml.Rest)
2320
+
2321
+ def is_chord(elem):
2322
+ return elem.get_typed_children(musicxml.Chord)
2323
+
2324
+ def is_note_and_not_rest(elem):
2325
+ return is_note(elem) and not is_rest(elem)
2326
+
2327
+ def get_lyric_elements(note):
2328
+ return note.get_typed_children(musicxml.Lyric)
2329
+
2330
+ def has_lyric_belonging_to_lyric_part(note, lyric_part_id):
2331
+ lyric_elements = get_lyric_elements(note)
2332
+ lyric_numbers = [lyric.get_number() for lyric in lyric_elements]
2333
+ return any([lyric_number == lyric_part_id for lyric_number in lyric_numbers])
2334
+
2335
+ for idx, elem in enumerate(voice._elements):
2336
+ lyrics = get_lyric_elements(elem)
2337
+ lyric_keys = [lyric.get_number() for lyric in lyrics]
2338
+ note_has_lyric_belonging_to_lyric_part = lyric_key in lyric_keys
2339
+ # Current note has lyric with 'number' matching 'lyric_key'.
2340
+ if note_has_lyric_belonging_to_lyric_part:
2341
+ for lyric in lyrics:
2342
+ if lyric.get_number() == lyric_key:
2343
+ text = musicxml_lyrics_to_text(lyric, None)
2344
+ result.append(text)
2345
+ # Note has any lyric.
2346
+ elif get_lyric_elements(elem) and \
2347
+ not note_has_lyric_belonging_to_lyric_part:
2348
+ result.append(r'\skip1 ')
2349
+ # Note does not have any lyric attached to it.
2350
+ elif is_chord(elem):
2351
+ # note without lyrics part of a chord. MusicXML format is
2352
+ # unclear if a chord element could contain a lyric, lets
2353
+ # asume that we do not want to put a skip here.
2354
+ continue
2355
+ elif is_note_and_not_rest(elem):
2356
+ result.append(r'\skip1 ')
2357
+
2358
+ lyrics_dict[lyric_key].extend(result)
2359
+
2360
+
2361
+ def musicxml_voice_to_lily_voice(voice):
2362
+ tuplet_events = []
2363
+ lyrics = {}
2364
+ return_value = VoiceData()
2365
+ return_value.voicedata = voice
2366
+
2367
+ # First pitch needed for relative mode (if selected in command-line options)
2368
+ first_pitch = None
2369
+
2370
+ # Needed for melismata detection (ignore lyrics on those notes!):
2371
+ inside_slur = False
2372
+ is_tied = False
2373
+ is_chord = False
2374
+ is_beamed = False
2375
+ ignore_lyrics = False
2376
+
2377
+ current_staff = None
2378
+
2379
+ pending_figured_bass = []
2380
+ pending_chordnames = []
2381
+ pending_fretboards = []
2382
+
2383
+ # Make sure that the keys in the dict don't get reordered, since
2384
+ # we need the correct ordering of the lyrics stanzas! By default,
2385
+ # a dict will reorder its keys
2386
+ return_value.lyrics_order = voice.get_lyrics_numbers()
2387
+ for k in return_value.lyrics_order:
2388
+ lyrics[k] = []
2389
+
2390
+ voice_builder = LilyPondVoiceBuilder()
2391
+ figured_bass_builder = LilyPondVoiceBuilder()
2392
+ chordnames_builder = LilyPondVoiceBuilder()
2393
+ fretboards_builder = LilyPondVoiceBuilder()
2394
+ current_measure_length = Fraction(4, 4)
2395
+ voice_builder.set_measure_length(current_measure_length)
2396
+ in_slur = False
2397
+
2398
+ all_lyric_parts = set(get_all_lyric_parts_in_voice(voice))
2399
+ if list(lyrics.keys()):
2400
+ for number in list(lyrics.keys()):
2401
+ extracted_lyrics = extract_lyrics(voice, number, lyrics)
2402
+
2403
+ last_bar_check = -1
2404
+ for idx, n in enumerate(voice._elements):
2405
+ tie_started = False
2406
+ if n.get_name() == 'forward':
2407
+ continue
2408
+ staff = n.get_maybe_exist_named_child('staff')
2409
+ if staff:
2410
+ staff = staff.get_text()
2411
+ if current_staff and staff != current_staff and not n.get_maybe_exist_named_child('chord'):
2412
+ voice_builder.add_command(musicexp.StaffChange(staff))
2413
+ current_staff = staff
2414
+
2415
+ if isinstance(n, musicxml.Partial) and n.partial > 0:
2416
+ a = musicxml_partial_to_lily(n.partial)
2417
+ if a:
2418
+ voice_builder.add_partial(a)
2419
+ figured_bass_builder.add_partial(a)
2420
+ chordnames_builder.add_partial(a)
2421
+ fretboards_builder.add_partial(a)
2422
+ continue
2423
+
2424
+ is_chord = n.get_maybe_exist_named_child('chord')
2425
+ is_after_grace = (isinstance(n, musicxml.Note) and n.is_after_grace())
2426
+ if not is_chord and not is_after_grace:
2427
+ try:
2428
+ voice_builder.jumpto(n._when)
2429
+ figured_bass_builder.jumpto(n._when)
2430
+ chordnames_builder.jumpto(n._when)
2431
+ fretboards_builder.jumpto(n._when)
2432
+ except NegativeSkip as neg:
2433
+ voice_builder.correct_negative_skip(n._when)
2434
+ figured_bass_builder.correct_negative_skip(n._when)
2435
+ chordnames_builder.correct_negative_skip(n._when)
2436
+ fretboards_builder.correct_negative_skip(n._when)
2437
+ n.message(_("Negative skip found: from %s to %s, difference is %s") % (
2438
+ neg.here, neg.dest, neg.dest - neg.here))
2439
+
2440
+ if isinstance(n, musicxml.Barline):
2441
+ barlines = n.to_lily_object()
2442
+ for a in barlines:
2443
+ if isinstance(a, musicexp.BarLine):
2444
+ voice_builder.add_barline(a)
2445
+ figured_bass_builder.add_barline(a, False)
2446
+ chordnames_builder.add_barline(a, False)
2447
+ fretboards_builder.add_barline(a, False)
2448
+ elif isinstance(a, musicxml2ly_conversion.RepeatMarker) or isinstance(a, musicxml2ly_conversion.EndingMarker):
2449
+ voice_builder.add_command(a)
2450
+ figured_bass_builder.add_barline(a, False)
2451
+ chordnames_builder.add_barline(a, False)
2452
+ fretboards_builder.add_barline(a, False)
2453
+ continue
2454
+
2455
+ if isinstance(n, musicxml.Print):
2456
+ for a in musicxml_print_to_lily(n):
2457
+ voice_builder.add_command(a, False)
2458
+ continue
2459
+
2460
+ # Continue any multimeasure-rests before trying to add bar checks!
2461
+ # Don't handle new MM rests yet, because for them we want bar checks!
2462
+ rest = n.get_maybe_exist_typed_child(musicxml.Rest)
2463
+ if (rest and rest.is_whole_measure()
2464
+ and voice_builder.pending_multibar > Fraction(0)):
2465
+ voice_builder.add_multibar_rest(n._duration)
2466
+ continue
2467
+
2468
+ # Print bar checks between measures.
2469
+ if n._measure_position == Fraction(0) and n != voice._elements[0]:
2470
+ try:
2471
+ num = int(n.get_parent().number)
2472
+ except ValueError:
2473
+ num = 0
2474
+ if num > 0 and num > last_bar_check:
2475
+ voice_builder.add_bar_check(num)
2476
+ figured_bass_builder.add_bar_check(num)
2477
+ chordnames_builder.add_bar_check(num)
2478
+ fretboards_builder.add_bar_check(num)
2479
+ last_bar_check = num
2480
+
2481
+ if isinstance(n, musicxml.Direction):
2482
+ # check if Direction already has been converted in another voice.
2483
+ if n.converted:
2484
+ continue
2485
+ else:
2486
+ n.converted = True
2487
+ for direction in musicxml_direction_to_lily(n):
2488
+ if direction.wait_for_note():
2489
+ voice_builder.add_dynamics(direction)
2490
+ else:
2491
+ voice_builder.add_command(direction)
2492
+ continue
2493
+
2494
+ # Start any new multimeasure rests
2495
+ if (rest and rest.is_whole_measure()):
2496
+ if pending_chordnames:
2497
+ chordnames_builder.jumpto(n._when)
2498
+ chordnames_builder.stay_here = True
2499
+ if pending_figured_bass:
2500
+ figured_bass_builder.jumpto(n._when)
2501
+ figured_bass_builder.stay_here = True
2502
+ if pending_fretboards:
2503
+ fretboards_builder.jumpto(n._when)
2504
+ fretboards_builder.stay_here = True
2505
+ voice_builder.add_multibar_rest(n._duration)
2506
+ continue
2507
+
2508
+ if isinstance(n, musicxml.Harmony):
2509
+ if options.fretboards:
2510
+ # Makes fretboard diagrams in a separate FretBoards voice
2511
+ for a in musicxml_harmony_to_lily_fretboards(n):
2512
+ pending_fretboards.append(a)
2513
+ else:
2514
+ # Makes markup fretboard-diagrams inside the voice
2515
+ for a in musicxml_harmony_to_lily(n):
2516
+ if a.wait_for_note():
2517
+ voice_builder.add_dynamics(a)
2518
+ else:
2519
+ voice_builder.add_command(a)
2520
+ for a in musicxml_harmony_to_lily_chordname(n):
2521
+ pending_chordnames.append(a)
2522
+ continue
2523
+
2524
+ if isinstance(n, musicxml.FiguredBass):
2525
+ a = musicxml_figured_bass_to_lily(n)
2526
+ if a:
2527
+ pending_figured_bass.append(a)
2528
+ continue
2529
+
2530
+ if isinstance(n, musicxml.Attributes):
2531
+ for a in musicxml_attributes_to_lily(n):
2532
+ voice_builder.add_command(a)
2533
+ measure_length = measure_length_from_attributes(
2534
+ n, current_measure_length)
2535
+ if current_measure_length != measure_length:
2536
+ current_measure_length = measure_length
2537
+ voice_builder.set_measure_length(current_measure_length)
2538
+ continue
2539
+
2540
+ if not n.__class__.__name__ == 'Note':
2541
+ n.message(_('unexpected %s; expected %s or %s or %s') %
2542
+ (n, 'Note', 'Attributes', 'Barline'))
2543
+ continue
2544
+
2545
+ # if not hasattr(conversion_settings, 'convert_rest_positions'):
2546
+ # conversion_settings.convert_rest_positions = True
2547
+
2548
+ main_event = n.to_lily_object(
2549
+ convert_stem_directions=conversion_settings.convert_stem_directions,
2550
+ convert_rest_positions=conversion_settings.convert_rest_positions)
2551
+
2552
+ if main_event and not first_pitch:
2553
+ first_pitch = main_event.pitch
2554
+ # ignore lyrics for notes inside a slur, tie, chord or beam
2555
+ ignore_lyrics = is_tied or is_chord # or is_beamed or inside_slur
2556
+
2557
+ ev_chord = voice_builder.last_event_chord(n._when)
2558
+ if not ev_chord:
2559
+ ev_chord = musicexp.ChordEvent()
2560
+ voice_builder.add_music(ev_chord, n._duration)
2561
+
2562
+ # For grace notes:
2563
+ grace = n.get_maybe_exist_typed_child(musicxml.Grace)
2564
+ if n.is_grace():
2565
+ is_after_grace = ev_chord.has_elements() or n.is_after_grace()
2566
+ is_chord = n.get_maybe_exist_typed_child(musicxml.Chord)
2567
+
2568
+ grace_chord = None
2569
+
2570
+ # after-graces and other graces use different lists; Depending on
2571
+ # whether we have a chord or not, obtain either a new ChordEvent or
2572
+ # the previous one to create a chord
2573
+ if is_after_grace:
2574
+ if ev_chord.after_grace_elements and n.get_maybe_exist_typed_child(musicxml.Chord):
2575
+ grace_chord = ev_chord.after_grace_elements.get_last_event_chord()
2576
+ if not grace_chord:
2577
+ grace_chord = musicexp.ChordEvent()
2578
+ ev_chord.append_after_grace(grace_chord)
2579
+ elif n.is_grace():
2580
+ if ev_chord.grace_elements and n.get_maybe_exist_typed_child(musicxml.Chord):
2581
+ grace_chord = ev_chord.grace_elements.get_last_event_chord()
2582
+ if not grace_chord:
2583
+ grace_chord = musicexp.ChordEvent()
2584
+ ev_chord.append_grace(grace_chord)
2585
+
2586
+ if hasattr(grace, 'slash') and not is_after_grace:
2587
+ # TODO: use grace_type = "appoggiatura" for slurred grace notes
2588
+ if grace.slash == "yes":
2589
+ ev_chord.grace_type = "acciaccatura"
2590
+ # now that we have inserted the chord into the grace music, insert
2591
+ # everything into that chord instead of the ev_chord
2592
+ ev_chord = grace_chord
2593
+ ev_chord.append(main_event)
2594
+ ignore_lyrics = True
2595
+ else:
2596
+ ev_chord.append(main_event)
2597
+ # When a note/chord has grace notes (duration==0), the duration of the
2598
+ # event chord is not yet known, but the event chord was already added
2599
+ # with duration 0. The following correct this when we hit the real note!
2600
+ if voice_builder.current_duration() == 0 and n._duration > 0:
2601
+ voice_builder.set_duration(n._duration)
2602
+
2603
+ # if we have a figured bass, set its voice builder to the correct position
2604
+ # and insert the pending figures
2605
+ if pending_figured_bass:
2606
+ try:
2607
+ figured_bass_builder.jumpto(n._when)
2608
+ if figured_bass_builder.stay_here:
2609
+ figured_bass_builder.stay_here = False
2610
+ except NegativeSkip as neg:
2611
+ pass
2612
+ for fb in pending_figured_bass:
2613
+ # if a duration is given, use that, otherwise the one of the note
2614
+ dur = fb.real_duration
2615
+ if not dur:
2616
+ dur = ev_chord.get_length()
2617
+ if not fb.duration:
2618
+ fb.duration = ev_chord.get_duration()
2619
+ figured_bass_builder.add_music(fb, dur)
2620
+ pending_figured_bass = []
2621
+
2622
+ if pending_chordnames:
2623
+ try:
2624
+ chordnames_builder.jumpto(n._when)
2625
+ if chordnames_builder.stay_here:
2626
+ chordnames_builder.stay_here = False
2627
+ except NegativeSkip as neg:
2628
+ pass
2629
+ for cn in pending_chordnames:
2630
+ # Assign the duration of the EventChord
2631
+ cn.duration = ev_chord.get_duration()
2632
+ chordnames_builder.add_music(cn, ev_chord.get_length())
2633
+ pending_chordnames = []
2634
+
2635
+ if pending_fretboards:
2636
+ try:
2637
+ fretboards_builder.jumpto(n._when)
2638
+ if fretboards_builder.stay_here:
2639
+ fretboards_builder.stay_here = False
2640
+ except NegativeSkip as neg:
2641
+ pass
2642
+ for fb in pending_fretboards:
2643
+ # Assign the duration of the EventChord
2644
+ fb.duration = ev_chord.get_duration()
2645
+ fretboards_builder.add_music(fb, ev_chord.get_length())
2646
+ pending_fretboards = []
2647
+
2648
+ notations_children = n.get_typed_children(musicxml.Notations)
2649
+ tuplet_event = None
2650
+ span_events = []
2651
+
2652
+ # The <notation> element can have the following children (+ means implemented, ~ partially, - not):
2653
+ # +tied | +slur | +tuplet | glissando | slide |
2654
+ # ornaments | technical | articulations | dynamics |
2655
+ # +fermata | arpeggiate | non-arpeggiate |
2656
+ # accidental-mark | other-notation
2657
+ for notations in notations_children:
2658
+ for tuplet_event in notations.get_tuplets():
2659
+ time_mod = n.get_maybe_exist_typed_child(
2660
+ musicxml.Time_modification)
2661
+ tuplet_events.append((ev_chord, tuplet_event, time_mod))
2662
+
2663
+ # First, close all open slurs, only then start any new slur
2664
+ # TODO: Record the number of the open slur to dtermine the correct
2665
+ # closing slur!
2666
+ endslurs = [s for s in notations.get_named_children('slur')
2667
+ if s.get_type() in ('stop')]
2668
+ if endslurs and not inside_slur:
2669
+ endslurs[0].message(
2670
+ _('Encountered closing slur, but no slur is open'))
2671
+ elif endslurs:
2672
+ if len(endslurs) > 1:
2673
+ endslurs[0].message(
2674
+ _('Cannot have two simultaneous (closing) slurs'))
2675
+ # record the slur status for the next note in the loop
2676
+ inside_slur = False
2677
+ lily_ev = musicxml_spanner_to_lily_event(endslurs[0])
2678
+ ev_chord.append(lily_ev)
2679
+
2680
+ startslurs = [s for s in notations.get_named_children('slur')
2681
+ if s.get_type() in ('start')]
2682
+ if startslurs and inside_slur:
2683
+ startslurs[0].message(
2684
+ _('Cannot have a slur inside another slur'))
2685
+ elif startslurs:
2686
+ if len(startslurs) > 1:
2687
+ startslurs[0].message(
2688
+ _('Cannot have two simultaneous slurs'))
2689
+ # record the slur status for the next note in the loop
2690
+ inside_slur = True
2691
+ lily_ev = musicxml_spanner_to_lily_event(startslurs[0])
2692
+ ev_chord.append(lily_ev)
2693
+
2694
+ if not grace:
2695
+ mxl_tie = notations.get_tie()
2696
+ if mxl_tie and mxl_tie.type == 'start':
2697
+ ev_chord.append(musicexp.TieEvent())
2698
+ is_tied = True
2699
+ tie_started = True
2700
+ else:
2701
+ is_tied = False
2702
+
2703
+ fermatas = notations.get_named_children('fermata')
2704
+ for a in fermatas:
2705
+ ev = musicxml_fermata_to_lily_event(a)
2706
+ if ev:
2707
+ ev_chord.append(ev)
2708
+
2709
+ arpeggiate = notations.get_named_children('arpeggiate')
2710
+ for a in arpeggiate:
2711
+ ev = musicxml_arpeggiate_to_lily_event(a)
2712
+ if ev:
2713
+ ev_chord.append(ev)
2714
+
2715
+ arpeggiate = notations.get_named_children('non-arpeggiate')
2716
+ for a in arpeggiate:
2717
+ ev = musicxml_nonarpeggiate_to_lily_event(a)
2718
+ if ev:
2719
+ ev_chord.append(ev)
2720
+
2721
+ glissandos = notations.get_named_children('glissando')
2722
+ glissandos += notations.get_named_children('slide')
2723
+ for a in glissandos:
2724
+ ev = musicxml_spanner_to_lily_event(a)
2725
+ if ev:
2726
+ ev_chord.append(ev)
2727
+
2728
+ # accidental-marks are direct children of <notation>!
2729
+ for a in notations.get_named_children('accidental-mark'):
2730
+ ev = musicxml_articulation_to_lily_event(a)
2731
+ if ev:
2732
+ ev_chord.append(ev)
2733
+
2734
+ # Articulations can contain the following child elements:
2735
+ # accent | strong-accent | staccato | tenuto |
2736
+ # detached-legato | staccatissimo | spiccato |
2737
+ # scoop | plop | doit | falloff | breath-mark |
2738
+ # caesura | stress | unstress
2739
+ # Technical can contain the following child elements:
2740
+ # up-bow | down-bow | harmonic | open-string |
2741
+ # thumb-position | fingering | pluck | double-tongue |
2742
+ # triple-tongue | stopped | snap-pizzicato | fret |
2743
+ # string | hammer-on | pull-off | bend | tap | heel |
2744
+ # toe | fingernails | other-technical
2745
+ # Ornaments can contain the following child elements:
2746
+ # trill-mark | turn | delayed-turn | inverted-turn |
2747
+ # shake | wavy-line | mordent | inverted-mordent |
2748
+ # schleifer | tremolo | other-ornament, accidental-mark
2749
+ ornaments = notations.get_named_children('ornaments')
2750
+ ornaments += notations.get_named_children('articulations')
2751
+ ornaments += notations.get_named_children('technical')
2752
+
2753
+ for a in ornaments:
2754
+ for ch in a.get_all_children():
2755
+ ev = musicxml_articulation_to_lily_event(ch)
2756
+ if ev:
2757
+ ev_chord.append(ev)
2758
+
2759
+ dynamics = notations.get_named_children('dynamics')
2760
+ for a in dynamics:
2761
+ for ch in a.get_all_children():
2762
+ ev = musicxml_dynamics_to_lily_event(ch)
2763
+ if ev:
2764
+ ev_chord.append(ev)
2765
+
2766
+ mxl_beams = [b for b in n.get_named_children('beam')
2767
+ if (b.get_type() in ('begin', 'end')
2768
+ and b.is_primary())]
2769
+ if mxl_beams and not conversion_settings.ignore_beaming:
2770
+ beam_ev = musicxml_spanner_to_lily_event(mxl_beams[0])
2771
+ if beam_ev:
2772
+ ev_chord.append(beam_ev)
2773
+ if beam_ev.span_direction == -1: # beam and thus melisma starts here
2774
+ is_beamed = True
2775
+ elif beam_ev.span_direction == 1: # beam and thus melisma ends here
2776
+ is_beamed = False
2777
+
2778
+ # Assume that a <tie> element only lasts for one note.
2779
+ # This might not be correct MusicXML interpretation, but works for
2780
+ # most cases and fixes broken files, which have the end tag missing
2781
+ if is_tied and not tie_started:
2782
+ is_tied = False
2783
+
2784
+ # force trailing mm rests to be written out.
2785
+ voice_builder.add_music (musicexp.ChordEvent(), Fraction(0))
2786
+
2787
+ if hasattr(options, 'shift_meter') and options.shift_meter:
2788
+ for event in voice_builder.elements:
2789
+ if isinstance(event, musicexp.TimeSignatureChange):
2790
+ sd = []
2791
+ for i in range(0, 5):
2792
+ sd.append(musicexp.ShiftDurations())
2793
+ sd[i].set_shift_durations_parameters(event)
2794
+ break
2795
+
2796
+ ly_voice = group_tuplets(voice_builder.elements, tuplet_events)
2797
+ ly_voice = group_repeats(ly_voice)
2798
+
2799
+ seq_music = musicexp.SequentialMusic()
2800
+
2801
+ seq_music.elements = ly_voice
2802
+ for k in list(lyrics.keys()):
2803
+ return_value.lyrics_dict[k] = musicexp.Lyrics()
2804
+ return_value.lyrics_dict[k].lyrics_syllables = lyrics[k]
2805
+
2806
+ if hasattr(options, 'shift_meter') and options.shift_meter:
2807
+ sd[-1].element = seq_music
2808
+ seq_music = sd[-1]
2809
+ sd.pop()
2810
+
2811
+ if hasattr(options, 'relative') and options.relative:
2812
+ v = musicexp.RelativeMusic()
2813
+ v.element = seq_music
2814
+ v.basepitch = first_pitch
2815
+ seq_music = v
2816
+
2817
+ return_value.ly_voice = seq_music
2818
+
2819
+ # create \figuremode { figured bass elements }
2820
+ if figured_bass_builder.has_relevant_elements:
2821
+ fbass_music = musicexp.SequentialMusic()
2822
+ fbass_music.elements = group_repeats(figured_bass_builder.elements)
2823
+ v = musicexp.ModeChangingMusicWrapper()
2824
+ v.mode = 'figuremode'
2825
+ v.element = fbass_music
2826
+ if hasattr(options, 'shift_meter') and options.shift_meter:
2827
+ sd[-1].element = v
2828
+ v = sd[-1]
2829
+ sd.pop()
2830
+ return_value.figured_bass = v
2831
+
2832
+ # create \chordmode { chords }
2833
+ if chordnames_builder.has_relevant_elements:
2834
+ cname_music = musicexp.SequentialMusic()
2835
+ cname_music.elements = group_repeats(chordnames_builder.elements)
2836
+ v = musicexp.ModeChangingMusicWrapper()
2837
+ v.mode = 'chordmode'
2838
+ v.element = cname_music
2839
+ if hasattr(options, 'shift_meter') and options.shift_meter:
2840
+ sd[-1].element = v
2841
+ v = sd[-1]
2842
+ sd.pop()
2843
+ return_value.chordnames = v
2844
+
2845
+ # create diagrams for FretBoards engraver
2846
+ if fretboards_builder.has_relevant_elements:
2847
+ fboard_music = musicexp.SequentialMusic()
2848
+ fboard_music.elements = group_repeats(fretboards_builder.elements)
2849
+ v = musicexp.MusicWrapper()
2850
+ v.element = fboard_music
2851
+ if hasattr(options, 'shift_meter') and options.shift_meter:
2852
+ sd[-1].element = v
2853
+ v = sd[-1]
2854
+ sd.pop()
2855
+ return_value.fretboards = v
2856
+
2857
+ # coll = []
2858
+ # pending = []
2859
+
2860
+ # for elt in return_value.ly_voice.element.elements:
2861
+ # if isinstance(elt, musicexp.TimeScaledMusic):
2862
+ # print elt.element.elements
2863
+ # pending.append(elt)
2864
+ # else:
2865
+ # coll.append(elt)
2866
+
2867
+ # if pending:
2868
+ # coll.extend(pending)
2869
+
2870
+ # return_value.ly_voice.element.elements = coll
2871
+
2872
+ return return_value
2873
+
2874
+
2875
+ def musicxml_id_to_lily(id):
2876
+ digits = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five',
2877
+ 'Six', 'Seven', 'Eight', 'Nine', 'Ten']
2878
+
2879
+ for digit in digits:
2880
+ d = digits.index(digit)
2881
+ id = re.sub('%d' % d, digit, id)
2882
+
2883
+ id = re.sub('[^a-zA-Z]', 'X', id)
2884
+ return id
2885
+
2886
+
2887
+ def voices_in_part(part):
2888
+ """Return a Name -> Voice dictionary for PART"""
2889
+ part.interpret()
2890
+ part.extract_voices()
2891
+ voices = part.get_voices()
2892
+ part_info = part.get_staff_attributes()
2893
+
2894
+ return (voices, part_info)
2895
+
2896
+
2897
+ def voices_in_part_in_parts(parts):
2898
+ """return a Part -> Name -> Voice dictionary"""
2899
+ # don't crash if Part doesn't have an id (that's invalid MusicXML,
2900
+ # but such files are out in the wild!)
2901
+ dictionary = {}
2902
+ for p in parts:
2903
+ voices = voices_in_part(p)
2904
+ if hasattr(p, "id"):
2905
+ dictionary[p.id] = voices
2906
+ else:
2907
+ # TODO: extract correct part id from other sources
2908
+ dictionary[None] = voices
2909
+ return dictionary
2910
+
2911
+
2912
+ def get_all_voices(parts):
2913
+ all_voices = voices_in_part_in_parts(parts)
2914
+
2915
+ all_ly_voices = {}
2916
+ all_ly_staffinfo = {}
2917
+ for p, (name_voice, staff_info) in list(all_voices.items()):
2918
+
2919
+ part_ly_voices = OrderedDict()
2920
+ for n, v in list(name_voice.items()):
2921
+ ly.progress(_("Converting to LilyPond expressions..."), True)
2922
+ # musicxml_voice_to_lily_voice returns (lily_voice, {nr->lyrics, nr->lyrics})
2923
+ voice = musicxml_voice_to_lily_voice(v)
2924
+ part_ly_voices[n] = voice
2925
+
2926
+ all_ly_voices[p] = part_ly_voices
2927
+ all_ly_staffinfo[p] = staff_info
2928
+
2929
+ return (all_ly_voices, all_ly_staffinfo)
2930
+
2931
+
2932
+ def option_parser():
2933
+ p = ly.get_option_parser(usage=_("musicxml2ly [OPTION]... FILE.xml"),
2934
+ description=_("""Convert MusicXML from FILE.xml to LilyPond input.
2935
+ If the given filename is -, musicxml2ly reads from the command line.
2936
+ """), add_help_option=False)
2937
+
2938
+ p.add_option("-h", "--help",
2939
+ action="help",
2940
+ help=_("show this help and exit"))
2941
+
2942
+ p.version = ('%prog (LilyPond) ' + lilypond_version + '\n\n'
2943
+ +
2944
+ _("""Copyright (c) 2005--2023 by
2945
+ Han-Wen Nienhuys <hanwen@xs4all.nl>,
2946
+ Jan Nieuwenhuizen <janneke@gnu.org> and
2947
+ Reinhold Kainhofer <reinhold@kainhofer.com>
2948
+ Patrick L. Schmidt <pls@philomelos.net>
2949
+ """
2950
+ +
2951
+ """
2952
+ This program is free software. It is covered by the GNU General Public
2953
+ License and you are welcome to change it and/or distribute copies of it
2954
+ under certain conditions. Invoke as `%s --warranty' for more
2955
+ information.""") % 'lilypond')
2956
+
2957
+ p.add_option("--version",
2958
+ action="version",
2959
+ help=_("show version number and exit"))
2960
+
2961
+ p.add_option('-v', '--verbose',
2962
+ action="callback",
2963
+ callback=ly.handle_loglevel_option,
2964
+ callback_args=("DEBUG",),
2965
+ help=_("be verbose"))
2966
+
2967
+ p.add_option('', '--lxml',
2968
+ action="store_true",
2969
+ default=False,
2970
+ dest="use_lxml",
2971
+ help=_("use lxml.etree; uses less memory and cpu time"))
2972
+
2973
+ p.add_option('-z', '--compressed',
2974
+ action="store_true",
2975
+ dest='compressed',
2976
+ default=False,
2977
+ help=_("input file is a compressed MusicXML file "
2978
+ "(by default, activate if file extension is .mxl)"))
2979
+
2980
+ p.add_option('-r', '--relative',
2981
+ action="store_true",
2982
+ default=True,
2983
+ dest="relative",
2984
+ help=_("convert pitches in relative mode (default)"))
2985
+
2986
+ p.add_option('-a', '--absolute',
2987
+ action="store_false",
2988
+ dest="relative",
2989
+ help=_("convert pitches in absolute mode"))
2990
+
2991
+ p.add_option('-l', '--language',
2992
+ metavar=_("LANG"),
2993
+ action="store",
2994
+ help=_("use LANG for pitch names, e.g. 'deutsch' for note names in German"))
2995
+
2996
+ p.add_option("--loglevel",
2997
+ help=_("Print log messages according to LOGLEVEL "
2998
+ "(NONE, ERROR, WARNING, PROGRESS (default), DEBUG)"),
2999
+ metavar=_("LOGLEVEL"),
3000
+ action='callback',
3001
+ callback=ly.handle_loglevel_option,
3002
+ type='string')
3003
+
3004
+ p.add_option('--nd', '--no-articulation-directions',
3005
+ action="store_false",
3006
+ default=True,
3007
+ dest="convert_directions",
3008
+ help=_("do not convert directions (^, _ or -) for articulations, dynamics, etc."))
3009
+
3010
+ p.add_option('--nrp', '--no-rest-positions',
3011
+ action="store_false",
3012
+ default=True,
3013
+ dest="convert_rest_positions",
3014
+ help=_("do not convert exact vertical positions of rests"))
3015
+
3016
+ p.add_option('--nsb', '--no-system-breaks',
3017
+ action="store_false",
3018
+ default=True,
3019
+ dest="convert_system_breaks",
3020
+ help=_("ignore system breaks"))
3021
+
3022
+ p.add_option('--npb', '--no-page-breaks',
3023
+ action="store_false",
3024
+ default=True,
3025
+ dest="convert_page_breaks",
3026
+ help=_("ignore page breaks"))
3027
+
3028
+ p.add_option('--npm', '--no-page-margins',
3029
+ action="store_false",
3030
+ default=True,
3031
+ dest="convert_page_margins",
3032
+ help=_("ignore page margins"))
3033
+
3034
+ p.add_option('--npl', '--no-page-layout',
3035
+ action="store_false",
3036
+ default=True,
3037
+ dest="convert_page_layout",
3038
+ help=_("do not convert the exact page layout and breaks (shortcut for \"--nsb --npb --npm\" options)"))
3039
+
3040
+ p.add_option('--nsd', '--no-stem-directions',
3041
+ action="store_false",
3042
+ default=True,
3043
+ dest="convert_stem_directions",
3044
+ help=_("ignore stem directions from MusicXML, use lilypond's automatic stemming instead"))
3045
+
3046
+ p.add_option('--nb', '--no-beaming',
3047
+ action="store_false",
3048
+ default=True,
3049
+ dest="convert_beaming",
3050
+ help=_("do not convert beaming information, use lilypond's automatic beaming instead"))
3051
+
3052
+ p.add_option('-o', '--output',
3053
+ metavar=_("FILE"),
3054
+ action="store",
3055
+ default=None,
3056
+ type='string',
3057
+ dest='output_name',
3058
+ help=_("set output filename to FILE, stdout if -"))
3059
+
3060
+ p.add_option('-m', '--midi',
3061
+ action="store_true",
3062
+ default=False,
3063
+ dest="midi",
3064
+ help=_("activate midi-block in .ly file"))
3065
+
3066
+ # transpose function
3067
+ p.add_option('--transpose',
3068
+ metavar=_("TOPITCH"),
3069
+ action="store",
3070
+ dest="transpose",
3071
+ help=_("set pitch to transpose by the interval between pitch 'c' and TOPITCH"))
3072
+
3073
+ # time signature changing function
3074
+ p.add_option('--sm', '--shift-meter',
3075
+ metavar=_("BEATS/BEATTYPE"),
3076
+ action="store",
3077
+ dest="shift_meter",
3078
+ help=_("change the length|duration of notes as a function of a given time signature to make the score look faster or slower, (eg. '4/4' or '2/2')"))
3079
+
3080
+ # switch tabstaff clef
3081
+ p.add_option('--tc', '--tab-clef',
3082
+ metavar=_("TABCLEFNAME"),
3083
+ action="store",
3084
+ dest="tab_clef",
3085
+ help=_("switch between two versions of tab clefs (\"tab\" and \"moderntab\")"))
3086
+
3087
+ # StringNumber stencil on/off
3088
+ p.add_option('--sn', '--string-numbers',
3089
+ metavar=_("t[rue]/f[alse]"),
3090
+ action="store",
3091
+ dest="string_numbers",
3092
+ help=_("deactivate string number stencil with --string-numbers f[alse]. Default is t[rue]"))
3093
+
3094
+ # StringNumber stencil on/off
3095
+ p.add_option('--fb', '--fretboards',
3096
+ action="store_true",
3097
+ default=False,
3098
+ dest="fretboards",
3099
+ help=_("converts '<frame>' events to a separate FretBoards voice instead of markups"))
3100
+
3101
+ p.add_option_group('',
3102
+ description=(
3103
+ _("Report bugs via %s")
3104
+ % 'bug-lilypond@gnu.org') + '\n')
3105
+ return p
3106
+
3107
+
3108
+ def print_voice_definitions(printer, part_list, voices):
3109
+ for part in part_list:
3110
+ part_id = part.id
3111
+ nv_dict = voices.get(part_id, {})
3112
+ for (name, voice) in list(nv_dict.items()):
3113
+ k = music_xml_voice_name_to_lily_name(part_id, name)
3114
+ printer.dump('%s = ' % k)
3115
+ voice.ly_voice.print_ly(printer)
3116
+ printer.newline()
3117
+ if voice.chordnames:
3118
+ cnname = music_xml_chordnames_name_to_lily_name(part_id, name)
3119
+ printer.dump('%s = ' % cnname)
3120
+ voice.chordnames.print_ly(printer)
3121
+ printer.newline()
3122
+ for l in voice.lyrics_order:
3123
+ lname = music_xml_lyrics_name_to_lily_name(part_id, name, l)
3124
+ printer.dump('%s = ' % lname)
3125
+ voice.lyrics_dict[l].print_ly(printer)
3126
+ printer.newline()
3127
+ if voice.figured_bass:
3128
+ fbname = music_xml_figuredbass_name_to_lily_name(part_id, name)
3129
+ printer.dump('%s = ' % fbname)
3130
+ voice.figured_bass.print_ly(printer)
3131
+ printer.newline()
3132
+ if voice.fretboards:
3133
+ fbdname = music_xml_fretboards_name_to_lily_name(part_id, name)
3134
+ printer.dump('%s = ' % fbdname)
3135
+ voice.fretboards.print_ly(printer)
3136
+ printer.newline()
3137
+
3138
+
3139
+ # format the information about the staff in the form
3140
+ # [staffid,
3141
+ # [
3142
+ # [voiceid1, [lyricsid11, lyricsid12,...], figuredbassid1],
3143
+ # [voiceid2, [lyricsid21, lyricsid22,...], figuredbassid2],
3144
+ # ...
3145
+ # ]
3146
+ # ]
3147
+ # raw_voices is of the form [(voicename, lyricsids, havefiguredbass)*]
3148
+
3149
+
3150
+ def format_staff_info(part_id, staff_id, raw_voices):
3151
+ voices = []
3152
+ for (v, lyricsids, figured_bass, chordnames, fretboards) in raw_voices:
3153
+ voice_name = music_xml_voice_name_to_lily_name(part_id, v)
3154
+ voice_lyrics = [music_xml_lyrics_name_to_lily_name(part_id, v, l)
3155
+ for l in lyricsids]
3156
+ figured_bass_name = ''
3157
+ if figured_bass:
3158
+ figured_bass_name = music_xml_figuredbass_name_to_lily_name(
3159
+ part_id, v)
3160
+ chordnames_name = ''
3161
+ if chordnames:
3162
+ chordnames_name = music_xml_chordnames_name_to_lily_name(
3163
+ part_id, v)
3164
+ fretboards_name = ''
3165
+ if fretboards:
3166
+ fretboards_name = music_xml_fretboards_name_to_lily_name(
3167
+ part_id, v)
3168
+ voices.append([voice_name, voice_lyrics, figured_bass_name,
3169
+ chordnames_name, fretboards_name])
3170
+ return [staff_id, voices]
3171
+
3172
+
3173
+ def update_score_setup(score_structure, part_list, voices, parts):
3174
+ for part_definition in part_list:
3175
+ part_id = part_definition.id
3176
+ nv_dict = voices.get(part_id)
3177
+ if not nv_dict:
3178
+ if len(part_list) == len(voices) == 1:
3179
+ # If there is only one part, infer the ID.
3180
+ # See input/regression/musicxml/41g-PartNoId.xml.
3181
+ nv_dict = list(voices.values())[0]
3182
+ voices[part_id] = nv_dict
3183
+ else:
3184
+ ly.warning(_('unknown part in part-list: %s') % part_id)
3185
+ continue
3186
+
3187
+ staves = reduce(lambda x, y: x + y,
3188
+ [list(voice.voicedata._staves.keys())
3189
+ for voice in list(nv_dict.values())],
3190
+ [])
3191
+ staves_info = []
3192
+ if len(staves) > 1:
3193
+ staves_info = []
3194
+ staves = sorted(set(staves))
3195
+ for s in staves:
3196
+ thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass, voice.chordnames, voice.fretboards)
3197
+ for (voice_name, voice) in list(nv_dict.items())
3198
+ if voice.voicedata._start_staff == s]
3199
+ staves_info.append(format_staff_info(
3200
+ part_id, s, thisstaff_raw_voices))
3201
+ else:
3202
+ thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass, voice.chordnames, voice.fretboards)
3203
+ for (voice_name, voice) in list(nv_dict.items())]
3204
+ staves_info.append(format_staff_info(
3205
+ part_id, None, thisstaff_raw_voices))
3206
+ score_structure.set_part_information(part_id, staves_info)
3207
+
3208
+ sounds = []
3209
+ for part in parts:
3210
+ for measure in part.get_typed_children(musicxml.Measure):
3211
+ for sound in measure.get_typed_children(musicxml.Sound):
3212
+ sounds.append(sound)
3213
+ for direction in measure.get_typed_children(musicxml.Direction):
3214
+ for sound in direction.get_typed_children(musicxml.Sound):
3215
+ sounds.append(sound)
3216
+
3217
+ score_structure.set_tempo('100')
3218
+ if len(sounds) != 0:
3219
+ for sound in sounds:
3220
+ if (sound.get_tempo() is not None and sound.get_tempo() != ""):
3221
+ score_structure.set_tempo(sound.get_tempo())
3222
+ break
3223
+
3224
+
3225
+ # Set global values in the \layout block, like auto-beaming etc.
3226
+ def update_layout_information():
3227
+ if not conversion_settings.ignore_beaming and layout_information:
3228
+ layout_information.set_context_item('Score', 'autoBeaming = ##f')
3229
+ if musicexp.get_string_numbers() == "f":
3230
+ layout_information.set_context_item(
3231
+ 'Score', '\\override StringNumber #\'stencil = ##f')
3232
+
3233
+ # \n\t\t\t\t\\override StringNumber #\'stencil = ##f
3234
+
3235
+
3236
+ def print_ly_preamble(printer, filename):
3237
+ printer.dump_version(lilypond_version)
3238
+ printer.print_verbatim(
3239
+ '% automatically converted by musicxml2ly from ' + filename)
3240
+ printer.newline()
3241
+ printer.dump(r'\pointAndClickOff')
3242
+ printer.newline()
3243
+ if options.midi:
3244
+ printer.newline()
3245
+ printer.dump(r'\include "articulate.ly"')
3246
+ printer.newline()
3247
+
3248
+
3249
+ def print_ly_additional_definitions(printer, filename=None):
3250
+ if needed_additional_definitions:
3251
+ printer.newline()
3252
+ printer.print_verbatim(
3253
+ '%% additional definitions required by the score:')
3254
+ printer.newline()
3255
+ for a in sorted(set(needed_additional_definitions)):
3256
+ printer.print_verbatim(additional_definitions.get(a, ''))
3257
+ printer.newline()
3258
+ printer.newline()
3259
+
3260
+ # Read in the tree from the given I/O object (either file or string) and
3261
+ # demarshall it using the classes from the musicxml.py file
3262
+
3263
+
3264
+ def read_xml(io_object, use_lxml):
3265
+ if use_lxml:
3266
+ import lxml.etree
3267
+ tree = lxml.etree.parse(io_object)
3268
+ mxl_tree = musicxml.lxml_demarshal_node(tree.getroot())
3269
+ return mxl_tree
3270
+ else:
3271
+ from xml.dom import minidom, Node
3272
+ doc = minidom.parse(io_object)
3273
+ node = doc.documentElement
3274
+ return musicxml.minidom_demarshal_node(node)
3275
+ return None
3276
+
3277
+
3278
+ def read_musicxml(filename, compressed, use_lxml):
3279
+ raw_string = None
3280
+ if compressed:
3281
+ if filename == "-":
3282
+ ly.progress(
3283
+ _("Input is compressed, extracting raw MusicXML data from stdin"), True)
3284
+ # unfortunately, zipfile.ZipFile can't read directly from
3285
+ # stdin, so copy everything from stdin to a temp file and read
3286
+ # that. TemporaryFile() will remove the file when it is closed.
3287
+ tmp = tempfile.TemporaryFile()
3288
+ # Make sys.stdin binary
3289
+ sys.stdin = os.fdopen(sys.stdin.fileno(), 'rb', 0)
3290
+ bytes_read = sys.stdin.read(8192)
3291
+ while bytes_read:
3292
+ tmp.write(bytes_read)
3293
+ bytes_read = sys.stdin.read(8192)
3294
+ z = zipfile.ZipFile(tmp, "r")
3295
+ else:
3296
+ ly.progress(
3297
+ _("Input file %s is compressed, extracting raw MusicXML data") % filename, True)
3298
+ z = zipfile.ZipFile(filename, "r")
3299
+ container_xml = z.read("META-INF/container.xml").decode("utf-8")
3300
+ if not container_xml:
3301
+ return None
3302
+ container = read_xml(io.StringIO(container_xml), use_lxml)
3303
+ if not container:
3304
+ return None
3305
+ rootfiles = container.get_maybe_exist_named_child('rootfiles')
3306
+ if not rootfiles:
3307
+ return None
3308
+ rootfile_list = rootfiles.get_named_children('rootfile')
3309
+ mxml_file = None
3310
+ if len(rootfile_list) > 0:
3311
+ mxml_file = getattr(rootfile_list[0], 'full-path', None)
3312
+ if mxml_file:
3313
+ raw_string = z.read(mxml_file).decode('utf-8')
3314
+
3315
+ if raw_string:
3316
+ io_object = io.StringIO(raw_string)
3317
+ elif filename == "-":
3318
+ io_object = sys.stdin
3319
+ else:
3320
+ io_object = filename
3321
+
3322
+ return read_xml(io_object, use_lxml)
3323
+
3324
+
3325
+ def convert(filename, options):
3326
+ if filename == "-":
3327
+ ly.progress(_("Reading MusicXML from Standard input ..."), True)
3328
+ else:
3329
+ ly.progress(_("Reading MusicXML from %s ...") % filename, True)
3330
+
3331
+ tree = read_musicxml(filename, options.compressed, options.use_lxml)
3332
+ score_information = extract_score_information(tree)
3333
+ paper_information = extract_paper_information(tree)
3334
+
3335
+ parts = tree.get_typed_children(musicxml.Part)
3336
+ (voices, staff_info) = get_all_voices(parts)
3337
+
3338
+ score = None
3339
+ mxl_pl = tree.get_maybe_exist_typed_child(musicxml.Part_list)
3340
+ if mxl_pl:
3341
+ score = extract_score_structure(mxl_pl, staff_info)
3342
+ part_list = mxl_pl.get_named_children("score-part")
3343
+
3344
+ # score information is contained in the <work>, <identification> or <movement-title> tags
3345
+ update_score_setup(score, part_list, voices, parts)
3346
+ # After the conversion, update the list of settings for the \layout block
3347
+ update_layout_information()
3348
+
3349
+ if not options.output_name:
3350
+ options.output_name = os.path.basename(filename)
3351
+ options.output_name = os.path.splitext(options.output_name)[0]
3352
+ elif re.match(r".*\.ly", options.output_name):
3353
+ options.output_name = os.path.splitext(options.output_name)[0]
3354
+
3355
+ #defs_ly_name = options.output_name + '-defs.ly'
3356
+ if options.output_name == "-":
3357
+ output_ly_name = 'Standard output'
3358
+ else:
3359
+ output_ly_name = options.output_name + '.ly'
3360
+ ly.progress(_("Output to `%s'") % output_ly_name, True)
3361
+ printer = musicexp.Output_printer()
3362
+ #ly.progress(_("Output to `%s'") % defs_ly_name, True)
3363
+ if options.output_name == "-":
3364
+ printer.set_file(sys.stdout)
3365
+ else:
3366
+ printer.set_file(open(output_ly_name, 'w', encoding='utf-8'))
3367
+ print_ly_preamble(printer, filename)
3368
+ print_ly_additional_definitions(printer, filename)
3369
+ if score_information:
3370
+ score_information.print_ly(printer)
3371
+ if paper_information and conversion_settings.convert_page_layout:
3372
+ paper_information.print_ly(printer)
3373
+ if layout_information:
3374
+ layout_information.print_ly(printer)
3375
+ print_voice_definitions(printer, part_list, voices)
3376
+
3377
+ printer.newline()
3378
+ printer.dump("% The score definition")
3379
+ printer.newline()
3380
+ score.print_ly(printer)
3381
+ printer.newline()
3382
+
3383
+ # Syntax update to current version
3384
+ if options.output_name != "-":
3385
+ version = os.popen(
3386
+ "lilypond --version | head -1 | cut -d' ' -f3").read().strip()
3387
+ ly.progress(
3388
+ _("Converting to current version (%s) notations ..." % version), True)
3389
+ os.system("convert-ly -e %s 2> /dev/null" %
3390
+ utilities.escape_ly_output_string(output_ly_name))
3391
+
3392
+ return voices
3393
+
3394
+
3395
+ def get_existing_filename_with_extension(filename, ext):
3396
+ if os.path.exists(filename):
3397
+ return filename
3398
+ newfilename = filename + "." + ext
3399
+ if os.path.exists(newfilename):
3400
+ return newfilename
3401
+ newfilename = filename + ext
3402
+ if os.path.exists(newfilename):
3403
+ return newfilename
3404
+ return ''
3405
+
3406
+
3407
+ def main():
3408
+ opt_parser = option_parser()
3409
+
3410
+ global options
3411
+ (options, args) = opt_parser.parse_args()
3412
+
3413
+ # in case of shell entry w/o special characters
3414
+ if options.language == 'catalan' or options.language == 'catala':
3415
+ options.language = 'català'
3416
+ if options.language == 'espanol':
3417
+ options.language = 'español'
3418
+ if options.language == 'francais':
3419
+ options.language = 'français'
3420
+ if options.language == 'portugues':
3421
+ options.language = 'português'
3422
+
3423
+ if not args:
3424
+ opt_parser.print_usage()
3425
+ sys.exit(2)
3426
+
3427
+ # midi-block option
3428
+ if options.midi:
3429
+ musicexp.set_create_midi(options.midi)
3430
+
3431
+ # transpose function
3432
+ if options.transpose:
3433
+ musicexp.set_transpose(options.transpose)
3434
+
3435
+ # tab clef option
3436
+ if options.tab_clef:
3437
+ musicexp.set_tab_clef(options.tab_clef)
3438
+
3439
+ # string numbers option
3440
+ if options.string_numbers:
3441
+ musicexp.set_string_numbers(options.string_numbers)
3442
+
3443
+ if options.language:
3444
+ musicexp.set_pitch_language(options.language)
3445
+ needed_additional_definitions.append(options.language)
3446
+ additional_definitions[options.language] = "\\language \"%s\"\n" % options.language
3447
+
3448
+ conversion_settings.ignore_beaming = not options.convert_beaming
3449
+ conversion_settings.convert_page_layout = options.convert_page_layout
3450
+ if conversion_settings.convert_page_layout:
3451
+ conversion_settings.convert_system_breaks = options.convert_system_breaks
3452
+ conversion_settings.convert_page_breaks = options.convert_page_breaks
3453
+ conversion_settings.convert_page_margins = options.convert_page_margins
3454
+ else:
3455
+ conversion_settings.convert_system_breaks = False
3456
+ conversion_settings.convert_page_breaks = False
3457
+ conversion_settings.convert_page_margins = False
3458
+ conversion_settings.convert_stem_directions = options.convert_stem_directions
3459
+ conversion_settings.convert_rest_positions = options.convert_rest_positions
3460
+
3461
+ # Allow the user to leave out the .xml or xml on the filename
3462
+ basefilename = args[0]
3463
+ if basefilename == "-": # Read from stdin
3464
+ filename = "-"
3465
+ else:
3466
+ filename = get_existing_filename_with_extension(basefilename, "xml")
3467
+ if not filename:
3468
+ filename = get_existing_filename_with_extension(
3469
+ basefilename, "mxl")
3470
+ options.compressed = True
3471
+ if filename and filename.endswith("mxl"):
3472
+ options.compressed = True
3473
+
3474
+ if filename and (filename == "-" or os.path.exists(filename)):
3475
+ voices = convert(filename, options)
3476
+ else:
3477
+ ly.error(_("Unable to find input file %s") % basefilename)
3478
+ sys.exit(1)
3479
+
3480
+
3481
+ if __name__ == '__main__':
3482
+ main()