从Max带来的问题出发
米勒·帕克特在巴黎声学与音乐研究协调所参与开发Max,用屏幕上的对象和连接组织实时音乐操作。1994年,他移到加利福尼亚大学圣迭戈分校,后来开始编写新的Pure Data,简称Pd。他后来回忆,全球视觉音乐项目中艺术家和研究者的共同工作,也是Pd形成的条件。
1996年的《Pure Data: another integrated computer music environment》把新系统明确称为早期开发中的原型。帕克特希望保留Max适合现场操作的连接方式,同时改善它积累和编辑复杂数据的困难。记录多种音乐事件、分析声音再重新合成,都需要比单独的数值表更灵活的数据组织。
第一个例子是一张研究用图
这份早期论文展示的首项应用,是为帕克特与朱迪思·布朗的信号处理研究绘图。作者认为现成绘图软件不适用,便让Pd读入数据、设置坐标和样式,再生成比较曲线。当时图形还没有交互编辑器,论文直接列出描述画布、图表、刻度与文字的文件命令。
例如,“#X text”消息为画布或图表加文字,“#X graph”建立图表;图内文字使用图表自己的坐标,画布上的文字则采用另一套位置单位。保存文件的描述又通过消息系统恢复为图形。这一小例子把数据显示与控制消息放进同一套工作方式,说明Pd从起点就不只关心怎样连出一个合成器。
参考:[1]
模板与可以改变的数据
帕克特还提出用模板描述数据的字段。一个数字框可以有类型、显示方式、上限和下限;图上的一个点则可以包含横、纵坐标。如果给模板添加字段,采用同一模板的一组点便可以相应扩展,而不必为每个点各造一个彼此分离的编辑窗口。
这里的重点是让程序能够知道字段的名字,并通过模板访问数据。图形显示、编辑操作和消息传递由此有机会使用共同的结构。论文同时记下了后续开发方向:让画布容纳更多连接对象,并扩展模板的用途。从能工作的原型到日常使用的编辑环境,仍有不少实现工作。
参考:[1]
把文档留在实时计算的一侧
早期实现分为Pd与Pd-gui两个进程。前者处理实时计算,保存文档并执行编辑变化;后者通过Tk工具包同窗口系统通信。帕克特要解决的是Max/FTS中图形编辑层与实时计算层各存一份资料、两者容易失去一致的问题。
这种选择也反映了硬件变化:作者判断普通单处理器的能力正在增长,因而把编辑计算和声音处理放在同一程序中。论文中的原型仅在SGI机器上运行,其他窗口系统仍属移植目标。它记录了一种具体取舍,既没有证明所有计算机都已可用,也没有把多处理器支持当作已经解决。
参考:[1]
源码与能够再次演出的作品
1996年论文提出公开C语言源代码的计划;2002年的回顾则由作者说明Pd从开始就采用开放源码方式。论文介绍、可用版本和持续分发的形成有各自的过程,仅凭一篇标年论文不能推定首个安装包的发布日期。
到2001年,帕克特报告团队已用普通Linux计算机上的Pd重新实现部分现场电子音乐作品。选择能取得源码的系统,是为了日后仍可重新编译;当时Windows也已可运行,Mac OS X支持仍在展望中。演出补丁、说明和音频材料的保存,让软件的可延续性成为作品能否再次演出的实际问题。
演奏者和课堂继续检验设计
斯托克豪森《曼特拉》的新实现,由凯里·黑根在帕克特和沙赫罗赫·亚德加里的协助下制作,2001年已有两次公开演出。布列兹《双重影子的对话》的旧实现则被移入Pd,用软件处理替代部分外部设备;在报告写作时,这份新的Pd版本尚未经过音乐会验证。不同作品的完成程度需要分别看待。
其中几部作品还进入圣迭戈分校研究生课程,学生通过自己的片段学习电子音乐技术。马克·丹克斯开发的GEM则把图形与图像处理带入Pd。由原型、源码、演出者与课堂构成的持续反馈,使Pd逐步成为可共同使用和修改的音乐工具。