DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

构建Google Open Nsynth Super

 

这是树莓派和使用机器学习的乐器,用于产生新的独特声音。

NSynth(神经合成器)是由Google和其他合作者共同开发的机器学习或“AI”算法,它们使用深度神经络来学习声音的特征,然后根据这些特征创建一个全新的声音。它不仅仅是简单地混合声音,它实际上使用原始声音的音质来创建全新的声音。

Open NSynth Super是NSynth的实验性物理接口,它由树莓派,定制PCB和简单的激光切割机箱构成。它提供了一站式的OS 映像档,包含预先配置的软件和固件以及一组示例声音 - 这意味着你不必经历极其耗费资源的生成音频文件的过程,以便开始用电子音响合成器试验。

PCB设计,微控制器固件,软件和外壳设计都是在开源许可下发布的,这意味着任何人都可以免费地构建自己的Open NSynth Super。

操作理论

WaveNet自动编码器图。 来源:magenta.tensorflow.org.

 

如前所述,NSynth使用深度神经网络来产生声音,网站描述如下过程:

“使用自动编码器,它从每个输入中提取16个定义的时间特征。这些特征然后被线性插入以创建新的嵌入(每个声音的数学表示)。然后将这些新的嵌入解码成新的声音,这些声音具有两种输入的音质。 “

更多细节可以在NSynth:Neural Audio Synthesis页面找到。

Open NSynth概述。 来源:https://github.com/googlecreativelab/

 

然后Open NSynth Super获取生成的音频并与下列的工具提供物理接口或仪器:

连接到钢琴键盘,音序器或计算机等的MIDI输入

四个旋转编码器用于将仪器分配到设备的角落

用于仪器状态和控制信息的OLED显示屏

精确控制:

Position设置波形的初始位置。

Attack设定初始启动级别所用的时间。

Decay设定后续磨合所需的时间。

Sustain设定声音主序列中的音量。

Release设置由某水平减到零所需的时间。

Volume设置输出音量。

Touch interface探索声音之间的位置。

微控制器用于管理物理输入,并在首次使用之前对其进行编程。

物料清单

GitHub存储库中提供了完整的物料清单,下方是其中的一部分内容,只是为了说明所使用的主要组件

1x树莓派3 Model B(122-8913)

6xAlps RK09K系列电位器(729-3603)

4x Bourns PEC11R-4315F-N0012旋转编码器

2x Microchip AT42QT2120-XU触摸控制器IC(899-6707)

1x STMicroelectronics STM32F030K6T6,32位ARM Cortex微控制器(829-4644)

1x TI PCM5122PW,音频转换器DAC双32位(814-3732)

1x Adafruit 1.3“OLED显示屏

有关完整列表,包括无源组件和机械装置等,请参阅GitHub报告。

报告还包括Gerber文件让您发送给PCB制造商制作PCB。

装配

大部分组件都是表面贴装,当引脚间距降低到0.5mm左右时,如果用心焊接的话,其实你可以手工焊接这些部件。然而,虽然有些人可能会认为这不是绝对必要的,但我建议使用立体显微镜和热风站。不用说,你应该有足够的助焊剂和焊料芯!

便利地,PCB上印刷了组件代号的表格。

一般来说,首先从最小的部件开始并按大小进行焊接是合理的,因此应首先焊接电阻。

接下来是电容器。

然后是集成电路

这是立体显微镜可以提供极大帮助的地方,特别是短路的时候。

不幸的是,我确实在DAC的引脚上落了太多的焊料,并且在施加了大量的助焊剂并且用焊料芯进行烧焊之后,我在引脚的拐点后面留下了短路。这需要热空气站来解决(124-4133) ,在通过熔化加热后,焊料耗尽了。

如果您以前没有使用过热空气站,我建议您查看Karl Woodward的文章,选择您的下一个焊接工具。

显示器被固定在PCB上的一个切口中,在两个电路板上通过引脚和通过顶部,焊料填充显示板底部的两个凸耳。

接下来安装了电位计。

然后安装在每个角落的旋转编码器。

上面我们可以看到已近乎完成组装的电路板,按下来只需安装几个附加连接器。

请注意,通孔部件上的针脚与金属树莓派连接器外壳之间没有太多间隙,因此在前者上安装了一块Kapton胶带以保证安全。

这可以更清晰地看到上面安装的Pi。

接下来,从红色亚克力切割出外壳和SD卡被写出。在第一次启动时,连接了键盘和显示器,以便我们可以按照程序对微控制器进行编程 - 这非常简单直接,并且不需要很长时间。

请注意,此处详细介绍的步骤不能替代GitHub repo中提供的官方说明,并且如果你想构建自己的Open NSynth Super请参考这些!

测试

为了测试,我们从互联网上下载了一个MIDI文件,然后使用命令“aplaymidi”通过Linux笔记本电脑和USB / MIDI接口播放了这个文件。毫无疑问,NSynth Super会涌入生活,我们可以将工具分配到每个角落,然后通过机器学习的奇迹来创造出新的,迄今未知的乐器,如“flarimba”。

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

18 Apr 2018, 12:46