2013-10-03 21 views
4

我对音频处理方面没有任何知识的音乐爱好者有项目建议书。我认为这个项目很有意思,但我对如何实施它没有清晰的了解。关于歌曲背景音乐生成方法的问题

项目建议书:有人喜欢唱歌,但是找不到合适的音乐伴奏(背景音乐)。可以弹吉他的人,可以弹吉他唱歌(吉他提供的节奏是背景音乐)。该项目旨在达到类似的效果,例如为人们演唱吉他。

我认为实施这个项目,需要以下组件:

  1. 音乐知识(如何吉他播放背景音乐(也许简单的模式会工作))
  2. 信号/音频处理

    • 按键检测
    • 节拍检测
    • 和弦匹配荷兰国际集团

有我错过达到我的目的的任何其他组件?任何图书馆都可以帮助我?该项目预计在1.5个月内完成。可能吗? (我只是希望它能像吉他初学者一样播放背景音乐)。对于开发语言,我不会使用c/C++。目前我最喜欢的是Python,但可能使用其他编程语言,只要它可以帮助简化实现过程。

我没有音乐背景,只是研究非常基本的音频处理。任何建议或评论apprietiated。


编辑的信息: 我试图寻找自动伴奏,并有一些软件。我没有找到任何开源项目,我想知道它如何处理音频信息的细节。如果你知道任何有关它的开源项目,请分享你的知识,谢谢。

+0

至少有一个应用程序可以执行此操作。通过dreamwalk interactive为iOS设置Jam。 –

+0

是的,我刚刚在http://research.microsoft.com/en-us/um/people/dan/mysong/上找到了一个。有没有关于这个话题的开源项目?我必须做一些与音乐处理有关的事情,目前我只对音乐伴奏感兴趣(处理密钥或世代)。 – Robin

+0

我不知道,而且我非常了解这个领域。即使对于音频软件开发经验丰富的人来说,我认为1.5个月将是雄心勃勃的。 –

回答

4

您可能会先考虑一下吉他手会如何成功地陪伴歌手唱歌,因为他们没有事先知道歌曲的关键点,和弦进展或节奏(更不用说它的结构,风格等)

在伴奏者(人类或电脑)之前没有听过这首歌曲的情况下,实时做到这一点很困难,因为需要一些时间来分析按顺序演唱的内容为伴奏做出适当的音乐选择。在现实世界中具有这种能力的吉他手或其他音乐家将被认为是高度熟练的。

这听起来像是一个非常具有挑战性的项目1.5个月,如果你没有音乐背景。 '也许简单的模式会起作用' - 也许,但是有大量的简单模式可能!

那么雄心勃勃的项目可能是:

  • 记录整首歌曲并进行分析,然后呈现一个后盾(仍然是一个 大量的工作!)
  • 创建单个和声线或部分,以相同的 方式声乐harmoniser效果做
  • 由用户

编辑答复生成基于一个 和弦进行输入的背衬你的第一个评论:

如果你想产生一个完整的伴奏,你需要(如你所说)处理的关键和和弦进展,以及时间(包括时间s忽略并检测该条的哪一拍是“拍1”)

获得这个级别的定时信息可能很困难,因为仅使用从声音中进行的拍子检测不可能使用用于从拍子中获取拍子的标准技术一首歌曲(在某些频率范围内寻找振幅峰值)。

通过不计算时间,您可能仍然会获得良好的效果,并且只需在唱歌音符(或其子集)的开头按时演奏和弦。

所有,那么你需要做的是

  • 检测的注意事项。这篇文章是关于检测python中的音高:Python frequency detection。振幅检测更直接。
  • 想出了一个算法,用于确定作品的根音(并且 - 更加雄心勃勃 - 它发生变化的地方)。在某些情况下,可能很难从单独的旋律中辨别出来。您可以先假设第一个音符或最常见的音符是根音。
  • 想出一个算法来产生和弦进程(做一个网络搜索'协调一个旋律')。很明显,没有客观的方法来做到这一点,你可能只能在有限的范围内做到这一点。您可能需要先假定一小部分和弦,例如I,IV,V。这些应该适用于最简单的'童谣'风格的曲调。

当然,如果您限制自己以节拍1开始的简单曲调,那么您可以更轻松地计算出拍号。总的来说,我认为你的成功之路将是首先尝试处理简单的案例,然后再以此为基础。

+0

对于实时分析来说,这太困难了,所以它不是基于实时的。这意味着,我有没有任何音乐伴奏的歌曲。我可以根据歌曲进行分析,并用音乐伴奏输出歌曲。 – Robin

+0

作为回应编辑上面。 –

+0

非常感谢。您的回复非常有帮助。 – Robin