Skip to main content

打谱么 - 将线性乐谱转换为 MIDI 文件

Project description

打谱么

本项目用于将线性乐谱转换为 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.)

注:请注意升降记号可能引起的歧义。在 17 七个大三和弦后,若要直接添加升降音后缀,请先加入空格。例如六级大三降十三和弦为 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 文件夹下

文件名 乐曲 艺术家 备注
tori_no_uta.txt 鸟之诗 Lia 仅旋律,用于测试单轨演奏
flower_dance.txt 花之舞 DJ Okawari 用于测试简单多轨演奏
canon.txt 卡农 Johann Pachelbel 用于测试复杂多轨演奏和紧凑式写法
orchid_pavilion.txt 兰亭序 周杰伦 仅副歌,用于测试和弦演奏

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dapume-0.3.1.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dapume-0.3.1-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file dapume-0.3.1.tar.gz.

File metadata

  • Download URL: dapume-0.3.1.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dapume-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1b9c926da637933f559f6d802d1201165a099989a93d6e0b168a235138f2256f
MD5 698841caed179a29f969f30fd3489ae9
BLAKE2b-256 96eee1eb1309c6aeb411f02e1b775fe5e490856ad2d8b2f4a716f2ec7df08574

See more details on using hashes here.

File details

Details for the file dapume-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: dapume-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dapume-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c2195b882242c7b30e1d493db1331c47f49cf4a77b6abd2dfd8017fd91526b5
MD5 8667059a453370fc041f61491cf30b47
BLAKE2b-256 b66fb03350d9ca9d2d090ea3120031848c69bbd72c5550c00c79a8c42ac9704c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page