我已经投入了大量的思想到的程序生成的内容,而且我从来没有见过多少实验程序的音乐。我们有梦幻般的技术,用于生成模型、动画、纹,但是音乐仍然是要么完全静态的或简单地分层循环(例如孢子).

正因为如此,我一直在想起来的最佳音乐产生技术,而我好奇为什么其他人的想法。即使你以前没有认为它是,你怎么认为将工作呢?每一种技术的答案请,并实例包括在可能的情况。该技术可以利用现有数据或产生的音乐完全从头开始,也许在某种形式的输入(情绪,速度,无论).

有帮助吗?

解决方案

元胞自动机 - 阅读

您也可以尝试此处

修改

rakkarage提供了另一种资源: http://www.ibm。 COM / developerworks的/ JAVA /库/ J-camusic /

其他提示

最成功的系统将有可能结合几种技术。我怀疑你会找到一个技术工作的好音乐的旋律、和谐,节奏与音序列的产生在所有类型的音乐。

马尔科夫链, 例如,适用于旋律和谐序列的产生。这种方法需要分析现有的歌曲建立链的过渡概率。真正的美丽马尔科夫链的是,国家可以无论你想要的。

  • 对于旋律代,尝试钥匙相对注意人数(例如如果关键的是C小时,C会0,D1,D#将2和以上)
  • 和谐代,尝试组合的钥匙相对注意到的数字为根弦,这种类型的弦(主要、次减少,增加,等等。) 和反弦(根,第一或第二个)

神经网络 非常适合 时间系列的预测 (预测),这意味着他们也同样适用于'预测的'一个音乐列当培训,对现有的流行的旋律/和谐。最终的结果将相似的Markov链的方法。我不能想到的任何益处超过马尔科夫链的方法比其他减少存储排放。

除了仰你会需要持续时间确定的节奏产生的笔记或弦。你可以选择将这一信息进入马尔科夫的国家或神经网络的产出、或者你可以产生单独和联合的独立距和持续时间序列。

遗传算法 可用于发展的节奏的部分。一个简单的模型可以利用的二进制 染色体 在其中的第32位代表模式的鼓,第二个32位的一个圈套,第三32位关闭高的帽子等等。缺点在这种情况下,它们需要持续的人的反馈到评估的健身的新演变的模式。

一个 专家系统 可用于验证序列,所产生的其他技术。知识基础,用这样的验证系统可能提起的任何良好的音乐理论书籍或网站。试图里奇*亚当斯 musictheory.net.

对这些技术进行了50多年的研究,经常被不熟悉计算机音乐和算法组成历史的开发人员所忽视。解决这些问题的系统和研究的大量例子可以在这里找到:

http://www.algorithmic.net

一种简单而有效的算法是使用1 / f噪声,即“粉红噪声”。从比例中选择持续时间和注释。这听起来有点像音乐,可以作为一个很好的起点。

更好的算法是使用“马尔可夫链”扫描一些示例音乐并构建概率表。在最简单的情况下,C可能有20%可能跟随A。为了使这更好,请查看过去几个音符的序列,例如“C A B”。 15%可能跟随B,4%可能跟随Bb等。然后,使用先前选择的笔记的概率选择笔记。这个非常简单的算法可以产生非常好的结果。

马尔可夫音乐链生成链

Dmitri Tymoczko在这里有一些有趣的想法和例子:

http://music.princeton.edu/~dmitri/whatmakesmusicsoundgood.html

我的软件使用应用的进化理论来“成长”。音乐。这个过程类似于Richard Dawkins的 The Blind Watchmaker 计划 - MusiGenesis随机添加音乐元素,然后用户决定是否保留每个添加的元素。我们的想法就是保持你喜欢的东西并抛弃听起来不对劲的东西,你不需要接受任何音乐训练就可以使用它。

接口爆炸,但它已经老了 - 起诉我。

我一直很喜欢使用iMuse系统的旧Lucasarts游戏,它为游戏制作了一个永无止境的,反应性的音轨,非常具有音乐性(因为它大部分还是由作曲家创作的)。你可以在这里找到规格(包括专利): http://en.wikipedia.org/wiki/IMUSE

任天堂似乎是唯一仍然使用类似于iMuse的方法来创建或影响音乐的公司。

除非你的项目非常具有实验性,否则我不会放弃使用作曲家 - 真正的人类作曲家会产生比algorythm更多的音乐和可听的结果。

将它与写一首诗相提并论:你可以很容易地产生听起来非常前卫的非诗歌,但是用一种方法来复制莎士比亚很难,说得温和。

你看过SoundHelix(http://www.soundhelix.com)了吗?它是用于算法随机音乐创建的开源Java框架,可生成非常整洁的音乐。您可以将SoundHelix用作独立应用程序,作为嵌入在网页中的applet,作为基于JNLP的applet,或者可以将其包含在您自己的Java程序中。

使用SoundHelix生成的示例可在此处找到: http://www.soundhelix.com/audio-examples

关于非枯燥的程序性音乐生成的研究可以追溯到过去。浏览计算机音乐杂志的新旧问题 http://www.mitpressjournals.org/cmj (没有真正的域名?)这有严重的技术音乐合成修补匠,烙铁骑师,比特牧民和学术研究人员的实际用途的文章。这是一个蓬松的评论和采访抹布,如你可以在大型书店找到的几个杂志。

这么大的主题。您可以在morganpackard.com上查看我的iPad应用程序,Thicket或我的Ripple软件。根据我的经验,大多数动态音乐生成的学术方法都提出了听起来很好的学术方法。我认为更成功的东西是在俱乐部/电子世界的边缘找到的。在这方面,Monolake是我的英雄。非常可听的东西,非常由计算机生成。我自己的音乐也不错。 Paul Lansky的“Alphabet Book”是一个非常可听的算法音乐的一个很好的例子,特别是考虑到他是一个学术家。

我一直在考虑的技术是制作小型音乐模式,最多可达到一个小时左右。使用感觉标识符(例如“兴奋”,“激烈”等)标记这些模式。当您想要为某种情况生成音乐时,请根据这些标记选择一些模式并选择您想要播放的乐器。根据乐器,找出如何组合模式(例如在钢琴上你可以一起演奏,根据手掌跨度,在吉他上你可以连续快速演奏音符),然后将它渲染到PCM 。此外,您可以更改键,更改速度,添加效果等。

你所描述的具体技术是托马斯·杜比在十年或十五年前所做的事情,虽然我现在不记得他所谓的,所以我不能给你一个好的搜索词。

但请参阅维基百科文章和这个 Metafilter页面。

本书算法组合是一个很好的书浏览所使用的几种方法:

“涵盖的主题包括:马尔可夫模型,生成语法,过渡网络,混沌和自相似性,遗传算法,细胞自动机,神经网络和人工智能。”

这是这个广泛主题的一个很好的起点,但它从未深入描述每种方法的工作原理。它提供了每个的良好概述,但如果您还不了解它们,则不够。

早在90年代末,微软就创建了一个名为“交互式音乐控制”的ActiveX控件。这确实是你想要的。不幸的是,他们似乎放弃了这个项目。

不完全是你所追求的,但我知道有人自动生成DJ集,名为基于内容的音乐相似度

如果您正在深入了解音乐如何融合在一起,请 Bill Sethares网站有一些有趣的曲折。

我一直在考虑此项目提案 - " 8.1 "来自“编程语言中的理论与实践”来自哥本哈根大学的研究小组 - CS部门:

  

8.1音乐语料库的自动收集和统计分析

     

传统的乐谱分析   由一个或多个人组成   分析节奏,和弦序列和   单一的其他特征   片,在经常的背景下设定   其他作品的模糊比较   同一位作曲家或其他作曲家   从同一时期。

     

传统   音乐的自动分析几乎没有   对待乐谱,但有重点   关于信号分析和使用   机器学习技术提取   并在内心,比如,心情或分类   类型。相比之下,初期研究   在DIKU的目标是实现部分自动化   乐谱分析。补充说   值是提取的潜力   来自大量的信息   乐谱无法轻易完成   手工,不能有意义   通过机器学习分析   技术。

这 - 正如我所看到的 - 与你的问题相反的方向 - 数据生成 - 我想 - 可以用于某些程序生成音乐的实例。

我的观点是,生成音乐只有在经过严格的选择过程才有效。算法音乐先驱大卫·科普(David Cope)将从他的算法(我认为主要基于马尔可夫链)算起数小时的音乐输出,以找出实际上很好的几个。

我认为这个选择过程可以通过对特定音乐风格的特征进行建模来实现自动化。例如,“迪斯科舞厅”是指“迪斯科舞厅”。风格会为低音线提供很多分数,其中有背景音乐和鼓声部分,后背上有小鼓,但会减少非常不协调的和声点。

事实上,音乐创作过程充满了许多习惯用法,如果没有对该领域的具体了解,就很难进行模拟。

我一直在为程序音乐制作一个Python模块。我只是编写了我对音符,音阶和和弦构造的了解,然后能够让它从这些约束中随机生成内容。我确信有更多的理论和模式可以教授这样的系统,尤其是那些更了解这个主题的人。然后,您可以将这些系统用作遗传算法或随机内容生成的约束。

您可以查看我的实施此处,尤其是随机生成的lead示例可能对您有用。对和弦进行有深刻理解的人可以从这样的技术中创建一个歌曲结构,并在其上实现这样的约束随机旋律。我对音乐理论的了解并没有延伸到那么远。

但基本上,你需要对你想要生成的音乐类型的理论进行编码,然后将其用作某种算法的约束,以便在程序上探索该理论的范围。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top