musicpy数学音乐:生成协和音程的分形音乐

最近发现musicpy做了很多很多的更新,以前有个视频看上去都过时了。
最近看经济周期性危机相关的内容时突然联想到了之前看过的一个分形音乐的视频。(脑回路总是能产生各种奇怪的联想)
这是以前看到的分形音乐的视频:分形音乐

上图中红色框部分都是一样的,只不过是长度按照倍率压缩了。
这些分形音乐还不是随手写一个小节,然后复制复制复制,拉长拉长就可以生成出来的。
因为最终的结果很容易出现“不协和音程”。例如小二度、减五度、增四度、大七度。
衡量音程协和与不协和与否就是看频率高的音符是频率低的音符的多少倍(频率多少倍),
这个倍数是含有开根号的分数,虽然是无理数但却非常接近一个分数。可以近似看成有理数,如果这个分数化简后分子和分母的数字尽可能的小,那么听起来就是协和的。否则不协和。
这里懒得解释了。因为3b1b有一个视频详细的阐述了这个问题。
音乐与测度论有什么关系?(中英字幕)这里放一个视频链接。
本文章用Python的musicpy库实现了生成分形音乐mid文件的代码。
运行以下代码需要安装musicpy第三方库,以及新建一个“out”文件夹。
这篇文章写于2023年9月17日,由于musicpy的作者一直在更新,所以这篇文章的代码也可能具有版本局限性。
代码:
代码写的比较随性,直接创建了一个草稿,写在了一个py文件里。可能有一些命名也比较随意。