第11章:音乐与计算的历史
客座章节 by Jason Freeman
throughout this book, you’ve seen that music and computing are connected. Musicians think about things like notes, meter, and phrases just like programmers think about things like variables, functions, and loops. Code can help us understand the inner logic of how music is created. Writing music with code can help us create interesting music and express ourselves in new ways.
(在本章中,您已经看到音乐和计算是相连的。音乐家思考音符、节拍和小节等方式,就像程序员思考变量、函数和循环一样。代码可以帮助我们理解音乐创作的内在逻辑。用代码写音乐可以帮助我们创造有趣的音乐,并以新的方式表达自己。)
这些音乐与计算之间的联系并非偶然。从最早的计算机开始,音乐家们就一直在发明在计算机中使用音乐的方法。今天,当您聆听最喜欢的歌曲时,计算机可能以许多不同的方式参与其中。例如:
- 歌曲作者可能使用音乐记谱或音频录制软件在笔记本电脑、平板电脑或手机上捕捉他们对歌曲的初始灵感。
- 乐队中的音乐家可能使用数字键盘、鼓机和控制系统进行表演。吉他手和贝斯手可能通过数字效果踏板的音频进行处理。每个这些设备都通过嵌入式计算机制造或转换声音。
- 在录音室中,制作人和音频工程师可能使用计算机上的数字音频工作站软件录制、编辑和混音歌曲。他们甚至可能为特殊任务使用额外的软件插件,如消除背景噪音或修复走调的音符。
- 音乐流媒体服务必须存储音乐轨道和关于它的信息在基于云的数据库中。该服务还开发了应用程序将轨道流式传输到您的设备。此外,该服务可能开发了机器学习算法为您生成个性化播放列表或电台。
在本章中,我们将探索计算机音乐历史中的一些关键时刻。这段历史将帮助我们理解计算如何继续彻底改变当今音乐的创作、表演和分发。
11.1 什么是计算机音乐?
计算机音乐是指任何涉及计算机的创建、表演、分析或分发音乐的过程。这包括广泛的活动,从编写代码创建音乐(如EarSketch和TunePad中)到使用应用程序制作新音乐,再到在线观看您最喜欢的音乐视频。
因为计算机音乐是一个如此广泛的领域,所以在研究计算机音乐历史的发展或思考我们自己想要用计算机做的事情时,提出几个基本问题会有所帮助:
计算机的 role 是什么?
我们通常认为计算机是帮助我们完成工作的工具,比如写论文或阅读消息。计算机也可以是音乐工具。它们可以是响应我们的行动创造声音的音乐乐器,比如每次我们按下一个键就播放一个音符的数字键盘。例如,TunePad中的大多数乐器都是以这种方式工作。我们按下计算机键盘上的键,立即从TunePad听到相应的乐器声音。
计算机也可以更像表演作品的音乐家,将乐谱中的每个音符转化为声音。我们在TunePad中编写的许多代码都是以这种方式工作。我们指定要播放的一系列音符。然后TunePad在网格中显示音符并为我们播放它们。TunePad翻_book中的每个乐器都像一个个音乐家。当我们一起播放它们时,计算机就变成了一个音乐家乐队。
许多计算机音乐家还探索计算机如何像智能音乐家一样行动。这些智能音乐家不只是遵循乐谱中的指示。人工智能计算机作曲家可能创建自己的乐谱,模仿人类音乐家的风格。人工智能计算机表演者可能聆听人类音乐家并与他们即兴演奏。
计算机如何表示音乐?
人类音乐家有许多不同的方式表示音乐:我们创建记谱乐谱,我们创建简写lead sheets,我们用语言谈论它,我们通过口述传统教授它。计算机音乐家也有许多不同的方式表示音乐。
两种方法最常见:
- 符号表示(Symbolic representations):将音乐描述为一系列音乐音符,每个音符具有特定的音高、响度、开始时间和持续时间。
- 音频表示(Audio representations):根据我们听到的实际声音描述音乐。
您已经在TunePad和EarSketch中看到过这两种方法。例如,TunePad的playNote()函数是一种符号方法,定义单个音乐音符的属性。TunePad中的音乐由playNote()和其他TunePad函数定义的一堆这些音符组成。
相比之下,EarSketch的fitMedia()函数将音频文件添加到您的歌曲中。该音频文件可以是任何东西:它可以是单个音乐音符,可以是整个音乐乐句,也可以是不太像音乐的声音效果。EarSketch中的歌曲由放置在多轨时间线上的一堆这些音频文件组成。
每种方法都有优点和缺点。使用符号表示,计算机可以轻松表示和操作每个单独的音符。TunePad可以轻松地在显示每个音符的网格上绘制音乐,如果您想更改歌曲中的单个音符,很容易找到相应的代码行并更新它。使用音频表示,这些可视化和编辑通常不可能。但是有更多的灵活性来捕捉、生成和编辑任何类型的声音。
计算机是否实时创建音乐?
早期的计算机通常需要几个小时来生成几秒钟的声音,甚至今天,使用机器学习和人工智能(AI)的计算机音乐应用程序可能需要几天来分析大型数据集。许多计算机音乐应用程序,如乐器,需要立即的实时响应,而对于其他应用程序,如作曲,实时操作可能并不总是那么重要。
现在,让我们在查看一些最早的计算机音乐示例时考虑这三个问题。
11.2 大型计算机上的计算机音乐
在1950年代,新泽西州的贝尔实验室是世界上最著名的研究和开发实验室之一。建立在亚历山大·格雷厄姆·贝尔发明电话的遗产基础上,AT&T的这个部门创造了创新的新技术,这些技术仍然影响我们如何传输无线电信号、合成语音、加密通信和构建计算机。
Max Mathews是贝尔实验室工作的电气工程师和小提琴手。他使用巨大的大型计算机,如IBM 7094,这些计算机耗资数百万美元,占据整个房间,并依赖打孔卡和磁带读取和写入数据。这些计算机用于许多目的,包括一些早期的NASA太空任务(图11.1)。

图11.1 NASA的IBM 7094计算机。公共领域。可在维基百科上获得。
Mathews想用这些大型计算机制作音乐。他创建了一种称为MUSIC的编程语言,然后后来是MUSIC II、MUSIC III等。今天我们将他的语言称为MUSIC-N(N就像代表MUSIC特定版本号的变量)。
在MUSIC-N语言中,程序员创建音乐乐器的”管弦乐队”。管弦乐队定义了一组乐器并配置了每个乐器如何创造声音。以下是受MUSIC-N启发的CSound中的乐器定义示例,CSound是一种您今天仍然可以使用的音乐编程语言:
instr 2
a1 oscil p4, p5, 1 ; p4=amp
out a1 ; p5=freq
Endin
即使编程语言的语法可能看起来很奇怪,但元素实际上是熟悉的。第一行定义乐器,这类似于在TunePad或EarSketch中定义自己的函数。第三行输出声音,这类似于EarSketch或TunePad函数定义中的return语句。第二行调用单位发生器(oscil),这类似于调用函数,并向其传递三个参数:p4、p5和1。Oscil是合成简单波形(如正弦波或方波)的振荡器。参数配置声音的低或高(频率)和响度(振幅)等内容。
一旦程序员创建了乐器管弦乐队,他们就会创建要播放歌曲中音符的乐谱。以下是CSound中的乐谱示例:
;ins strt dur amp(p4) freq(p5)
i2 0 1 2000 880
i2 1.5 1 4000 440
i2 3 1 8000 220
i2 4.5 1 16000 110
i2 6 1 32000 55
在这个乐谱中,每一行创建单个音符。该行指定将使用哪个乐器(在这种情况下,我们刚刚创建的乐器2),音符开始的时间和持续时间(以秒为单位),它有多响,以及音符有多高或低(频率以赫兹为单位)。如果您想了解更多关于MUSIC-N和CSound如何工作的信息,您可以下载并运行开源CSound软件,并阅读许多在线CSound教程(https://csound.com/)。这些语言已被数万名音乐家用来创作各种各样的音乐。
使用MUSIC-N,计算机承担了表演者的角色。程序员列出了音乐作品中的音符(以符号形式),并配置了演奏每个音符的乐器。然后程序员执行程序并等待(很长时间!)。程序完成后,他们可以聆听它生成的音频。
在Mathews和贝尔实验室的其他人研究MUSIC-N的同时,伊利诺伊大学的研究人员设想了计算机在音乐中的不同角色。他们的ILLIAC I在大小和复杂性上与贝尔实验室的IBM大型计算机相似。然而,与贝尔实验室的计算机不同,ILLIAC I还不能将数据转换为可以通过扬声器播放的格式。因此,受过化学家和音乐家双重训练的Lejaren Hiller和Leonard Isaacson决定,他们不会要求计算机表演音乐,而是要求它创作音乐。
1957年,ILLIAC I创作了它的第一首音乐作品,ILLIAC Suite。Hiller和Isaacson让计算机生成随机音乐音符。然后计算机检查随机音符,看它们是否遵循旋律和和声的常见音乐规则。如果不遵循这些规则,它们将生成新的随机音符。这个过程循环继续,直到找到满足所有规则为止。然后他们将程序的输出转录成传统音乐记谱法,并请弦乐四重奏演奏它。
他们的算法的许多部分类似于您在TunePad和EarSketch中编写的代码。他们的代码会问”三个音符重复吗?“这样的问题,这相当于您在Python中编写的条件if-else语句。他们的算法根据不同的分支,取决于问题的答案是是还是否,类似于使用布尔True或False值。它们还包含了子程序,如”再试一次”。子程序类似于函数。
Mathews的MUSIC-N语言和Hiller和Isaacson的ILLIAC Suite是大型大型计算机早期计算机音乐的两个突出例子。他们以不同的方式处理计算机音乐的挑战。使用MUSIC-N,计算机遵循人类程序员的指示,生成”乐谱”文件中指定的歌曲的每个音符。使用ILLIAC,计算机做出随机决策,并根据音乐规则检查它们以创建自己的乐谱。
系统之间有一个重要的相似之处:它们都非常慢。即使生成一首短音乐作品也可能需要几个小时或更长时间。今天,我们认为计算机的即时反馈是理所当然的,当应用程序打开或视频流式传输需要几秒钟时,我们会失去耐心。Mathews、Hiller和Isaacson不得不在许多人的大型计算机上预留时间,然后耐心等待他们的程序运行。如果程序有错误,或者音乐没有按预期结果,他们会进行更改,然后等待几个小时甚至几天才能再次运行他们的程序。
11.3 数字合成器和个人计算机
早期的计算机庞大、昂贵,并且主要限于大公司和大学。像贝尔实验室和伊利诺伊大学这样的地方会邀请一些幸运的音乐家访问他们的实验室并创作新音乐,但大多数音乐家无法使用计算机。
在1980年代,两种新产品迅速改变了这种情况。首先,数字合成器变得负担得起且广泛可用。这些合成器结合了音乐键盘、用于声音合成的嵌入式计算机,以及按钮、旋钮和滑块的简单界面,创造了一种新型的音乐乐器。音乐家可以演奏音乐键盘以实时产生各种声音。
个人计算机变得更小、相对便宜且更易于使用。音乐家现在可以为他们的家或工作室购买计算机。虽然这些早期个人计算机播放和录制声音的能力有限,但称为MIDI(音乐乐器数字接口)的新协议将计算机连接到数字合成器,以便它们可以一起制作音乐。
John Chowning在调频(FM)合成方面的工作完美地说明了这种过渡。Chowning是斯坦福大学的作曲家和教授,他发明了将振荡器组合在一起以创造各种复杂和真实声音的新方法。他最初在1967年发现了这种技术,并在1973年发表了一篇关于它的研究论文。然而,他只能在对少数人可访问的大型计算机上运行他的FM合成软件。他的软件在这些计算机上运行也需要很长时间;它无法实时发出声音。在1970年代,Chowning创作了许多使用FM合成的令人难以置信的作品,如Stria(1977)。然而,很少有其他音乐家能够用FM创作自己的音乐。
雅马哈是世界上最大的乐器制造商之一,决定从斯坦福大学获得FM合成的专利许可,用于他们的产品。1983年,他们发布了雅马哈DX-7。这款价值2000美元的数字合成器使用雅马哈特殊的新型计算机芯片实时进行FM合成。现在任何音乐家都可以购买雅马哈DX-7,演奏合成器内置的键盘,并使用FM合成可用的令人难以置信的声音进行表演。DX-7是有史以来最畅销的合成器,迅速成为世界上每个主要录音室和音乐会舞台的一部分。1980年代大多数热门歌曲都使用了DX-7,包括Kraftwerk、U2、Stevie Wonder、Phil Collins、Whitney Houston、Depeche Mode、Beastie Boys和Elton John的歌曲(图11.2)。

图11.2 雅马哈DX-7。
当FM合成从大学计算机系统迁移到广泛可用的合成器时,它改变了十年流行音乐的声音。它还为雅马哈和斯坦福带来了财务成功。雅马哈通过许可协议向斯坦福支付了超过2000万美元。
现在FM合成的专利已经到期,任何人都可以使用FM创建自己的音乐产品。许多软件程序模拟DX-7的经典声音,并将其带到新的方向。这些程序今天被顶级音乐制作人使用。如果您想自己尝试FM合成,您可以在https://mmontag.github.io/dx7-synth-js/在线尝试DX-7的开源重新创建。还有DAW(数字音频工作站)插件,甚至原始DX-7的物理重新创建。数字合成器非常擅长实时创造各种声音,它们有富有表现力的音乐键盘,使在 studio 或舞台上表演变得容易。然而,它们的用户界面难以使用。它们通常由滑块、旋钮、按钮和更像您微波炉上的显示器而不是计算机上的显示器组成。很难使用这些合成器设计自定义声音超出预设,也很难使用它们排序音乐。(排序意味着记录、编辑和重新组合音乐的部分或轨道以创建完整歌曲。)
另一方面,早期个人计算机有大型屏幕、键盘,有时还有鼠标,这使它们非常适合显示、输入和编辑信息。然而,它们制造声音的能力有限——尤其是实时。
1983年,同年雅马哈发布了DX-7,一个音乐行业协会创建了MIDI,这是一个帮助不同音乐设备通信的标准。当使用MIDI电缆连接时,设备可以发送和接收播放音符、更改设置、同步时钟和执行其他常见音乐任务的消息。MIDI今天仍然是行业标准。
虽然连接两个合成器以便您可以用另一个的音乐键盘演奏一个的声音很有用,但当个人计算机使用MIDI连接到数字合成器时,事情变得非常有趣。现在,每个设备都可以专注于它最擅长的事情。音乐家可以使用他们的计算机排序音乐和编辑声音。他们可以使用他们的合成器表演(在音乐键盘上)并创造实际的音乐声音。个人计算机迅速成为现代音乐工作室的中心。MIDI充当将所有东西连接在一起的音乐网络。
MIDI排序器迅速成为个人计算机最受欢迎的音乐应用程序。排序器处理多轨MIDI数据的录制、编辑和播放。音乐家可以一步一步地创建歌曲,在MIDI键盘上演奏每个轨道。他们可以回去逐个编辑该MIDI数据,更改每个合成器上的声音设计,甚至更改速度。这些MIDI排序器的一些设计元素,如用于显示音乐音符的网格视图和歌曲的多轨视图,在今天包括EarSketch和TunePad在内的音乐软件中仍然很常见(图11.3)。

图11.3 1989年Macintosh的Opcode Vision软件。
到1990年代末期和2000年代,个人计算机变得足够快,可以自己实时处理音频,而不需要依赖单独的数字合成器。在过去的20年里,计算机音乐工作室逐渐缩小了规模。许多音乐家现在仅使用笔记本电脑,甚至仅使用平板电脑或手机制作和制作音乐。MIDI排序器已经演变成了数字音频工作站,如GarageBand、Reaper、FruityLoops、Live、Logic和Pro Tools。数字音频工作站可以并排录制、编辑和处理音频和MIDI,因此音乐家可以选择符号或音频表示何时最适合他们的项目。独立数字合成器已经变成了在数字音频工作站内加载的软件设备和插件。然而,基本技术、工作流程和设计仍然与个人计算机音乐软件的早期相同。
11.4 智能机器音乐家
在我们考虑的大多数计算机音乐应用程序中,人们告诉计算机要做什么。程序员为MUSIC-N创建乐谱和管弦乐队文件。音乐家演奏数字合成器以表演歌曲。作曲家、音频工程师和制作人在数字音频工作站中录制、排序、编辑和混音歌曲。即使您在TunePad或EarSketch中编写代码,您通常也准确指定如何组合音乐音符或音频剪辑以创建歌曲。在所有这些例子中,计算机是我们用来创作我们想象的音乐的工具。
相比之下,Hiller和Isaacson的ILLIAC Suite将音乐视为人与机器之间的协作。人类创建算法,但通过一系列精心控制的随机决策,计算机创造了人类从未想象过的音乐。从某种意义上说,人类和机器都是创造性的。 Together, they create music that neither would have made alone.
许多计算机音乐家探索了计算机如何成为创造性的音乐合作者,而不仅仅是音乐工具。在贝尔实验室工作的作曲家Laurie Spiegel在1980年代创建了一个软件程序来解决这个问题。她的程序Music Mouse根据用户如何在网格上移动鼠标算法生成音乐。用户还可以配置音阶、速度、和声等设置。在Music Mouse软件的手册中,Spiegel解释了她创建它的动机:
到目前为止,在计算机为音乐带来的新功能中,市售音乐软件主要关注精度和记忆。这些是美妙的属性,但计算机最大的优势之一仍然几乎没有触及。逻辑,计算机学习和模拟我们自己人类智能方面的能力,让计算机成长为一个积极参与的音乐人的延伸,而不仅仅是另一个磁带录音机或一张可擦除的纸。
Music Mouse非常受欢迎,您今天仍然可以在免费的网络版本中尝试(https://teropa.info/musicmouse/)。Music Mouse也启发了许多今天可用于手机和平板电脑的交互式音乐制作应用程序(图11.4)。

图11.4 Laurie Spiegel的Music Mouse软件截图。
虽然Spiegel对标准计算机鼠标如何帮助音乐家与计算机协作感兴趣,但其他人更喜欢使用更传统的乐器进行协作。在1980年代,爵士长号手和学者George Lewis开发了Voyager,这是一个与人类音乐家即兴演奏的软件程序。当人类音乐家演奏时,Voyager将他们的表演转换为MIDI音符集合,分析这些音符,并算法生成自己的音乐。这种互动不是简单的呼唤和回应。Lewis解释说,Voyager采用”非等级、即兴、主体-主体话语模型”,深深植根于非裔美国美学传统。Voyager控制一个虚拟管弦乐队,与Mathews MUSIC-N中的管弦乐队不同,它没有预先确定的乐谱或结构。Lewis写道:“Voyager问我们自己的创造力和智慧可能在哪里——不是’我们如何创造智慧?’而是’我们如何找到它?’最终,Voyager的主题根本不是技术或计算机,而是音乐性本身。”
许多音乐家和计算机科学家仍在开发计算机与音乐家即兴演奏的新方法,包括佐治亚理工学院的 music technology 教授Gil Weinberg,他的机器人Shimon可以在乐队中演奏马林巴琴(https://www.shimonrobot.com/)(图11.5)。

图11.5 爵士长号手和学者George Lewis在IRCAM项目上工作。图片来源:Michel Waisvisz档案馆,约1985年(经许可使用)。
Music Mouse和Voyager都专注于人类和机器音乐家之间的协作音乐表演。许多计算机音乐家也专注于音乐创作,一直回到ILLIAC Suite。在1980年代和1990年代,作曲家David Cope创建了音乐智能实验(EMI)系统。EMI分析了Johann Sebastian Bach和Scott Joplin等作曲家的乐谱,然后以类似的风格创建了自己的乐谱。最近,计算机科学领域深度学习的进展重新激发了人们对这种方法的兴趣。主要科技公司和初创公司开发了新的人工智能系统来创作音乐,如Google的Magenta(见https://magenta.tensorflow.org/)。这些公司看到计算机创作音乐的商业潜力,就像雅马哈看到FM合成技术的商业潜力一样。他们也意识到,这些计算机作曲家在与人类音乐家协作而不是试图取代人类音乐家时效果最好。例如,初创公司Amper Music(https://www.ampermusic.com/)为播客和视频制作人开发软件。它帮助他们创建AI生成的音乐,完美匹配其内容的时间、风格和情感。
11.5 结论
计算机音乐从大型计算机上的打孔卡到今天的数字音频工作站和AI系统已经走过了漫长的道路。在计算机音乐的历史中,音乐家、计算机科学家和工程师一直合作发现计算机如何帮助我们创造、表演和分享音乐的新方法。
今天,计算机影响音乐创作、表演、录制、制作和分发的各个方面。虽然早期的计算机音乐仅限于那些在大学和工业实验室获得专业设备的人,但今天任何拥有笔记本电脑或移动设备的人都可以用计算机制作音乐。
学习用TunePad和EarSketch制作音乐和编写代码可以帮助您学习计算机音乐中的许多重要概念,包括数字音频工作站、合成器、效果和排序。要了解更多关于计算机音乐的信息,您可以下载和学习使用更多计算机音乐编程语言,如Pure Data或SuperCollider,或下载和学习使用数字音频工作站软件,如GarageBand、Reaper或Studio One。许多初中和高中现在有音乐技术实验室并教授音乐技术课程。音乐技术(或计算机音乐)也是佐治亚理工学院(http://music.gatech.edu/prospective-students)等学院和大学不断增长的研究领域。
注释
- 您可以在这里聆听展示MUSIC-N的早期录音:https://www.youtube.com/watch?v=wjMaTzDh8I8
- 您可以在https://www.youtube.com/watch?v=n0njBFLQSk8聆听ILLIAC Suite
- 您可以在https://www.youtube.com/watch?v=988jPjs1gao聆听Stria的节选
- 这个播放列表突出了一些使用雅马哈DX-7的标志性歌曲:https://www.youtube.com/playlist?list=PLsAmsnfaNA4-CevYq1hrcD_aIP5xWe9Xr
- 引用自Music Mouse手册,可在http://retiary.org/ls/progs/mm_manual/mouse_manual.html获得。一些与Music Mouse相关的最近移动应用程序包括Thicket(http://apps.intervalstudios.com/thicket/)、Borderlands Granular(http://www.borderlands-granular.com/app/)和Bloom(http://www.generativemusic.com/bloom.html)
- George Lewis. Too Many Notes: Complexity and Culture in Voyager. Leonardo Music Journal, Volume 10, 2000.
关键术语
- 计算机音乐(Computer Music):任何涉及计算机的创建、表演、分析或分发音乐的过程
- 符号表示(Symbolic Representation):将音乐描述为一系列具有特定属性的音符
- 音频表示(Audio Representation):根据实际声音描述音乐
- MUSIC-N:Max Mathews创建的一系列音乐编程语言
- CSound:受MUSIC-N启发的音乐编程语言
- ILLIAC Suite:最早的计算机作曲作品之一
- 数字合成器(Digital Synthesizer):使用嵌入式计算机创造声音的音乐乐器
- FM合成(FM Synthesis):John Chowning发明的调频合成技术
- 雅马哈DX-7(Yamaha DX-7):最畅销的硬件合成器
- MIDI(Musical Instrument Digital Interface):音乐乐器数字接口标准
- 排序器(Sequencer):记录、编辑和播放多轨MIDI数据的软件
- 数字音频工作站(DAW):用于录制、编辑和处理音频和MIDI的软件
- Music Mouse:Laurie Spiegel创建的交互式音乐软件
- Voyager:George Lewis开发的即兴演奏软件
- 音乐智能实验(EMI):David Cope创建的AI作曲系统
- Magenta:Google的AI音乐项目