我最近在学习Ruby编程语言,偶然发现了这个名为Sonic Pi的软件。 我当时想:您可以使用Ruby编写音乐? 哇啊? 这听起来很神奇,但是真正的问题是,用Ruby进行涂料节拍有多难? 答案是,一点也不难。 对于所有您以外的人来说,我都是使用此功能强大的软件对我的第一个节拍进行编程的过程的第一步,并希望它可以作为指导,以激发酷的人放下节拍。
对于本演练,我将使用Sonic Pi。 Sonic Pi是使用Ruby制作音乐的DAW(数字音频工作站)。 您基本上可以使用变量,数组,哈希,循环,方法(或函数)等来创建涂料声音。 它是由剑桥大学计算机实验室的一位名叫Sam Aaron的出色人物创建的。 他对程序的意图是找到一种方法来教孩子们音乐和编程方面的知识,而又不会因为第一次提到“变量”一词或算法而引起他们的注意。 Sonic Pi是免费的 ,它甚至可以在Raspberry Pi上运行,所以请立即下载(如果尚未下载)以开始制作一些节拍!
现在让我们开始吧!
但是,出于本次步行的目的,我们将:保持紧凑和简单! 让我们与程序员一起思考,让我们为我们希望(简单)的歌曲采用的结构制作流程图。
酷,超级简单,只有四个部分; 前奏,节拍,桥接,节拍(再次)和结尾。 歌曲中最重要的部分是节拍,这基本上就是一切。 所有其他部分只是为了使爵士乐更加有趣。 前奏和尾奏为歌曲增添了风味,它使我们开始和结束歌曲的方式少了一些笨拙,也少了一些磨损。 琴桥只会使节拍声音不那么重复。 由于我们生活在ADD时代,每个人都对快速重复模式失去了兴趣; 这座桥是吸引听众注意力并为歌曲增添动感的理想方式。
选择歌曲的音调/音阶
这是这首歌的核心。 我们需要定义歌曲的音调/调。 如果您不熟悉音乐理论,请不要担心。 我们将使其简洁而简单。 西方音乐中只有12个音符
- [ C ,Db, D ,Eb, E , F ,Gb, G ,Ab, A ,Bb, B ]
要么
- [ C ,C#, D ,D#, E , F ,F#, G ,G#, A ,A#, B ]
是的,这两个注释的“数组”是相同的。 音乐家喜欢使事情复杂化,使其听起来比他们聪明。 就像科学家,数学家和程序员一样。 现在这并不重要。 但是,当您要制作自己的简单歌曲时,只需随机选择一首,然后随机说“主要”或“次要”即可。
所以我随机选择了C小调。 为什么? C是第一个选择,我掷硬币并得到尾巴。 太酷了,如果您不知道C小调属于哪些音符,只需将其谷歌搜索即可。 以下是该键的注释:
- [C,D,Eb,F,G,Ab,Bb]
是的,这些是我们将要为这首歌使用的7个音符,只有七个…
和弦
保持紧绷和简单,这首歌的核心只有1和弦(BEATS部分)。 是的,只有一个,The Bridge和outro将会有更多的和弦,但这并不重要。 因为我们在C小调中,所以我们使用C小调和弦。 我们可以使用[C小调,C小调7,C小调9,C小调11,C小调13]。如果您没有注意到所有这些和弦均为C小调,那么右边的数字只会为基本和弦添加一些音符。 您知道音乐家如何使事情复杂化吗? 让我们不必担心,只需随机选择一个即可。 我选择C小调9是因为我认为9是一个涂料编号。 酷豆,我们掌握了这首歌的音调和和弦。 现在让我们开始编写节奏!
编程鼓(踢,小鼓,踩Hi)
BPM
选择一个bpm(每分钟心跳数)。 我选择110 bpm,当您开始时这并不重要,因为我们是程序员,而CRUD是我们的生活方式。 您始终可以将bpm更新为更高或更低的值。 此代码应放在页面顶部。 考虑一下“像”一个影响您所有代码的全局变量。
节拍器/踩Ha(简单)
节拍器仅记录您每分钟的节拍。 每次跳动都应该发出声音,这意味着如果以110 bpm的速度每分钟发出110次声音。 当我测试歌曲的其他部分时,我用它来跟踪节奏,但由于对我来说听起来很不错,所以我最终在整个歌曲中都保留了它。
分解:我定义了一个称为节拍器的方法,并将代码放入in_thread函数中,以便可以同时使用多个方法进行播放。 在in_thread内,我执行了一个循环(.times),该节奏在每次节拍中播放闭合的鼓sound声音的样本。 免责声明:循环数(.times)的数字是在我调用所有使用的方法并构造歌曲最终产品的末尾确定的。 所有方法也将具有不同的编号。
分解:定义了一个称为圈套器的方法,并在其中包含一个圈套圈的in_thread内部。 睡眠2拍,在3拍上演奏小军鼓采样(默认为1拍)并睡眠2拍,这意味着它将从3到4拍入睡眠。每个循环的持续时间为4拍。
分解:您现在应该熟悉用于编写此代码的方法。 我使用较高的安培数(7–8),因为较低频率的声音较难听见,而节拍则需要较高频率的较低频率才能发出超火的声音。 设置放大器时要一点一点:值,您不想炸毁扬声器或使鼓声变差。 请记住,amp:默认值为1。
分解:如果您不知道什么音符会使C小调9,请不要担心! Sonic Pi非常智能,可以为您做到。 只需编写和弦(:note_name,:chord_name_abreviation)即可! 在这种情况下,chord(:c3,:m9)。 关于此代码要说的另一件事是,它具有混响效果。 我将此添加到听起来很前卫并添加了氛围(以法语口音发音这个词来听起来很前卫)。 您可以添加不同的效果并成为老板,尝试一下!
分解:由于是低音,请确保在音符名称旁边写2或1。 该代码每4跳播放一次:C2,每4跳播放一次:Eb1。 甜!
填料?
我添加了这部分以填补歌曲中的空白吗? 添加“美学”基本上只是背景噪音。 这是代码:
在这里,我演奏三个和弦。 C小调9,Eb大调7和G小调9。这些和弦都属于C小调,如果您不熟悉音乐理论,可以通过简单的Google搜索找到它们。
在这里,我使用C小调11,而不是C小调9。我知道,使用11而不是9并使用镶边和混响(同时!)吗? 谈论变得超级疯狂和幻想。 :ambi_lunar_land示例的一部分只是为了增加环境。
我们已经创建了歌曲将具有的所有功能,是时候调用它们并执行一些触发声音了。 这是我如何称呼它们(它们并排出现以适合屏幕快照,但它们应该全部放在一栏中):
最后一步是为歌曲,流派和歌手的名字命名(如果您没有)。 我的“艺术家”名字叫Lil Ruby,这首歌叫Binary Beats。 就个人而言,我认为“体裁”一词已成为一个大笑话。 不幸的是,没有用于分类或创建歌曲类型的(“轻松路由”)约定。 一首歌可以有一种或多种流派吗? 一个流派可以属于许多流派吗? 如果一首歌曲具有多种流派,这是否意味着应该将其命名为新流派? 谁在乎? (嗯,也许是需要与ActiveRecord建立这种联系的程序员,或者是想听起来很酷的时髦人士。)话虽如此,这首歌属于DonkeyWaffles曲风。
这样就可以完成了。 我希望到现在为止你可以说:我把这个$#It弄下来了,我能比这个小丑拍得更好。 继续编码,继续创作音乐,继续尝试并不断传播爱!