音乐X

Music-X是我在1988年为Commodore Amiga创建的流行Midi音序器程序的名称,该程序由MicroIllusions发行。

为了全面讲述Music-X是如何创建的故事,我需要回溯过去一两年。

序幕

作为70年代初期成长的少年,我对电子音乐非常感兴趣。 我非常想拥有自己的合成器,但根本买不起。 取而代之的是,我过去常常在音乐商店里花上几个小时,用最新的Moog或ARP键盘来摆弄。

幸运的是,有一家名为PAiA Electronics的公司出售的套件可以让您以几百美元的价格建造自己的合成器。 在1974年左右的某个时候,我购买了其中一个模块化套件PAiA 2720:

几年后,我升级到了更大的系统PAiA 4700:

PAiA套件对我来说是一次绝佳的学习经历,但从其他方面来看,它们并不令人满意。 这些套件的设计成本尽可能低,这意味着它们使用了相对便宜的组件以及非屏蔽布线和电路设计。 这意味着它们趋于嘈杂,在输出信号中引入了许多不必要的失真和嗡嗡声。 我的焊接技能也有待改进的地方,这无济于事。

这些也是模拟系统,这意味着它们的编程能力有限-更改声音需要大量繁琐的重新设置和旋钮调整。 如果您有一个昂贵的声带录音机,可以将各种乐器分层成一个表演,那就好了,但是我买不起这样的东西。 他们回放音符序列的能力也很有限。

PAiA最终推出了一个微控制器板(基于基于6503的微处理器),我购买了微控制器板,并通过在键盘上输入十六进制指令来学习编程。 这是我所拥有的第一台计算机。 但是,它只有256个字节的RAM,这对于存储音乐序列很受限制。 我试图将计算机“升级”到1K的静态RAM,它工作了大约8个小时-之后处理器板上的某些东西过载了,此后再也无法工作。 我在硬件方面从来没有那么出色,因此无法修复它。

在空军职业生涯中,我把PAiA乐器抛在了后面,但这并不意味着我就不再玩电子音乐了。 我拥有一个ARP Omni(字符串合成器),我将其保存在营房中的房间中,偶尔会演奏-尽管我不是一个出色的键盘手。

同样在那个时候,我开始注意到流行音乐中越来越多地使用电子声音。 在此之前,合成器只出现在Jean-Jaques Perry的《 In Sound From Way Out 》等“新颖”音乐专辑中。 而且,尽管许多摇滚乐队开始使用合成器,但它只是偶尔出现的即兴演奏-它太具有实验性和异国情调,无法用于音乐的“肉类”。

我想听音乐以严肃的音乐方式对待合成器-我是Larry Fast的Synergy专辑的忠实拥护者 ,尤其是摇滚乐团Sequencer的 电子实现 。 这些以及Rush的2112是我转盘上播放次数最多的LP。

在这段时间里,我对个人计算机的兴趣日益增长。 不幸的是,像Apple II或Atari 800这样的8位系统只能发出原始的哔哔声和嗡嗡声,几乎不能处理任何类型的复音。

但是,在1982年,我开始为Radio Shack彩色计算机开发一款名为Guardian的游戏,该游戏是街机游戏Defender的克隆。

《卫报》是由一家名为Quasar Animations的公司发行的,该公司是由一个白天工作是海军水手的家伙经营的夜间飞行。 市场营销很糟糕,我想我从整个项目中总共赚了300美元。

作为《 守护者 》开发的一部分,我必须创建一大堆类似街机的声音效果。 我从PAiA系统的早期经验中学到的知识使我能够以多种有趣的方式操纵方波并调制脉冲宽度。 因为没有多任务处理或声音芯片(只有数模转换输出端口),所以我不得不将产生声音的指令与负责绘制图形的指令交织在一起。 这是我第一次在计算机上创建声音的真实经验。

我接下来从事的几个项目没有声音(其中一个是彩色计算机的文本编辑器,称为“ Color Scripsit”,在发布前就被取消了)。

1985年,我开始为Commodore Amiga编写游戏(有关我的《仙境传说》的文章中有详细介绍)。 Amiga有一块专用的声音芯片,可以同时播放多达四个8位样本-这是Apple和Atari可以做到的巨大飞跃。

完成《童话故事》之后,我认为是时候制作一个“严肃的”音乐节目了。 我已经创建了我的原始乐谱编辑器Musica,用于Faery Tale和Discovery。 我想要一个针对专业音乐家的新程序,并且功能更强大。 我与MicroIllusions的负责人Jim Steinert讨论了这个问题,他对此想法表示满意(Jim从未尝试将MicroIllusions专注于任何一种产品。)

但是,我必须解决几个主要的障碍。 首先是我本人不是专业音乐家。 我对“真正的”音乐家可能想要什么样的功能有一些想法,但这只是猜测。

因此,我花了很多时间在当地的音乐商店里闲逛,困扰着商店的工作人员一些问题。 最终,我说服吉姆通过购买他们的Midi键盘之一来补偿商店所花的所有时间(无论如何,我都需要仪器来测试软件)。 这是一台Roland D-50,此后我保留了很多年。

第二个问题是其他竞争平台-特别是Macintosh和Atari ST-已取得重大进展。 尽管具有定制芯片和多任务OS的Amiga是一个功能更强大的系统,但由于已经为他们提供了专业级的软件包,因此音乐家也倾向于使用其他平台。 所以我知道我有一些事要做。

特别是Atari ST取得了较早的领先优势,因为尽管它是一个相对原始的操作系统(我们称其为“带有窗口的CP / M”),但它带有内置的Midi端口。 对于Amiga,您需要一个额外的硬件适配器,以将Amiga串行端口的输出转换为与Midi兼容的端口。 因此,很自然地,音乐家会得到ST是“音乐家的计算机”的印象-我担心即使是很小的认知差异也可能会随着时间的流逝而在市场上大打折扣。

发展历程

我事先做了一些重要决定。 这将是一个复杂的程序,具有多个“模式”:

  • “整体性能”视图,用于安排音轨和设置速度。
  • 单个曲目的“钢琴卷”编辑器。
  • Midi控制映射器,可让您决定如何处理诸如脚踏板和调制轮之类的控制器信号。
  • 补丁程序管理员页面,可让您记录和存储各个Midi乐器的设置。
  • 音乐键盘映射编辑器,可让您设置“分离”键盘,甚至将音序器音轨分配给各个键。
  • 一种使用Amiga内部声音芯片设置和演奏采样乐器的模式。

我想做的另一件事是利用Amiga的宽调色板:我希望程序色彩鲜艳。 每个不同的模式将以不同的颜色主题呈现。 这需要创建一个自定义UI库,该库将在屏幕上绘制所有各种面板和按钮。

而且我还需要实时的音频反馈-这样,当您用鼠标拖动笔记时,便可以收听它们。

一个特别具有挑战性的问题是对回放例程进行性能调整以使其能够获得一致且准确的时序。 Music-X使用Amiga的四个内置计时器芯片之一来生成中断信号,具体取决于当前的播放速度,这给了我坚实的时基。 但是,我编写的用于处理中断的汇编语言例程将花费不同的时间,具体取决于每个时钟滴答需要执行的操作。

(如果您对技术细节不感兴趣,请跳至下一部分。)

我想出了一种创新的方法来测量时序的稳定性:通过使用Amiga自己的图形芯片作为示波器。 您会看到,Amiga图形芯片的功能之一就是可以实时调整调色板,即使CRT的视频光束正在穿过屏幕。 这意味着,例如,当您将调色板寄存器#1从蓝色更改为黄色时,就像视频光束穿过第一条光栅线的一半一样,您会看到该行的左半部分绘制为蓝色,而右半部分绘制为黄色。 。 一些流行的游戏使用此技巧来增加颜色数,使其超出正常的32种限制。

在性能测试期间,我在回放代码中插入了其他汇编语言指令,这些指令将在执行代码的每个部分时修改调色板。 这在Amiga显示屏上产生了水平条纹的干涉图。

它是这样工作的:计时器芯片的分辨率设置为每四分音符192个时钟滴答。 假设歌曲的速度设置为60 BPM(每分钟的节奏)。 这相当于每秒四分之一音符,这意味着计时器代码将每秒运行192次或每5.2毫秒运行一次。 Amiga视频以60Hz(每秒60次)的频率刷新,因此视频束从上到下穿过屏幕需要16.6毫秒-稍微超过了计时器的三个时钟滴答。 使用改变调色板的技巧,您将看到这三个时钟刻度的执行是三个彩色水平条纹。 通过仔细查看每个条带中各个色带的宽度,您可以了解执行每段代码所花费的时间。 然后,我可以使用它来微调代码的性能。

当然,改变速度会改变屏幕上的条纹数量-速度越快,条纹数量就越大。 但是,如果速度不是60Hz的偶数倍,则条纹会“滚动”,这意味着它们会在显示屏上不断向上或向下滚动。

出版物

最终,决定如何称呼产品。 在参加科幻服装比赛的那几年里,我遇到了许多富有创造力和才华的顾客。 一个是年轻的女人,一个有着粉红色头发的朋克摇滚歌手,她被昵称为“动物X”。 她做过许多挑逗性的服装,例如“战争新娘”(完全用军用迷彩布制成的婚纱)和用虹彩甲虫制成的紧身胸衣。 我认为“ X”具有很好的朋克氛围,因此我将其称为“ Music-X”。

当时我的女友Allison Hershey是一位才华横溢的艺术家,她玩弄的一件事是将电子电路用作其艺术中的视觉主题的想法。 因此,我们想到了将钢琴键盘“变形”为电路板的想法,并且全部以热的矮粉色完成。

从本质上说,我和艾莉森都是非常悠闲的性格类型,但我们对艺术也有非常强烈的感觉。 在我们一起生活的五年中,只有一集我们真正互相表达了自己的声音,那是我们合作制作Music-X封面的时候。

我记得在项目即将结束时的一集,其中我和Matt共同编写了手册。 我们最初将创建手册的工作交给了专业的排版员,但是她没有编写软件文档的经验,并且犯了很多错误。 Matt和我进行了一次马拉松课(30个小时不睡觉),将手册重新格式化后才必须发送给打印机。

接待处

Music-X发行时引起了巨大轰动。 有很多关于该产品的杂志文章。 该程序在Amiga仍然畅销的欧洲特别受欢迎(Commodore在美国的Amiga营销方面做得不好。正如专栏作家Jerry Pournelle曾经说过的那样,“ Commodore无法出售永生!” )

MicroIllusions在诸如NAMM(美国音乐制造商协会)之类的各种贸易展览会上都有一个摊位,Matt和我本人经常出席。 我记得有一个情节,我们两个人在经过一整天的摊位工作后都很疲倦,从事着特技演员风格的战斗,我们使用罗兰鼓机上的按钮提供模拟战斗的重击声和脚踢声。 (用片代表头上的一个柯克。“ 三个臭皮匠 ”不在我们身旁!)

吉姆一直是个大梦想家,他花了20,000美元为Music-X制作了MTV风格的音乐视频。 他已经雇用了导演和电影摄制组,但这些人不是专业人士,只是一些想拥有电影经验的想要成为朋友的类型。 录像带的想法是1950年代电视中的“ Spanky and our gang”角色长大并组成了一支摇滚乐队。 吉姆(Jim)是角色“爬行动物”(Reptile)的一员,他本应代表角色Froggy的成人版本。

我远离整个视频制作,因为我坚信音乐软件广告应该侧重于产品的功能及其如何扩展您的音乐能力-而不是成为摇滚明星的关注和名声。

事实证明,这对我来说是明智的决定-所拍摄的电影绝对是臭鼬。 令人特别可笑的是,最后的大型音乐剧不仅没有使用Music-X,甚至没有使用合成器。 在展览会期间,Jim会将它放在大型电视显示器的背景上播放,但这通常令人尴尬且难以理解,没有人对此给予过多关注。

我认为参与的最高点是当我受邀参加《计算机纪事》时,这是一部有关新兴计算机技术的电视节目:

但是,许多人报告了一个相当严重的错误-有时在录制Midi输入数据时,Music-X会丢失数据-有时会“掉下”音符或控制信号,而不会出现在最终录音中。 我花了几个月的时间试图找出原因,但无济于事。 仅仅几年后,我才知道该错误的确是真实的,而不是我的代码的错误,而是由于Amiga硬件本身的设计缺陷。 稍后再详细介绍。

最终,吉姆让我制作了简化版的Music-X,可以以较低的价格出售。 我对故意破坏软件的想法不是很满意,但是我同意删除一些更复杂的功能是有意义的。 Jim将新产品称为“ Music-X Jr”。

最终,我从Music-X上赚的钱不及从《童话故事》中赚到的钱多。 实际上,我已经与Jim协商了更高的特许权使用费率,而无需预先支付任何预付款-而是在我创建Music-X时依靠Faery Tale的收益为生。 事实证明这是一个错误-尽管Music-X很流行,但MicroIllusions仍在挣扎并在市场上犯了很多错误。 最后,我认为我的收入还不到Faery Tale的四分之一,这使我陷入了一些相当可怕的财务困境。 在这一点上,我开始直接为Commodore和其他雇主做合同工作,尽管我还为MicroIllusions做了一个项目,即Discovery 2(与Joe Pearce一起)。

Joe后来继续为Music-X文件创建了一个名为MaxTrax的可嵌入播放器,使您可以从自己的程序中播放Music-X性能文件。 它被用于许多游戏,例如《 Kyrandia传奇》 (Amiga版本)。

后果我

几年后,在Amiga开发人员会议上,Bryce Nesbitt与我联系,该工程师正在为Commodore开发下一代AmigaOS。

我记不清他的确切话,但要点是他终于解决了为什么Music-X(和其他Amiga音乐软件)似乎在记录Midi数据时遇到问题的问题。

因为我参加了所有Amiga博览会和开发人员的弊端,所以我认识了所有从事AmigaOS工作的人。 我有很长的电子邮件线程,曾恳求他们解决此错误。 一位工程师(最终被Commodore解雇)在一次CES上讽刺地告诉我:“您的问题很简单。 Amiga不能做Midi。”

不幸的是,专业音乐人的市场似乎同意了–越来越多的人倾向于使用Macintosh作为用于制作音乐和Midi的事实上的平台,而抛弃了我的音乐和Todor Fay的《 Bars and Pipes》

但是,布莱斯(Bryce)保佑自己的心,继续在幕后p着这个问题,最终想出了答案。 事实证明,Amiga的四个计时器芯片正在干扰串行端口。 定时器芯片和串行硬件都是中断驱动的,定时器中断的优先级高于串行中断。 更糟糕的是,Amiga的串行芯片只有一个1字节的缓冲区-这意味着,如果在下一个字节到达之前不提取数据,则数据将丢失。

通过让AmigaOS关闭未使用的计时器芯片,Bryce能够在某种程度上缓解该问题。 不幸的是,不能全部关闭-AmigaOS需要一个计时器,而Music-X需要另一个计时器。 关闭四个计时器中的两个计时器可以大大降低错误发生的频率,但是并不能完全消除它。 至此,至少在专业音乐界,Amiga的声誉已无法挽回。 已经太迟了。

后果II

到1991年,Amiga显然是一个垂死的平台,如果您想要庞大的客户群,则必须将MS-DOS作为主要平台。

但是,有一个新的竞争者:BeOS。 BeOS由Be,Inc.创建,是一个全新的,闪电般的操作系统,它是从头开始构建的。 它不仅支持Amiga这样的多任务处理,而且甚至具有多个CPU!

我决定要为BeOS创建一个新的音乐音序器。 我无法使用“ Music-X”这个名称,因为该产品仍由MicroIllusions出售,或者说是AMP娱乐的后继产品。

相反,我想出了一个新名称:MeV,代表“音乐环境”,但也是物理学家用来表示“兆电子伏特”的符号。 我花了几个月的时间开发该产品,并能够进行一些令人印象深刻的演示。

但是,BeOS具有一些基本的技术缺陷。 最大的问题是,他们如此专注于多任务处理的想法,以至于他们实际上迫使程序无论是否愿意都使用多任务处理。 您会看到在BeOS下,每个窗口都在一个单独的线程中运行。 这个想法是,一个窗口中的操作不会阻止另一窗口中的操作。

但是,MeV是一个多窗口应用程序,其中所有窗口都共享一个公共的基础数据结构-播放引擎。 MeV允许您对音乐有多个“视图”-您可以在播放音乐的同时与补丁程序库管理员同时打开钢琴卷编辑器,并在两个窗口中同时进行编辑。

为什么这是个问题? 您必须了解编写多线程代码很困难。 好吧,让我纠正一下:编写多线程代码很容易,编写没有错误的多线程代码确实非常困难。 实际上,是如此之难,以至于当今许多流行的语言(例如Node.js)甚至都不支持线程化。 数十年来,人们一直在讨论如何创建允许简单,无死锁的多线程的编程环境,尽管提出了许多解决方案,但25年后的今天,仍然没有明确的赢家。

在Amiga上,这不是问题,因为Music-X不使用线程,而是使用硬件中断-这意味着在运行播放代码时,有效地冻结了编辑代码。 您不必担心一个任务试图修改一条数据而另一任务试图读取它。

但是在BeOS上,有多个编辑器试图在播放引擎尝试播放的同时访问Midi数据,这是造成死锁和机器死机的原因。

我与BeOS开发人员进行了长时间的电子邮件讨论,讨论如何管理复杂的共享数据结构-他们甚至应我的要求向BeOS添加了特殊功能,例如读/写信号量。 但是最后,问题太过艰巨和复杂了—该项目在自己的负担下崩溃了,我继续进行其他工作。

后果三

在1991-1992年左右的某个时候,我接到了电子艺术公司的制作人Hal Jordy的电话,他想知道我是否有兴趣为Amiga制作流行的Deluxe Music Construction Set的续集。

最初的DMCS是由Geoff Brown为Mac编写的,然后移植到了非常受欢迎的Amiga。 Geoff正在开发2.0版,Hal想知道我是否想做Amiga端口。

这是在我们成立了梦想家协会之后。 通常,我只是简单地接受了联系,但是我想帮助推广我们的新公司,所以我说,如果这可以成为Dreamers Guild的官方项目,我会做到的。

到那时,我已经有了一个可以帮助我的丰富人脉网络,其中包括Matt Nathan(曾为Music-X提供帮助)和Joe Pearce(我与Discovery 2和许多其他项目的合作者)。

我热衷于这个项目,但很快意识到一切都不好。 Mac上的原始DMCS代码是一个非结构化的混乱,而Geoff Brown的新Mac版本落后于进度和挣扎。 我没有等待Mac版本完成(显然从未做到),而是决定自己继续“填补空白”。 最后,我基本上重新编写了整个程序。

我对该项目想要做的一件事是采用AmigaOS 2.0的外观和感觉,使其外观更加专业。

但是,Electronic Arts希望该程序与AmigaOS的早期版本兼容。 我的合作者Joe Pearce再次创建了一个适配器库,该适配器库将允许为AmigaOS 2.0用户界面编写的程序在AmigaOS 1.3上运行,从而拯救了我。 后来,我们将此产品作为独立的Dreamers Guild产品出售给了其他开发人员。

我所做的另一件事是创建一种用于存储乐谱的新标准文件格式。 您会看到,当时将Amiga与其他计算机区分开来的一大优点是,许多Amiga应用程序使用了一种通用文件格式(IFF —交换文件格式),该格式可让您从一个应用程序中导出文件并导入到另一个应用程序中。 。 今天,这似乎并不特别令人兴奋,因为我们拥有诸如MPEG和PNG之类的健壮标准,但那在当时是相当革命性的。

我知道MMA(Midi制造商协会)正在制定用于乐谱符号的Midi标准,但是那时技术白皮书基本上只是一个粗略的草图。 我决定创建一种新的称为CMUS(复杂乐谱)的IFF文件格式,我希望它将成为新的标准。 不幸的是,我在CMUS的设计中犯了一些错误。 最后没关系,因为对Amiga的支持在全世界范围内都在下降。 这是我从事的最后一项大型Amiga计划。

结尾

对于我自己的音乐创作,我最终切换到了EMagic Logic,该公司最终成为了Apple Logic。 我选择该特定产品的部分动机是,我想要具有与Music-X相同的许多功能,但可以在现代计算机上运行的功能。

我还从Native Instruments,Inc.购买了许多软件合成器模块。我卖掉了我的合成器和机架模块墙,我很高兴能摆脱它们。 我从来不喜欢这样的想法,即我的音乐仅限于录音室,并用成千上万的电线束缚在墙上。

有趣的是,尽管我仍然使用Logic在iMac上创建音乐,但我没有使用任何其他Apple品牌的应用程序-Safari,Face Time,Mail或其他任何应用程序。 我更喜欢可以在任何平台上运行的开源应用程序(我的笔记本电脑运行Ubuntu),并且不会将我锁定在单个公司的“围墙花园”中。

您可以在我的SoundCloud页面上找到我最近的许多音乐作品。

如果您喜欢这个故事,请查看下一章:“继承地球:对宝珠的追求”。

也可以看看

  • 塔林的自体生物学论文