拉伸示例

现在我们可以演奏各种合成器和示例来创建音乐,现在该学习如何修改合成器和示例以使音乐更加独特和有趣。首先,让我们探索“拉伸”和“挤压”示例的能力。

示例表示

样本是预先录制的声音,存储为数字,代表如何移动扬声器音频以再现声音。扬声器音频可以移入和移出,因此数字只需要表示每个时间锥入和移出圆锥的距离。为了能够忠实地再现录制的声音,样本通常需要每秒存储数千个数字! Sonic Pi会获取此数字列表,并以正确的速度馈送它们,从而以正确的方式移入和移出计算机扬声器,以再现声音。但是,改变将数字馈送到扬声器以改变声音的速度也很有趣。

变化率

让我们播放一种环境声音::ambi_choir。要使用默认速率播放,您可以将“ rate:”选项传递给“ sample”:

sample :ambi_choir, rate: 1

它以正常速率(1)播放,因此没有什么特别的。但是我们可以自由地将该数字更改为其他数字,例如 0.5呢:

sample :ambi_choir, rate: 0.5

哇!这里发生了什么?好吧,两件事。首先,示例的播放时间是其两倍,其次声音降低了八度。让我们更详细地探讨这些事情。

让我们伸展一下

一个可以愉快的拉伸和压缩的样本是Amen Break。以正常的速度,我们可能会想象将其放入一个* drum’n’bass *音轨中:

sample :loop_amen

但是,通过更改速率,我们可以切换流派。为旧式嘻哈音乐尝试一半速度:

sample :loop_amen, rate: 0.5

如果加快速度,则输入* jungle *:

sample :loop_amen, rate: 1.5

现在是我们最后的最后的花招-让我们看看如果使用负速率会发生什么:

sample :loop_amen, rate: -1

哇!它使用backwards播放!现在尝试以不同的速率处理许多不同的示例。尝试非常快的速率。尝试疯狂的低速率。看看可以产生什么有趣的声音。

采样率的简单解释

想到示例的一种有用方法是弹簧。播放速度就像挤压和拉伸弹簧一样。如果以速率2播放示例,则将弹簧压缩为正常长度的一半。因此,采样时间越短,其播放时间就减少一半。如果您以一半的速率播放示例,那么您将“拉伸弹簧”以使其长度加倍。因此,采样时间越长,其播放时间就增加一倍。压榨越多(速率越高),它越短,拉伸越多(速率越低),它就越长。

压缩弹簧会增加其密度(每厘米的线圈数量) - 这与示例高音的声响[高音]类似。拉伸弹簧会降低其密度,类似于具有 [低音] 的声音。

采样率背后的数学

(本节是为那些对细节感兴趣的人提供的。请随时跳过…)

正如我们在上面看到的,示例由一长串长长的数字表示,这些数字代表播放器随时间推移,应该在的位置。我们可以使用这串数字来绘制一个像这样的图:

sample graph

您可能以前看过这样的图。它叫做样本的波形。它实际上是由一堆数字组成的。通常,这样的波形每秒将有44100个数据点(这是由于Nyquist-Shannon采样定理所致)。因此,如果采样持续2秒钟,则波形将由88200个数字表示,我们将以每秒44100点的速度将其馈送到扬声器。当然,我们可以以每秒88200点的双倍速率馈送。这样的话就只需要1秒钟即可播放完同样一段采样。我们也可以让播放的速率降低一半,即每秒22050点,需要4秒钟才能播放完毕。

示例的持续时间受播放速率的影响:

我们可以用以下公式表示:

new_sample_duration = (1 / rate) * sample_duration 

更改播放速率也会影响采样的音高。波形的频率或基音由其上下移动的速度决定。我们的大脑不知怎么地把说话人的快速移动变成高音,把说话人的慢速移动变成低音。这就是为什么有时你甚至可以看到一个大低音扬声器,因为它泵出超低音-它实际上移动慢得多,进出比一个扬声器产生更高的音符。

如果您将一个波形压缩,它在每秒会上下移动更多地次数。这使得它听起来音调更高。让波形上下振动的总数加速一倍可以让频率翻倍。所以,使用双倍的速率播放您的示例,您将听到双倍的频率。同样,使用一半的速率将会降低一半的频率。其它速率也会相应地影响频率。