使用 Sonic Pi 像写代码一样编曲
创始人
2024-03-02 09:26:37
0

有了这个易于使用的开源程序,不需要掌握乐器,就可以把你变成一个音乐大师。

也许你和我一样,在上学的时候学过一种乐器。对我来说,那是钢琴,后来是中提琴。然而,我一直认为,随着我童年的兴趣转向计算机和编码,我后来忽略了音乐练习。我确实想知道,如果我年轻时有 Sonic Pi 这样的东西,我会怎么样。Sonic Pi 是一个开源程序,可以让你通过代码来创作和演奏音乐。它是这两个世界的完美结合。

我们对 Sonic Pi 并不陌生,早在 2015 年就对其创造者 Sam Aaron 博士 进行了采访。从那时起,Sonic Pi 在很多方面都有了很大的发展。它达到了一个重要的新版本里程碑,期待已久的 v3.2 版本已于 2020 年 2 月 28 日公开发布。一个不断壮大的开发者社区正积极为其 GitHub 项目 做出贡献,而在 官方论坛 中有一个同样繁荣的作曲家社区可以分享想法和提供支持。该项目现在还通过 赞助活动 获得了资金支持,而 Sam 本人也在世界各地的学校、会议和研讨会中传播 Sonic Pi 的信息。

Sonic Pi 真正的闪光点在于它的平易近人。它的版本适用于许多主要的操作系统,包括 Windows、macOS、Linux,当然也包括树莓派本身。事实上,在树莓派上学习使用 Sonic Pi 再简单不过了。它预装在 Raspbian 中,所以如果你有一个基于 Raspbian 的现有环境,你会发现它位于编程菜单中。

第一次加载 Sonic Pi 时,你会看到一个简单的界面,有两个主要的区域:一个编辑器,可以写你的代码,还有一个区域专用于 Sonic Pi 丰富的教程。对于新手来说,教程是学习基础知识的重要资源,它有配套的音乐程序来巩固所学的每个概念。

如果你跟着学习,让我们为自己编写一段简单的音乐,探索现场编码音乐的潜力。将以下代码输入或粘贴到 Sonic Pi 编辑器中:

live_loop :beat do
  sample :drum_heavy_kick
  sleep 1
end

即使你是一个 Sonic Pi 的新手,许多程序员可能马上就会明白这里发生了什么。我们正在播放一个 踏板鼓 drum kick 采样,停止一秒钟,然后重复。点击运行按钮或按 ALT+R(macOS 上为 meta+R),你应该听到它开始播放。

这不是一首非常激动人心的歌曲,所以让我们用一个在不合拍的 小鼓 snare 来使它生动起来。用下面的代码块替换现有的代码,然后再次运行。你可以在做这个的时候让现有的节拍继续播放;你会注意到你的改动会自然地应用,与节拍同步:

live_loop :beat do
  sample :drum_heavy_kick
  sleep 0.5
  sample :drum_snare_soft
  sleep 0.5
end

我们在做这个的时候,让我们在每四拍之前添加一个 踩镲 hi-hat ,让声音变得有趣一些。在现有的程序块下面添加新的程序块,然后再次运行:

live_loop :hihat do
  sleep 3.9
  sample :drum_cymbal_closed
  sleep 0.1
end

我们现在已经有了我们的节拍,所以让我们来添加一个 低音声线 bassline !Sonic Pi 内置了各种合成器,还有混响和失真等效果滤波器。我们将使用 “dsaw” 和 “tech_saw” 合成器的组合,使其具有电子复古合成器的感觉。将下面的块添加到你现有的程序中,运行,并听一听:

live_loop :bass do
  use_synth :dsaw
  play :a2, attack: 1, release: 2, amp: 0.3
  sleep 2.5
  use_synth :tech_saws
  play :a1, attack: 1, release: 1.5, amp: 0.8
  sleep 1.5
end

你会注意到上面的内容,当播放音符时,我们可以完全控制 ADSR 包络 envelope ,所以我们可以决定每个声音何时达到峰值和衰减。

最后,让我们添加一个 主音合成器 lead synth ,试试那些被称为“ 切片器 slicer ”的效果特征。为了使事情更有趣,我们还将引入一个伪随机的元素,让 Sonic Pi 从一系列潜在的 和弦 chord 中挑选。这就是一些有趣的即兴创作和“快乐的意外”可以开始发生的地方。在你现有的程序中加入下面的程序块并运行:

live_loop :lead do
  with_fx :slicer do
    chords = [(chord :A4, :minor7), (chord :A4, :minor), (chord :D4, :minor7), (chord :F4, :major7)]
    use_synth :blade
    play chords.choose, attack: 1, release: 2, amp: 1
    sleep 2
  end
end

很好!现在,我们当然不会很快与 Daft Punk 竞争,但希望通过这个过程,你已经看到我们如何通过添加一些简单的代码,实时地从一个单一节拍变成更大的东西。YouTube 上 Sam Aaron 的 现场编码表演 非常值得一看,它展示了 Sonic Pi 可以让你有多大的创造力和适应力。

Sonic Pi composition example

我们完成的作品,完整版

如果你曾经想学习一种乐器,但又觉得被“我没有节奏感”或“我的手不够灵活”这样的想法所束缚,Sonic Pi 是一种多功能的乐器,这些都不重要。你所需要的只是想法和灵感,以及一台便宜的电脑,如简陋的树莓派。其余的都在你的指尖上(实际意义上的)。

这里有几个方便的链接可以让你开始:


via: https://opensource.com/article/20/3/sonic-pi

作者:Matt Bargenquast 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

“活传奇”去世!17天前还...
“回到起点”,没想到也来到了终点…… 据多家外媒报道,当地时间7...
2025-07-23 23:12:43
水木年华怒怼郝蕾不够专业!...
搜狐娱乐讯 近日,郝蕾在音乐综艺节目中点评选手舞台后遭到水木年华组...
2025-07-20 11:12:54
金正恩观看朝鲜在俄作战士兵...
当地时间6月29日,朝鲜最高领导人金正恩会见访朝的俄罗斯文化部长奥...
2025-07-01 12:42:22
音乐行业的顽疾,关AI什么...
上一篇文章我们横测了如今国内外 5 款 AI 音乐创作平台,一点点...
2025-06-18 23:11:57
父亲节也要仪式感!我们请A...
又是一年父亲节,我们用AI给父亲们写了一首专属歌曲,祝每一位默默付...
2025-06-15 08:12:30
AI原创音乐《高考加油》
简介:这是一首献给高考学子的青春战歌,歌词以深夜备考的画面切入,真...
2025-06-05 07:42:28

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...