当我学会Python后,不仅成了程序员,顺带成为了一个音乐家!
如今,许多人尝试用计算机创作乐器,普遍方法是随机生成一段音乐,和现有曲子的相似度进行打分,一个分值范围内算通过。我也这么做?不,这样做效率低下,随机生成几千首只有一首通过,计算速度也十分低下(超级电脑不说),筛选出的曲子也不一定好听。 我用什么方法呢?今天,我们要了解许多令人发指的乐理,以及计算令人发指的乐理公式。准备好笔纸了么?今天,就让我,带您进入美妙复杂的音乐殿堂吧! 乐理的代码: 废话不多说,先来讲讲“音程”: 音程及其算法: 看着玄乎,其实是最简单,它表示两音之间的“距离,其基本单位称为度。在mido中,以“半音”为基本单位,接下来,我都采用半音计数。 1:**小二度** 2:**大二度**/减三度 3:**小三度**/增二度 4:**大三度**/减四度 5:**纯四度**/增三度 6:**增四度**/减五度 7:**纯五度**/减六度 8:**小六度**/增五度 9:**大六度**/减七度 10:**小七度**/增六度 11:**大七度** (**单位:****半音**) 除了四度和五度(八度不算) ,度按减小大增来计算,没有基准。但,一般“大度”为最佳选择。不信可以尝试下,是大三度好听,还是小三度好听。除四度以外,只有理论上的增减,不会说增三度,只说纯四度。因此,只需做11个函数就行了。比如说小二度: def sd_two(low=None,high=None):