码迷,mamicode.com
首页 > 编程语言 > 详细

【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

时间:2017-07-10 14:33:17      阅读:814      评论:0      收藏:0      [点我收藏+]

标签:back   mod   全自动   可行性   png   bug   文件   blog   error:   

mingus在输出midi文件的时候,使用这样的函数:

1 from mingus.containers import NoteContainer
2 from mingus.midi import midi_file_out
3 
4 nc = NoteContainer(["A", "C", "E"])
5 midi_file_out.write_NoteContainer("test.mid", nc)

在输出时会报错:

1 Traceback (most recent call last):
2   File "<stdin>", line 1, in <module>
3   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_file_out.py", line 94, in write_NoteContainer
4   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 50, in __init__
5   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 225, in set_tempo
6   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 230, in set_tempo_event
7 TypeError: %x format: an integer is required, not float

解决办法是找到这个文件:

...\Anaconda3\Lib\site-packages\mingus-0.5.2-py3.6.egg

用7-Zip打开这个文件,直接编辑里面的midi_track.py文件:

技术分享

 

找到230行,将代码改成下图所示即可。

技术分享

 

保存,退出,重新import,程序正确。。

 

 

============================================

关于情感模型的改进,我重新评估了原来的情感分类,发现可行性很差,于是尝试使用这个模型:

技术分享

其实我一度动摇,根据乐理来做这样的音乐会不会是多此一举呢?

其实再想想,这样做也没什么不好的,至少比全自动生成Bach的音乐有意思多了。

 

关于主旋律的问题,周末我休息的时候也在思考要怎么制作,结论是:可能采用情感与节奏结合的模型,结合小跳和大跳来做一种概率模型。

即主旋律是在一定的大框架内,根据图像的情感特征决定节奏拍子,决定一种旋律行进模式(小跳、大跳);根据图像本身来选择随机种子,设计随机算法。

这都是耗费精力的事情。

 

【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

标签:back   mod   全自动   可行性   png   bug   文件   blog   error:   

原文地址:http://www.cnblogs.com/ldzhangyx/p/7145239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!