如何在 Python 中将 ABC 表示法的音乐文件转换为 midi 或 mp3 [关闭]
Posted
技术标签:
【中文标题】如何在 Python 中将 ABC 表示法的音乐文件转换为 midi 或 mp3 [关闭]【英文标题】:How to convert music file in ABC notation to midi or mp3 in Python [closed] 【发布时间】:2021-05-02 06:20:44 【问题描述】:我有 abc 符号文件,我想将其转换为 midi 或 mp3 格式。
我确实找到了 music21 (docs) 库,说它可以将 abc 转换为 midi,但我不知道如何。
我还找到了一个网站mandolintab,可以将下面的文件转换为midi。我希望在 python 中做同样的事情。
有人可以帮忙吗?
p6
E (G/A/) \
| eAFE ~Ez | D2 zB AG | E2 EE ED |
EE E2 | (EA) A2 | Ac ef | g2 fe | (e3 d) ec |
d2 BA Bd | c2 BA ^c/d/ | e2 A/A/ cA/A/ | Ad c2 ||
((3c/d/e/)) | f2 ff e2 dc | d^c de f2 (gf/e/) | f2 ed cAGE | F2 D2 D2 ((3ABc)|
dcdA GFGB | Adfe dcAc | dcde fedc | A2 A>G A2 :|
X:1758
T:The Sirit Peallow
M:C|
L:1/8
N:"collected by J. O'Neill"
B:O'Neill's 1429
Z:"Transcribed by Bob Safranek, rjs@gsp.org"
K:D
(D | F)ABA FAFD | (F2AGF) DFAF | DEFE DEFD | EFAF DFAF |
dD ((3DDD) (FA) BcdF| E2 ((3EFG) A2 ||
d2 (fd) cBAG | F2 (AG) FDAD | ((3FED) (AD) CEEG | FEFG AB G2 :|
((3fgf) (df) (ed) B2 | A2 (Ac) BcdB | Adfa gfe^d | e2 (ae) fedc |
BGDF GABc d2 (ga) | ((3fga) (fd) efge | ((3fga) (ec)
【问题讨论】:
【参考方案1】:一般来说,如果你有一个 xyz.abc 文件,你可以在 python 中将它转换为 music21 中的 MIDI:
from music21 import converter
s = converter.parse('xyz.abc')
s.show('midi') # or s.write('midi', fp='output.mid')
或者如果它是 abc 分数的集合,您可以通过以下方式获得特定分数:
from music21 import converter
s = converter.parse('xyz.abc', number=1758)
s.show('midi') # or s.write('midi', fp='output.mid')
这样就可以了(然后您可以将其转换为 mp3。
O'Neill 收藏中的曲目应该已经在 music21 的语料库中,但我们的版本中似乎没有这首曲目。
【讨论】:
以上部分是使用 ML 模型生成的。我尝试了您提到的方式,我得到了 ABCHandlerException: no active default note length provided for note processing。 tPrev:无,t:以上是关于如何在 Python 中将 ABC 表示法的音乐文件转换为 midi 或 mp3 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章