2010-07-09 88 views
2

有人可以提供有关编程乐器模拟器的信息。例如,请参阅here(适用于iPhone的Smule的Ocarina应用程序)。编程乐器模拟器?

我想找到关于此主题的足够信息。以ocarina应用程序为例,单个笔记如何生成?由于结果是基于呼吸力度和哪些“洞”被压低,所以必须以编程方式处理其中的一些,但是是以编程方式生成的全部声音,或者它将在后端使用声音样本并修改(或那些,如果使用多个样本)?

这个主题是否有任何资源?我的所有搜索都会提供关于如何播放音乐(仅标准音频)或如何制作音乐(在音乐编辑软件中)的信息,但没有关于如何执行该视频中显示的内容的信息。

回应不需要与ocarinas严格相关,但我不介意他们是否。

+0

人吹口哨成iphones?这个苹果业务每天都变得越来越可笑... 无论如何乐器合成是一项艰难的业务,需要一些扎实的物理或数学知识。谷歌搜索“FM综合”可能会有所帮助。 – 2010-07-09 16:50:50

回答

3

那个特定乐器的声音,我就像是一个相当简单的合成模块,基于方波或FM,加入混响滤波器。所以我猜测它是人为产生的声音。如果您要自己制作其中一种乐器,您可以根据需要使用样本集作为您的基础。还有另一种可能性,我将在下面提及一种方法。

处理呼吸输入:呼吸输入通常转换为表示输入麦克风上的气压的值。这可以通过对输入音频信号进行小块处理并计算每个块的峰值或RMS来完成。我喜欢RMS,其通过类似计算:

int BUFFER_SIZE = 1024; // just for purposes of this example 
float buffer[BUFFER_SIZE]; // 1 channel of float samples between -1.0 and 1.0 
float rms = 0.0f; 
for (int i=0; i<BUFFER_SIZE; ++i) { 
    rms += buffer[i]*buffer[i]; 
} 
rms = sqrt(rms/BUFFER_SIZE); 

在MIDI,该值通常在信道CC2为0和127之间的值该值随后被用于连续控制的体积传输输出声音。 (在iPhone上,MIDI可能会或可能不会在内部使用,但概念是一样的,无论如何,我都会从此处调用此值CC2。)

处理按键:这种情况下的按键可能只是直接映射到它们对应的笔记。这些将作为新的音符事件发送到乐器。我不认为那里有什么奇特的造型。

控制的其他形式:的笛仪器使用iPhone的倾斜来控制颤音频率和音量。通常通过低频振荡器(LFO)对其进行建模,该低频振荡器的缩放,偏移和乘以乐器其余部分的输出以产生颤动音量效果。它也可以用来控制你的乐器的音调,它会导致音高波动。 (如果你使用的是样品,这很难做到,但如果你使用的是波形,相对容易)。迷你MIDI风控制器也跟踪手指压力和咬合压力,并且可以将这些参数作为参数展示给你塑造你的声音。

呼吸仪器201:有一些技巧,人拉,使声音更具表现力,当他们由呼吸控制器控制:

  • 确保您的输出只打一个音符在一个时间;切换到新的音符会自动结束前一个音符。
  • 如果呼吸压力恒定并且连接了按键,请确保从旧音符到新音符的音量保持平稳。这可以让您区分连奏和分离演奏。

呼吸仪器301:然后我们到了有趣的东西:如何模拟超吹,音色变化,部分指法等像一个真正的管乐器可以做。还有我能想到的在这里的几种方法:

  • 混合的气息输入本身,或许以某种方式过滤的声音,赋予自然chiff或breathiness到您的声音。
  • 使用速度层之间的交叉渐变将高速声音转换为完全不同的声音。换句话说,当你淡入新的声音时,你逐渐淡出旧的声音;他们演奏的音调相同,但新声音的新音色特征会使他们逐渐明显。
  • 使用具有大量高频分量的复杂声音。连接截止频率由CC2控制的低通滤波器。截止频率随着CC2值的增加而增加。当您对输入进行更加严重的打击时,这可以以一种有趣的方式增加高频内容。
  • 这样做的核心方式被称为物理建模。它涉及到创建你试图仿效的乐器的物理行为的详细数学模型。这样做可以给你一个相当逼真的吹泡效果,并且它可以捕捉呼吸输入和指法如何塑造声音的许多细微影响。在Princeton's Sound Lab有一个这种方法的快速概览和一个示例工具戳in the STK C++ library –,但被警告,这不是数学上的心脏!
0

首先,我不太清楚你的问题是什么。

有很多种声音合成。几个我知道的是:

  • 调频
  • 振荡波
  • 表(基于样品)

振荡是相当简单的,可能开始的地方。如果你在440Hz产生一个方波,你就会发出“A”或更具体的中间音符A.

这种简单的合成方式真的很有趣,而且很容易做到。也许你可以开始为PC音箱制作一个简单的合成器。哦,但我不知道是否所有的操作系​​统都允许你访问它。 LADSPA有一些很好的例子。有很多用于Linux的库文件可帮助您开始。你可能想看看CSound的为首发:http://www.csounds.com/chapter1/index.html

我用它打了一下周围,并有一对夫妇老土合成器回事...