# 打谱么
本项目用于将线性乐谱转换为 MIDI 文件。
  线性乐谱是本项目创制的一种 ASCII 字符书写简单乐谱的方式。下面将详细介绍线性乐谱。
## 线性乐谱
  线性乐谱的行分为参数行和乐谱行。参数行用于修改演奏参数,乐谱行用于描述音符。
## 参数行
  参数行可以修改演奏参数,下一行起将使用新参数进行演奏。所有参数**大小写敏感**。
| 参数 | 格式 | 示例 |
| :--: | :-- | :--: |
| 谱号 | 以 `1=` 开头,后接 `CDEFGAB` 其一,然后可以选择接 `#b.,` 或其组合来表示半音和八度。| `1=C` |
| BPM | 以数字开头并以 `bpm` 结尾。| `120bpm` |
- **不同参数间使用空格连接**。参数无顺序。
- 若首行未指定参数,则默认为 `1=C 120bpm`。
- 若参数行未指定某一参数,则继承该行以前的该项参数值。
一些正确的参数行示例:
- `1=G 100bpm` 表示 G 大调,100 bpm
- `1=Bb. 70bpm` 表示低八度 Bb 大调,70 bpm
- `1=A` 表示 A 大调,bpm 继承上一个参数行。若前面没有其它参数行,则保持默认值 120 bpm
## 音符行
  与简谱相同,线性乐谱用 1 至 7 七个数字代表七个音符。音符后可以接后缀表示音高和时值。下面是所有允许的后缀:
| 音高后缀 | 含义 | 时值后缀 | 含义 | 时值后缀 | 含义 |
| :--: | :--: | :--: | :--: | :--: | :--: |
| `#` | 高半音 | `-` | 1 拍 | `*` | 0.5 拍 |
| `b` | 低半音 | `~` | 1.5 拍 | `^` | 1/4 拍 |
| `.` | 高八度 | `=` | 2 拍 | `'` | 1/8 拍 |
| `,` | 低八度 | `+` | 4 拍 |
- **若音符无时值后缀,则默认为 0.5 拍。**
- 后缀**可以叠加**且无顺序。可以用时值后缀组合出不同的拍数,比如 3 拍使用 `~~` 或 `=-` 后缀。
一些正确的音符示例:
- `1` 表示 0.5 拍 do
- `5-` 表示 1 拍 sol
- `1.-` 表示 1 拍高八度 do
- `1=*` 表示 2.5 拍 do
## 多轨演奏
  在音符之后使用圆括号 `()` 内写其它音符,表示多轨同时演奏。多轨时值与主轨右对齐,例如在 `1-3-(5-)` 中,`3-` 和 `5-` 同时演奏。若两条以上轨道同时演奏,请以 `1-(3-)(5-)` 格式书写。
## 和弦演奏
  请在音符行写入方括号 `[]`,然后在其中写入和弦记号,此处将会自动演奏和弦并持续到下一个和弦的位置。和弦记号由级数、类型、后缀、转位和八度组成。
### 级数
  本项目支持以下和弦级数:
| 一级 | 二级 | 三级 | 四级 | 五级 | 六级 | 七级 |
| :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 1# | 2# | 3# | 4# | 5# | 6# | 7# |
| 1b | 2b | 3b | 4b | 5b | 6b | 7b |
### 类型
  本项目支持以下和弦类型:
| 和弦家族 | 三和弦 | 七和弦 | 九和弦 | 十一和弦 | 十三和弦 | 三音、五音、七音 |
| :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| 大和弦 | (无后缀) | M7 | M9 | M11 | M13 | 大三、纯五、大七 |
| 小和弦 | m | m7 | m9 | m11 | m13 | 小三、纯五、小七 |
| 减和弦 | dim | dim7 | dim9 | dim11 | dim13 | 小三、减五、减七 |
| 增和弦 | aug | aug7 | aug9 | aug11 | aug13 | 大三、增五、小七 |
| 属和弦 | | 7 | 9 | 11 | 13 | 大三、纯五、小七 |
| 小大和弦 | | mM7 | mM9 | mM11 | mM13 | 小三、纯五、大七 |
| 增大和弦 | | augM7 | augM9 | augM11 | augM13 | 大三、增五、大七 |
*注:对于半减七和弦,请使用 `m7b5`(见下文“后缀”一节)。*
### 后缀
  和弦支持以下后缀:
| 后缀 | 功能 |
| :-- | :-- |
| add\[9,11,13\] | 加入某音。此处加入的是纯音程或大音程。 |
| omit\[3,5,7,9,11,13\] | 省略某音。 |
| sus、sus2 | 将三音更换为增三度音或减三度音。 |
| #\[3,5,7,9,11,13\] | 升高某音,若该音不存在则先加入再升高。 |
| b\[3,5,7,9,11,13\] | 降低某音,若该音不存在则先加入再降低。 |
| /\[#b2-13\] | 切换根音。 |
### 转位
  可以在和弦最后加入斜杠 `/`,然后追加一个和弦级数。若追加的级数为和弦内音,则所有低于该级数的音将移高八度;若追加的级数为和弦外音,则先将该音加入和弦,然后将所有低于该级数的音将移高八度。
### 八度
  和弦的末尾可以添加若干个 `,` 或者 `.` 来调整演奏的八度,以便构建低音线条。请注意,和弦默认是低八度演奏的。例如 `[5/7,]` 表示低两个八度演奏;`[1.]` 表示以中央八度演奏。
一些正确的和弦记号举例:
- 4:四级大三和弦
- 57:五级属七和弦
- 7bsus:降七级大三挂四和弦
- 4#m7b5:升四级半减七和弦
- 1add6add9:一级六九和弦
- 511omit3omit5:五级属十一和弦,省略三音和五音
- 1/5:一级大三和弦第二转位,即 `5(1.)(3.)`
- 4/5:四级大三和弦下加 5,即 `5(6)(1.)(4.)`
*注:请注意升降记号可能引起的歧义。在 `1` 至 `7` 七个大三和弦后,若要直接添加升降音后缀,请先加入空格。例如六级大三降十三和弦为 `6 b13` 而不是 `6b13`(降六级属十三和弦)。*
## 乐谱示例
卡农主旋律
```
1=D
5-345-34(1+(3+(5+)))
55,6,7,1234(7,+(2+(5+)))
3-123-3,4,(6,+(1+(3+)))
5,6,5,4,5,3,4,5,(5,+(7,+(3+)))
4,-6,5,4,-3,2,(4,+(6,+(1+)))
3,2,1,2,3,4,5,6,(3,+(5,+(1+)))
4,-6,5,6,-7,1(4,+(6,+(1+)))
5,6,7,12345(5,+(7,+(2+)))
```
更多乐谱示例位于 [templates](./templates) 文件夹下
| 文件名 | 乐曲 | 艺术家 | 备注 |
| :-- | :-- | :-- | :-- |
| `tori_no_uta.txt` | 鸟之诗 | Lia | 仅旋律,用于测试单轨演奏 |
| `flower_dance.txt` | 花之舞 | DJ Okawari | 用于测试简单多轨演奏 |
| `canon.txt` | 卡农 | Johann Pachelbel | 用于测试复杂多轨演奏和紧凑式写法 |
| `orchid_pavilion.txt` | 兰亭序 | 周杰伦 | 仅副歌,用于测试和弦演奏 |
Raw data
{
"_id": null,
"home_page": null,
"name": "dapume",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "linear-score, midi, music, renderer, score",
"author": null,
"author_email": "ScarlettRinko <pleasantgoat2@yeah.net>",
"download_url": "https://files.pythonhosted.org/packages/96/ee/e1eb1309c6aeb411f02e1b775fe5e490856ad2d8b2f4a716f2ec7df08574/dapume-0.3.1.tar.gz",
"platform": null,
"description": "# \u6253\u8c31\u4e48\n\u672c\u9879\u76ee\u7528\u4e8e\u5c06\u7ebf\u6027\u4e50\u8c31\u8f6c\u6362\u4e3a MIDI \u6587\u4ef6\u3002\n\n  \u7ebf\u6027\u4e50\u8c31\u662f\u672c\u9879\u76ee\u521b\u5236\u7684\u4e00\u79cd ASCII \u5b57\u7b26\u4e66\u5199\u7b80\u5355\u4e50\u8c31\u7684\u65b9\u5f0f\u3002\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u7ebf\u6027\u4e50\u8c31\u3002\n\n## \u7ebf\u6027\u4e50\u8c31\n  \u7ebf\u6027\u4e50\u8c31\u7684\u884c\u5206\u4e3a\u53c2\u6570\u884c\u548c\u4e50\u8c31\u884c\u3002\u53c2\u6570\u884c\u7528\u4e8e\u4fee\u6539\u6f14\u594f\u53c2\u6570\uff0c\u4e50\u8c31\u884c\u7528\u4e8e\u63cf\u8ff0\u97f3\u7b26\u3002\n\n## \u53c2\u6570\u884c\n  \u53c2\u6570\u884c\u53ef\u4ee5\u4fee\u6539\u6f14\u594f\u53c2\u6570\uff0c\u4e0b\u4e00\u884c\u8d77\u5c06\u4f7f\u7528\u65b0\u53c2\u6570\u8fdb\u884c\u6f14\u594f\u3002\u6240\u6709\u53c2\u6570**\u5927\u5c0f\u5199\u654f\u611f**\u3002\n\n| \u53c2\u6570 | \u683c\u5f0f | \u793a\u4f8b |\n| :--: | :-- | :--: |\n| \u8c31\u53f7 | \u4ee5 `1=` \u5f00\u5934\uff0c\u540e\u63a5 `CDEFGAB` \u5176\u4e00\uff0c\u7136\u540e\u53ef\u4ee5\u9009\u62e9\u63a5 `#b.,` \u6216\u5176\u7ec4\u5408\u6765\u8868\u793a\u534a\u97f3\u548c\u516b\u5ea6\u3002| `1=C` |\n| BPM | \u4ee5\u6570\u5b57\u5f00\u5934\u5e76\u4ee5 `bpm` \u7ed3\u5c3e\u3002| `120bpm` |\n\n- **\u4e0d\u540c\u53c2\u6570\u95f4\u4f7f\u7528\u7a7a\u683c\u8fde\u63a5**\u3002\u53c2\u6570\u65e0\u987a\u5e8f\u3002\n- \u82e5\u9996\u884c\u672a\u6307\u5b9a\u53c2\u6570\uff0c\u5219\u9ed8\u8ba4\u4e3a `1=C 120bpm`\u3002\n- \u82e5\u53c2\u6570\u884c\u672a\u6307\u5b9a\u67d0\u4e00\u53c2\u6570\uff0c\u5219\u7ee7\u627f\u8be5\u884c\u4ee5\u524d\u7684\u8be5\u9879\u53c2\u6570\u503c\u3002\n\n\u4e00\u4e9b\u6b63\u786e\u7684\u53c2\u6570\u884c\u793a\u4f8b\uff1a\n- `1=G 100bpm` \u8868\u793a G \u5927\u8c03\uff0c100 bpm\n- `1=Bb. 70bpm` \u8868\u793a\u4f4e\u516b\u5ea6 Bb \u5927\u8c03\uff0c70 bpm\n- `1=A` \u8868\u793a A \u5927\u8c03\uff0cbpm \u7ee7\u627f\u4e0a\u4e00\u4e2a\u53c2\u6570\u884c\u3002\u82e5\u524d\u9762\u6ca1\u6709\u5176\u5b83\u53c2\u6570\u884c\uff0c\u5219\u4fdd\u6301\u9ed8\u8ba4\u503c 120 bpm\n\n## \u97f3\u7b26\u884c\n  \u4e0e\u7b80\u8c31\u76f8\u540c\uff0c\u7ebf\u6027\u4e50\u8c31\u7528 1 \u81f3 7 \u4e03\u4e2a\u6570\u5b57\u4ee3\u8868\u4e03\u4e2a\u97f3\u7b26\u3002\u97f3\u7b26\u540e\u53ef\u4ee5\u63a5\u540e\u7f00\u8868\u793a\u97f3\u9ad8\u548c\u65f6\u503c\u3002\u4e0b\u9762\u662f\u6240\u6709\u5141\u8bb8\u7684\u540e\u7f00\uff1a\n\n| \u97f3\u9ad8\u540e\u7f00 | \u542b\u4e49 | \u65f6\u503c\u540e\u7f00 | \u542b\u4e49 | \u65f6\u503c\u540e\u7f00 | \u542b\u4e49 |\n| :--: | :--: | :--: | :--: | :--: | :--: |\n| `#` | \u9ad8\u534a\u97f3 | `-` | 1 \u62cd | `*` | 0.5 \u62cd |\n| `b` | \u4f4e\u534a\u97f3 | `~` | 1.5 \u62cd | `^` | 1/4 \u62cd |\n| `.` | \u9ad8\u516b\u5ea6 | `=` | 2 \u62cd | `'` | 1/8 \u62cd |\n| `,` | \u4f4e\u516b\u5ea6 | `+` | 4 \u62cd |\n\n- **\u82e5\u97f3\u7b26\u65e0\u65f6\u503c\u540e\u7f00\uff0c\u5219\u9ed8\u8ba4\u4e3a 0.5 \u62cd\u3002**\n- \u540e\u7f00**\u53ef\u4ee5\u53e0\u52a0**\u4e14\u65e0\u987a\u5e8f\u3002\u53ef\u4ee5\u7528\u65f6\u503c\u540e\u7f00\u7ec4\u5408\u51fa\u4e0d\u540c\u7684\u62cd\u6570\uff0c\u6bd4\u5982 3 \u62cd\u4f7f\u7528 `~~` \u6216 `=-` \u540e\u7f00\u3002\n\n\u4e00\u4e9b\u6b63\u786e\u7684\u97f3\u7b26\u793a\u4f8b\uff1a\n- `1` \u8868\u793a 0.5 \u62cd do\n- `5-` \u8868\u793a 1 \u62cd sol\n- `1.-` \u8868\u793a 1 \u62cd\u9ad8\u516b\u5ea6 do\n- `1=*` \u8868\u793a 2.5 \u62cd do\n\n## \u591a\u8f68\u6f14\u594f\n  \u5728\u97f3\u7b26\u4e4b\u540e\u4f7f\u7528\u5706\u62ec\u53f7 `()` \u5185\u5199\u5176\u5b83\u97f3\u7b26\uff0c\u8868\u793a\u591a\u8f68\u540c\u65f6\u6f14\u594f\u3002\u591a\u8f68\u65f6\u503c\u4e0e\u4e3b\u8f68\u53f3\u5bf9\u9f50\uff0c\u4f8b\u5982\u5728 `1-3-(5-)` \u4e2d\uff0c`3-` \u548c `5-` \u540c\u65f6\u6f14\u594f\u3002\u82e5\u4e24\u6761\u4ee5\u4e0a\u8f68\u9053\u540c\u65f6\u6f14\u594f\uff0c\u8bf7\u4ee5 `1-(3-)(5-)` \u683c\u5f0f\u4e66\u5199\u3002\n\n## \u548c\u5f26\u6f14\u594f\n  \u8bf7\u5728\u97f3\u7b26\u884c\u5199\u5165\u65b9\u62ec\u53f7 `[]`\uff0c\u7136\u540e\u5728\u5176\u4e2d\u5199\u5165\u548c\u5f26\u8bb0\u53f7\uff0c\u6b64\u5904\u5c06\u4f1a\u81ea\u52a8\u6f14\u594f\u548c\u5f26\u5e76\u6301\u7eed\u5230\u4e0b\u4e00\u4e2a\u548c\u5f26\u7684\u4f4d\u7f6e\u3002\u548c\u5f26\u8bb0\u53f7\u7531\u7ea7\u6570\u3001\u7c7b\u578b\u3001\u540e\u7f00\u3001\u8f6c\u4f4d\u548c\u516b\u5ea6\u7ec4\u6210\u3002\n\n### \u7ea7\u6570\n  \u672c\u9879\u76ee\u652f\u6301\u4ee5\u4e0b\u548c\u5f26\u7ea7\u6570\uff1a\n| \u4e00\u7ea7 | \u4e8c\u7ea7 | \u4e09\u7ea7 | \u56db\u7ea7 | \u4e94\u7ea7 | \u516d\u7ea7 | \u4e03\u7ea7 |\n| :--: | :--: | :--: | :--: | :--: | :--: | :--: |\n| 1 | 2 | 3 | 4 | 5 | 6 | 7 |\n| 1# | 2# | 3# | 4# | 5# | 6# | 7# |\n| 1b | 2b | 3b | 4b | 5b | 6b | 7b |\n\n### \u7c7b\u578b\n  \u672c\u9879\u76ee\u652f\u6301\u4ee5\u4e0b\u548c\u5f26\u7c7b\u578b\uff1a\n| \u548c\u5f26\u5bb6\u65cf | \u4e09\u548c\u5f26 | \u4e03\u548c\u5f26 | \u4e5d\u548c\u5f26 | \u5341\u4e00\u548c\u5f26 | \u5341\u4e09\u548c\u5f26 | \u4e09\u97f3\u3001\u4e94\u97f3\u3001\u4e03\u97f3 |\n| :--: | :--: | :--: | :--: | :--: | :--: | :--: |\n| \u5927\u548c\u5f26 | (\u65e0\u540e\u7f00) | M7 | M9 | M11 | M13 | \u5927\u4e09\u3001\u7eaf\u4e94\u3001\u5927\u4e03 |\n| \u5c0f\u548c\u5f26 | m | m7 | m9 | m11 | m13 | \u5c0f\u4e09\u3001\u7eaf\u4e94\u3001\u5c0f\u4e03 |\n| \u51cf\u548c\u5f26 | dim | dim7 | dim9 | dim11 | dim13 | \u5c0f\u4e09\u3001\u51cf\u4e94\u3001\u51cf\u4e03 |\n| \u589e\u548c\u5f26 | aug | aug7 | aug9 | aug11 | aug13 | \u5927\u4e09\u3001\u589e\u4e94\u3001\u5c0f\u4e03 |\n| \u5c5e\u548c\u5f26 | | 7 | 9 | 11 | 13 | \u5927\u4e09\u3001\u7eaf\u4e94\u3001\u5c0f\u4e03 |\n| \u5c0f\u5927\u548c\u5f26 | | mM7 | mM9 | mM11 | mM13 | \u5c0f\u4e09\u3001\u7eaf\u4e94\u3001\u5927\u4e03 |\n| \u589e\u5927\u548c\u5f26 | | augM7 | augM9 | augM11 | augM13 | \u5927\u4e09\u3001\u589e\u4e94\u3001\u5927\u4e03 |\n\n*\u6ce8\uff1a\u5bf9\u4e8e\u534a\u51cf\u4e03\u548c\u5f26\uff0c\u8bf7\u4f7f\u7528 `m7b5`\uff08\u89c1\u4e0b\u6587\u201c\u540e\u7f00\u201d\u4e00\u8282\uff09\u3002*\n\n### \u540e\u7f00\n  \u548c\u5f26\u652f\u6301\u4ee5\u4e0b\u540e\u7f00\uff1a\n| \u540e\u7f00 | \u529f\u80fd |\n| :-- | :-- |\n| add\\[9,11,13\\] | \u52a0\u5165\u67d0\u97f3\u3002\u6b64\u5904\u52a0\u5165\u7684\u662f\u7eaf\u97f3\u7a0b\u6216\u5927\u97f3\u7a0b\u3002 |\n| omit\\[3,5,7,9,11,13\\] | \u7701\u7565\u67d0\u97f3\u3002 |\n| sus\u3001sus2 | \u5c06\u4e09\u97f3\u66f4\u6362\u4e3a\u589e\u4e09\u5ea6\u97f3\u6216\u51cf\u4e09\u5ea6\u97f3\u3002 |\n| #\\[3,5,7,9,11,13\\] | \u5347\u9ad8\u67d0\u97f3\uff0c\u82e5\u8be5\u97f3\u4e0d\u5b58\u5728\u5219\u5148\u52a0\u5165\u518d\u5347\u9ad8\u3002 |\n| b\\[3,5,7,9,11,13\\] | \u964d\u4f4e\u67d0\u97f3\uff0c\u82e5\u8be5\u97f3\u4e0d\u5b58\u5728\u5219\u5148\u52a0\u5165\u518d\u964d\u4f4e\u3002 |\n| /\\[#b2-13\\] | \u5207\u6362\u6839\u97f3\u3002 |\n\n### \u8f6c\u4f4d\n  \u53ef\u4ee5\u5728\u548c\u5f26\u6700\u540e\u52a0\u5165\u659c\u6760 `/`\uff0c\u7136\u540e\u8ffd\u52a0\u4e00\u4e2a\u548c\u5f26\u7ea7\u6570\u3002\u82e5\u8ffd\u52a0\u7684\u7ea7\u6570\u4e3a\u548c\u5f26\u5185\u97f3\uff0c\u5219\u6240\u6709\u4f4e\u4e8e\u8be5\u7ea7\u6570\u7684\u97f3\u5c06\u79fb\u9ad8\u516b\u5ea6\uff1b\u82e5\u8ffd\u52a0\u7684\u7ea7\u6570\u4e3a\u548c\u5f26\u5916\u97f3\uff0c\u5219\u5148\u5c06\u8be5\u97f3\u52a0\u5165\u548c\u5f26\uff0c\u7136\u540e\u5c06\u6240\u6709\u4f4e\u4e8e\u8be5\u7ea7\u6570\u7684\u97f3\u5c06\u79fb\u9ad8\u516b\u5ea6\u3002\n\n### \u516b\u5ea6\n  \u548c\u5f26\u7684\u672b\u5c3e\u53ef\u4ee5\u6dfb\u52a0\u82e5\u5e72\u4e2a `,` \u6216\u8005 `.` \u6765\u8c03\u6574\u6f14\u594f\u7684\u516b\u5ea6\uff0c\u4ee5\u4fbf\u6784\u5efa\u4f4e\u97f3\u7ebf\u6761\u3002\u8bf7\u6ce8\u610f\uff0c\u548c\u5f26\u9ed8\u8ba4\u662f\u4f4e\u516b\u5ea6\u6f14\u594f\u7684\u3002\u4f8b\u5982 `[5/7,]` \u8868\u793a\u4f4e\u4e24\u4e2a\u516b\u5ea6\u6f14\u594f\uff1b`[1.]` \u8868\u793a\u4ee5\u4e2d\u592e\u516b\u5ea6\u6f14\u594f\u3002\n\n\u4e00\u4e9b\u6b63\u786e\u7684\u548c\u5f26\u8bb0\u53f7\u4e3e\u4f8b\uff1a\n- 4\uff1a\u56db\u7ea7\u5927\u4e09\u548c\u5f26\n- 57\uff1a\u4e94\u7ea7\u5c5e\u4e03\u548c\u5f26\n- 7bsus\uff1a\u964d\u4e03\u7ea7\u5927\u4e09\u6302\u56db\u548c\u5f26\n- 4#m7b5\uff1a\u5347\u56db\u7ea7\u534a\u51cf\u4e03\u548c\u5f26\n- 1add6add9\uff1a\u4e00\u7ea7\u516d\u4e5d\u548c\u5f26\n- 511omit3omit5\uff1a\u4e94\u7ea7\u5c5e\u5341\u4e00\u548c\u5f26\uff0c\u7701\u7565\u4e09\u97f3\u548c\u4e94\u97f3\n- 1/5\uff1a\u4e00\u7ea7\u5927\u4e09\u548c\u5f26\u7b2c\u4e8c\u8f6c\u4f4d\uff0c\u5373 `5(1.)(3.)`\n- 4/5\uff1a\u56db\u7ea7\u5927\u4e09\u548c\u5f26\u4e0b\u52a0 5\uff0c\u5373 `5(6)(1.)(4.)`\n\n*\u6ce8\uff1a\u8bf7\u6ce8\u610f\u5347\u964d\u8bb0\u53f7\u53ef\u80fd\u5f15\u8d77\u7684\u6b67\u4e49\u3002\u5728 `1` \u81f3 `7` \u4e03\u4e2a\u5927\u4e09\u548c\u5f26\u540e\uff0c\u82e5\u8981\u76f4\u63a5\u6dfb\u52a0\u5347\u964d\u97f3\u540e\u7f00\uff0c\u8bf7\u5148\u52a0\u5165\u7a7a\u683c\u3002\u4f8b\u5982\u516d\u7ea7\u5927\u4e09\u964d\u5341\u4e09\u548c\u5f26\u4e3a `6 b13` \u800c\u4e0d\u662f `6b13`\uff08\u964d\u516d\u7ea7\u5c5e\u5341\u4e09\u548c\u5f26\uff09\u3002*\n\n## \u4e50\u8c31\u793a\u4f8b\n\u5361\u519c\u4e3b\u65cb\u5f8b\n```\n1=D\n5-345-34(1+(3+(5+)))\n55,6,7,1234(7,+(2+(5+)))\n3-123-3,4,(6,+(1+(3+)))\n5,6,5,4,5,3,4,5,(5,+(7,+(3+)))\n4,-6,5,4,-3,2,(4,+(6,+(1+)))\n3,2,1,2,3,4,5,6,(3,+(5,+(1+)))\n4,-6,5,6,-7,1(4,+(6,+(1+)))\n5,6,7,12345(5,+(7,+(2+)))\n```\n\u66f4\u591a\u4e50\u8c31\u793a\u4f8b\u4f4d\u4e8e [templates](./templates) \u6587\u4ef6\u5939\u4e0b\n\n| \u6587\u4ef6\u540d | \u4e50\u66f2 | \u827a\u672f\u5bb6 | \u5907\u6ce8 |\n| :-- | :-- | :-- | :-- |\n| `tori_no_uta.txt` | \u9e1f\u4e4b\u8bd7 | Lia | \u4ec5\u65cb\u5f8b\uff0c\u7528\u4e8e\u6d4b\u8bd5\u5355\u8f68\u6f14\u594f |\n| `flower_dance.txt` | \u82b1\u4e4b\u821e | DJ Okawari | \u7528\u4e8e\u6d4b\u8bd5\u7b80\u5355\u591a\u8f68\u6f14\u594f |\n| `canon.txt` | \u5361\u519c | Johann Pachelbel | \u7528\u4e8e\u6d4b\u8bd5\u590d\u6742\u591a\u8f68\u6f14\u594f\u548c\u7d27\u51d1\u5f0f\u5199\u6cd5 |\n| `orchid_pavilion.txt` | \u5170\u4ead\u5e8f | \u5468\u6770\u4f26 | \u4ec5\u526f\u6b4c\uff0c\u7528\u4e8e\u6d4b\u8bd5\u548c\u5f26\u6f14\u594f |\n",
"bugtrack_url": null,
"license": null,
"summary": "\u6253\u8c31\u4e48 - \u5c06\u7ebf\u6027\u4e50\u8c31\u8f6c\u6362\u4e3a MIDI \u6587\u4ef6",
"version": "0.3.1",
"project_urls": {
"Homepage": "https://github.com/ScarlettRinko/dapume",
"Issues": "https://github.com/ScarlettRinko/dapume/issues",
"Repository": "https://github.com/ScarlettRinko/dapume"
},
"split_keywords": [
"linear-score",
" midi",
" music",
" renderer",
" score"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b66fb03350d9ca9d2d090ea3120031848c69bbd72c5550c00c79a8c42ac9704c",
"md5": "8667059a453370fc041f61491cf30b47",
"sha256": "2c2195b882242c7b30e1d493db1331c47f49cf4a77b6abd2dfd8017fd91526b5"
},
"downloads": -1,
"filename": "dapume-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8667059a453370fc041f61491cf30b47",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 18541,
"upload_time": "2025-08-31T07:22:03",
"upload_time_iso_8601": "2025-08-31T07:22:03.251753Z",
"url": "https://files.pythonhosted.org/packages/b6/6f/b03350d9ca9d2d090ea3120031848c69bbd72c5550c00c79a8c42ac9704c/dapume-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "96eee1eb1309c6aeb411f02e1b775fe5e490856ad2d8b2f4a716f2ec7df08574",
"md5": "698841caed179a29f969f30fd3489ae9",
"sha256": "1b9c926da637933f559f6d802d1201165a099989a93d6e0b168a235138f2256f"
},
"downloads": -1,
"filename": "dapume-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "698841caed179a29f969f30fd3489ae9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 28426,
"upload_time": "2025-08-31T07:22:05",
"upload_time_iso_8601": "2025-08-31T07:22:05.014888Z",
"url": "https://files.pythonhosted.org/packages/96/ee/e1eb1309c6aeb411f02e1b775fe5e490856ad2d8b2f4a716f2ec7df08574/dapume-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-31 07:22:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ScarlettRinko",
"github_project": "dapume",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "dapume"
}