Files
bettergi-scripts-list/repo/js/AutoYuanQin/README.md
提瓦特钓鱼玳师 a0ab049419 JS脚本:原琴·五线谱版【更新】 (#412)
* JS脚本:原琴·五线谱版【更新】

* 压缩了教程图片的大小

压缩率0.2

* 修复了文件读取的BUG

* 修复了队列演奏报错的BUG
2025-03-08 23:44:09 +08:00

221 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 曲谱 JSON 文件说明
此文档供曲谱制作人阅读,本文档详细说明了如何书写一个标准格式的曲谱.json文件包括各个字段的解释以及曲谱内容的格式要求。
重要即使制作了曲谱的JSON文件放到了正确的路径下在调度器的JS脚本配置里也不会出现你制作的曲谱上传方法如下
## 上传方法
1.上传到BetterGI脚本仓库的repo\js\AutoLyre\assets\score_file路径下根据已存在的曲谱在你的文件名前添加序号(例如 10.曲名.json)完成后请联系BetterGI v7群主更新JS脚本
2.联系BetterGI v71029539994群主帮你更新到仓库
3.发送邮件到hijiwos@hotmail.com并说明你的谱子将会在一段时间内更新到仓库
## 曲谱制作问题
\assets/tutorial_file/五线谱注解.png包含了五线谱高音区和低音区对应的4组键盘键位相邻的红蓝大写字母为一组每组音域为三个八度
有不懂的地方请在\assets/tutorial_file/example.json内找这个谱子内包含了该脚本的五线谱相关的所有功能
## 曲谱文件位置
所有的曲谱文件应放置于 AutoLyre\assets\score_file 路径下,并在文件名前添加正确的序号
## 文件结构
一个标准的曲谱.json文件的基本结构如下
```json
{
"name": "",
"author": "",
"description": "",
"bpm": "",
"time_signature": "",
"composer": "",
"arranger": "",
"notes": ""
}
```
**注意**:以上代码中仅 : 右侧的**双引号内**的部分可以更改,具体的曲谱格式请参考 \assets\tutorial_file 路径下的 example.json
## 字段说明
**name**: 曲谱名,必填。
**author**: 录谱人,制作这个.json曲谱的作者名。
**description**: 描述,可以随意填写关于该曲谱的附加信息
**bpm**: 曲谱的BPMBeats Per Minute必填。
**time_signature**: 拍号,必填,例如 3/4 代表 以四分音符为一拍每小节三拍被设为一拍的音符仅支持2的幂
**composer**: 曲师,选填。
**arranger**: 谱师,选填。
**notes**: 曲谱内容,必填,具体格式请参考以下解析规则。
## Notes 解析规则(重要)
notes 字段中包含的是乐谱内容。音符**必须**使用**大写字母**,乐谱内容使用字符串表示,小节之间用 | 隔开。单个小节的解析规则如下:
### A[4]
表示按下A键A键视作四分音符。
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/四分音符示例.png"/>
<p>四分音符示例</p>
</div>
### F[16-#]D[16-#]S[16-#]
表示**装饰音·倚音**
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/装饰音·倚音示例.png"/>
<p>装饰音·倚音示例</p>
</div>
以上每个装饰音的时值固定为拍号中的标准时值(3/4的标准时值为四分音符的时值)的1/16也就是说以上示例中的**16没有意义但是必须要写**
### Z[4-8.3]C[4-8.3]B[4-8.$]
表示一个**三连音**六连音用法与此相似仅需将3改成6**其它类型的连音**也请使用3或6(即使是5连音)
另外,连音内支持和弦
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/三连音示例.png"/>
<p>三连音示例</p>
</div>
* Z[4-8.3]
4表示该三连音的总时值相当于四分音符8表示当前音符在乐谱上显示的时值相当于八分音符的时值3表示这是一个三连音的音符
* C[4-8.3]
同上
* B[4-8.$]
$表示这是当前连音的最后一个音符
### D[4-16.3]G[4-16.3]H[4-16.3]W[4-16.3]R[4-16.$]
表示一个**五连音**,同理也可以是**N连音**
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/五连音示例.png"/>
<p>五连音示例</p>
</div>
* D[4-16.3]
4表示该连音的总时值相当于四分音符16表示当前音符在乐谱上显示的时值相当于十六分音符的时值3表示这个音符是一个连音的一部分
* R[4-16.$]
$表示这是当前连音的最后一个音符
### (BG)[4-4.3]\(VF\)[4-8.$]
表示一个**三连音连音线**(与三连音用法相同,但是三连音连音线允许连线内出现不同类型的音符)
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/三连音连音线示例.png"/>
<p>三连音连音线示例</p>
</div>
* (BG)[4-4.3]
第一个4表示整个三连音的总时值为一个四分音符第二个4表示当前音符在乐谱上显示的时值相当于四分音符的时值3表示这是一个三连音的音符
* (VF)[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
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/六连音连音线示例.png"/>
<p>六连音连音线示例</p>
</div>
* @[2-8.6]
2表示该六连音的总时值相当于一个二分音符8表示当前音符在乐谱上显示的时值相当于八分音符的时值6表示这是一个六连音
* N[2-16.$]
16表示当前音符在乐谱上显示的时值相当于十六分音符的时值$表示这是当前连音的最后一个音符
### @[4]
表示一个**休止符**
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/四分休止符示例.png"/>
<p>四分休止符示例</p>
</div>
中括号内表明这是几分休止符,例如这里表示四分休止符。
### (SH)[4-*]
表示一个**附点四分音符**
<div align="center">
<img src="https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js/AutoYuanQin/assets/tutorial_file/附点四分音符示例.png"/>
<p>附点四分音符示例</p>
</div>
表示按下S和H键(和弦),这个和弦视作附点四分音符。
## 代码美化
曲谱JSON文件的"notes"的值视作一个字符串,在这个字符串内仅可以使用**换行符**美化代码,通过这种方法可以使用记事本等软件从.json文件中获取带有换行的曲谱代码**notes内的换行符不会被读取执行**
### 格式
每一小节的末尾加|\n
每一行的末尾加|\n\n
曲谱的末尾无需加|和\n
例如:
```json
{
"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]|\n\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]
表示十六分音符。
* [-#]
表示装饰音。
* [-n.3]
表示连音(使用时必须保证连音的最后一个音的标记为.$)。
* [-n.$]
表示当前连音的结束
例如:[16-#] 表示十六分音符的装饰音A[4-8.3]S[4-8.3]D[4-8.$] 表示一个总时值为4分音符的三连音。
## 示例
一个完整的曲谱.json文件示例如下供示例仅包含几个小节
文件名: 示例曲谱.json
```json
{
"name": "示例曲谱",
"author": "录谱人",
"bpm": "120",
"description": "曲谱信息",
"time_signature": "4/4",
"composer": "曲师",
"arranger": "谱师",
"notes": "N[8-#]A[8-#](VS)[1]|\n(NF)[2-*](AG)[4]|\n(SH)[2-*](SH)[8](AG)[8]|\n(FW)[4](VF)[4](BG)[4](NH)[4]|\n\nB[8]N[8]X[16]Z[16]X[16]Z[16]B[8]N[8]X[16]Z[16]X[16]Z[16]|\nB[8]N[8]X[16]Z[16]X[16]Z[16]V[8]C[8]X[8]Z[8]"
}
```