有一种关于中年男人的懒惰的刻板印象,认为我们只想做的就是摆弄我们的小玩意。我没有做什么来挑战它,我想这就是我如何通过尝试建立我自己来抵御大流行 覆盆子π合成器。无论何时,构建一个面包板合成器都是一个有趣的项目!

虽然我还在探索,但我现在桌上的东西正是像我这样的人6个月前想要看到的东西。

覆盆子π合成器的视频

在开始构建一个面包板合成器并遵循下面的说明之前,花一分钟看一下这个视频,看看它是什么样子和声音!

它涉及到使用 覆盆子π运行一个开源的音序器,几行Python代码将MIDI消息转换为较低级的命令,然后将Arduino Uno编程为一个可波动合成器,然后用老式的模拟滤波器塑造这些波形。

我打电话给你 覆盆子π合成器是一个“面包板合成器”,因为它的任何东西都不打算被开发成最终的设备。这是一种涉足一点软件,一点硬件,一点数字,一点模拟的方式。所有使用的电路板和组件,你们中的许多人已经有了!

这是针对初学者的,他们不知道从哪里开始。如果它看起来有点长,那并不是因为它是一个非常复杂的项目,而是因为我已经花了时间把事情分解成我力所能及的最简单的步骤。如果你已经做了一段时间的synth DIY,它可能比你真正需要的更详细。

我假设你能区分电容器和电阻器,并且眨了眨眼睛有些发光二极管之前,但你不需要再深入了。(如果你连LED灯都没闪过呢?别担心,极客酒吧已经帮你搞manbext登录页定Arduino和 覆盆子π.)

由于篇幅的原因,我无法解释每一行代码的每一部分。如果你觉得你在复制和粘贴你并不真正理解的东西…我也是这样开始的。

要知道代码很繁琐,所有的大写字母、标点和空格都很重要。最后,我会链接一些可以进一步帮助你的资源。

让我们发出嘟嘟声!

构建面包板合成器的步骤

1.收集你的供应:零件清单

2.将Arduino Uno设置为波表合成器

3.使用UART串行控制合成器

4.添加MIDI功能

5.添加模拟滤波器

6.接下来去哪里?

本项目零件清单

如果您还没有构建一个实验板合成器所需的所有组件,下面是这个项目的一个方便的零件列表。如果你使用这些链接,他们不花你什么,但我们得到一个小佣金。

本指南是为工作而编写的 覆盆子πOS(以前称为Raspbian)。尽管你可以构建这个 覆盆子π在其他版本的Linux上使用合成器,您可能不得不安装额外的依赖项来使用其中一些工具。

建立一个面包板合成器:选择电位器

我不会再粉饰了。把锅放在面包板上并让它们留在那里是一件很痛苦的事情!

即使你找到一个终端间距正确的罐子,终端本身的大小通常也不是正确的。你可以将它们插入成功地闭合电路,但当你调整它们时,却发现它们会弹出。

立体锅让事情变得更加困难,因为它也必须跨在面包板中心的凹槽上。我用焊接东西到终端来解决这个问题。我用的是IC插座,因为我身边就有一个。

建立一个面包板合成器-选择电位器

这有一个额外的好处,使轴与直接在它下面的面包板行之间有更多的间隙。这使得将跳线连接到雨刷更加容易。

你会看到我只连接了两边的两个终端。对于这个我们要构建面包板合成器的项目来说这很好;我们将使用这个立体花盆作为一对可变电阻,另一个终端将不连接任何东西。

不要使用你最好的演讲者!

听着,你不可能在建造你的 覆盆子π合成器。至少,我还没做到!

尽管如此,在你混日子的时候还是要使用一些可消耗的东西。这样的话,如果你把一件东西连接到另一件东西,却发现它肯定是错的,至少你没有对着你妈妈的组件高保真音响做。

你可以用单声道扬声器,就像老式的练习放大器。你也可以用一对旧的电脑扬声器或一台破旧的高保真音响。确保它是一个有动力的设备并且有某种模拟输入。

如果你还没有这样的东西,可以在二手商店或Facebook Marketplace上花10美元买一些。

将扬声器连接到试验板

无论你的扬声器在构建面包板合成器时使用何种连接器,它们都不会直接插入面包板本身。我已经解决了这个问题,焊接跳线导致3.5毫米立体声插座从我当地的电子商店。

连接您的扬声器来构建一个面包板合成器

如果你讨厌焊接,你可以用鳄鱼夹或把电线缠绕在插孔上。但老实说,这是一个非常简单的工作,如果你的焊接糟糕,这是一个理想的机会练习。

安装Arduino IDE在 覆盆子π

你不需要用你的 覆盆子π如果你真的更喜欢其他的东西,可以写并上传你的Arduino草图。但过不了多久,我们将使用它来控制Arduino Uno使用串行通过USB连接。我认为用这个连接来给Arduino Uno写草图会更方便。

将Arduino Uno设置为波表合成器

幸运的是,我们不需要从头开始编写整个合成器。一位名为DZL的天才制造者为Arduino发布了一对可波动的合成库。

我们所需要做的就是将这些库安装到IDE中,并编写一个快速的草图来从 覆盆子π

什么是波动合成器?

波形表合成是一种技术,其中每个基本波形的形状作为电压值表存储在存储器中。因为每个波形只需要存储一个周期,所以它的内存效率非常高。

这一技术允许一个令人难以置信的通用波形范围。你甚至可以编辑表格文件来添加你自己的形状。与模拟合成器相比,在模拟合成器中添加不同的波形可能意味着你需要一个全新的电路。

这种特殊的波表合成器通过在Arduino Uno的引脚11上使用PWM来工作。我们将该引脚连接到一个简单的低通滤波器,该滤波器将PWM引脚的快速闪烁平滑为与PWM占空比相对应的真实模拟电压。

通过循环不同的电压水平,我们可以画出波形。通过改变我们穿过它们的速度,我们改变了信号的频率,从而改变了声音的音调。

这个特殊的实现提供了8位的动态范围。这与高保真音频相去甚远,但对于简单的波形来说已经足够了。它也有许多角色:在许多80年代和90年代的电子游戏中听到的相同的8位声音特征。

安装synth库

浏览到https://github.com/dzlonline/the_synth然后点击上面写着“代码”的按钮。

安装synth库

选择下载Zip然后保存

在Arduino IDE中,单击Sketch菜单,将鼠标悬停在Include Library上并选择Add .ZIP Library…

安装synth库

找到the_synth-master.zip,选择它并按下好吧.现在您已经将它安装到Arduino IDE中

安装任何赫兹演示

这个库附带了一些简单的草图示例,随时可以使用。让我们从任意赫兹开始,它只是在四个音调中无限循环。

这是一个足够好的起点,以确保线路是正确的。我们可以很快把它发展成一个更有趣的节目。

安装任何赫兹演示

所以打开文件菜单,选择Examples,然后选择_synth-master,然后打开any_hertz草图。上传到你的Arduino Uno。

将Arduino Uno连接到面包板

设置一个可波动音频的Arduino Uno不需要组件-只需要两个电阻和两个电容。一个电阻和电容对将形成一个无源低通滤波器,平滑PWM引脚的闪烁到一个真正的模拟电压。

另一对用于耦合。它将音频信号传递到下一个电路,阻止使用两个不同电源可能产生的任何直流电压。

让我们从构建面包板左上角的低通滤波器开始。将1k电阻放在第1列和第5列,10nF电容放在第2列和第5列,像这样:

将Arduino Uno连接到面包板

现在连接Arduino Uno。第1根立柱上有11根线脚,第2根立柱上有一根接地脚。

将Arduino Uno连接到面包板

这就是我们的低通滤波器。简单,嘿?

现在来看看耦合电容。连接一个1µF电容到第5和第6列,并连接一个200k电阻到第6列和负轨。

将Arduino Uno连接到面包板

通过将信号线连接到耦合电容和地线,将扬声器连接到合成器上。

将Arduino Uno连接到面包板

如果一切正常,它就会发出哔哔声。万岁!

使用UART串行控制合成器

当你第一次听到这四个音调时,就会为你成功地建造了一个面包板合成器而欢呼。当这种感觉消失时,听起来有点无聊。

更有趣的是一个我们可以控制和互动的合成器。

当我第一次尝试时,我想使用I2C协议。从理论上讲,它看起来很神奇。只需两个引脚,就可以向数十个外围设备发送指令。有很大的空间来扩展这种配置。

当我尝试它时,它完美地工作了一两分钟,然后产生一个硬件错误,使Arduino Uno完全没有响应,直到它被重置。分析!

UART仅限于双向通信,但仍将所有GPIO管脚和硬件外设留给其他东西。这里超级简单的一点是它已经通过USB物理连接了。我们只需要编写一些代码来描述如何使用这个连接。

配置Arduino Uno

接下来是我们的 覆盆子π合成器构建正在配置Arduino Uno。这是相对简单的。我们不需要包含任何库来打开UART端口。我们只需要在设置函数中告诉它以特定的波特率打开串行连接,就像这样:

Serial.begin(9600);

接下来,我们需要编写一个名为void serialEvent()的函数。Arduino IDE从这个名字知道在每次消息到达时调用它。正确拼写并大写是很重要的,否则它将无法运行。

让我们保持简单,只读取一个字节。这给了我们一个从0到255的整数范围,每个整数都可以用于不同的指令。

如果我们使用字节0到127来播放音符,这符合MIDI规范。这将在以后有用。

在440hz的协调音高中,MIDI数字转换为频率的公式为:

频率= 440 × 2(数字−69)/12

如果你不确定这是怎么回事,那就跟八度音阶和平均气质有关。现在要陷入这样的困境有点困难。但无论如何,书呆子们,请离开!

我们可以用C写成:

浮动间距= 440.0 * pow(2.0, ((Float)midinote - 69.0) / 12.0);

对于暂停和休息,有一个停止指令在音乐上也很有用。我们用128来表示。

当我们使用switch…case语句将所有这些放在一起时,我们得到:

void serialEvent() {while (Serial.available()) {int option = (int)Serial.read();Switch (option) {case 128:埃德加。setFrequency (0, - 0.0);edgar.trigger (0);打破;例0…127:浮动间距= 440.0 * pow(2.0, ((float)option - 69.0 / 12.0);埃德加。setFrequency(0,距);edgar.trigger (0);打破; } } }

现在它已经设置好了根据传入指令播放音符,让我们从循环函数中删除代码行。不要完全删除循环函数。Arduino IDE希望找到它,否则它将无法编译,但它很高兴它是空的。

Void loop() {}

也可以将波形从三角形改为更谐波的内容,如斜面或正方形。这将意味着我们稍后建立的共振滤波器将有更多的高频发挥。

所以,找出那句话

ENVELOPE1,127 edgar.setupVoice(0,三角形,60,64);

把它改成:

埃德加。setupVoice(0, RAMP, 60, envelope, 127, 64);

完整的Arduino草图应该是这样的:

#include  synth edgar;Void setup() {edgar.begin();埃德加。setupVoice(0, RAMP, 60, envelope, 127, 64);Serial.begin (9600);} void serialEvent() {while (Serial.available()) {int option = (int)Serial.read();Switch (option) {case 128:埃德加。setFrequency (0, - 0.0);edgar.trigger (0);打破;例0… 127: float pitch = 440.0 * pow( 2.0, ((float)option - 69.0) / 12.0); edgar.setFrequency(0, pitch); edgar.trigger(0); break; } } } void loop() { }

编译并上传到你的Arduino Uno。

构建试验板合成器:配置 覆盆子π

我一直认为Python是一种简单的编程方式——对于初学者和匆忙的人来说是一个理想的选择。C是另一个极端:对于像Linus Torvalds这样的人来说,它是一种精确而精确的语言。

然而,事实证明,一旦我们开始接近硬件级别的工作,Python中许多隐藏的小事情就会突然变得令人头痛。

例如,您是否知道,如果您想将Python的一个标准双字节整数转换为一个单字节整数,您必须首先放入一个列表?我没有。如果你只是输入bytes(128),你会得到一行中128个空字符,所以它必须是bytes([128])。

令人烦恼的是,从官方文档中很难看出这一点。这完全取决于你在论坛上偶然看到一个六年前也有同样问题的人的帖子。

C有自己挑剔的方式。但至少,如果你真的想要一个int或字节,你可以只要求一个,它就会给你。

我跑题了。

打开你的终端窗口 覆盆子π通过键入:

python3

为了与串行端口一起工作,我们使用预先安装的串行模块,它被方便地称为serial。让我们导入它。

进口系列

现在我们需要用它来连接串口。要做到这一点,我们需要知道Linux在哪里看到它。Arduino IDE让这变得简单,因为它很高兴地告诉我们。它位于代码编辑器的右下角,看起来类似于/dev/ttyACM0或/dev/ ttyacm1

配置树莓Pi合成器

一旦你知道端口在哪里,你就可以创建一个对象来在Python中访问它,命令如下:

arduino =系列。串行(“/ dev / ttyACM1”,9600年,超时= 1)

这个Serial对象有一个我们可以使用的write方法。记住,我们必须将整数转换为一个字节,我们可以这样写:

arduino.write(字节([70]))

嘿,那弹音符了吗?现在试试不同的数字。

arduino.write(字节([50]))arduino.write(字节([42]))arduino.write(字节([69]))

那么休息和停顿呢?在我们的Arduino草图中,我们将128设置为提升笔记的字节。让我们看看当我们把它写到串口时会发生什么。

arduino.write(字节([128]))

有了这个,我们可以演奏任何音符,也可以什么都不演奏。

添加MIDI功能

如果你停在这里,你可以告诉你的朋友你做了一个合成器,从技术上来说这是真的。

但这是一个非常笨重的合成器,需要一行又一行的代码来演奏哪怕是一个简单的旋律。这不是一个非常直观或鼓舞人心的音乐制作方式。

乐器数字接口,或称MIDI,会立即使它在音乐上更有用。这是计算机、合成器和其他音频设备发送和接收有关播放哪个音符以及何时播放的消息的标准方式。

好消息是你的 覆盆子π操作系统已经具备MIDI能力。高级Linux声音体系结构(或ALSA)就包含在Linux内核中,它处理MIDI消息和端口。

我们所需要的就是将两个东西连接到ALSA:发送MIDI消息的东西,以及接收它们的东西。

为了生成MIDI消息,我们可以使用一系列的音乐程序。我将带你安装Seq24,一个简单的MIDI音序器。

要处理这些消息,用Python编写自己的脚本非常容易。我们可以使用Python模块Mido打开一个MIDI端口,然后使用这些MIDI消息向串行端口写入字节,就像前面所做的那样。

安装顺序24

保持打开运行Python解释器的终端窗口。我们很快就会回到它。

打开另一个终端窗口安装Seq24。你可以在 覆盆子π存储库如第24条所示(无资本)。更新存储库并使用以下三个命令进行安装:

Sudo apt update Sudo apt upgrade -y Sudo apt install

保持这个终端窗口打开。

安装Python模块

我们需要Python包管理器来安装Mido。它通常是默认安装的,但如果你没有,你可以输入:

sudo-apt安装python3管道-y

Mido还依赖于另一个名为Python -rtmidi的Python模块。我们可以使用一个命令将它们安装在一起。

安装python-rtmidi mido

关闭此终端窗口并切换回Python解释器。

编写我们的第一个Mido脚本

现在已经安装了Mido,我们可以按照通常的方式将它导入Python。

进口米多

Mido打开一个虚拟端口,其中Linux

端口=米多。open_input(“波表”,虚拟= True)

我们可以通过写一个循环来观察移植的内容,像这样:

对于端口中的消息:print(消息)

在空行上按enter以运行循环。

接下来发生的事情看起来会比较平静。在MIDI消息开始到达之前,它没什么可说的。所以让我们做一些吧!

连接Seq24到MIDI端口

从桌面左上角的应用程序菜单中打开Seq24。

连接Seq24到MIDI端口

这里您将看到Seq24的主要模式编辑器。每个容器都包含一个序列。右键单击其中一个,选择“新建”,你可以编辑它。

连接Seq24到MIDI端口

靠近右上方的是一个字段,您可以单击以选择使用哪个MIDI端口。点击它,你会看到我们用Mido创建的wavetable端口。继续并选择它。

现在在序列编辑器右侧的钢琴键上左键点击几次。然后切换回Python解释器。您应该看到为您单击的笔记显示的note_on和note_off消息。

连接Seq24到MIDI端口

我们接近那里。让我们把这些MIDI信息转换成声音。

使用Mido解析MIDI消息

我们可以用一个循环把这些消息变成哔哔声,这个循环并不比我们刚才写的复杂多少。我们不只是打印消息,而是要检查它是一个note_on还是note_off消息—任何其他类型的MIDI消息,我们都可以忽略。然后可以解析note_on消息来播放哪个音符,而note_off消息可以仅仅转换为暂停指令。

首先按ctrl+C退出循环。然后再写一个这样的句子:

对于端口中的消息:if消息。Type == "note_on": arduino.write(bytes([message.note]))Type == "note_off": arduino.write(bytes([128]))

第二次按enter键运行循环。

现在当你使用音序器时,你应该听到它的播放。

有关Seq24中如何排序的更多信息,请点击这里。

添加模拟滤波器

到目前为止,我们还没有走出计算机合成的道路。所以让我们来看看模拟电子设备。

电路板上已经有一个低通滤波器了。这是必要的:如果没有它,PWM的闪烁将根本不会形成模拟电压。

现在,出于音乐方面的原因,我们添加了一个过滤器——这是从莫里茨·克莱因(Moritz Klein)出色的DIY VCF系列中提取的设计。

这给了我们一个可调节的截止频率。通过转动电位器,我们可以控制有多少谐波成分通过。这将我们的一个基本波形变成了整个音色调色板,可以随着音乐播放而变化。

它还有一个共振控制。增加更多的共振会提高刚好低于截止频率的频率,使声音更带有鼻音,并强调移动截止频率的扫频。

如果你把共振调得足够大,滤波器会自动振荡:它会在共振频率下产生自己的正弦波音调。

关于这个过滤器

当我们构建面包板合成器时,让我们花一分钟来讨论滤波器。这是一个双极,每倍频程12dB有源低通滤波器。它是建立在两个无源RC滤波器,由运放级缓冲。谐振工作通过连接滤波器的输出到第一个RC滤波器的电容器。我们也可以在这个反馈回路中加入二极管来剪辑共振。这就缓和了共振,同时给了它一个肮脏的声音。

如果你还在为这些问题挠头,别担心。莫里茨的视频已经解释这个电路是如何工作的如此完美,以至于复制它将是愚蠢的。

唯一不同的是,我们没有他使用的±12伏的分裂电源。相反,我们可以用两个9伏的电池来制造我们自己的分体式电源。

与Arduino Uno的5伏峰值信号相比,这给了我们足够的空间——我们可以跳过降低电压的步骤。

此外,如果你是运算放大器的新手,你可能还想看这是来自EEVBlog的解释

如果你没有时间看视频也没关系;我不是你爸爸,我不能告诉你该怎么做。通过遵循这些步骤,一切都应该能够正常工作,如果您了解了正在发生的事情,您将从中得到更多。

这是足够的背景-让我们构建这个东西!

缓冲Wavetable输出

首先,将扬声器从面包板上断开。

缓冲Wavetable输出

然后把罐子和TL074四脚运算放大器放在板上。把单声道壶刚好放在耦合电容的右边,然后是IC,立体声壶。在它们之间保持一对列的空间,以供布线。

缓冲Wavetable输出

确保TL074上的小缺口面向左边,这样电源引脚是正确的。

现在,我们想用一个运放来缓冲波形合成器的输出。将耦合电容连接到第一运放的非反相输入端,然后将反相输入端直接连接到输出端。

我们的 覆盆子π合成器没有POWER不能工作!!所以,拿起你的9伏电池,把它们的夹上并连接起来。

我们将从负电源引脚开始,它是IC顶部的中间引脚。将负极导线连接至负极电源引脚,将正极导线连接至试验板顶部的接地导轨。

然后将另一块电池的正极线连接到IC底部的正极针上,然后将负极线连接到电路板底部的电源轨上。连接电源轨道以完成电路。

这是个好主意,在我们建立我们的 覆盆子π合成器,检查一下它是否正常。这样,如果有问题,就更容易找出问题所在。我们再放一个耦合电容和接地电阻在板上把它和扬声器连接起来。

为箝位二极管留出一点空间,在板上放置一个1µF陶瓷电容器。然后将一个200k电阻连接到电容器的右腿和板上的空列。

将运算放大器的输出引脚连接到耦合电容器。然后将信号线连接到耦合电容器,将地线连接到电阻器,就像我们之前所做的那样。

在合成器上放点东西,检查一下是否正常。听起来应该没有什么不同。让我们做点什么吧。

构建过滤阶段

接下来,为了构建一个实验板合成器,让我们移除运算放大器和耦合电容器之间的导线,让扬声器保持连接。

将运算放大器的输出连接到立体声罐体的一侧。将另一侧连接到第二运算放大器的非反相输入。

构建过滤阶段

现在取一个10nF电容,将一个支路连接到第二个运放的非反相输入。将另一个支路连接到地轨。

构建过滤阶段

将输出连接到第二个运放的反相输入,将其配置为缓冲器。

构建过滤阶段

这是我们完成的两极有源滤波器的一极。现在再用第三个运放做同样的东西。

将第二运放的输出连接到立体声罐体未使用的一侧。将罐体的另一端连接到第三运放的非反相输入端,并在非反相输入端和地放置一个10nF电容。

构建过滤阶段

将输出连接到耦合电容,并祝贺你自己建立了一个2极,有源滤波器!

构建过滤阶段

在电视上播放一些东西 覆盆子π合成器和玩音响罐来调整截止。很酷的声音,对吧?在我们进入下一个环节之前,我觉得我们应该先尝试一下。

在构建面包板合成器时添加共振

在构建面包板合成器时,你可以只用一个截止控件做很多事情。但是,你知道什么是只需要几分钟就能做出来的全新玩具吗?共振控制!我们开始吧。

将第三个运放的输出连接到单声道锅的右端。不要拆除耦合电容的连接,这样就可以了。将花盆的左端连接到地面。

增加共振

现在让我们把雨刷端子连接到最后一个运放的非反相输入端。

增加共振

我们不想把它配置成缓冲器,而是放大器。因此,不是直接将输出连接到反相输入,而是使用10k电阻连接它们。然后将一个6.8k的电阻连接到逆变输入和地轨上。

增加共振

这有点棘手。我们想把10 nf电容器连接到非反相输入第二个运算放大器,断开它的一条腿从地面铁路然后在一个空的地方,腿案板列TL074和mono。四运算放大器的输出连接到这一列。

增加共振

现在你有一个工作共振控制!

试着用不同的共振位置转动截止旋钮。把共振调到足够大的程度,你会发现一个点,它变得如此重要,以至于这个频率占据了主导地位,它开始自振。然后你可以扭转切断罐来改变这个音调的音高。

构建一个面包板合成器:添加剪切二极管

莫里茨视频中最后一个要用到的东西 覆盆子π合成器是一些用于谐振路径的运放上的箝位二极管。这实际上是完全可选的,但如果你已经有了二极管,它会发出很酷的声音。

当你观察一个二极管时,你会看到一端有一个环。这标志着负极——连接负极的那一面。另一边是阳极,连接正极的那一边。利用截止锅和扬声器连接之间的空余空间,在面包板的缺口上方,放置一排阴极指向右的三个二极管。然后在缺口下方的空间,放置一排三个阴极指向左边的二极管。

增加限幅二极管

现在将这些行连接在一起,使每行的阳极端连接到另一行的阴极端。

增加限幅二极管

将这对行的一端连接到第四运放的输出管脚,另一端连接到反相输入端。

增加限幅二极管

是的,TL074现在有点乱。但你有二极管箝位!在合成器上播放一些东西,你会注意到共振不是很明显,但也有点脏。

不要害怕破坏剪切二极管

我个人更喜欢四个二极管发出的声音而不是六个。这让更多的人产生共鸣;即使它一直向上,它仍然只位于自振荡的边缘。它听起来也更肮脏和粗糙。

你也可以用不对称剪裁来支付。这是通过在每一行使用不同数量的二极管,甚至仅仅使用单行,以不同的方式剪辑波形的顶部和底部。这声音也很酷。

你甚至可以决定你更喜欢没有二极管削波的声音。这就是DIY的伟大之处:一旦你学会了为什么和如何做,你就可以做你想要的。

断开从权力

如果你要离开这个 覆盆子π合成器板上,它是一个好主意断开电池时,它不使用。电池没电并不是世界末日,只是很烦人。

构建一个实验板合成器:下一步在哪里?

如果您已经完成了这一步,那么恭喜您构建了您的第一个面包板合成器!那么现在呢?好吧,由你决定。

以下是一些建议:

  • 您可能想要扩展Arduino草图中的开关……案例部分,以允许您选择不同的波形。您还可以扩展Python循环,使用MIDI协议的控制更改消息来控制它。
  • 你也可以考虑在滤波器上增加电压控制,使用vactrols或晶体管。然后你可以编写信封和lfo。

这里有另一个想法:

  • 尝试把另一个PWM引脚上的板和轻微失谐这个合成器的声音几赫兹,以真正充实的声音。你甚至可以给每个引脚分配不同的波形来获得更复杂的声音。

更多关于下一步探索的想法,请查看Synth It Yourself的参考资料。

关于作者

作者詹姆斯·莫森 詹姆斯·莫森是一名来自澳大利亚墨尔本的技术文案撰写人和内容营销员,为世界各地的大小科技企业自由职业。他还亲自推出Synth it,这是DIY合成器爱好者的资源。在业余时间,他热衷于Linux和Linux 覆盆子π业余爱好者,吉他手,复古游戏和慢餐的爱好者。你可以更多地了解詹姆斯在他的网站