你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
这是树莓派和使用机器学习的乐器,用于产生新的独特声音。
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”。