TV-B-Gone的作者如何制作ArduTouch音乐合成器

兼容Arduino的数字信号处理培训仪器




发明者Mitch Altman的文章,他发明了用于关闭TV-B-Gone电视的通用遥控器以及黑客会议的组织者

小时候,我被音乐所吸引,并被1968年专辑Switched-On Bach中 Moog合成器的声音所震撼。 我需要学习如何发出这种声音! 因此,在我进入技术行业的同时 ,开始了终身合成器的培训和制造,在那里我最终制作了TV-B-Gone ,该产品可让您关闭几乎所有的遥控电视。 自从获得TV-B-Gone知名度以来,我制作了许多工具包,用于制作有趣的户外设备,并在DIY会议上向全球展示了这些工具。 在他们身上,初学者学习焊接,进入电子产品和微控制器的世界。 记得我的青年时代,我想为他们提供一套易于组装和使用的装置,但同时又是一款功能完善的音乐合成器。

这就是价值30美元的ArduTouch诞生的方式。 该项目包括一块板,一个触摸键盘,ATMega328P(与Arduino Uno中使用的处理器相同)和一个带扬声器的音频放大器。 它还具有一个软件库,可以用作数字信号处理领域的切入点。

开发该板的最大困难是ATMega328P上I / O引脚数量有限。 我使用12个引脚作为键盘来实现整个半音阶音阶。 键盘类似于Stylophone (我在1960年代后期最喜欢的模拟合成器之一),并使用电容传感器进行识别。 另外两个引脚用于立体声输出,另外两个引脚用于串行数据传输(可以使用Arduino的标准开发工具对ArduTouch进行编程,尽管需要FTDI电缆连接到计算机)。 其余触点仅够用于控制合成器的两个按钮和两个电位器。

为了使一个人在焊接后能立即获得可听见的结果,我将LM386放大器芯片和扬声器放在板上(放大器在连接音频插孔时绕过了)。 DAC芯片价格昂贵,因此我使用脉宽调制对ATMega328P发出的立体声音频通道进行编码。 每个通道的低通滤波器由一个电阻和一个电容器组成,可将PWM转换为音频。

经验丰富的电子工程师将了解ArduTouch电路很简单。 该项目的基础是用于对ATMega328P进行编程的高级音频合成软件库。

让微控制器发布最简单的注释非常简单。 只需将扬声器连接到触点,然后交替打开和关闭,以不同的频率发送方波(Alan Turing本人在曼彻斯特Mark II计算机中使用了该技术)。 但是结果却是清晰的声音,与Moog合成器的丰富调色板相去甚远。

为了改善声音,我需要转向数字合成器。 他们从事音频波的二进制表示的创建,其失真以及这些数字到模拟信号的转换。 这可以通过许多不同的方式完成,我很高兴地注意到ArduTouch支持很多不同的技术,包括使用波形表(使用存储在存储器中的样本)和生成声音(实时计算音频)。

创建声音的基本二进制表示形式后,我们进入声音“失真”的关键阶段。 如果您不播放声音,声音通常会变得稀薄且无菌。 动态操纵后会获得清爽的声音。 ArduTouch能够应用各种数字动态功能和效果,包括颤音,颤音,滑音以及低频和高频滤波器。




ArduTouch使用相对较少的组件


即使是初学者也可以收集它

尽管从概念上讲,上述所有内容都不难学习和理解,但编程本身却相当复杂。 由我和我的朋友Bill Alessi一起创建的ArduTouch库执行所有低级计算-我们花了两年的时间来创建它。

该库的设计是灵活的,甚至允许没有经验的用户创建可以产生不同声音的新合成器。 该套件随附了将四个锯齿波组合在一起的厚合成器,其他合成器可以单独下载 。 经验丰富的用户可以通过调用高级功能来学习如何从头开始创建合成器。 我希望喜欢该项目的人可以创建新的合成器并与我共享他们的代码,以便我可以与他人共享它。

但是,即使使用默认的合成器,这种低功耗微控制器(仅支持15 kHz的采样频率)和廉价设备的声音也出乎意料的好。 您可以在我的YouTube频道上收听很多演示。

为了将来开发该项目,我将继续改进Arduino的ArduTouch库,并布置其他现成的合成器。 我还在努力创建更适合演出的ArduTouch版本。 它不再是一个套件,但仍将与Arduino兼容。 它将具有一个带有许多I / O引脚的32位微控制器,一个DAC,一堆内存(将允许您使用MIDI ),一个小的LCD屏幕,几个按钮和电位计以及LED指示灯-当然可以改善声音。

Source: https://habr.com/ru/post/zh-CN433212/


All Articles