极简音乐:只用一段旋律决胜负
从动森说起
2020年初,很多人都迷上了《集合啦!动物森友会》这款游戏,我也不例外。在游戏里初登岛时,住在帐篷中过着清贫生活的我,听到收音机电台播放《极简音乐》时,感觉真是妙极了。
来听听Space K.K. (Radio)
https://music.163.com/#/song?id=1434013347
虽然《极简音乐》只有一个重复的旋律,但和其它歌曲比起来,这首非常耐听。在岛上攒钱盖房,买了自己的唱片机之后,我每天都会去村公所NOOK机上预定唱片,特别期待入手《极简音乐》唱片。
需要向没玩过动森的朋友解释一下,在动森世界里,所有唱片都是流浪歌手k.k的作品。kk是只会弹吉他唱歌的白色小狗,粗眉会让我想到陈宝国。每周六他都会来岛上的广场演出。现场听到的歌曲是kk弹唱版本,而购入的同名唱片中,有一些是纯音乐,比如《极简音乐》。
后来我在网易云上找到了原曲《Space K.k.(radio)》,看评论发现其他玩家和我感受一样。
"这个曲子能循环着听,毫无违和感"
"常驻时间最长的曲子,坐在椅子上,再加上牛顿摆的踩点,可以盯着看几十分钟"
这样的音乐究竟是怎么做出来的呢?
"这延时效果器用得挺有意思"(真的吗?)
Wow! 发现了最早的发明者。
"可以,这很Steve Reich哈哈哈"
这就去听听Steve Reich的作品。
Steve Reich的《钢琴相位》
https://www.bilibili.com/video/BV12W411b7Tw?from=search&seid=4602282030647858189
Steve Reich是美国电子音乐家,极简音乐的开山鼻祖之一。印象里他比较喜欢用磁带做奇怪的采样,但是因为实验作品大多不耐听,所以我没特意关注。但是托动森的福,我又找来他的《钢琴相位》听了一遍,熟悉的配方熟悉的味道原来出自这里。
“相位”这个词真的很技术,天天坐在示波器前工作的人才会用这个词汇吧?不过用耳朵听,用眼睛看,“相位”产生的现象其实并不难理解。《钢琴相位》由两架钢琴演奏。每位琴师演奏的旋律与速度都保持恒定不变,只不过一位演奏速度稍快,另一位速度稍慢些,时间差非常小。
但随着时间差叠加,两架钢琴旋律错位越来越明显,随时间推移出现不同节奏。虽然旋律一直在重复,但不亚于几何动态般的美感,令人好奇下一秒会变成什么样。
我也试着用正弦波画出相位变化的状态
这个变化速度比《钢琴相位》快多了
Steve Reich把这种变化定义为pattern(模式)。我眼中的pattern, 在音乐里可以是特定节奏类型,在图像上可以是由基础视觉元素组成的复杂纹样。这样理解,就不会被中文翻译中“模式”的称谓吓到。Steve Reich将《钢琴相位》中出现的数个pattern做了具体编号,数量肯定不少。如果将自己中意的pattern提取出来,把相似的节奏写进鼓组,也会很有趣。
用Sonic Pi演奏钢琴相位
用程序实现《钢琴相位》特别简单,但人力演奏的版本反而更令人钦佩。对我来说,演奏时坚持自己的速度,不被对方带跑,真的太难了!除了捂耳朵不听,实在想不出其它办法。所以我自己只能靠程序实现。
Sonic Pi的示例程序examples/illusionist/reich_phase.rb,有对《钢琴相位》的复现:
# Steve Reich's Piano Phase
# See: https://en.wikipedia.org/wiki/Piano_Phase
# use_synth :piano
notes = (ring :E4, :Fs4, :B4, :Cs5, :D5, :Fs4, :E4, :Cs5, :B4, :Fs4, :D5, :Cs5)
live_loop :slow do
play notes.tick, release: 0.1
sleep 0.3
end
live_loop :faster do
play notes.tick, release: 0.1
sleep 0.295
end
在这里,note数列储存了整首曲子的旋律。
之后创建两个轨道,:slow 与 :faster,
对应的是两架演奏速度不同的钢琴。
用sleep设置演奏速度,0.3与0.295的时间差十分细微,较小的差值能让同类型pattern持续时间更长。如果改成0.3与0.29,那么pattern变化更迅速。能上手调参数并魔改,也是欣赏《钢琴相位》的独特体验。
合成器相位
照着上面的代码,我自己也写了一段旋律,本来觉得并无难度。但到播放时才发觉异常混乱。问题究竟出在哪里呢?其实我在写旋律时,忘记了乐曲播放到中段,旋律前半段会和后半段将叠加播放。所以做了修改,让前后两段旋律一起演奏时变得和谐,混乱的问题果然消失了。
notes = (ring :C,:D,:Ds,:F,:G5,:Ds5,:As4,:A)
live_loop :slow do
use_synth :dtri
with_fx :reverb do
play notes.tick, release: 0.1
sleep 0.3
end
end
live_loop :faster do
use_synth :dtri
with_fx :reverb do
play notes.tick,release: 0.1
sleep 0.295
end
end
为了避免不和谐,我还想到另外一个办法,那就是在五声音阶的限制下写旋律,这样能保证100%安全。而相应的,乐曲也就变成了中国风。