跳转到内容

Pure Data

维基百科,自由的百科全书
Pure Data
Pure Data
Pure Data
原作者米勒・帕克特英语Miller Puckette
当前版本0.51-2[1](2020年8月15日,​4年前​(2020-08-15[1]
源代码库 編輯維基數據鏈接
类型视觉化程式设计语言
许可协议类BSD许可证
网站puredata.info
Pure Data
编程范型数据流程
設計者米勒・帕克特
发行时间1996年,​28年前​(1996
当前版本
  • 0.55-2(2024年11月17日;穩定版本)[2]
編輯維基數據鏈接
操作系统跨平台
許可證BSD许可证
網站puredata.info
啟發語言
Patcher

Pure Data(或稱作PD)是米勒・帕克特英语Miller Puckette在1990年代为创造交互的计算机音乐和多媒体作品而开发的视觉化程式设计语言。虽然帕克特是Pd的主要作者,但是它是一个多数开发者为起开发新扩展的开放源代码项目。它以一个类似于BSD许可证类似许可证下发行,可运行在GNU/Linux、Mac OS X、iOS、Android和Windows。

Pd在范围和设计上与Puckette在IRCAM(声学/音乐协调研究所英语IRCAM)工作时开发的Max程序非常相似,并且在某种程度上与Max/MSP(Max语言的商业前身)具有互操作性。它们可以作为Patcher[3]语言家族的成员来共同讨论。

随着加入多媒体图形环境(GEM),以及为其设计的外部程序(如用于Linux、Mac OS X的Pure Data Packet / PiDiP)、用于Windows的framestein、GridFlow(处理n维矩阵,用于Linux、Mac OS X、Windows),可以实时创建和处理视频、OpenGL图形、图像等,并具有与音频、外部传感器等互动的广泛可能性。

Pd的原生设计是为了实现跨网络或互联网的现场协作,允许通过局域网连接的音乐家,甚至是全球不同地区的音乐家,一起实时创作音乐。Pd使用FUDI英语FUDI作为网络协议。

语言特性

[编辑]

像Max一样,Pd是一种数据流编程语言。与大多数数字信号处理软件一样,有两种主要的数据传递速率:采样(音频)速率,通常为每秒44,100个样本;控制速率,为每64个样本1个块。控制信息和音频信号通常在通过入口和出口连接的 "对象 "之间从屏幕的顶部流向底部。

Pd支持四种基本类型的文本实体:消息、对象、原子和注释。原子是Pd中最基本的数据单位,它们由一个浮点数、一个符号或一个数据结构的指针组成(在Pd中,所有数字都以32位浮点数存储)。消息由一个或多个原子组成,并向对象提供指令。有一种特殊类型的消息,内容为空,称为bang,用于启动事件,并将数据推入流,很像按下一个按钮。

Pd的本地对象包括从每一种编程语言中的基本数学逻辑位运算符到一般的和专门的音频速率DSP功能(用波浪线(~)符号指定),如波表英语Wavetable synthesis振荡器、快速傅里叶变换(fft~)和一系列标准滤波器。数据可以从文件中加载,从音频板、MIDI中读入,通过FireWireUSB或网络连接的开放声音控制英语Open Sound Control(OSC),或在运行中生成,并存储在表格中,然后可以读回并作为音频信号或控制数据使用。

语言限制

[编辑]

Pd虽然是一种强大的语言,但Pd在实现面向对象的概念方面有一定的局限性。[4]例如,创建大规模的并行进程非常困难,因为由于缺乏构造函数,实例化和操作大型对象列表是不可能的。此外,Pd的数组和其他实体很容易受到命名空间碰撞的影响,因为传递补丁实例ID是一个额外的步骤,有时很难完成。

代码例子

[编辑]

Pure Data可视代码样例跳线(Patch):

  • 第一个跳线向显示器打印“hello world”。
  • 第二个跳线向到来自第1声道的信号应用混响,接着发送它到声道1和2。
  • 最后的更复杂的跳线过滤在9000 Hz的白噪声(使用Q为20),接着每秒在半秒进程中淡入和淡出。在PD中,时间以微秒计量。

引用

[编辑]
  1. ^ 1.0 1.1 Software by Miller Puckette. Miller Puckette. [12 November 2020]. (原始内容存档于2021-03-21). 
  2. ^ Release 0.55-2. 2024年11月17日 [2024年11月26日]. 
  3. ^ Puckette, M. (1988). The patcher. In Proceedings of International Computer Music Conference.
  4. ^ Possibilities#2: Audio Layer. 2 March 2010 [5 January 2017]. (原始内容存档于2022-09-10). 

外部链接

[编辑]