使用树莓PI将MIDI添加到CV合成器

2020-09-11 21:16:20

我给树莓PI编程来控制电压并响应MIDI,这样我就可以用键盘弹奏Korg Monotron了。

Korg Monotron是一款听起来不错的合成器,价格相对便宜(约50美元)。Korg Monotron的一个缺点是它使用色带控制器来确定音高,因此很难精确地控制音高,而且几乎不可能自己调谐。

幸运的是,Korg开发了这个考虑到黑客的小合成器。这些说明将告诉你如何使用树莓PI作为一个便宜的MIDI转CV控制器,这样你就可以像使用任何其他MIDI乐器一样使用Korg Monotron。

这是第一个DIY MIDI-to-CV控制器,允许您自动调整Monotron电压频率,并且只有三个组件(并且没有PCB!)。其他解决方案-如MIDI-IF套件或基于Arduino的midi2cv-需要大量焊接,数十个组件,并需要手动调整。

将MIDI添加到Korg Monotron基本上需要将MIDI输入转换为电压。下面的介绍将适用于几个CV合成器(我认为),并且不一定特定于Monotron。这里我们使用廉价的DAC(MCP4725)从树莓PI发送电压。Raspberry PI使用Python脚本midi2cv.py监听MIDI并控制DAC。

这里的魔术是我在Raspberry PI(在midi2cv.py中)中添加了一个调优函数,这样您就可以自动确定电压和频率之间的关系来调优任何CV合成器。它的工作原理是将合成器的音频输出连接到Raspberry PI(通过USB音频接口),然后计算FFT以找出由各种电压控制的音调的基频。

下面是使用Korg Monotron和Raspberry Pi并使其具备MIDI功能的逐步说明。只有两个焊点,没有PCB,也没有面包板!

我们首先需要能够向Korg Monotron发送电压。要做到这一点,我们需要通过焊接将一条带热电压的导线和一条带地的导线连接到Monotron。

只需拧下Monotron背面的螺丝并拉出背面即可。有四个螺丝,其中两个紧挨着电池。

小心地拆开Monotron,你会看到PCB的背面有一些带有标签的金色衬垫!Korg设计这块PCB是为了让我们破解:)。将一根导线焊接到栅极焊盘,并将另一根导线焊接到GND焊盘(两条导线应在相对的一端为凹头)。

我知道我们没有使用螺距,但是出于某种原因,栅极也可以是电压控制的,并且充当栅极(如果电压为>;0)和螺距。如果你想看某人焊接,看看这个关于如何焊接到Korg Monotron的很棒的YouTube视频。

现在只要把它合上,然后移动电线,使它们在音量控制下伸出即可。你可以把所有的东西拧回一起,只要确保不要太紧就行了。

首先,让我们将MCP4725连接到树莓PI。将MCP4725 SDA、SCL、GND、VDD分别连接到Raspberry Pi的GPIO 2(SDA)、GPIO 3(SCL)、接地和5V电源。有关更多详细信息,请查看树莓PI引脚布局示意图。

现在将Monotron“GATE”导线连接到MCP4725的“VOU”。将Monotron“GND”线连接到树莓PI的任何接地引脚上(示意图)。

单管使用压控振荡器(VCO),单管电压可以通过INT和TRIM POT进行修改,这会影响给定电压的频率。每次更改这些设置(或任何时候看起来走调)时,您都需要对其进行调整。也就是说,您需要确定哪个电压将产生哪个频率。

幸运的是,我们可以使用Raspberry PI为我们自己校准音符,而不是手动调整每个音符!

>;sudo apt update>;sudo apt install python3python3-pip python3-numpy portaudio19-dev sox gnplot ffmpeg>;sudo-H python3-m pip install loguru单击mido python-rtmidi Adafruit-Circuit itpython-mcp4725 Terminplotlib aubio。

将USB音频连接到Raspberry PI。然后用1/8英寸立体声电缆将耳机从Monotron连接到录音线输入。

重要提示:请确保更改Monotron设置,使其输出纯音。对每个旋钮使用以下设置(0表示所有左侧,100表示所有右侧):

这将需要大约30秒,因为树莓PI循环通过电压(1-5V),同时记录产生的音频。使用USB音频适配器捕获音频。使用FFT分析捕获的音频以确定基频。然后将绘制这些电压-频率对,并用指数曲线进行拟合。

这条曲线的拟合被保存到树莓PI上,这样当您播放Monotron时,它将能够将MIDI转换为频率,然后将其转换为电压。

现在,键盘将自动触发树莓PI来设置Monotron的电压,保持一致!

演奏Monotron不需要键盘。您可以使用我编写的另一个程序对简单文本文件中的MIDI乐器进行排序:MITI。

首先,确保您有portmidi,并下载MITI的二进制文件(或者您也可以自己构建它):

然后创建新的排序文件。该序列易于编写和理解,并且有完整的文档记录。这里我们将做一个简单的三和弦琶音。

模式a乐器MIDI至Temppo 120乐高95F2 A C F A C FE2 G C E G C ED2 F A C D F A CD2 F A C D F A C。

“MIDI通过”表示我们将通过端口将输出发送到MIDI。现在,在一个终端中运行midi2cv程序:

就这样!。你应该听听音乐。您可以实时编辑song1.miti文件以对序列进行任何更改。

如果你发现任何问题,请随时告诉我。在Instagram(@infinitedigits)或Twitter(@yakczar)上找到我。DMS是开放的。