Cod*_*ous 89 procedural generative
我已经在很长一段时间内对程序生成内容进行了大量的思考,而且我从未见过过多的程序音乐实验.我们有很棒的技术来生成模型,动画,纹理,但音乐仍然是完全静态的或简单的分层循环(例如孢子).
因此,我一直在考虑最佳的音乐生成技术,我很好奇其他人的想法.即使您之前没有考虑过,您认为哪种方法效果很好?请回答一种技巧,并尽可能包含示例.该技术可以使用现有数据或完全从头开始生成音乐,可能是某种输入(情绪,速度,等等).
Ric*_*ole 42
最成功的系统可能会结合多种技术.我怀疑你会找到一种适用于所有音乐类型的旋律,和声,节奏和低音序列生成的技巧.
例如,马尔可夫链非常适合旋律和谐波序列生成.该方法需要分析现有歌曲以构建链转移概率.马尔可夫链的真正美在于各州可以成为你想要的任何东西.
神经网络非常适合于时间序列预测(预测),这意味着它们在与现有流行的旋律/和声进行训练时同样适合于"预测"音乐序列.最终结果将类似于马尔可夫链方法.除了减少内存占用量之外,我无法想到马尔可夫链方法的任何好处.
除了音高之外,您还需要持续时间来确定生成的音符或和弦的节奏.您可以选择将此信息合并到马尔可夫链状态或神经网络输出中,也可以单独生成它并组合独立的音高和持续时间序列.
遗传算法可用于演化节奏部分.一个简单的模型可以使用二进制染色体,其中前32位表示底鼓的模式,第二个32位表示小鼓,第三个32位表示闭合的嗨帽,依此类推.这种情况的缺点是它们需要连续的人工反馈来评估新演化模式的适应性.
的专家系统可以用来验证由其它技术产生的序列.这种验证系统的知识库可能会从任何好的音乐理论书籍或网站中解脱出来.试试Ricci Adams的musictheory.net.
一种简单而有效的算法是使用1/f噪声(又称"粉红噪声")从比例中选择持续时间和音符.这听起来有点像音乐,可以作为一个很好的起点.
更好的算法是使用"马尔可夫链".扫描一些示例音乐并构建概率表.在最简单的情况下,类似C的是20%可能会遵循A.为了使这更好,请查看过去几个音符的顺序,例如"CA B"15%可能跟随B,然后,只需使用之前选择的音符的概率选择音符,然后4%可能会跟随Bb等.这种非常简单的算法可以产生非常好的结果.