ABC格式,是一个音乐标准,ABC Plus Project最新的标准是2.x。
ABC格式的音乐长成这样:
1 X: 2
2 T:Abacus3 %Nottingham Music Database4 S:By Hugh Barwell, via Phil Rowe5 R: Jig6 M:6/8
7 K:G8 "G"g2g B^AB|d2d G3|"Em"GAB "Am"A2A|"D7"ABc "G"BAG|
9 "G"g2g B^AB|d2d G2G|"Em"GAB "Am"A2G|"D7"FGA "G"G3::10 "D7"A^GA DFA|"G"B^AB G3|"A7"^c=c^c Ace|"D7"fef def|
11 "G"g2g de=f|"E7"e2e Bcd|"Am"c2c "D7"Adc| [1"G"B2A G3:|
12 [2"G"B2A G2F||"Em"E2E G2G|B2B e2e|"Am"c2A "B7"FBA|"Em"G2F E3|"Em"EFG "Am"ABc|
13 "B7"B^c^d "Em"e2e|"F#7"f2f f2e|"B7"^def BAF|"Em"E2E G2G|B2B e2e|
14 "Am"c2A "B7"FBA|"Em"G2F E3|"Em"EFG "Am"ABc|"B7"B^c^d "Em"e2e|
15 "F#7"f2e "B7"^def |[1"Em"e3 "D7"d3:|[2"Em"e3 "E7"e3||
对应的五线谱是这样的:
我找到了一个自动转换的网址(http://colinhume.com/music.aspx),可以图形化地将ABC转成MIDI和五线谱,这证明轮子是存在的,那么我们能做的就很简单了:
1,找到这个轮子,直接调用库。
2,逆向这个轮子,然后自己造一个。
ABC项目的原始网页提供了一个轮子,现在被这两个地方收录:
https://www.file-extensions.org/convert-abc-to-midi
https://github.com/leesavide/abcmidi
下载地址:https://sourceforge.net/projects/abcplus/files/latest/download?source=files
GitHub项目同时还给出了MIDI文件,非常适合制作数据集。
ABC格式的具体标准在这个网页:http://abcnotation.com/wiki/abc:standard:v2.1
检查Nottingham数据集,发现里面有很适合控制情绪的几个信息头,请看下表:
最重要的一个属性,注意tempo,速度和情绪正负是一个正相关的关系,所以我们会把tempo进行一个单独的处理。
这几天我就要把光阴用在制作数据集上了……
====================
注释:轮子的意思(https://www.zhihu.com/question/21818673)