From f704ba61fdf6431c41ca9f6edbfd502b53a8bb81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8F=90=E7=93=A6=E7=89=B9=E9=92=93=E9=B1=BC=E7=8E=B3?= =?UTF-8?q?=E5=B8=88?= <144542161+Hijiwos@users.noreply.github.com> Date: Wed, 26 Feb 2025 22:39:30 +0800 Subject: [PATCH] =?UTF-8?q?JS=E8=84=9A=E6=9C=AC=EF=BC=9A=E5=8E=9F=E7=90=B4?= =?UTF-8?q?=C2=B7=E4=BA=94=E7=BA=BF=E8=B0=B1=E7=89=88=20(#370)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update repo.json * JS脚本:原琴·五线谱版 功能及其强大的原琴脚本-适配五线谱翻谱 核心功能------------------------------> 1.轻松实现根据五线谱翻版琴谱,支持单音、和弦 2.曲谱支持录入BPM、拍号 3.特殊音符支持休止符、浮点音符、(三/六)连音、(三/六)连音标记线、装饰音·倚音 注意事项------------------------------> 1.音域只有3个八度,受原琴音域限制,本脚本的上限取决于翻谱的大佬(卑微 2.实际上装饰音·倚音的时长视为基础时值单位(比如拍号2/4的基础时值单位就是4分音符)的1/16 3.制铺说明:曲谱JSON文件的notes必须保证为一行且不能包括空白符(空格和换行符等);小节之间用|隔开,|不是必要的,作用是方便曲谱维护 * update repo.json * Delete repo/js/README.md * Delete repo/js/main.js * Delete repo/js/manifest.json * Delete repo/js/settings.json * update repo.json * JS脚本:原琴·五线谱版 * update repo.json --- repo.json | 11 +- repo/js/AutoLyre/README.md | 132 +++++ repo/js/AutoLyre/assets/1.小星星.json | 9 + repo/js/AutoLyre/assets/2.小星星变奏曲.json | 10 + ...ther Goose [アンノウン・マザーグース].json | 10 + repo/js/AutoLyre/assets/example.json | 10 + repo/js/AutoLyre/assets/五线谱注解.png | Bin 0 -> 44785 bytes repo/js/AutoLyre/main.js | 470 ++++++++++++++++++ repo/js/AutoLyre/manifest.json | 15 + repo/js/AutoLyre/settings.json | 41 ++ 10 files changed, 707 insertions(+), 1 deletion(-) create mode 100644 repo/js/AutoLyre/README.md create mode 100644 repo/js/AutoLyre/assets/1.小星星.json create mode 100644 repo/js/AutoLyre/assets/2.小星星变奏曲.json create mode 100644 repo/js/AutoLyre/assets/3.Unknown Mother Goose [アンノウン・マザーグース].json create mode 100644 repo/js/AutoLyre/assets/example.json create mode 100644 repo/js/AutoLyre/assets/五线谱注解.png create mode 100644 repo/js/AutoLyre/main.js create mode 100644 repo/js/AutoLyre/manifest.json create mode 100644 repo/js/AutoLyre/settings.json diff --git a/repo.json b/repo.json index 18b38107..ba15d642 100644 --- a/repo.json +++ b/repo.json @@ -1,5 +1,5 @@ { - "time": "20250225100209", + "time": "20250226221822", "url": "https://github.com/babalae/bettergi-scripts-list/archive/refs/heads/main.zip", "file": "repo.json", "indexes": [ @@ -26554,6 +26554,15 @@ "description": "自动好感度~|~通过突发事件刷好感度,请配合好感度战斗脚本使用", "tags": [] }, + { + "name": "AutoLyre", + "type": "directory", + "hash": "be3dde47adf1e509cfe37d8b8563b7699793f38b", + "version": "1.0", + "author": "提瓦特钓鱼玳师", + "description": "原琴·五线谱版~|~功能描述:功能及其强大的原琴脚本\n核心功能------------------------------>\n1.轻松实现根据五线谱翻版琴谱,支持单音、和弦\n2.曲谱支持录入BPM、拍号\n3.特殊音符支持休止符、浮点音符、(三/六)连音、(三/六)连音标记线、装饰音·倚音\n注意事项------------------------------>\n1.音域只有3个八度,受原琴音域限制,本脚本的上限取决于翻谱的大佬(卑微\n2.实际上装饰音·倚音的时长视为基础时值单位(比如拍号2/4的基础时值单位就是4分音符)的1/16\n3.制铺说明:曲谱JSON文件的notes必须保证为一行且不能包括空白符(空格和换行符等);小节之间用|隔开,|不是必要的,作用是方便曲谱维护\n---------------------------------------->\n版本:ver1.0\n作者:提瓦特钓鱼玳师\n脚本反馈邮箱:hijiwos@hotmail.com", + "tags": [] + }, { "name": "AutoNobushi", "type": "directory", diff --git a/repo/js/AutoLyre/README.md b/repo/js/AutoLyre/README.md new file mode 100644 index 00000000..e65f23b4 --- /dev/null +++ b/repo/js/AutoLyre/README.md @@ -0,0 +1,132 @@ +# 曲谱 JSON 文件说明 +此文档供曲谱制作人阅读,本文档详细说明了如何书写一个标准格式的曲谱.json文件,包括各个字段的解释以及曲谱内容的格式要求。 + +重要:即使制作了曲谱的JSON文件,放到了正确的路径下,在调度器的JS脚本配置里也不会出现你制作的曲谱(上传方法如下) + +## 上传方法 +1.上传到BetterGI脚本仓库的repo\js\AutoLyre\assets路径下,根据已存在的曲谱在你的文件名前添加序号(例如 10.曲名.json),完成后请联系BetterGI v7群主更新JS脚本 + +2.联系BetterGI v7(1029539994)群主帮你更新到仓库 + +3.发送邮件到hijiwos@hotmail.com并说明,你的谱子将会在一段时间内更新到仓库 + +## 曲谱制作问题 +\assets\五线谱注解.png包含了五线谱(高音区和低音区)对应的4组键盘键位(相邻的红蓝大写字母为一组,每组音域为三个八度) + +有不懂的地方请在\assets\example.json内找,这个谱子内包含了该脚本的五线谱相关的所有功能 + +## 曲谱文件位置 +所有的曲谱文件应放置于 AutoLyre\assets 目录下,并在文件名前添加正确的序号 + +## 文件结构 +一个标准的曲谱.json文件的基本结构如下: + +{ + "name": "", + "author": "", + "description": "", + "bpm": "", + "time_signature": "", + "composer": "", + "arranger": "", + "notes": "" +} + +注意:仅: 右侧的双引号内的部分可以更改,具体的曲谱格式请参考assets文件夹下的example.json +## 字段说明 +name: 曲谱名,必填。 + +author: 录谱人,制作这个.json曲谱的作者名。 + +description: 描述,可以随意填写关于该曲谱的附加信息 + +bpm: 曲谱的BPM(Beats Per Minute),必填。 + +time_signature: 拍号,必填,例如 3/4 代表 以四分音符为一拍每小节三拍(被设为一拍的音符仅支持2的幂)。 + +composer: 曲师,选填。 + +arranger: 谱师,选填。 + +notes: 曲谱内容,必填,具体格式请参考以下解析规则。 + +## Notes 解析规则(重要) +notes 字段中包含的是乐谱内容。音符-必须使用-大写字母,乐谱内容使用字符串表示,小节之间用 | 隔开。单个小节的解析规则如下: + +A[4]: 表示按下A键,A键视作四分音符。 + +(ASD)[4-#]: 表示装饰音·倚音 + + 同时按下ASD键,这个和弦视作四分音符的装饰音,该装饰音的时值固定为拍号中的标准时值(3/4的标准时值为四分音符的时值)的1/16 + +A[4-8.3](AS)[4-8.3](ASD)[4-8.&]: 表示一个三连音(六连音用法与此相似,仅需将3改成6) + + A[4-8.3]: 4表示该三连音的总时值相当于四分音符,8表示当前音符在乐谱上显示的时值相当于八分音符的时值,3表示这是一个三连音的音符 + + (AS)[4-8.3]: 同上,只不过这里举的例子是和弦 + + (ASD)[4-8.&]: $表示这是当前连音的最后一个音符 + +H[4-4.3]G[4-8.&]: 表示一个三连音连音线(与三连音用法相同,区别于三连音,三连音连音线允许连线内出现不同类型的音符) + + H[4-4.3]: 第一个4表示整个三连音的总时值为一个四分音符,第二个4表示当前音符在乐谱上显示的时值相当于四分音符的时值,3表示这是一个三连音的音符 + + G[4-8.&]: 4表示整个三连音的总时值为一个四分音符,8表示这是一个八分音符,$表示这是当前连音的最后一个音符 + +@[2-8.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.$]: 表示一个六连音连音线(乐谱上表示为一个六连音连音线内包含1个八分休止符和10个十六分音符,区别于三连音,六连音的.后面的数字是6) + + @[2-8.6]: 2表示该六连音的总时值相当于一个二分音符,8表示当前音符在乐谱上显示的时值相当于八分音符的时值,6表示这是一个六连音 + + N[2-16.$]: 16表示当前音符在乐谱上显示的时值相当于十六分音符的时值,$表示这是当前连音的最后一个音符 + +@[4]: 表示一个休止符 + + 中括号内标明这是几分休止符,例如这里表示四分休止符。 + +A[4-*]: 表示一个附点四分音符 + + 表示按下A键,A键视作附点四分音符。 + +## 代码美化 +曲谱JSON文件的"notes"的值视作一个字符串,在这个字符串内可以使用空格和换行符美化代码(notes内的空格和换行符不会被读取执行) + +例如: +{ + "name": "示例曲谱", + "author": "录谱人A", + "bpm": "120", + "description": 预计时长: xxxxx, 五线谱网址: xxx.xxxx.xxx, + "time_signature": "4/4", + "composer": "曲师B", + "arranger": "谱师C", + "notes": "A[4](ASD)[8]Y[8-#]F[8-#](DFG)[8]R[4-*]T[8]|\n@[4](DFG)[8](CVB)[8]D[4]A[4]|\nA[4](ASD)[8]Y[8-#]F[8-#](DFG)[8]R[4]T[4]|\n@[4](DFG)[8](CVB)[8]D[4]A[4]" +} + +## 附: +中括号 [](- 前表示音符类型,- 后用于区分特殊音符) + +[4] 表示四分音符。 + +[16] 表示十六分音符。 + +[-#] 表示装饰音。 + +[-3] 表示三连音(使用时必须保证是三个连续的三连音)。 + +例如:[16-#] 表示十六分音符的装饰音,A[4-3]S[4-3]D[4-3] 表示一个时值为4分音符的三连音。 + +## 示例 +一个完整的曲谱.json文件示例如下(仅包含两个小节): + +文件名: 示例曲谱.json + +{ + "name": "示例曲谱", + "author": "录谱人A", + "bpm": "120", + "description": "曲谱信息", + "time_signature": "4/4", + "composer": "曲师B", + "arranger": "谱师C", + "notes": "A[4](ASD)[8]Y[8-#]F[8-#](DFG)[8]R[4-*]T[8]|\n@[4](DFG)[8](CVB)[8]D[4]A[4]|\nA[4](ASD)[8]Y[8-#]F[8-#](DFG)[8]R[4]T[4]|\n@[4](DFG)[8](CVB)[8]D[4]A[4]" +} \ No newline at end of file diff --git a/repo/js/AutoLyre/assets/1.小星星.json b/repo/js/AutoLyre/assets/1.小星星.json new file mode 100644 index 00000000..74114cb8 --- /dev/null +++ b/repo/js/AutoLyre/assets/1.小星星.json @@ -0,0 +1,9 @@ +{ + "name": "小星星", + "author": "提瓦特钓鱼玳师", + "bpm": "80", + "time_signature": "4/4", + "composer": "none", + "arranger": "none", + "notes": "Z[4]Z[4]B[4]B[4]|N[4]N[4]B[2]|V[4]V[4]C[4]C[4]|X[4]X[4]Z[2]|B[4]B[4]V[4]V[4]|C[4]C[4]X[2]|B[4]B[4]V[4]V[4]|C[4]C[4]X[2]|Z[4]Z[4]B[4]B[4]|N[4]N[4]B[2]|V[4]V[4]C[4]C[4]|X[4]X[4]Z[2]|" +} \ No newline at end of file diff --git a/repo/js/AutoLyre/assets/2.小星星变奏曲.json b/repo/js/AutoLyre/assets/2.小星星变奏曲.json new file mode 100644 index 00000000..f03fccb4 --- /dev/null +++ b/repo/js/AutoLyre/assets/2.小星星变奏曲.json @@ -0,0 +1,10 @@ +{ + "name": "小星星变奏曲", + "author": "提瓦特钓鱼玳师", + "description": "五线谱网址:https://www.tanqinpu.com/pu/5643.html", + "bpm": "120", + "time_signature": "4/4", + "composer": "莫扎特", + "arranger": "寒风", + "notes": "A[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[8-*]D[16]|\nS[2]|\nA[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[8-*]D[16]|\nS[2]|\n\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]F[16-#]D[16-#]S[16-#]D[8-*]F[16]|\nD[4]S[4]|\n\nA[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]D[16-#]S[16-#]A[16-#]S[8-*]D[16]|\nA[2]|\n\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\nH[16]G[16]F[16]G[16]F[16]G[16]H[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]G[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]F[16]D[16]|\n\nD[16]S[16]A[16]S[16]A[16]S[16]D[16]S[16]|\nH[16]G[16]F[16]G[16]E[16]Q[16]H[16]G[16]|\nG[16]F[16]D[16]F[16]W[16]J[16]G[16]F[16]|\nF[16]D[16]S[16]D[16]Q[16]G[16]F[16]D[16]|\nG[16]D[16]S[16]|\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\n\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\n\nA[4]A[4]|\n(AG)[4](AG)[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](BMS)[8-*]V[16]|\n(CBA)[4]@[4]|\nA[4]A[4]|\n(AG)[4](AG)[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](BMS)[8-*]V[16]|\n(CBA)[4]@[4]|\n(AG)[4](AG)[4]|\n(AF)[4](MF)[4]|\n(AD)[8-*]S[16](AD)[8-*]F[16]|\n(MD)[4]S[4]|\n\n(AG)[4](AG)[4]|\n(AF)[4](MF)[4]|\n(BD)[8-*]S[16](BD)[8-*]F[16]|\n(BD)[4]S[4]|\n(CBA)[4]A[8-*]M[32]A[32]|\nG[4](AG)[4]|\n\n(AGH)[4](AFH)[4]|\n(AFG)[4](MDG)[4]|\n(NDF)[4](NSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](CBM)[8-*]V[16]|\n(CBA)[4]@[4]|\n\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]J[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]J[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\n\nG[4-8.3]F[4-8.3]G[4-8.$]E[4-8.3]Q[4-8.3]G[4-8.$]|\nG[4-8.3]D[4-8.3]F[4-8.$]W[4-8.3]J[4-8.3]F[4-8.$]|\nF[4-8.3]S[4-8.3]D[4-8.$]E[4-8.3]G[4-8.3]D[4-8.$]|\nD[4-8.3]A[4-8.3]S[4-8.$]F[4-8.3]S[4-8.3]M[4-8.$]|\nG[4-8.3]F[4-8.3]G[4-8.$]E[4-8.3]H[4-8.3]G[4-8.$]|\nG[4-8.3]D[4-8.3]F[4-8.$]W[4-8.3]G[4-8.3]F[4-8.$]|\nF[4-8.3]S[4-8.3]D[4-8.$]Q[4-8.3]H[4-8.3]D[4-8.$]|\nG[8-*]D[16]S[4]|\n\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]F[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\n\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n(DG)[4](DG)[4]|\n(DF)[4]S[4]|\n(SD)[4](AD)[8-*]H[16]|\n(AD)[4](MS)[4-8.3]D[4-8.3]F[4-8.$]|\n\n(DG)[4](DG)[4]|\n(DF)[4]S[4]|\n(SD)[4](AD)[8-*]H[16]|\n(AD)[4](MS)[4-8.3]F[4-8.3]S[4-8.$]|\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n\nA[4]@[8]A[8]|\nG[4]@[8]G[8]|\nH[4]@[8]H[8]|\nG[4]@[8](DG)[8]|\n@[8](DF)[8]@[8](SF)[8]|\n@[8](SD)[8]@[8](AD)[8]|\n@[8](AS)[8]@[8](MS)[8]|\nA[4-*]@[8]|\nA[4]@[8]A[8]|\nG[4]@[8]G[8]|\nH[4]@[8]H[8]|\nG[4]@[8](DG)[8]|\n@[8](DF)[8]@[8](SF)[8]|\n@[8](SD)[8]@[8](AD)[8]|\n@[8](AS)[8]@[8](MS)[8]|\nA[4-*]@[8]|\n\nG[4-*]G[8]|\nF[4-*]F[8]|\nD[4]@[8]D[8]|\nS[4]@[8]B[8]|\nG[4-*]G[16]F[16]|\nF[4]@[8]F[16]D[16]|\nD[4]@[8]F[16]G[16]|\nS[4-*]F[16]S[16]|\n\nA[4-*]A[16]D[16]|\nG[4]@[8]G[16]D[16]|\nH[4-*]H[16]Q[16]|\nG[4]@[8]D[16]G[16]|\n@[8]G[16]F[16]@[8]S[16]F[16]|\n@[8]F[16]D[16]@[8]G[16]D[16]|\n@[8]A[16]S[16]@[8]F[16]S[16]|\n@[8]M[16]A[16]@[8]@[8]|\n\n(CBA)[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVB)[8]@[8]|\n(CBA)[8]@[8]()[8]@[8]|\n(ZCA)[4]@[4]|\n(CBA)[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVB)[8]@[8]|\n(CBA)[8]@[8]()[8]@[8]|\n(ZCA)[4]@[4]|\n\n@[2]|\nX[16]Z[16]X[16]Z[16]X[16]C[16]V[16]X[16]|\nX[16]Z[16]X[16]C[16]V[16]C[16]V[16]B[16]|\nB[16]V[16]B[16]V[16]B[16]V[16]B[16]V[16]|\nB[16]V[16]B[16]V[16]B[16]V[16]B[16]V[16]|\nB[16]V[16]B[16]V[16]B[16]N[16]M[16]B[16]|\n\nA[16]M[16]A[16]S[16]D[16]S[16]D[16]F[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]|\nA[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVM)[8]@[8]|\n(CBM)[4]@[4]|\n\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\nG[16]Q[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nF[16]D[16]S[16]A[16]M[16]N[16]B[16]V[16]|\nC[8]D[8]F[8]G[8]|\nG[8-*]D[16]S[8]@[8]|\n\nG[16]Q[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nF[16]D[16]S[16]A[16]M[16]N[16]B[16]V[16]|\nC[8]D[8]F[8]F[8]|\nG[8-*]D[16]S[8]@[8]|\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\n\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\n\nA[8]S[8]D[8]F[8]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\nA[8]S[8]D[8]F[8]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\n\nB[8]G[8]H[8]G[8]|\n(NG)[4](MF)[4]|\n(AD)[8]B[8](ND)[8]B[8]|\n(VD)[4](VS)[4]|\n(CS)[4](CA)[4]|\n(CNA)[4](XNM)[4]|\n(BA)[8]A[8]S[8]D[8]|\n(BG)[8]F[8]D[8]S[8]|\n\nA[8]S[8]D[8]F[8]|\nF[8]G[16]@[16]F[8]G[16]@[16]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\n\nA[4]A[4]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(DF)[4]S[4]|\n(SD)[4-*]A[8]A[8]@[8]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\nA[4]A[4]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(DF)[4]S[4]|\n(SD)[4-*]A[8]A[8]@[8]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\n\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[8-*]F[16]|\nD[4]S[4]|\n(BA)[4]A[4]|\n(BA)[8]M[8]N[8]M[8]|\n(BA)[8]A[8]S[8]D[8]|\n(BF)[8]G[8]H[8]J[8]|\n\nQ[4]Q[4]|\nG[4]G[4]|\n(FH)[4](FH)[4]|\n(AG)[4](AD)[8-*]G[16]|\n(MF)[4](MS)[8-*]F[16]|\n(AD)[4](CBA)[4]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\n\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n@[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nF[8]X[8]A[8]X[8]F[8]X[8]M[8]X[8]|\nD[8]Z[8]A[8]Z[8]@[8]B[8](AD)[8]B[8]|\n@[8]N[8](AS)[8]N[8]@[8]B[8](MS)[8]B[8]|\n\n@[8]B[8](AD)[8]B[8]@[8]B[8](AG)[8]B[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n(MS)[8]A[8]M[8]N[8]B[8]V[8]C[8]X[8]|\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\n\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]A[8](SF)[8]A[8]@[8]M[8](SF)[8]M[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n\nA[8-*]B[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\nA[8-*]B[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\nG[8-*]H[32]J[32]Q[16]J[16]H[16]G[16]|\nG[16]F[32]@[32]D[16]S[32]@[32]A[16]M[32]@[32]|\nA[8-*]S[32-#]A[32-#]M[32-#]A[32-#]S[16]D[8-*]F[32-#]D[32-#]S[32-#]D[32-#]F[16]|\n\nD[8-*]F[32]D[32]S[16]D[16]F[16]F[16]|\nG[8-*]H[32]J[32]Q[32]W[32]E[32]W[32]Q[32]J[32]H[32]G[32]|\nG[32]F[32]R[32]E[32]E[32]W[32]W[32]Q[32]Q[32]J[32]J[32]H[32]H[32]G[32]G[32]F[32]|\n\nD[16-*]Q[32]Q[8]Q[32]W[32]E[32]W[32]Q[16-*]F[32]|\nH[4]G[8]@[32]H[64-32.3]G[64-32.$]F[64-32.3]D[64-32.3]S[64-32.$]|\nA[8-*]M[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\n\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CBA)[4]@[4]@[4]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CBA)[4]@[4]@[4]|\n\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]E[16]G[16]E[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]W[16]F[16]W[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]Q[16]D[16]Q[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]G[16]M[16]G[16]M[16]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CA)[4]@[4]@[4]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]E[16]G[16]E[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]W[16]F[16]W[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]Q[16]D[16]Q[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]G[16]M[16]G[16]M[16]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n\n(CBA)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]@[4](XVB)[4]|\n\nA[16]B[16]N[16]M[16]A[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]A[16]S[16]M[16]S[16]|\nA[16]B[16]N[16]M[16]A[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]A[16]S[16]M[16]S[16]|\n\nA[4]@[16]X[16]Z[16]X[16]@[16]C[16]X[16]C[16]|\n@[16]B[16]V[16]B[16]@[16]C[16]X[16]C[16]@[16]B[16]V[16]B[16]|\n@[16]A[16]M[16]A[16]@[16]D[16]S[16]D[16]@[16]G[16]F[16]G[16]|\n(ADG)[4]@[4]@[4]" +} \ No newline at end of file diff --git a/repo/js/AutoLyre/assets/3.Unknown Mother Goose [アンノウン・マザーグース].json b/repo/js/AutoLyre/assets/3.Unknown Mother Goose [アンノウン・マザーグース].json new file mode 100644 index 00000000..a4a1bc7e --- /dev/null +++ b/repo/js/AutoLyre/assets/3.Unknown Mother Goose [アンノウン・マザーグース].json @@ -0,0 +1,10 @@ +{ + "name": "Unknown Mother Goose [アンノウン・マザーグース]", + "author": "提瓦特钓鱼玳师", + "description": "五线谱网址:https://musescore.com/shafana/unknown-mother-goose", + "bpm": "110", + "time_signature": "4/4", + "composer": "wowaka", + "arranger": "Marasy&Shafana", + "notes": "@[16]D[16]F[16]G[16]|\n(CBA)[8-*](CBA)[16](CBA)[16]M[16]A[16]M[16]A[16]B[16]M[16](CBA)[16](CBA)[4]|\n(CBA)[8](CBA)[16](CBA)[16](CBAA)[16]A[16]A[16]B[16]A[16]S[16]D[16]S[16]@[16]D[16]F[16]G[16]|\n(CBA)[8-*](CBA)[16](CBA)[16]M[16]A[16]M[16]A[16]D[16]S[16]A[16]@[16](AG)[16](AG)[8]|\n\n(CBA)[8](CBA)[16](CBA)[16](CBA)[16](CA)[16](CA)[16]B[16]B[4-8.3]V[4-8.3]C[4-8.$]X[16]D[16]F[16]G[16]|\n(CBA)[8-*](CBA)[16](CBA)[16]M[16]A[16]M[16]A[16]B[16]M[16](CBA)[16](CBA)[4]|\n(CBA)[8](CBA)[16](CBA)[16](CBA)[16]A[16]A[16]B[16]A[16]S[16]D[16]S[16]@[16]D[16]F[16]G[16]|\n\n(CBA)[8-*](CBA)[16](CBA)[16]M[16]A[16]M[16]A[16]D[16]S[16]A[16]@[16](AG)[16](AG)[8]|\n(CBA)[8](CBA)[16](CBA)[16](CBA)[16](CBA)[16](CBA)[16]B[16](BG)[4-8.3](VF)[4-8.3](CD)[4-8.$](XS)[4-8.3](CD)[4-8.3](VF)[4-8.$]|\n(ZA)[8-*](BG)[16](BG)[8](ZA)[8](ZA)[16](BG)[8-*](MJ)[8](BG)[8]|\n\n(ZA)[8-*](BG)[16](BG)[8](ZA)[8](ZA)[16](BG)[8-*](VF)[8](ZA)[8]|\n(ZA)[8-*](BG)[16](BG)[8](ZA)[8](ZA)[16](BG)[8-*](MJ)[8](BG)[8]|\n(ZA)[8-*](BG)[16](BG)[8](ZA)[8](ZA)[16](BG)[8-*](VF)[8](ZA)[8]|\n\n(AGQ)[8-*](GET)[16](GET)[8](AGQ)[8](AGQ)[16](GET)[8-*](JEU)[8](GET)[8]|\n(AGQ)[8-*](GET)[16](GET)[8](AGQ)[8](AGQ)[16](GET)[8-*](FWR)[8](BG)[8]|\n(AGQ)[8-*](GET)[16](GET)[8](AGQ)[8](AGQ)[16](GET)[8-*](JEU)[8](GET)[8]|\n\n(VAF)[8-*](AHQ)[16](AHQ)[8](VAF)[8](VAF)[16](AHQ)[8-*](MGJ)[16]G[16]H[16]Q[16]|\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]A[16]D[16]F[16]@[16]D[16]F[16]D[16]|\n(NAF)[8](NAF)[16](NAF)[16](NAF)[16]F[16]F[16]A[16]F[16]G[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n\n(NAF)[16](NAF)[16](NAF)[16](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[16]D[16]F[8]|\n(NAF)[8](NAF)[16](NAF)[16](NAF)[16]F[16]H[16]F[16]A[16](FG)[16](FG)[16]@[16]H[16]J[16]Q[16]|\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]A[16]D[16](NAF)[16](NAF)[4]|\n\n(NAF)[8](NAF)[16](NAF)[16](NAF)[16]F[16]F[16]A[16]F[16]G[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[8]F[16]A[16]|\n(AFQ)[8](AFQ)[16](AFQ)[16](AFQ)[16](AFQ)[16](AFQ)[8](AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](AGQ)[4-8.3](AGQ)[4-8.$]|\n\nZ[4](VF)[4](BG)[4-4.3](VF)[4-8.$](BG)[4-8.3](NH)[4-8.3]F[4-8.$]|\n(AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-8.3](VF)[4-8.$](AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-4.$]|\n(ZA)[4](VF)[16](VF)[8-*](BG)[4-4.3](VF)[4-8.$](BG)[4-8.3](NH)[4-8.3]F[4-8.$]|\n(AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-8.3](VF)[4-8.$](AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-4.$]|\n\n@[2-8.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.$](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6]G[2-16.6]H[2-16.$]|\n@[2-8.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.$](FG)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-8.6](HE)[2-16.6]D[2-16.6](HJ)[2-16.6]D[2-16.6](HQ)[2-16.6]D[2-16.$]|\n\n@[2-8.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.$](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](FHQ)[2-16.6](FHQ)[2-16.$]|\n@[8](FQR)[8](FQR)[8](FQR)[8](VAF)[8](VAF)[8-*]Z[16]@[8]\n(AFQ)[4](MD)[4](AF)[4]@[16](DQ)[16](DQ)[1](DQ)[16]|\n\n(DJ)[8-*](DQ)[16](DJ)[8-*](DH)[16](DH)[8-*]J[16]Q[4]|\n(DHQ)[8](DHQ)[8](EU)[8](DQ)[8](DQ)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n(DJ)[8-*](DQ)[16](DJ)[8-*](DQ)[16](DJ)[8-*]H[32]Q[32]G[4]|\n\n(AFQ)[4](MD)[4](AF)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n(DJ)[8-*](DQ)[16](DJ)[8-*](DH)[16](DH)[8]E[8]J[8-#]Q[4]|\n(DQ)[8](DQ)[8](EU)[8](DQ)[8](DQ)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n\n(DJ)[8-*](DQ)[16](DJ)[8-*](DQ)[16](DJ)[8-*]H[32]J[32]G[4]|\n@[8]F[16](MQ)[16](MQ)[8](MQ)[16](MQ)[16](FR)[16](VF)[16](VF)[16](VF)[16](VF)[16](AQ)[16](AQ)[8]|\n@[8](AQ)[16](AQ)[16](MJ)[8]J[16]Q[16](HY)[16](VF)[16](VF)[16](VF)[16](VF)[16](DE)[16](AQ)[8]|\n\n@[8](AQ)[8](MJ)[16](MJ)[16](AQ)[16](AQ)[16](MJ)[16]F[8](VF)[16](VF)[16](VF)[8](VF)[16]|\n(FR)[8]Q[8](AQ)[16](AQ)[16](AQ)[16](AQ)[16](MJ)[8-*]D[16](AQ)[16](AQ)[8-*]|\n@[8]F[16](AQ)[16](AQ)[8](AQ)[16](AQ)[16](FR)[16](VF)[16](VF)[16](VF)[16](VF)[16](AQ)[16](AQ)[8]|\n\n@[8](AQ)[16](AQ)[16](MJ)[8]J[16]Q[16](HY)[16](VF)[16](VF)[16](VF)[16](VF)[16](DE)[16](AQ)[8]|\n@[8](AQ)[8](MJ)[16](AQ)[16](AQ)[16](AQ)[16](FR)[8](AQ)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16]|\n(QU)[4](JTU)[4](HEY)[8-*](GET)[16](GET)[8]M[8]|\n\n(AHQ)[8-*](DHQ)[16](DHQ)[8](FHQ)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8]J[32]Q[32]J[16](VAF)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n\n(HEY)[8-*](GET)[16](GET)[8](DHE)[8](FQR)[8](DE)[8](AHQ)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](DQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8]J[32]Q[32]J[16](VAF)[4]|\n\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(HEY)[8-*](GET)[16](GET)[8](DHE)[8](FQR)[8](DE)[8](AQ)[4]|\nM[32]A[32]M[8]V[16]V[16]V[16]M[32]A[32]M[16]M[16]V[8]V[16]M[4]|\nM[32]A[32]M[8]V[16]V[16]V[16]M[32]A[32]M[16]M[16]V[8]V[16]M[8]N[8]|\nM[32]A[32]M[8]V[16]V[16]V[16]M[32]A[32]M[16]M[16]V[8]V[16]M[4]|\nM[32]A[32]M[8]V[16]V[16]V[16]M[32]A[32]M[16]M[16]V[8]V[16]M[8]N[8]|\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]A[16]D[16](NAF)[16](NAF)[16]D[16]F[8]|\n(NAF)[16](NAF)[16](NAF)[16](NAF)[16](NAF)[16](NA)[16](NA)[16](NA)[16](NF)[16](NG)[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[16]F[16]D[16]D[16]|\n(NAF)[16](NAF)[16](NF)[16](NF)[16](NF)[16](NF)[16](NF)[16]A[16]A[16]M[16]N[16]B[16]B[16]B[16]H[16]J[16]Q[16]|\n(NAF)[8-*](NAF)[16](NAF)[16]D[16]F[16]D[16]F[16]A[16]D[16](NAF)[16](NAF)[4]|\n\n(NAF)[8](NAF)[16](NAF)[16](NAF)[16](NF)[16]A[8]F[16]G[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n(NAF)[8]F[32]D[32]F[16]F[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[8]F[16]A[16]|\n(AFQ)[8](AFQ)[16](AFQ)[16](AFQ)[16](AQ)[16](AQ)[8](FR)[8](FQR)[16]Q[16]Q[16](AFQ)[8-*]|\n\n(FHQ)[16](FHQ)[16](FHQ)[16](FHQ)[16]@[16](AF)[16](AF)[8](FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8]|\n(FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[16](AF)[16](FQ)[16](DJ)[16](FQ)[16](FQ)[16](DJ)[8-*]|\n(FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[16](HE)[16](HE)[16](HE)[16](HE)[16](HE)[16]@[16](AF)[16](AF)[8]|\n\n(FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[16](FQ)[16](FQ)[8](DJ)[16](FQ)[16](FQ)[16](HQE)[8-*]|\n(FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[16](AF)[16](FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8]|\n(FQ)[16](FQ)[16](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8](FQ)[8](DJ)[16](FQ)[16](FQ)[16](DJ)[8-*]|\n\n(FQ)[16](FQ)[32]A[32](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8](FQ)[16](FQ)[32]A[32](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8]|\n(FQ)[16](FQ)[32]A[32](FQ)[16](FQ)[16]@[16](AF)[16](AF)[8](FQR)[8](DQE)[16](FQR)[16](FQR)[16](DQE)[8-*]|\nZ[4](VF)[4](BG)[4-4.3](VF)[4-8.$](BG)[4-8.3](NH)[4-8.3]F[4-8.$]|\n\n(AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-8.3](VF)[4-8.$](AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-4.$]|\n(ZA)[4](VF)[4](BG)[4-4.3](VF)[4-8.$](BG)[4-8.3](NH)[4-8.3]F[4-8.$]|\n(AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-8.3](VF)[4-8.$](AQ)[4-8.3](MJ)[4-8.3](NH)[4-8.$](BG)[4-8.3](VF)[4-4.$]|\n\n@[8](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.$](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6](AF)[2-16.6]N[2-16.6]G[2-16.6]H[2-16.$]|\n@[8](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.$](FG)[2-16.6]A[2-16.6](FH)[2-16.6]A[2-16.6](FH)[2-8.6](HE)[2-16.6]D[2-16.6](HJ)[2-16.6]D[2-16.6](HQ)[2-16.6]D[2-16.$]|\n\n@[8](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.$](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](HQ)[2-16.6]F[2-16.6](FHQ)[2-16.6](FHQ)[2-16.$]|\n@[8](FQR)[8](FQR)[8](DE)[8](AHQ)[8](AHQ)[8-*]Z[16]@[8]|\n(AFQ)[4](MD)[4](AF)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n\n(DJ)[8-*](DQ)[16](DJ)[8-*](DH)[16](DH)[8-*]J[16]Q[4]|\n(DHQ)[8](DHQ)[8](EU)[8](DQ)[8](DQ)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n(DJ)[8-*](DQ)[16](DJ)[8-*](DQ)[16](DJ)[8-*]H[32]J[32]G[4]|\n\n(AFQ)[4](MD)[4](AF)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n(DJ)[8-*](DQ)[16](DJ)[8-*](DH)[16](DH)[8]E[8]J[16-#]Q[4]|\n(DQ)[8](DQ)[8](EU)[8-*](DQ)[16](DQ)[4]@[16](DQ)[16](DQ)[16](DQ)[16]|\n\n(DJ)[8-*](DQ)[16](DJ)[8-*](DQ)[16](DJ)[8-*]H[32]J[32]G[4]|\n@[8]F[16](AQ)[16](AQ)[8](AQ)[16](AQ)[16](FR)[16](VF)[16](VF)[16](VF)[16](VF)[16](AQ)[16](AQ)[8]|\n@[8](AQ)[16](AQ)[16](MJ)[8]J[16]Q[16](HY)[16](VF)[16](VF)[16](VF)[16](VF)[16](DE)[16](AQ)[8]|\n\n@[8](AQ)[8](MJ)[8](AQ)[16](AQ)[16](MJ)[16]F[8](VF)[16](VF)[16](VF)[16](VF)[16](VF)[16]|\n(FR)[8](AQ)[8](AQ)[16](AQ)[16](AQ)[16](AQ)[16](MJ)[16]F[8]F[16](AQ)[16](AQ)[8-*]|\n@[8]F[16](AQ)[16](AQ)[8](AQ)[16](AQ)[16](FR)[16](VF)[16](VF)[16](VF)[16](VF)[16](AQ)[16](AQ)[8]|\n\n@[8](AQ)[16](AQ)[16](MJ)[8]J[16]Q[16](HR)[16](VF)[16](VF)[16](VF)[16](VF)[16](DE)[16](AQ)[8]|\n@[8](MJ)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16](FR)[8](FR)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16](AQ)[16]|\n(QU)[4](JTU)[16](JTU)[8-*](HEY)[8-*](JET)[16](JET)[8]M[8]|\n\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8]J[32]Q[32]J[16](VAF)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n\n(HEY)[8-*](GET)[16](GET)[8](DE)[8](FQR)[8](DE)[8](AQE)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8]J[32]Q[32]J[16](VAF)[4]|\n\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(HEY)[8-*](GET)[16](GET)[8](DHE)[8](FQR)[8](DE)[8](AGQ)[4]|\n(AGQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8]J[32]Q[32]J[16](VAF)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(HEY)[8-*](GET)[16](GET)[8](DHE)[8](FQR)[8](DE)[8](AHQ)[4]|\n\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n(MGJ)[8-*](AGQ)[16](AGQ)[8](MGJ)[8](AFQ)[8](MJ)[8](VAF)[4]|\n(AHQ)[8-*](DQE)[16](DQE)[8](FQR)[8]@[8](FQR)[16]E[32]R[32]E[8](AGQ)[8]|\n\n(HEY)[8-*](GET)[16](GET)[8](DE)[8](FR)[8](DE)[8](AQ)[4]|\n(MAF)[8]@[16](MAF)[16](MAF)[16]D[16]F[16]D[16]F[16]A[16]D[16](MAF)[16](MAF)[4]|\n(MAF)[16](MAF)[16](MAF)[16](MAF)[16](MAF)[16]F[8]A[16]F[16]G[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n\n(MAF)[8]@[16](MAF)[16](MAF)[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[16](MAF)[8]|\n(MAF)[16](MAF)[16](MAF)[16](MAF)[16](MAF)[16](AF)[16](AF)[8](FQ)[4]@[16]H[16]J[16]Q[16]|\n(MAF)[8]@[16](MAF)[16](MAF)[16]D[16]F[16]D[16]F[16]A[16]D[16](MAF)[16](MAF)[4]|\n\n(MAF)[16](MAF)[8]F[32]A[32](AF)[16]F[16]F[16]A[16]F[16]G[16]H[16]G[16]@[16]H[16]J[16]Q[16]|\n(MAF)[8]@[16](MAF)[16](MAF)[16]D[16]F[16]D[16]F[16]H[16]G[16]F[16]@[16]F[32]A[32](AF)[16](AF)[16]|\n(AFQ)[8](AFQ)[16]J[16]J[16]F[16]Q[16]J[16]J[16]F[16]Q[16]J[16]J[16]F[8-*]|\n(XCN)[1]" +} \ No newline at end of file diff --git a/repo/js/AutoLyre/assets/example.json b/repo/js/AutoLyre/assets/example.json new file mode 100644 index 00000000..f03fccb4 --- /dev/null +++ b/repo/js/AutoLyre/assets/example.json @@ -0,0 +1,10 @@ +{ + "name": "小星星变奏曲", + "author": "提瓦特钓鱼玳师", + "description": "五线谱网址:https://www.tanqinpu.com/pu/5643.html", + "bpm": "120", + "time_signature": "4/4", + "composer": "莫扎特", + "arranger": "寒风", + "notes": "A[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[8-*]D[16]|\nS[2]|\nA[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[8-*]D[16]|\nS[2]|\n\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]S[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]F[16-#]D[16-#]S[16-#]D[8-*]F[16]|\nD[4]S[4]|\n\nA[4]A[4]|\nG[4]G[4]|\nH[4]H[4]|\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[4]|\nS[4]D[16-#]S[16-#]A[16-#]S[8-*]D[16]|\nA[2]|\n\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\nH[16]G[16]F[16]G[16]F[16]G[16]H[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]G[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]F[16]D[16]|\n\nD[16]S[16]A[16]S[16]A[16]S[16]D[16]S[16]|\nH[16]G[16]F[16]G[16]E[16]Q[16]H[16]G[16]|\nG[16]F[16]D[16]F[16]W[16]J[16]G[16]F[16]|\nF[16]D[16]S[16]D[16]Q[16]G[16]F[16]D[16]|\nG[16]D[16]S[16]|\nS[16]A[16]M[16]A[16]M[16]A[16]M[16]A[16]|\n\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]H[16]Q[16]J[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nG[16]F[16]W[16]Q[16]J[16]H[16]G[16]F[16]|\nF[16]D[16]Q[16]J[16]H[16]G[16]F[16]D[16]|\nS[8]H[8]G[8]M[8]|\nA[4]@[4]|\n\nA[4]A[4]|\n(AG)[4](AG)[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](BMS)[8-*]V[16]|\n(CBA)[4]@[4]|\nA[4]A[4]|\n(AG)[4](AG)[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](BMS)[8-*]V[16]|\n(CBA)[4]@[4]|\n(AG)[4](AG)[4]|\n(AF)[4](MF)[4]|\n(AD)[8-*]S[16](AD)[8-*]F[16]|\n(MD)[4]S[4]|\n\n(AG)[4](AG)[4]|\n(AF)[4](MF)[4]|\n(BD)[8-*]S[16](BD)[8-*]F[16]|\n(BD)[4]S[4]|\n(CBA)[4]A[8-*]M[32]A[32]|\nG[4](AG)[4]|\n\n(AGH)[4](AFH)[4]|\n(AFG)[4](MDG)[4]|\n(NDF)[4](NSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](CBM)[8-*]V[16]|\n(CBA)[4]@[4]|\n\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]J[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]J[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\n\nG[4-8.3]F[4-8.3]G[4-8.$]E[4-8.3]Q[4-8.3]G[4-8.$]|\nG[4-8.3]D[4-8.3]F[4-8.$]W[4-8.3]J[4-8.3]F[4-8.$]|\nF[4-8.3]S[4-8.3]D[4-8.$]E[4-8.3]G[4-8.3]D[4-8.$]|\nD[4-8.3]A[4-8.3]S[4-8.$]F[4-8.3]S[4-8.3]M[4-8.$]|\nG[4-8.3]F[4-8.3]G[4-8.$]E[4-8.3]H[4-8.3]G[4-8.$]|\nG[4-8.3]D[4-8.3]F[4-8.$]W[4-8.3]G[4-8.3]F[4-8.$]|\nF[4-8.3]S[4-8.3]D[4-8.$]Q[4-8.3]H[4-8.3]D[4-8.$]|\nG[8-*]D[16]S[4]|\n\nZ[4-8.3]C[4-8.3]B[4-8.$]A[4-8.3]D[4-8.3]G[4-8.$]|\nQ[4-8.3]G[4-8.3]F[4-8.$]D[4-8.3]S[4-8.3]A[4-8.$]|\nH[4-8.3]G[4-8.3]H[4-8.$]Q[4-8.3]J[4-8.3]H[4-8.$]|\nH[4-8.3]F[4-8.3]G[4-8.$]G[4-8.3]Q[4-8.3]E[4-8.$]|\nE[4-8.3]F[4-8.3]F[4-8.$]F[4-8.3]F[4-8.3]W[4-8.$]|\nW[4-8.3]D[4-8.3]D[4-8.$]D[4-8.3]H[4-8.3]Q[4-8.$]|\nQ[4-8.3]S[4-8.3]H[4-8.$]H[4-8.3]G[4-8.3]M[4-8.$]|\nA[4]@[4]|\n\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n(DG)[4](DG)[4]|\n(DF)[4]S[4]|\n(SD)[4](AD)[8-*]H[16]|\n(AD)[4](MS)[4-8.3]D[4-8.3]F[4-8.$]|\n\n(DG)[4](DG)[4]|\n(DF)[4]S[4]|\n(SD)[4](AD)[8-*]H[16]|\n(AD)[4](MS)[4-8.3]F[4-8.3]S[4-8.$]|\n(CBA)[4]A[4]|\n(ADG)[4]G[4]|\n\n(AGH)[4]F[4]|\n(AFG)[4]D[4]|\n(ADF)[4](BSF)[4]|\n(BSD)[4](NAD)[4]|\n(NAS)[4](VMS)[4]|\n(CBA)[4]@[4]|\n\nA[4]@[8]A[8]|\nG[4]@[8]G[8]|\nH[4]@[8]H[8]|\nG[4]@[8](DG)[8]|\n@[8](DF)[8]@[8](SF)[8]|\n@[8](SD)[8]@[8](AD)[8]|\n@[8](AS)[8]@[8](MS)[8]|\nA[4-*]@[8]|\nA[4]@[8]A[8]|\nG[4]@[8]G[8]|\nH[4]@[8]H[8]|\nG[4]@[8](DG)[8]|\n@[8](DF)[8]@[8](SF)[8]|\n@[8](SD)[8]@[8](AD)[8]|\n@[8](AS)[8]@[8](MS)[8]|\nA[4-*]@[8]|\n\nG[4-*]G[8]|\nF[4-*]F[8]|\nD[4]@[8]D[8]|\nS[4]@[8]B[8]|\nG[4-*]G[16]F[16]|\nF[4]@[8]F[16]D[16]|\nD[4]@[8]F[16]G[16]|\nS[4-*]F[16]S[16]|\n\nA[4-*]A[16]D[16]|\nG[4]@[8]G[16]D[16]|\nH[4-*]H[16]Q[16]|\nG[4]@[8]D[16]G[16]|\n@[8]G[16]F[16]@[8]S[16]F[16]|\n@[8]F[16]D[16]@[8]G[16]D[16]|\n@[8]A[16]S[16]@[8]F[16]S[16]|\n@[8]M[16]A[16]@[8]@[8]|\n\n(CBA)[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVB)[8]@[8]|\n(CBA)[8]@[8]()[8]@[8]|\n(ZCA)[4]@[4]|\n(CBA)[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVB)[8]@[8]|\n(CBA)[8]@[8]()[8]@[8]|\n(ZCA)[4]@[4]|\n\n@[2]|\nX[16]Z[16]X[16]Z[16]X[16]C[16]V[16]X[16]|\nX[16]Z[16]X[16]C[16]V[16]C[16]V[16]B[16]|\nB[16]V[16]B[16]V[16]B[16]V[16]B[16]V[16]|\nB[16]V[16]B[16]V[16]B[16]V[16]B[16]V[16]|\nB[16]V[16]B[16]V[16]B[16]N[16]M[16]B[16]|\n\nA[16]M[16]A[16]S[16]D[16]S[16]D[16]F[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]|\nA[8]@[8](CBA)[8]@[8]|\n(ADG)[8]@[8](ADG)[8]@[8]|\n(AGH)[8]@[8](AFH)[8]@[8]|\n\n(AFG)[8]@[8](ADG)[8]@[8]|\n(NDF)[8]@[8](BSF)[8]@[8]|\n(BSD)[8]@[8](NAD)[8]@[8]|\n(VNS)[8]@[8](XVM)[8]@[8]|\n(CBM)[4]@[4]|\n\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\nG[16]Q[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nF[16]D[16]S[16]A[16]M[16]N[16]B[16]V[16]|\nC[8]D[8]F[8]G[8]|\nG[8-*]D[16]S[8]@[8]|\n\nG[16]Q[16]E[16]W[16]Q[16]J[16]H[16]G[16]|\nF[16]D[16]S[16]A[16]M[16]N[16]B[16]V[16]|\nC[8]D[8]F[8]F[8]|\nG[8-*]D[16]S[8]@[8]|\nZ[8]X[16]C[16]V[16]B[16]N[16]M[16]|\nA[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\n\nJ[16]H[16]G[16]H[16]W[16]Q[16]J[16]H[16]|\nH[16]G[16]F[16]G[16]@[16]G[16]E[16]G[16]|\n@[16]F[16]E[16]F[16]@[16]F[16]W[16]F[16]|\n@[16]D[16]W[16]D[16]@[16]D[16]Q[16]D[16]|\n@[16]S[16]Q[16]S[16]@[16]S[16]J[16]S[16]|\n(DGQ)[4]@[4]|\n\nA[8]S[8]D[8]F[8]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\nA[8]S[8]D[8]F[8]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\n\nB[8]G[8]H[8]G[8]|\n(NG)[4](MF)[4]|\n(AD)[8]B[8](ND)[8]B[8]|\n(VD)[4](VS)[4]|\n(CS)[4](CA)[4]|\n(CNA)[4](XNM)[4]|\n(BA)[8]A[8]S[8]D[8]|\n(BG)[8]F[8]D[8]S[8]|\n\nA[8]S[8]D[8]F[8]|\nF[8]G[16]@[16]F[8]G[16]@[16]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(BDF)[4]S[4]|\n(BSD)[4]A[4]|\n(AS)[4]M[4]|\nA[4]@[4]|\n\nA[4]A[4]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(DF)[4]S[4]|\n(SD)[4-*]A[8]A[8]@[8]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\nA[4]A[4]|\nG[4]G[4]|\n(GH)[4]F[4]|\n(FG)[4]D[4]|\n(DF)[4]S[4]|\n(SD)[4-*]A[8]A[8]@[8]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\n\nG[4]G[4]|\nF[4]F[4]|\nD[4]D[8-*]F[16]|\nD[4]S[4]|\n(BA)[4]A[4]|\n(BA)[8]M[8]N[8]M[8]|\n(BA)[8]A[8]S[8]D[8]|\n(BF)[8]G[8]H[8]J[8]|\n\nQ[4]Q[4]|\nG[4]G[4]|\n(FH)[4](FH)[4]|\n(AG)[4](AD)[8-*]G[16]|\n(MF)[4](MS)[8-*]F[16]|\n(AD)[4](CBA)[4]|\n(XVA)[8]M[8]N[8]M[8]|\n(CA)[4]@[4]|\n\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n@[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\nF[8]X[8]A[8]X[8]F[8]X[8]M[8]X[8]|\nD[8]Z[8]A[8]Z[8]@[8]B[8](AD)[8]B[8]|\n@[8]N[8](AS)[8]N[8]@[8]B[8](MS)[8]B[8]|\n\n@[8]B[8](AD)[8]B[8]@[8]B[8](AG)[8]B[8]|\n@[8]N[8](SF)[8]N[8]@[8]B[8](SF)[8]B[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n(MS)[8]A[8]M[8]N[8]B[8]V[8]C[8]X[8]|\n@[8]C[8]A[8]C[8]A[8]C[8]B[8]C[8]|\nG[8]C[8]A[8]C[8]G[8]C[8]A[8]C[8]|\n\nH[8]V[8]A[8]V[8]H[8]V[8]A[8]V[8]|\nG[8]C[8]A[8]C[8]@[8]M[8](DG)[8]M[8]|\n@[8]A[8](SF)[8]A[8]@[8]M[8](SF)[8]M[8]|\n@[8]B[8](AD)[8]B[8]@[8]N[8](AD)[8]N[8]|\n@[8]B[8](AS)[8]B[8]@[8]V[8](MS)[8]V[8]|\n(CA)[4]@[4]|\n\nA[8-*]B[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\nA[8-*]B[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\nG[8-*]H[32]J[32]Q[16]J[16]H[16]G[16]|\nG[16]F[32]@[32]D[16]S[32]@[32]A[16]M[32]@[32]|\nA[8-*]S[32-#]A[32-#]M[32-#]A[32-#]S[16]D[8-*]F[32-#]D[32-#]S[32-#]D[32-#]F[16]|\n\nD[8-*]F[32]D[32]S[16]D[16]F[16]F[16]|\nG[8-*]H[32]J[32]Q[32]W[32]E[32]W[32]Q[32]J[32]H[32]G[32]|\nG[32]F[32]R[32]E[32]E[32]W[32]W[32]Q[32]Q[32]J[32]J[32]H[32]H[32]G[32]G[32]F[32]|\n\nD[16-*]Q[32]Q[8]Q[32]W[32]E[32]W[32]Q[16-*]F[32]|\nH[4]G[8]@[32]H[64-32.3]G[64-32.$]F[64-32.3]D[64-32.3]S[64-32.$]|\nA[8-*]M[16]D[8-*]A[16]|\nG[8]G[4]G[8]|\n(AGH)[8](AFH)[4](AFH)[8]|\n\n(AFG)[8](ADG)[4](ADG)[8]|\nG[16]F[16]F[8]@[16]E[32]W[32]Q[32]J[32]H[32]G[32]|\nF[16-*]S[32]D[8]@[16]H[32]G[32]F[32]D[32]S[32]A[32]|\nM[16-*]N[32]G[32]F[32]D[32]S[32]A[8]M[8]|\n(VBMS)[4](CBA)[8]@[8]|\n\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CBA)[4]@[4]@[4]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CBA)[4]@[4]@[4]|\n\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]E[16]G[16]E[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]W[16]F[16]W[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]Q[16]D[16]Q[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]G[16]M[16]G[16]M[16]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n(CA)[4]@[4]@[4]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]|\nH[16]G[16]F[16]G[16]F[16]G[16]F[16]G[16]E[16]G[16]E[16]G[16]|\nG[16]F[16]D[16]F[16]D[16]F[16]D[16]F[16]W[16]F[16]W[16]F[16]|\nF[16]D[16]S[16]D[16]S[16]D[16]S[16]D[16]Q[16]D[16]Q[16]D[16]|\nD[16]S[16]A[16]S[16]A[16]S[16]A[16]S[16]G[16]M[16]G[16]M[16]|\n(CBA)[4]@[4]A[8-*]M[32]A[32]|\nG[4]@[4]A[8-*]M[32]A[32]|\n(AGH)[4](AFH)[4](AFH)[4]|\n(ADG)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]F[4](XVM)[4]|\n\n(CBA)[4]@[4]G[8-*]F[32]G[32]|\nF[4]@[4]F[8-*]D[32]F[32]|\nD[4]@[4]A[8-*]M[32]A[32]|\nS[4]@[4](XVB)[4]|\n\nA[16]B[16]N[16]M[16]A[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]A[16]S[16]M[16]S[16]|\nA[16]B[16]N[16]M[16]A[16]S[16]D[16]F[16]G[16]H[16]J[16]Q[16]|\nG[16]H[16]F[16]G[16]D[16]F[16]S[16]D[16]A[16]S[16]M[16]S[16]|\n\nA[4]@[16]X[16]Z[16]X[16]@[16]C[16]X[16]C[16]|\n@[16]B[16]V[16]B[16]@[16]C[16]X[16]C[16]@[16]B[16]V[16]B[16]|\n@[16]A[16]M[16]A[16]@[16]D[16]S[16]D[16]@[16]G[16]F[16]G[16]|\n(ADG)[4]@[4]@[4]" +} \ No newline at end of file diff --git a/repo/js/AutoLyre/assets/五线谱注解.png b/repo/js/AutoLyre/assets/五线谱注解.png new file mode 100644 index 0000000000000000000000000000000000000000..0968e47d2fa58af775fc8293c786538c4678f38c GIT binary patch literal 44785 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoLyre/main.js b/repo/js/AutoLyre/main.js new file mode 100644 index 00000000..308943fb --- /dev/null +++ b/repo/js/AutoLyre/main.js @@ -0,0 +1,470 @@ +(async function () { // 更改了连音 + + // 乐曲名(带序号) + const music_list = ["1.小星星", "2.小星星变奏曲", "3.Unknown Mother Goose [アンノウン・マザーグース]"] + const base_path = "assets/" + + /** + * + * 执行单音 + * + * @param key {string} + * + */ + async function play_note(key) { + keyDown(key); + keyUp(key); + } + + /** + * + * 执行和弦 + * + * @param keys {Array.string} + * + */ + async function play_chord(keys) { + for (const key of keys) { + play_note(key); + } + } + + /** + * + * 根据乐曲文件名生成乐曲文件路径 + * + * @param music_name 乐曲文件名 + * @returns {string} 乐曲文件路径 + */ + function path_join(music_name) { + return base_path + music_name + ".json"; + } + + /** + * + * 计算当前音符的时长(检测音符后是否有装饰音) + * + * @param sheet_list {Object[][]} 解析后的乐谱 + * @param symbol_time 每一拍的时间 + * @param symbol 以几分音符为一拍 + * @param note_type 音符类型 + * @param count 当前音符下标 + * @param note_time 当前音符的时长(默认为undefined,不为空时symbol note_type count实效) + * @returns {number} + */ + function cal_time_ornament(sheet_list, symbol_time, symbol, note_type, count, note_time=undefined) { + try { + if (note_time === undefined) { + // 该音符的正常时长 + note_time = Math.round(symbol_time * (symbol / note_type)); + } + // 装饰音时长 + let ornament_time = Math.round(symbol_time / 16) + + let check_count = count + 1; + let ornament_count = 0; // 装饰音计数 + + while (check_count < sheet_list.length) { // 装饰音不可能在曲谱末尾,else会在匹配不到装饰音的循环触发 + if (sheet_list[check_count]["spl"] === "#") { + ornament_count += 1; + } else { + if (ornament_count === 0) { + return note_time; + } else { + // 装饰音占用的时间过长就不预留时间 + if (ornament_time * ornament_count < note_time) { + return note_time - ornament_time * ornament_count; + } else { + return note_time; + } + } + } + check_count += 1; + } + } catch (error) { + log.error(`出错(cal_time_ornament): ${error}`); + } + + } + + /** + * 获取JS脚本配置 + * + * @returns {Object} 包含解析后JS脚本配置的对象,具有以下属性: + * - type {string} 执行类型:单曲和队列 + * - repeat {integer} 单曲重复次数 + * - interval {integer} 队列间隔时间(type为"single"时无此属性) + * - music {string}|{Array.string} 乐曲名(type为"single"时为 {string}, type为"queue"时为 {Array.}) + * + */ + function get_settings() { + try{ + // 读取选择的单曲 + let music_single = typeof(settings.music_selector) === 'undefined' ? 0 : settings.music_selector; + // 读取循环次数 + let music_repeat = typeof(settings.music_repeat) === 'undefined' ? 1 : parseInt(settings.music_repeat, 10); + // 读取循环间隔时间 + let repeat_interval = typeof(settings.repeat_interval) === 'undefined' ? 0 : parseInt(settings.repeat_interval, 10); + // 读取循环模式 + let repeat_mode = typeof(settings.repeat_mode) === 'undefined' ? "单曲循环" : settings.repeat_mode; + // 读取乐曲队列 + let music_queue = typeof(settings.music_queue) === 'undefined' ? 0 : settings.music_queue; + // 读取队列间隔时间 + let music_interval = typeof(settings.music_interval) === 'undefined' ? 0 : parseInt(settings.music_interval, 10); + + if (music_queue === 0) { // 单曲执行 + if (music_single !== 0) { + return { + "type": "single", + "repeat": music_repeat, + "repeat_interval": repeat_interval, + "music": music_single, + }; + } else { + log.error(`错误:JS脚本配置有误(单曲未选择)`); + } + } else { // 队列执行 + let local_music_dic = {}; // 存储本地乐曲对照字典 + let temp_music_list = []; // 存储乐曲名 + + // 写入本地乐曲对照字典 + for (const each of music_list) { + if (each !== "example") { + // 从文件名提取编号 + let temp_num = each.split(".")[0]; + local_music_dic[temp_num] = each; + } + } + + // 读取乐曲队列配置 + for (const num of music_queue.split(" ")) { + if (Object.keys(local_music_dic).includes(num)) { + temp_music_list.push(local_music_dic[num]); + log.info(`乐曲: ${local_music_dic[num]} 已加入队列`) + } else { + log.info(`编号不存在,已跳过(编号:${num})`) + } + + } + + return { + "type": "queue", + "repeat": music_repeat, + "repeat_interval": repeat_interval, + "repeat_mode": repeat_mode, + "interval": music_interval, + "music": temp_music_list + }; + } + } catch (error) { + log.error(`读取JS脚本配置时出错:${error}`); + } + } + + /** + * + * 读取并解析一个乐谱文件 + * + * @param music_name {string} 乐曲文件名 + * @returns {Promise<{}|null>} + */ + async function get_music_msg(music_name) { + + let music_path = path_join(music_name); + let file_text = ""; // 存储乐曲文件内容 + + try{ + file_text = file.readTextSync(music_path); + } catch (error) { + log.error(`文件无法读取:${music_path}\nerror:${error}`); + } + + if(file_text == null){ // 检测文件是否读取 + log.error(`读取文件 ${music_path} 错误,文件为空`); + return null ; + } else { + log.info(`文件读取成功: ${music_path}`); + } + + let music_msg_dic = {}; + + // 正则表达式,用于匹配如下内容 + let regex_name = /(?<="name": ")[\s\S]*?(?=")/ + let regex_author = /(?<="author": ")[\s\S]*?(?=")/ + let regex_bpm = /(?<="bpm": ")[\s\S]*?(?=")/ + let regex_time_signature = /(?<="time_signature": ")[\s\S]*?(?=")/ + let regex_composer = /(?<="composer": ")[\s\S]*?(?=")/ + let regex_arranger = /(?<="arranger": ")[\s\S]*?(?=")/ + let regex_notes = /(?<="notes": ")[\s\S]*?(?=")/ + + let regex_blank = /[\\n]/g + try { + // 歌曲名 + music_msg_dic["name"] = file_text.match(regex_name)[0]; + // 录谱人 + music_msg_dic["author"] = file_text.match(regex_author)[0]; + // 歌曲BPM + music_msg_dic["bpm"] = file_text.match(regex_bpm)[0]; + // 拍号 + music_msg_dic["time_signature"] = file_text.match(regex_time_signature)[0]; + // 曲师 + music_msg_dic["composer"] = file_text.match(regex_composer)[0]; + // 谱师 + music_msg_dic["arranger"] = file_text.match(regex_arranger)[0]; + // 曲谱内容(删除换行符) + music_msg_dic["notes"] = file_text.match(regex_notes)[0].replace(regex_blank, ''); + } catch(error) { + log.info(`曲谱解析错误:${error}\n请检查曲谱文件格式是否正确`); + return null; + } + + return music_msg_dic; + } + + /** + * + * 解析乐谱字符串(乐谱JSON文件中的notes) + * + * 小节之间用|隔开且乐谱中不能有空格,单个小节的解析规则如下: + * A[4] 表示按下A键,A键视作四分音符 + * (ASD)[4-#] 表示同时按下ASD键,这个和弦视作四分音符的装饰音 + * A[4-3](AS)[4-3](ASD)[4-3] 表示等分四分音符的三连音(-后填3必须要连着写三个这样的音符),按顺序按下A、AS、ASD键 + * @[4] 表示休止符,中括号内标明这是几分休止符,例如这里表示4分休止符 + * 附: + * 中括号(-前表示音符类型-后用于区分特殊音符):[填4表示4分音符,填16表示16分音符...-填#表示装饰音,填3表示三连音] 例:[16-#] + * + * @param sheet {string} 乐谱 + * @returns {Object[][]} + */ + function parseMusicSheet(sheet) { + // 将输入字符串按照小节分割 + let bars = sheet.split('|'); + let result = []; + + // 遍历每个小节 + bars.forEach(bar => { + let i = 0; + + // 逐个字符解析小节中的音符及其属性 + while (i < bar.length) { + let note = ''; // 存储音符 + let type = ''; // 存储音符类型 + let chord = false; // 判断是否为和弦 + let spl = 'none'; // 存储特殊音符属性,默认值为 "none" + + // 检查是否为和弦(和弦用圆括号包裹) + if (bar[i] === '(') { + chord = true; + i++; + while (bar[i] !== ')') { + note += bar[i]; + i++; + } + i++; // 跳过闭合圆括号 + } else if (bar[i] === '@') { + // 处理休止符 + note = '@'; + i++; + } else { + note = bar[i]; + i++; + } + + // 解析音符类型(用方括号包裹) + if (bar[i] === '[') { + i++; + while (bar[i] !== ']') { + type += bar[i]; + i++; + } + i++; // 跳过闭合方括号 + } + + // 解析特殊音符属性(如果type中包含'-') + if (type.includes('-')) { + let splIndex = type.indexOf('-'); + spl = type.slice(splIndex + 1); + type = parseInt(type.slice(0, splIndex), 10); + } + + // 将解析结果添加到parsedNotes数组中 + result.push({ + "note": note, + "type": type, + "chord": chord, + "spl": spl + }); + } + }); + + return result; + } + + /** + * + * 根据解析后的乐谱进行演奏 + * + * @param sheet_list {Object[][]} 解析后的乐谱 + * @param bpm BPM (240) + * @param ts 拍号 (3/4) + * @returns {Promise} + */ + async function play_sheet(sheet_list, bpm, ts) { + // 确定是以几分音符为一拍 + let symbol = parseInt(ts.split("/")[1], 10); + // 每拍所需的时间 + let symbol_time = Math.round(60000 / bpm); + // 装饰音时长 + let ornament_time = Math.round(symbol_time / 16) + // 存储连音 + let temp_legato = []; + + // test 需要额外计算装饰音时值的影响 + for (let i = 0; i < sheet_list.length; i++) { + // 显示正在演奏的音符 + log.info(`${sheet_list[i]["note"]}[${sheet_list[i]["type"]}-${sheet_list[i]["spl"]}]`); + if (sheet_list[i]["spl"] === 'none') { // 单音、休止符或和弦 + if (sheet_list[i]["chord"]) { + await play_chord(sheet_list[i]["note"]); // 和弦 + } else { + if (sheet_list[i]["note"] === '@') { // 休止符 + // pass + } else { + await play_note(sheet_list[i]["note"]); // 单音 + } + } + + if (i !== sheet_list.length - 1) { + await sleep(cal_time_ornament(sheet_list, symbol_time, symbol, sheet_list[i]["type"], i)); + } + } else if (sheet_list[i]["spl"] === '#') { // 装饰音(不会包含休止符),时值为symbol的时值的1/16 + if (sheet_list[i]["chord"]) { + await play_chord(sheet_list[i]["note"]); // 和弦 + } else { + await play_note(sheet_list[i]["note"]); // 单音 + } + await sleep(ornament_time); + } else if (/\.3|\.6|\.\$/.test(sheet_list[i]["spl"])) { // 三连音/六连音(可能包含休止符) + temp_legato.push({ + "note": sheet_list[i]["note"], + "chord": sheet_list[i]["chord"], + "type": sheet_list[i]["type"] + }); + + // 演奏连音 + if ("$".includes(sheet_list[i]["spl"])) { + // 连音的总时长 + let time_legato = Math.round(symbol_time * (symbol / sheet_list[i]["type"])); + // 当前音符类型 + let current_type = parseInt(sheet_list[i]["spl"].split(".")[0]) + // 连音的音符数值总和(用于计算当前音符时长) + let time_all = temp_legato.reduce((sum, each) => sum + 1 / parseInt(each["spl"].split(".")[0]), 0); + // 当前音符时长 + let time_current = Math.round(time_legato * (1 / current_type) / time_all); + // 计数 + let count = undefined; + + for (const note_legato of temp_legato) { + if (sheet_list[i]["chord"]) { + await play_chord(sheet_list[i]["note"]); // 和弦 + } else { + if (sheet_list[i]["note"] === '@') { // 休止符 + await sleep(time_current); + } else { + await play_note(sheet_list[i]["note"]); // 单音 + } + } + + if (count === temp_legato.length - 1 && i !== sheet_list.length - 1) { + // 计算连音的最后一个音的时值(计算装饰音) + await sleep(cal_time_ornament(sheet_list, symbol_time, symbol, sheet_list[i]["type"], i, time_current)); + // 重置连音缓存区 + temp_legato = []; + } else { + await sleep(time_current); + } + count += 1; + } + } + } else if (sheet_list[i]["spl"] === '*') { // 附点音符 + if (sheet_list[i]["chord"]) { + await play_chord(sheet_list[i]["note"]); // 和弦 + } else { + if (sheet_list[i]["note"] === '@') { // 休止符 + // pass + } else { + await play_note(sheet_list[i]["note"]); // 单音 + } + } + if (i !== sheet_list.length - 1) { + await sleep(cal_time_ornament(sheet_list, symbol_time * 1.5, symbol, sheet_list[i]["type"], i)); + } + } else { + log.info(`错误: ${sheet_list[i]["spl"]}`); + return null; + } + } + } + + async function main() { + const settings_dic = get_settings(); + + if (settings_dic["type"] === "single") { // 单曲 + if (settings_dic["repeat"] === 1) { + log.info(`1`); + let music_msg = await get_music_msg(settings_dic["music"]); + const music_sheet = parseMusicSheet(music_msg["notes"]); + await play_sheet(music_sheet, music_msg["bpm"], music_msg["time_signature"]); + } else { + for (let i = 0; i < settings_dic["repeat"]; i++) { + log.info(`2`); + await sleep(settings_dic["repeat_interval"] * 1000); // 循环间隔 + + const music_msg = await get_music_msg(settings_dic["music"]); + const music_sheet = parseMusicSheet(music_msg["notes"]); + await play_sheet(music_sheet, music_msg["bpm"], music_msg["time_signature"]); + } + } + } else { // 队列 + let repeat_queue = 1; + if (settings_dic["repeat_mode"] === "队列循环") { // 队列循环 + log.info(`3`); + repeat_queue = settings_dic["repeat"]; + } + + for (let r = 0; r < repeat_queue; r++) { + for (const music_name of settings_dic["music"]) { + // 读取乐谱 + const music_msg = await get_music_msg(music_name); + // 解析乐谱 + const music_sheet = parseMusicSheet(music_msg["notes"]); + + if (settings_dic["repeat"] === 1) { + await play_sheet(music_sheet, music_msg["bpm"], music_msg["time_signature"]); + } else { + let repeat_single = 1; + if (settings_dic["repeat_mode"] !== "队列循环") { // 单曲循环 + log.info(`4`); + repeat_single = settings_dic["repeat"]; + } + + for (let i = 0; i < repeat_single; i++) { + await play_sheet(music_sheet, music_msg["bpm"], music_msg["time_signature"]); + log.info(`曲目: ${music_name} 演奏完成`); + if (repeat_single !== 1) { + await sleep(settings_dic["repeat_interval"] * 1000); // 单曲循环间隔 + } + } + } + // 队列内间隔 + await sleep(settings_dic["interval"] * 1000); + } + if (repeat_queue !== 1) { + await sleep(settings_dic["repeat_interval"] * 1000); // 队列循环间隔 + } + } + } + } + + await main(); +})(); \ No newline at end of file diff --git a/repo/js/AutoLyre/manifest.json b/repo/js/AutoLyre/manifest.json new file mode 100644 index 00000000..2de6a56c --- /dev/null +++ b/repo/js/AutoLyre/manifest.json @@ -0,0 +1,15 @@ +{ + "manifest_version": 1, + "name": "原琴·五线谱版", + "version": "1.0", + "bgi_version": "0.42.0", + "description": "功能描述:功能及其强大的原琴脚本\n核心功能------------------------------>\n1.轻松实现根据五线谱翻版琴谱,支持单音、和弦\n2.曲谱支持录入BPM、拍号\n3.特殊音符支持休止符、浮点音符、(三/六)连音、(三/六)连音标记线、装饰音·倚音\n注意事项------------------------------>\n1.音域只有3个八度,受原琴音域限制,本脚本的上限取决于翻谱的大佬(卑微\n2.实际上装饰音·倚音的时长视为基础时值单位(比如拍号2/4的基础时值单位就是4分音符)的1/16\n3.制铺说明:曲谱JSON文件的notes必须保证为一行且不能包括空白符(空格和换行符等);小节之间用|隔开,|不是必要的,作用是方便曲谱维护\n---------------------------------------->\n版本:ver1.0\n作者:提瓦特钓鱼玳师\n脚本反馈邮箱:hijiwos@hotmail.com", + "authors": [ + { + "name": "提瓦特钓鱼玳师", + "url": "https://github.com/Hijiwos" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} diff --git a/repo/js/AutoLyre/settings.json b/repo/js/AutoLyre/settings.json new file mode 100644 index 00000000..6f17b5b1 --- /dev/null +++ b/repo/js/AutoLyre/settings.json @@ -0,0 +1,41 @@ +[ + { + "name": "music_selector", + "type": "select", + "label": "选择乐曲(队列执行启用后该选项实效)", + "options": [ + "1.小星星", + "2.小星星变奏曲", + "3.Unknown Mother Goose [アンノウン・マザーグース]" + ] + }, + { + "name": "music_repeat", + "type": "input-text", + "label": "循环执行次数(不填默认不循环)" + }, + { + "name": "repeat_interval", + "type": "input-text", + "label": "循环间隔时间(单位:s, 循环执行启用时生效,不填默认0s)" + }, + { + "name": "repeat_mode", + "type": "select", + "label": "循环模式(不填默认为单曲循环)", + "options": [ + "单曲循环", + "队列循环" + ] + }, + { + "name": "music_queue", + "type": "input-text", + "label": "队列执行(填写数字[乐曲前的序号],空格隔开,不填默认不启用)" + }, + { + "name": "music_interval", + "type": "input-text", + "label": "队列内间隔时间(单位:s, 队列执行启用时生效)" + } +]