- Published on
Sonic PI 专业术语
- Authors

- Name
- Mao
Sonic Pi (https://sonic-pi.net) 是什么?

- 本质: 一个免费的、开源的实时代码音乐创作与演奏平台。
- 核心概念: 通过编写代码来创作和演奏音乐。 你将使用一种简洁的、专门为音乐设计的编程语言(基于 Ruby)。
- 核心理念: 实时编码 - 最重要的特性!你可以在音乐正在播放时实时修改你的代码,修改会立即在下一个音频循环中生效,实现真正的即兴编曲和现场表演。
- 目标用户: 所有人! 从完全没有编程经验的音乐爱好者、学生、教育工作者,到专业音乐制作人、程序员和声音艺术家都可以使用。它是跨学科学习(音乐 + 计算思维 + STEAM) 的绝佳工具。
- 平台: 支持 Windows, macOS, Linux 和 Raspberry Pi (它最初是为树莓派设计的),非常轻量级。
Sonic Pi 能做什么?
创作各种风格的音乐:
- 电子音乐(Techno, House, Ambient, Dubstep, Chiptune/8-bit...)
- 实验音乐、噪音艺术
- Hip-Hop beats
- 电影配乐元素
- 模拟传统乐器演奏 (钢琴, 吉他等,虽然合成音色有其特点)
- 声音艺术装置
- 算法/生成音乐 (利用随机数和规则,每次播放都不同)
实时演奏/即兴表演:
- 像玩电子乐器一样“演奏”你的代码 - 这是最激动人心的部分!
- ️ DJ/VJ Sets: 可以配合灯光、视觉进行现场编码表演。
- 与其他音乐家或代码音乐人合作演出 (Algorave 运动的重要组成部分)。
学习:
- 编程入门: 在创作音乐的有趣环境中学习编程基本概念(变量、循环、条件、函数等)。
- 乐理与声音原理: 直观理解音符、音阶、节奏、和声、音色(合成器、效果器)、ADSR包络、音频效果(混响、延迟、滤波器)等。
- 计算思维: 培养解决问题、分解、抽象、模式识别和算法构建的能力。
- STEAM教育: 完美融合 Science(声学),Technology(编程),Engineering(系统构建),Arts(音乐创作),Math(节拍计算、频率关系等)。
Sonic Pi 核心组成部分(界面与工作方式)
代码编辑器:
- 你在这里编写“乐谱”(代码)。
- 多个工作区(
Buffer),可以保存不同的代码片段或歌曲部分。 - 语法高亮、自动完成功能帮助你编写。
运行/停止按钮:
Run: 执行当前“缓冲区”(Buffer) 中的全部代码。Stop: 停止所有正在播放的声音和线程。- 最重要的操作通常只针对单个
Live Loop。
日志窗口:
- 显示程序的运行信息、错误、调试输出。学习时的好帮手。
帮助系统:
- 内置极其详尽且优秀的文档!这是 Sonic Pi 的一大优势。
- 按下
Alt-/(Windows/Linux) 或Cmd-I(Mac) 可以直接将帮助文档插入到当前光标位置。 - 包含所有 Synths, Samples, FX, 以及核心函数和概念的示例代码,可以直接运行学习。
核心工作机制:
- 合成与采样: 通过
use_synth+play驱动内置合成器生成声音,或者直接触发sample播放样本。 - 时序控制:
sleep命令是音乐的“节拍器”,控制下一个音符或事件发生的时机。 - 并发与结构:
live_loop是构建音乐段落的核心结构体。用in_thread可以创建独立运行的线程,实现多声部同时进行。 - 效果处理:
with_fx包裹代码块,让发出的声音经过特定的效果器处理(如混响、回声)。 - 实时互动: 修改任何
live_loop内的代码,无需停止音乐,按下Run后(或保存时如果设置了Auto-run),变化在下一个循环立即体现。这是它区别于其他传统DAW或编程环境的关键!
- 合成与采样: 通过
为什么 Sonic Pi 如此独特且令人兴奋?
- 强大的实时性 (
Live Loop): “现场感”和“即兴感”是其他音乐软件难以比拟的。看着音乐随代码实时变化是极其神奇的体验。 - 简洁与易接近性: 专为音乐设计的API(像
play :C4,sleep 0.5,with_fx :reverb do... end),即使不懂编程也能很快上手做出简单乐句。门槛比学习传统DAW或复杂合成器可能更低。 - 开源与免费: 无任何功能限制或隐藏收费。
- 内置强大工具: 预装了丰富的合成器 (
Synth)、高质量的音效 (Sample) 库、实用的效果器 (FX) 和完备的帮助系统,开箱即用。 - 教育与艺术的双重价值: 既是绝佳的学习工具,又是具有表现力的艺术创作平台。
- 社区与文化: 背靠活跃的“现场编码(Algorave/ Live Coding)”艺术社群。
为什么推荐 Sonic Pi?
- 直观连接乐理与代码: 调式?音程?和弦?节奏型?ADSR音色?这些抽象概念通过代码控制“可见”、“可听”、“可实验”,学习变得极其生动。
- 突破传统乐器/乐理学习门槛: 对于觉得传统乐器入门难的学生,这是一个极好的激发音乐兴趣和创作自信的入口。
- 培养创造力与逻辑思维: 完美融合艺术与科技。
- 超强的趣味性和成就感: 很快就能做出“酷炫”的声音,提升学习动力。
总结来说:Sonic Pi 不仅是一个音乐制作工具,更是一个学习音乐原理、编程思维和进行即兴艺术表达的“乐器”和“游乐场”。
如果你已经安装了它,我强烈建议打开它,边阅读内置的帮助文档(太棒了!),边复制粘贴运行里面的示例代码开始探索!你遇到任何不明白的概念或术语,随时可以再来问我!祝你创作愉快!🎹🎶💻
Snoic PI 术语
音源/发声相关:
Sample(采样/音效片段): 一个预先录制好的、通常很短(几秒钟)的音频片段。它可以是鼓声(:bd_tek)、贝斯声、水滴声、人声片段等等。乐理上,它代表了一个具体的“声音事件”,其音高、音色、长度等都是固定的(除非被处理)。在Sonic Pi中,你可以使用sample :name_of_sample来播放它们,并使用特效改变它们。Synth(合成器): Sonic Pi内置的虚拟乐器。它能根据你的指令(音符、音量、音色参数等)实时生成声音(而不是播放录音)。乐理上,它就像一个乐器一样,你可以控制它的音高(Pitch)、音色(Timbre/Tone Color)。比如:piano,:pluck,:fm,:saw,:dsaw等等。使用时:use_synth :name+play note。Play(播放): 发送指令让 Synth (合成器) 发出特定音符(Note) 的声音。音符可以是MIDI数字(如60是中央C),也可以是音符名称字符串(如:C4)。乐理基础:play确定了声音的基本频率/音高。Note(音符): 音乐中的单个音。在Sonic Pi中,它通常表示为数字(MIDI Note Number)或符号(如:C3,:Ds4)。MIDI音符号与音高的对应关系是音乐声学的基础(如A4=440Hz)。MIDI(Musical Instrument Digital Interface): 一种让电子乐器、计算机和其他设备相互通信的标准协议。Sonic Pi理解MIDI音符号(如60代表中央C)和MIDI控制信息。它使Sonic Pi能与其他音乐软件/硬件交流。
时间和节奏:
BPM(Beats Per Minute, 每分钟节拍数): 音乐速度(Tempo)的标准度量单位。决定了音乐律动的快慢。比如use_bpm 120设置每分钟120拍。1拍的长度等于s=60/BPM秒。Beat(拍子): 音乐节奏的基本时间单位。你的代码会根据设置的BPM来决定一拍占据多长时间。Sleep(睡眠/等待): 当前线程暂停执行指定的时间量(单位是“拍”)。这是控制节奏(Beat Duration/Rhythm Duration) 和时序(Timing) 的核心指令。如sleep 1表示暂停,等待1拍的长度。乐理上对应音符时值的概念(全音符、二分音符、四分音符等)。Live Loop(实时循环): Sonic Pi的“王牌”功能!它是一个无限循环的代码块,但有一个关键特性:你可以在它运行时在线修改代码,并且修改在下一次循环迭代时会即时生效,无需停止当前音乐!这是即兴演奏、交互式创作的核心。乐理上,它帮助你构建音乐的结构(Form)(如“主歌-副歌”循环)。
声音控制与修饰:
Parameter/Argument(参数/实参): 传递给play,sample,synth,effect等指令的选项,用于控制声音的特性。乐理上对应表情记号(Dynamic Markings)、演奏法(Articulation)和各种合成参数。- 振幅/音量类:
amp:(Amplitude,振幅/音量大小) - 时间类:
attack:,decay:,sustain:,release:(ADSR Envelope - 音量/力度包络线),它们共同决定了一个声音的形状(Shape),从触键到消失的过程。release:在乐理上类似延音踏板的释放感,决定了音符结束消退的时间。 - 音色类(Timbre):
cutoff:+res:(Cutoff Frequency + Resonance, 低通滤波器的截止频率和谐振强度)- `pan: (Panorama, 声相定位/平衡): 控制声音是在左声道、右声道还是中间发声(立体声效果)。
- 振幅/音量类:
Effect(效果器/音频效果): 在声音产生后,对其进行处理的工具。它们可以添加空间感、改变音色质感、制造特殊效果等。乐理/音频工程上称为信号处理(Signal Processing)。- 常用效果器:
reverb:(混响):模拟声音在空间中反射的效果,增加空间感和深度。有room:等参数。echo:(回声/延迟):模拟声音的重复延迟效果。有phase:,decay:等参数。乐理上常用来制造回音卡农(Canon)或节奏感。distortion:(失真):通过过载、削波等方式“扭曲”声音,产生粗糙、沙哑或猛烈的效果。bitcrusher:(位压缩器):通过降低采样率和(或)比特深度产生“8-bit风格”的数字失真感。
- 常用效果器:
With FX(配合效果器使用): 用来包裹一段产生声音的代码(play,sample,synth),使这些声音经过指定效果器处理。语法:with_fx :fx_name do ... end。
结构与组织:
Thread(线程): Sonic Pi允许同时运行多条独立的执行流。可以用in_thread do ... end创建新线程。这对于同时播放多层(Layers) 音乐(旋律、贝斯、鼓、特效)互不干扰至关重要。乐理上对应复调音乐(Polyphony)概念的一部分(多个独立旋律同时进行)。这也是Live Loop能独立运行的基石。Function(函数/方法): 为了重用代码块,你可以定义自己的函数(define do ... end)。可以将常用的Riff、节奏型或效果链封装成函数,让你的代码更整洁、更模块化。
5. 核心结构与控制概念:
Loop(循环): 重复执行一段代码的基本结构。乐理上常用来构建音乐的重复段落或固定节奏型(Ostinato)。live_loop是其增强版。Variable(变量): 一种命名的“容器/标签”,用于存储数据(数字、字符串、数组等),方便后续使用或在代码运行中动态修改。如my_synth = :tb303,my_arr = [1, 5, 3]。
6. 随机与变化:
rrand/rrand_i(随机范围): 生成指定最小值和最大值之间的随机数(浮点数或整数)。如play rrand(60, 80)。这是Generative Music (生成音乐) 和引入随机变化的重要手段。乐理上类似即兴演奏(Improvisation)中的随机性。choose(选择): 从参数列表/数组中随机选择一个元素。如play choose([60, 64, 67])。