【Python图像特征的音乐序列生成】解析ABC格式的文件(修改版)

ABC格式,是一个音乐标准,ABC Plus Project最新的标准是2.x。

ABC格式的音乐长成这样:

 1 X: 2
 2 T:Abacus
 3 % Nottingham Music Database
 4 S:By Hugh Barwell, via Phil Rowe
 5 R: Jig
 6 M:6/8
 7 K:G
 8 "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)

posted @ 2017-07-13 17:56  ldzhangyx  阅读(1424)  评论(1编辑  收藏  举报