Skip to content

Pure Data 关键词一览

这是 Pd 补丁中使用的对象与命令的参考手册。

基本操作

操作快捷键
放置对象Cmd (Ctrl) + 1
放置消息Cmd (Ctrl) + 2
放置数字Cmd (Ctrl) + 3
放置符号Cmd (Ctrl) + 4
放置注释Cmd (Ctrl) + 5
编辑/运行模式的切换Cmd (Ctrl) + E
放大显示Cmd (Ctrl) + Shift + ;
临时的运行模式一直按住 Cmd (Ctrl)
帮助浏览器Cmd (Ctrl) + B
放置 bangShift + Cmd (Ctrl) + B
放置 toggleShift + Cmd (Ctrl) + T
放置水平滑块Shift + Cmd (Ctrl) + J
放置数组Cmd + Shift + A
删除对象选中 → Backspace
对象的帮助(用法)右键点击对象 → 帮助
显示对象一览右键点击空白处 → 帮助

基本概念

术语含义
补丁(patch)Pd 的程序文件
入口(inlet)位于对象上方的数据输入位置
出口(outlet)位于对象下方的数据输出位置。用线连接入口与出口,数据就会往来传递
指数值或字符串。入口与出口之间用 细实线 表示
信号以音频信号为代表的连续数据。入口与出口之间用 粗实线 表示
消息(message)事先准备好的字符串或数值。在消息中放入 $1,就会替换为从入口输入的值后输出
数字(number)实时显示・输入数值的 GUI
符号(symbol)显示字符串的 GUI
数组(array)存放音频数据等的地方
DSP信号的实时运算处理。把控制台右上角的复选框设为 ON,或调高音频输出的音量,处理就会开始

声音的生成

对象说明用法
osc~正弦波振荡器[osc~ 频率]
phasor~锯齿波[phasor~ 频率]
noise~白噪声[noise~]
else/tri~三角波(ELSE 库)[else/tri~ 频率]
else/square~方波(ELSE 库)[else/square~ 频率]

音频输入输出

对象说明用法
output~音频输出level 值 消息设定音量
else/out~音频输出(带 DSP ON/OFF 开关)ELSE 库
dac~数模转换(音频输出)[dac~ 声道编号]
adc~模数转换(音频输入)[adc~]

音量・包络

对象说明用法
*~信号的乘法(用于音量控制)信号 × 信号 或 数值
line~数值的自动变化(信号)[目标值 时间(ms)] 的消息
vline~连续的数值变化[值1 时间1, 值2 时间2 开始时间, ...]
delay一定时间后输出 bang[delay 时间(ms)]
else/asr~ASR 包络ELSE 库
else/adsr~ADSR 包络ELSE 库
else/envgen~自由的包络[else/envgen~ -curve]

运算

对象说明用法
+, -, *, /四则运算(值)[+ 数值]
expr用数学式计算[expr $f1 * 2 + $f2]
mtofMIDI 音符→频率(Hz) 转换中央 Do 是 60

数据的路由

对象说明用法
s (send)值的发送[s 收件方名称]
r (receive)值的接收[r 收件方名称]
sel值的分配[sel 值1 值2 ...](最右侧的出口原样输出未匹配的值)
route按第一个值分配[route 地址1 地址2]
change只在值变化时输出[change]
t (trigger)按右→左的顺序发送值[t f b] (f:数值, b:bang, a:字符串)

滤波器

对象说明用法
lop~低通滤波器[lop~ 截止频率]
hip~高通滤波器[hip~ 截止频率]
bp~带通滤波器中间:截止频率, 右:Q 值

滤波器的注意点

  • lop~ 以外的滤波器,右入口无法直接连接 vline~ 的出口
  • 请注意值(细线)与信号(粗线)的区别

延迟

对象说明用法
delwrite~写入延迟缓冲区[delwrite~ $0-delay 缓冲区大小(ms)]
delread~从延迟缓冲区读出[delread~ $0-delay 延迟时间(ms)]
cyclone/delay~延迟(cyclone 库)cyclone 库

关于 $0

$0 是分配给 Pd 每个补丁的 ID 编号。像 $0-delay 这样用在缓冲区名称中,就能防止复制补丁时名称冲突。

信号与值的转换

对象说明用法
sig~值→信号 转换[sig~]
snapshot~信号→值 转换输出 bang 到来时的信号值
metro定期输出 bang[metro 周期(ms)]
else/s2f~信号→值(自动)不需要 bang,始终输出
else/f2s~值→信号ELSE 库
else/numbox~信号值的显示显示用 GUI

注意 DSP

信号相关的对象,不打开 DSP 就不会工作。请把控制台右上角的复选框设为 ON,或调高 output~ 的音量。

音频文件处理

对象说明用法
else/play.file~音频文件的播放[else/play.file~ 文件名 循环(0/1) 自动播放(0/1)]。用 start/stop/loop 1 消息进行播放・停止・循环
else/stretch.shift~变调・时间拉伸[else/stretch.shift~ 缓冲区大小 初始音高 初始速度]。音高: 0=原样, 1200=1oct(从左数第 3 个入口)/速度: 100=原样(%)(从左数第 4 个入口)
else/xselect~交叉淡化切换[else/xselect~ 声道数 淡化时间(ms)]。向左入口输入声道编号(0, 1, 2…)即可切换
else/xfade~交叉淡化ELSE 库
else/rec.file~录音[else/rec.file~ 文件名]。文件保存在与补丁相同的位置
soundfiler把 wav 数据读入数组read 文件名 数组名
tabplay~播放数组的音频[tabplay~ 数组名]
.wav非压缩音源的文件格式用于示例音源等

自动演奏

对象说明用法
text define文本数据的定义[text define -k 文件名]。在运行模式下点击即可编辑・保存文本(Cmd (Ctrl) + S
text sequence文本的依次送出(收件方 值;[text sequence 名称 -g], auto:自动, bang:1 步, line 0:回到开头
else/drum.seq节奏机 GUI。用 bang 逐步播放[else/drum.seq 行数 列数]。输出 [行号 on(1)/off(0)] 格式的值列表
else/tempoBPM 速度输出[else/tempo BPM -mul 倍数]
random随机整数输出[random 最大值]

micro:bit 联动(OSC)

对象说明用法
else/osc.receiveOSC 数据的接收[else/osc.receive 端口号]
else/osc.route按 OSC 地址分配[else/osc.route /地址1 /地址2]
netreceive经由网络接收数据[netreceive -u -b 端口号]-u:UDP, -b:二进制)
oscparse依据 OSC 协议解析数据解析 netreceive 的输出。输出 [地址 值] 的列表
list trim去掉列表开头的选择符使 oscparse 输出的 [地址 值] 能被 route 等处理
list把多个值或符号捆在一起[list]
cyclone/scale值的映射[scale 输入min 输入max 输出min 输出max]
clip值的裁剪[clip 下限 上限]
else/smooth~平滑(信号)ELSE 库

GUI

对象说明操作
bang发送触发点击发送
toggle0/1 切换点击切换
数字框数值的显示・输入拖动改变数值
水平滑块值的连续输入右键→属性 设定上限・下限
V. Radio纵向排列的单选按钮。点击后输出选中的索引(0〜开关数−1)。可从画面右侧的 Options 更改开关数Put > New > V. Radio 放置。选中状态下从画面右侧 Options 更改开关数

其他

对象说明用法
print在控制台显示用于调试
comport串口通信[comport 设备编号 波特率]
pd 子补丁名子补丁在补丁内创建子补丁
clone 补丁名补丁的复制生成多个相同的补丁

小知识

韦伯-费希纳定律

该定律指出,人的主观感觉量与物理量的对数成正比。要让音量的变化显得自然,可以把音量值取 4 次方。

乐音的构造

乐器那样的声音,具有由基音(最低的音)与其整数倍的泛音合成的构造。组合多个 osc~,就可以做出各种各样的音色(加法合成)。