0
Introduction: ChucK
programming for artists
- 这个章节的内容:
- 为什么艺术家需要编程?
- 什么是ChucK?
- 为什么在ChucK中编程?
- 为什么我们使用ChucK?
- 我们自己的一些以电脑为媒介的艺术作品。
这么多年来,音乐家,艺术家的含义在发生变化,日新月异。很大程度上是因为计算机技术的长足发展。艺术家一直在使用计算机技术。与计算机直接互动的人可能会用 DJs, laptop artists, controllerists, live coders,和一大堆其他的名称来称呼自己。这些音乐家中许多人并不编程或者写软件,但是愈来愈多的人想要更加直接地控制他们的(创造音乐的)过程和结果。学习编程是一种获得一个额外控制水平的方式。
其他艺术家想要制作新的乐器或控制器,或配置现有的控制器,如鼓垫,DJ控制台等,以新的方式进行现场表演。 还有一些人想要制作歌曲和专辑(.wav和/或.mp3文件)来作为最终的结果,而又想要在这个过程中,比现有的音乐软件能提供更多的控制。 有些人喜欢(或想)编程,来作为其创作过程和工作流程的基础。
除音乐家外的艺术家也在他们的艺术创作中使用计算机,如图形设计师,动画师,电影编辑,布景师,雕刻家以及其他使用计算机图形和设计软件的人。相较于那些商业软件包提供的功能,许多这些软件工具的用户也希望对于他们的创作拥有更多的控制。
许多多媒体艺术家越来越多地创作了装置艺术,公共艺术,声音雕塑或风景。 这些新作品涉及使用声音,传感器,图形,视频和显示的组合来创建交互式环境。 这些作品可以让观众成为表演或体验的一部分。 在某些情况下,见证这些作品的公众人士不清楚艺术家/表演者正在做或者控制什么,但是可以发现,学习和互动是很重要和有价值的。虽然这本书没有专门教你做各种艺术品,但许多形式的新媒体都涉及计算机声音和音乐。学习具体的工具来创建和操纵计算机中的声音正是本书所关心的。
许多人将这些新类型的艺术和表演机会称为计算机艺术系统。 在所有情况下,音乐家或艺术家都需要知道如何编程或与谁合作。您将学习通过本书中的章节,示例和练习进行编程。
这种越来越受欢迎的计算机运动作为创造力的新媒介,促使我们的团队写这本书,使每个人学习编写自己的项目更为容易,更有趣。 具体来说,我们想通过编写音乐和声音的代码来教你如何编程,我们通过一种专门为声音和音乐设计的ChucK编程语言来实现这一点。
我们首先讨论为什么我们认为音乐家和艺术家需要学习如何编程。我们解释为什么我们相信ChucK是一门学起来很好的第一语言。 我们最后总结说明编程如何使得作者和其他人使用ChucK及其前身语言创建新作品。
为什么音乐家和艺术家需要编程?
正如我们前面提到的,许多艺术家对于非处方软件系统和控制器的实时表现感到满意。还有很多人只想使用电脑来制作.wav / .mp3文件,CD或歌曲集合,视频声轨等形式的静态产品。大量的艺术家很乐意学习和使用商业或自由来源的软件包和工具。
但是有很多人想要更多,我们打赌你是一个。也许你带着以一个大的想法(或许多大的想法)来到这本书,并想要那些工具来帮助你实现那些想法。也许你正在寻找艺术创造方向的改变。或者您已经知道如何(例如使用Java语言)进行编程,但是你发现它并不会执行你所需要的操作。
其他人认为学习编程将帮助他们找到工作。虽然在学完本书之后,我们不能保证您能立即就职,但我们可以说,现在我们有很好的工作,我们的学生有很好的工作(那些想要他们的人),这在很大程度上是因为他们编程和用电脑解决问题的能力。
我们在个人项目,艺术作品和教学中已经使用了ChucK和其他电脑音乐/艺术语言多年。我们中的一些人仍在编程,并且使用着多种语言进行编程。无论您是否已经是程序员,在通过这里介绍的示例和练习后,您会有所不同。很少有画家遭受痛苦,因为他们更了解他们的油漆,画布,刷子和溶剂的化学和物理成份。即使是自学成才的艺术家也开发和使用了基于自己的艺术作品创作流程的自然知识。数字艺术家也知道编程。知道一种或几种计算机语言的艺术家,即使是每天不编写计算机代码,仍然可以更好地了解当他们拖动菜单,选择项目并观看进度条移动时发生了什么。
我们确信,直到本书的结尾,你将能够了解更多你想要的,比你可能想到的还要多。ChucK提供的功能将会提出新的事情,你会知道如何做到这一点,或者如何弄清楚。而且,即使您更多使用商业软件,我们也将会向您展示,使用ChucK控制和交互的新方法。这就像在你的车上,放了一个新的引擎。
什么是ChucK?它有何不同?
如果习惯于在计算机上使用流行的声音工具,您可能习惯于连接声音合成和处理箱,管理音轨和乐器,剪切/复制/粘贴声音编辑,在数字音频工作站(DAW )程序上移动虚拟拨盘和滑块,等等。在本书中,您将学习一个实际的编程语言ChucK,它将会让您能做任何本质上的事情,但您需要输入一些计算机代码(文本),才能实现您的目标。最初的几个例子可能使它看起来比您过去用来制作声音和音乐的工具要困难得多,但是很快你会做一些你以前从未想过或可能知道的事情。在这个意义上,您可以认为ChucK是一个强力的工具。在开始需要有一些学习的内容,但很快,结果会让你想知道你离不开它。
ChucK是专为实时声音综合和音乐创作而设计的编程语言。实时意味着ChucK在你听声音(而不是播放声音文件)时综合了声音,通常是响应来自外部世界的信号和手势。控制声音的手势可能包括您在键盘上的打字,移动电脑鼠标,操纵操纵杆或其他游戏控制器,或在连接到您的计算机的音乐键盘上的播放键( playing the keys on a musical keyboard connected to your computer)。ChucK也适用于几乎任何类型的实时计算机媒体和艺术的控制/交互,如图形,机器人或与计算机通信的任何内容。
ChucK专门设计允许和鼓励即时编程,这意味着您可以随时对代码进行添加,删除,修改,编辑和分层操作,并立即听到结果,而不会中断其他的正在合成和听到的声音。这是ChucK与所有其他语言不同的主要方式之一,这使得学习和使用非常有趣,因为您可以尝试并立即听到结果。大多数其他语言要求您编译,运行和调试代码,这种方式不会立即听到您正在做的。大多数计算机语言,如C,C ++或Java,本不是专门设计用于声音,音乐和其他实时任务的。而ChucK将实时声音作为优先事项。
如果您知道其他计算机语言(如Java或C ++),甚至其他音乐/声音语言和系统(如Csound,SuperCollider,JSyn,Max / MSP或PD(Pure Data)),您很快就会看到ChucK真的不同。在处理时间和声音方面,比Max / MSP和PD的图形界面更具表现力和强大性,为您提供比其他语言和系统更大的引擎内访问权限。与其他基于文本的音乐/声音语言(如SuperCollider或Csound)相比,ChucK通常更简洁,需要比这些其他语言少得多的代码(文本的行数)来能完成任何特定任务。
如果您不知道任何计算机语言,当你学完这本书,你会更容易学习Java,C,C ++和任何其他你想要学习的语言。ChucK与其他语言有所不同,但它共享了许多几乎任何语言的程序员都会感觉熟悉的内容。
ChucK的另一个很大的特点是它是开源的(不是私密的或受许可证,密码,密钥等保护),它可以在包括Mac OS X,Windows和Linux在内的所有主要计算机平台上免费使用。开源意味着ChucK用户的社区可以直接投入到今后使ChucK更好的过程中。这也意味着获取和使用ChucK不会花费任何东西。
为什么在ChucK中编程?
一种工具,它是查看编程语言的一种方式,不可避免地会影响用户的心态,而且它自然地提出了实现各种任务的方法。和任何工具一样,一门编程语言 应该 改变你的想法和做事情的方式。ChucK绝对提供了一种不同的方式来编程声音和音乐。虽然有一些权衡使某些事情变得简单,而其他事情更加困难,但我们真诚希望的是,对于程序员而言,语言设计的选择,比其阻碍特定任务更有用。
ChucK是由王戈和以前的共同作者佩里·库克(Perry Cook)在普林斯顿大学的研究生时期(现在是斯坦福大学的助理教授,即这本书的合著者)共同创建,提供了一种不同的方法来思考如何对声音编程——使用快速原型(很快尝试了很多想法)的想法。十多年后,ChucK的研究和开发工作才得到加强。关于王戈的历史记事,动机和ChucK背后的人物的详细记录可以在本书的序言中找到。关于 为什么你可以学习和使用ChucK的更多细节,这里还有几个原因:
-
这一切都是关于时间的。 时间是ChucK如何工作,以及您如何与ChucK合作发挥声音的核心。作为程序员,您可以指定如何通过时间移动,并在特定的点上断言控制,声音基本上 只是发生——确实很方便,正是您移动的时间量。为什么这么重视时间?声音是一个时间性的现象; 没有时间的流逝,就没有声音。通过控制如何和何时通过时间来做事情,你有一个不同而强大的方式来处理每一个层次的声音——每个 分子。
-
它是文本,纯粹而简单。尽管使用文本编程可能最初似乎比使用图形表示更抽象或复杂,但一旦您开始在代码中添加了大量表达性细微差别和逻辑(您将始终需要做的),这可以说更容易。很少隐藏或推断。重要的部分是看得见的; 例如,程序中的时间流逝。同时,许多底层方面也是可以照顾到的:调度,实时声音输入/输出,所有声音发生器的记录等等。可读性是语言的核心设计目标,这也使得它成了一个很好的学习工具。
-
这很有趣和直接。ChucK被设计成一个用于实验的有趣语言和环境。您可以合成声音,使想法自动化,将物理手势(例如用控制器)映射到声音,将计算机连接在一起,甚至使用信号分析 (计算上)来理解声音。
ChucK助力的和前ChucK 电脑媒介艺术
本节的目标是介绍使用计算机编程创建的计算机介绍的艺术作品的例子,创建乐器,控制器,合奏和系统。制作新乐器的一个久经采用的方法是查看现有乐器,并找出增加或改进乐器的方法。在这方面,我们有许多经验。从1988年的Cook / Morrill MIDI Trumpet(这个没有使用ChucK,因为它还不存在,但是它使用了现在ChucK的前身,,和现在包含在ChucK中的STK)和2004年的Kapur的ESitar,通过2005年的笔记本电脑管弦乐团呈现,向着并且去超越移动乐器,我们与我们的疯狂朋友们一起,创造了各种基于传统乐器和乐团的计算机媒介系统。在某些情况下,我们将传感器放在仪器上,留下固有的声音产生功能。在其他情况下,我们排除了乐器的声学部分,并填充了处理器,传感器和扬声器,只留下外壳和形式来暗示交互(经验)。这些包括DigitalDoo,SqueezeVox(手风琴,Perry Cook和Colby Leider),ETabla和EDholak(Ajay Kapur),BoSSA(Bowed Sensor,扬声器阵列,Dan Trueman和Perry Cook)和SBass(Sensor Bass,Curtis Bahn)。在所有这些情况下,我们需要编写自定义代码以将微晶片或手机的手势转换为音乐体验。
强大的移动设备(如iPhone和iPad)的激增,引起了传统乐器在移动时代的重新设想,如iPhone的Ocarina(Ge Wang / Smule),以及全新的移动音乐互动。Ocarina和其他一些移动应用程序(拥有数百万全球用户)已经使用ChucK来进行合成音乐。
制作全新音乐表演系统的另一种方法是将传感器放在舞者或其他非传统演奏音乐的艺术家身上。这将需要大量的计算机编程来成功地将这些舞者的手势映射到声音响应。
制作有趣的艺术和音乐作品的另一种手段是将传感器放在那些不是传统上的,与音乐表演相关的其他物体上。
笔记本电脑和/或其他大型计算机音乐团体的整个组合的可能性,带来了普林斯顿笔记本电脑管弦乐团(PLO rk),其次是斯坦福笔记本电脑管弦乐团(SLO rk),以及“human + robot–popu-lated KarmetiK Machine”管弦乐团。 所有这些合奏都依赖于传感器,网络和ChucK来增强人的表现。 此外,每个管弦乐器通过个别半球形扬声器播放器本地声音。这意味着笔记本电脑没有路由到混音器和室内音响,而是每台笔记本电脑连接到每个播放器旁边的单个多声道(均匀布置在半球面上的六个扬声器)扬声器。因此,合奏的声音就像是在房间或音乐厅每个播放器的声音的混合,就像传统的管弦乐队一样。
这些例子只有当你深入了解时,才会划破可能的艺术事物的表面。
总结
在本章中,我们希望我们已经使您相信,学习编程对于数字艺术家来说非常重要,而且ChucK是学习编程的绝佳方式。我们花了很多时间谈论ChucK是什么,谈了一点关于它是如何设计的,以及为什么我们和许多其他人认为这是做数字艺术的最好的编程语言。现在要记住的是:
- 艺术家,特别是数字艺术家,可以从知道如何编程中获益。您可以制作自己的工具,进行全新的创作,编程可以让您获得在不熟练使用计算机语言的情况下难以获得的创意
- ChucK,作为一种语言,与其他语言和音乐节目不同。它从根本上设计以支持强大的时间和声音控制,以及来自外部世界(操纵杆,轨迹板等)的输入设备和网络。
- 对于那些已经知道编程语言的人,我们认为你会发现,ChucK可以让你做许多事情,你可能会发现又是其他语言很难或不可能,而ChucK很快就能做到。
我们已经向您展示了使用计算机和编程创建的一些类型的项目,但这些项目只是使用诸如ChucK这样的强大工具才能来完成任务。
我们希望您有信心,有灵感,并准备开始学习,在ChucK上编程!
网友评论