2011-11-26 77 views
2

假设我想编写一个应用程序来编写音乐编写音乐的算法

我想为作曲家提供了一套音乐乐谱 - 例如,巴赫的脾气好的键盘' - 并且程序应该以类似的风格准备新分数

算法或甚至库已知此任务?

WikiPedia提供此页面关于algorithmic music composition

+2

这个问题太广泛了。有关于这个主题的博士论文。太大的答案放在这里。你可以用所有可能的答案填满家庭图书馆。 –

+0

@JonathanM我不觉得它比这个流行和非封闭的问题更广泛 - http://stackoverflow.com/questions/7540227/strategies-for-simplifying-math-expressions – SteAp

+0

...人们可以很容易地给一个关于学期重写系统的大学水平课程。实际上,用户常常对非完整的特别信息或广泛的信息感到满意。我也是。请给我一天的答案。 – SteAp

回答

5

你可以使用Markov chains做一些基本的事情。其原理是首先产生一些音乐单位(例如单个音符),然后根据最后产生的单位随机选择下一个单位。

首先,通过输入音乐。每次您看到特定的音符/其他音乐单位时,只需在表格中记录它后面的内容即可。当你走完整个输入材料时,你将得到一个频率表,其中('A','B'出现29次,'C'出现12次,'A'出现两次;'B' '...等)。

现在选择一个初始笔记。根据表中记录的频率随机选择下一个。重复,直到满意。

如果应用于单个笔记,这可能不会产生良好的结果,而是尝试简短的短语。此外,如果您可以访问大量音乐源文件,音质将得到改善。

+1

Thx!我要去调查马尔可夫链。 – SteAp

+0

Rick Taube在Metalevel_的_Notes章节中讨论了马尔可夫链。请参阅Lisp [此处]中该章的示例(http://www.moz.ac.at/sem/lehre/lib/cm/Notes%20from%20the%20Metalevel/19/markov.html)。我用Python实现了它们(包括n阶马尔可夫链)。它在Github上[这里](https://github.com/curtisullerich/cmix/blob/master/metalevel/markov.py)。 – Curtis