整理 | 郑丽媛
出品 | 程序人生(ID:coder_life)
或许,你听说过 Commodore 64(简称 C64)计算机吗?它是一台由 Commodore(康懋达国际)公司于 1982 年 1 月推出的 8 位家用电脑,到现在已经走过了 40 年,可能很多人对此并不了解,但却是它让很多家庭第一次了解到了 PC 的概念。
被称作 " 计算机中的大众汽车 " 的 Commodore 64,当年以低至 595 美元的价格以及经典游戏的成功植入,在全球卖出了 1250 万至 1700 万台(成为被吉尼斯世界纪录列为有史以来销量最高的单一计算机型号),直至 1994 年 Commodore 停止生产并宣布破产。
尽管如此,C64 并未被人遗忘,其中就包括一位名叫 Linus Å kesson 的瑞典软件工程师:他耗时三年半,终于将两台 C64 改造成了手风琴,真的能弹奏的那种!
(图片来自 Linus Å kesson 的 YouTube 视频截图)
两个 C64 键盘 + 波纹管 = 手风琴?
C64 有个特点,那就是所有的东西都被整合到键盘内,比如用以存储的声磁带、 20KB 的 ROM 和 64K B 的 RAM 等等,所以 Linus Å kesson 整活的目标也正是 C64 键盘。
" 从技术上讲,两台 C64 加载的是完全相同的程序,但可以通过一个特殊的组合键在两个应用程序之间切换。"Linus Å kesson 介绍道,这两台 C64 由软盘制成的波纹管连接,并与传统手风琴一样,右手边的用于演奏主旋律,左手边则负责伴奏,控制节拍与和弦。
在具体实现难度上,Linus Å kesson 对左边键盘投注的精力要大得多。虽然一旦伴奏模式启动并运行,左手只需按下单键,常用的键也都很接近,但用左手操作一些功能还是比较困难的,特别是在设置一个循环伴奏时。
左边的键盘共有两种模式:实时模式和编程模式,可通过 C64 上的 Shift lock 键进行切换选择。
实时模式
在实时模式下,带有字母的三行表示和弦,这种布局在很大程度上受到了许多手风琴上的 Stradella 低音系统的启发。最下面一行,从 Z 到光标右,包含了所有的大和弦,按照五度圈排列。因此,任何给定的 I 和弦(主音)两侧都有 IV 和 V 和弦。第二行,从 A 到 Return 包含小和弦,第三行包含减和弦。因此,例如 Z、A 和 Q 键分别代表 C 大调、C 小调和 C#dim 和弦。
当你按住一个和弦键而没有播放伴奏时,程序会将和弦作为一个琶音和一个低音来播放。功能键(F1, F3, F5, F7)开始播放储存在内存中的四个循环伴奏之一,当循环播放时,按和弦键可以使循环的内容适应所需的和弦:数字键 4-9 设定节奏,空格键停止播放。
编程模式
在编程模式下,大多数键都可以插入到当前循环中(触发器或音符)。在右 Shift 键附近有鼓触发器,底部一排的五个字母(Z-B)代表低音,即当前和弦音阶中的第 1、3、5、7、8 个音符,第二行的九个字母(A-L)以某种方式调用当前和弦,作为琶音或单独的音符。
当没有播放伴奏时,你可以随意尝试按键,找到那些音符的位置;当有伴奏播放时,你的操作就会被程序记录下来, 世界杯买球单双怎么买,按空格键停止播放,Clr/Home 清除当前模式。
也就是说,Linus Å kesson 在右手的 C64 键盘上弹奏主旋律,左手边的键盘可以实时控制低音与和弦,也可以通过 Shift lock 键切换提前录制的伴奏。
最大缺陷:不太符合人体工学
Linus Å kesson 将这款特别的手风琴命名为 Commodordion,那么它具体是如何运作的呢?
他在两台 C64 之间连接了一个定制的电源,一旦开启,两台 C64 便会同时启动。随后,Linus Å kesson 便将他在 Commodore Datasette 模拟器中编写的自定义音乐软件加载到每台设备中。定制的混音器电路板会将来自两个键盘的音频信号汇集在一起,并测量波纹管的输入以控制声音输出的音量大小。然后,放置在气孔外的麦克风能将其听到的声音转换为音频包络,以操纵声音输出—— Commodordion 本身并没有扬声器,而是通过插孔输出其电子音频。
Linus Å kesson 作为 Commodordion 的开发者,自然也是第一个它的第一个演奏者:他展示了一段他用 Commodordion 弹奏 " 拉格泰姆之王 " Scott Joplin 的《Maple Leaf Rag》的视频片段。
不得不说,从演奏效果来看 Linus Å kesson 确实是一位多才多艺的程序员,他也自称是一名 " 音乐家 "。
不过,Linus Å kesson 也承认 Commodordion 有一个巨大的缺陷:不太符合人体工学,给左手的手腕、手臂和肩膀都带来了很大的压力。由于左手边的大多数键都很难够到,所以手腕始终处于完全弯曲的状态,手臂在拉动风箱时也要承受很大的重量。