0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

制作MIDI琶音合成器的教程分享

科技观察员 来源:Peter Nyboer 作者:Peter Nyboer 2022-08-30 17:12 次阅读

通过这个项目将 CHIP 变成一个随时可用的简单合成器,能够创建各种各样的声音。用 MIDI 键盘甚至 OSC 控制它!

作为一名长期的电子音乐爱好者和爱好者,我能够将任何技术视为声音的来源。由于芯片具有内置音频、电池供电功能和方便的 USB 插孔,我知道它可以作为一款出色的小型便携式交互式噪音盒,并且发出各种出色的声音。

实现 CHIP-MAS 的第一步是找到一个用于编程合成器的好平台。有几种不同的路径可供选择:C++ 和音频框架,如asoundlib 或Jamoma 、python 和Pyo ,一种专业语言,如Faust ,或者,如果你想用样本做一些简单的事情,Pygame或Pysound 。我选择了Pure Data (又名 Pd),这是一个开源、可扩展的图形编程环境。Pure Data 旨在生成和处理声音,是快速原型化和创建音乐制作新方式的好方法。

一旦我决定了一个编程环境,就该开发合成器了。我使用了 Pure Data 示例 ( C08.analog.sequencer.pd ) 中一个更有趣但 CPU 使用率较低的示例,因为它有一个有趣的波表合成器和一个音序器。我做了很多工作以使合成器具有更多的声音多样性,并集成了一个 MIDI 键盘来创建琶音序列。

概述

基本步骤是

启动芯片

安装纯数据

获取 Git (repo)

设置合成器以在启动时启动

安装纯数据

第一步是安装 Pure Data 程序。Pure Data 有“extended”和“vanilla”版本。如您所料,“extended”提供了更多功能,但是,我不需要这些附加功能,因此我安装了“vanilla”。从 CHIP 上的命令行安装很容易:

sudo apt-get update

s

人类是非常敏感的倾听者。音乐编程的挑战之一是从“执行动作”(按下钢琴键盘上的一个键)到“听到声音”的时间尽可能短。一般这被称为“延迟”,对于电子音乐制作人和程序员来说,这是一个巨大的妥协话题

Pure Data 最好为操作系统提供高优先级,并且可以通过一些配置来完成。在 nano 编辑器中编辑配置文档:

sudo nano /etc/security/limits.conf

添加行的位置:

@audio - rtprio 99

@audio - memlock unlimited

到文件的末尾。现在您可以重新启动 CHIP 以确保它生效

sudo reboot

为了让这些东西真正起作用,Pure Data 需要从带有“实时”标志的 CHIP 终端启动,如下所示:

pd -rt

如果您想制作自己的合成器或修改我制作的合成器,您可能还想在您的“日常”计算机上安装 Pure Data应用程序。CHIP 是一台很棒的计算机,但如果你有一台速度更快、显示器分辨率更高的计算机,你可能会发现使用 Pure Data 编程更容易,因为它往往会占用大量屏幕空间。

获取软件合成器

转到您的 Documents 文件夹,然后提取 git repo:

cd ~/Documents

git clone https://github.com/nyboer/CHIPMAS.git

一些合成器细节

如果您对合成器的工作原理感兴趣,这里有几件事值得一提。在制作合成器时,我希望能够创造出各种各样的声音:打击乐、噪音、明亮、简单、干净、激进等等。但是,我不想占用过多量的 CPU。所以我选择了一个波表合成器设计,它可以扫描不同大小的表,从一个波中产生几个复杂的波形。之后我创建了一些可以混合的表,产生了很多可能的音色。添加同步低通滤波器、幅度和表扫描包络,我们就有了一个非常通用的合成器。

pYYBAGMN086AX17HAAIAM5nrHKU062.png

所有参数都可以通过Open Sound Control (OSC) 进行控制,这也意味着这款微型合成器是可联网的。但是针对于这个比较简单的案例,我准备围绕一个便宜的 Akai Synth Station 25 键盘设计了它。我通过这种方式,可以插入 USB MIDI 控制器,启动 CHIP,并拥有一个复杂的合成器声音。

您会注意到本文下方的跳转 git 存储库还有一个名为“graintable.touchosc”的文件,它是适用于 AndroidiOS的Touch OSC应用程序的文件。它使你可以控制 CHIP-MAS 中的多个参数,以及使用手机运动传感器控制声音的选项。

连接控制器

poYBAGMN09SATvTeAAIg2kGlR_4367.png

我用 MIDI 键盘设计了这个作品。您只需按下一个和弦,音符就会按照您按下琴键的顺序播放。使用调制和弯音轮更改滤波器截止频率和波表之间的交叉渐变。如果您使用 Akai Synth Station 25 键盘,您可以使用八个按钮中的六个来更改预设(顶部的按钮行)或更改速度(向上或向下,以 4 BPM 为增量)。

在启动 CHIP 之前,您需要连接键盘,以便程序可以找到键盘。

发出声音

只需按下键盘上的键,移动弯音轮和调制轮,能够发出一些奇怪的声音。

最终成品

pYYBAGMN09mAVhvjAAMboJG_Gc0016.png

最后,我想把它变成一个完整的项目成果,可以通过一系列步骤使用:插上键盘,打开芯片,插上耳机,然后退出。

不过这还挺容易做到的,必要的服务文件包含在 git 存储库中。该服务脚本只是告诉 Linux 在特定服务可用后打开我们的合成器补丁。您应该仔细检查该行:systemd

ExecStart=/usr/bin/pd -nogui -rt /home/chip/Documents/CHIPMAS/CHIPMASsynth.pd

确保 pd 和 CHIP-MASsynth.pd 的绝对路径是正确的。

将您的目录更改为您拥有 git 存储库的任何位置,然后将存储库中的服务文件复制到正确的位置:

sudo cp chipmassynth.service /etc/systemd/system/chipmassynth.service

现在我们需要让我们systemd知道这项新服务:

sudo systemctl daemon-reload

sudo systemctl enable chipmassynth.service

您可以使用以下命令测试服务:

sudo systemctl start chipmassynth

systemctl status chipmassynth

sudo systemctl stop chipmassynth

Pure Data 补丁在“pd init”子补丁中有一些特殊信息,确保它可以抓取第一个 MIDI 设备,关闭音频输入,并打开第一个音频输入(CHIP 的内置音频)以保证合成芯片启动后即可播放。

让 CHIP 独一无二

CHIP 通过 `avahi` 启用了“零配置网络”,但我想充分利用这一点。我周围有几个 CHIP,所以如果它们有唯一的名称会更好。

简而言之,您需要编辑几个文件并将“chip”更改为“synth”(或您想要的任何名称)

sudo nano /etc/hostname

sudo nano /etc/hosts

另外,我在 Mac 上,所以我喜欢添加苹果服务:

sudo nano /etc/avahi/services/afpd.service

并添加以下内容:

重启avah:

sudo /etc/init.d/avahi-daemon restart

免密码登录

能够使用 `ssh` 和 `scp` 来控制和复制文件到 CHIP 也很不错,而无需每次都输入密码。

在您的计算机上生成 SSH 密钥对

ssh-keygen -t rsa

并将其保存到

~/.ssh/id_rsa.pub

将其复制到 CHIP:

scp ~/.ssh/id_rsa.pub chip@:~/

在 CHIP 上,您需要安装rsync,为 ssh 设置它,然后将公钥复制到它的授权密钥文件中:

cd ~/

sudo apt-get install rsync

mkdir .ssh

cat id_rsa.pub 》》 .ssh/authorized_keys

rm id_rsa.pub

chmod go-w ~

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

现在,在您的主机上,可以轻松移动所有 PureData 补丁,而无需登录:

rsync -avzu CHIPMAS/ chip@boer04.local:~/Documents/CHIPMAS

可能的扩展

我很高兴在 CHIP 上以如此便宜的价格完成了一个简单的合成器即使我开始构建一些非常简单的东西,实际上这个合成器中正在进行相当多的信号计算,因为它同时扫描 4 个波表并混合它们以及噪声信号,并用包络对它们进行调制。

即使它没有经过优化,它仍然只需要大约 25% 的 CHIP 的 cpu。我认为合成器可以被简化和修复,以关闭那些不被使用的东西。它还可以使用一些过采样来改善音质,并且可以删除 CPU 密集度更高但听起来更好的 Moog 模拟“bob~”滤波器来代替 Pure Data 的“vcf~”。

最后,需要利用 CHIP 的内置网络。CHIP 非常便宜,在单独的 CHIP 上运行 6 到 8 个这样的合成器并通过网络同步和控制并不是不合理的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 合成器
    +关注

    关注

    0

    文章

    247

    浏览量

    25135
  • Chip
    +关注

    关注

    1

    文章

    57

    浏览量

    26307
  • MIDI
    +关注

    关注

    0

    文章

    75

    浏览量

    15443
收藏 人收藏

    评论

    相关推荐

    用DDS制作数控信号合成器

    用DDS制作数控信号合成器
    发表于 11-04 21:52

    合成器

    1、使用反馈有一种设备与振荡器有关,.称为合成器。在一些情况下,从普通振荡器出来的正弦波不够完美。射频工程师发现如果振荡器与其它电路结合起来,利用反馈,可以使正弦波更完美,这就适合成器的功能:一个振
    发表于 12-06 14:06

    校正基于STM32的MIDI合成器的音符频率

    我最近在研究EasyMXPro for STM32 dev,正在尝试使用DAC创建一个简单的单声道波表合成器,可播放的通道。但是,我有一个MIDI键盘,我有以下问题:我有一个循环遍历波表值(以MCU
    发表于 09-27 14:39

    基于DDS的频率合成器设计介绍

    直接数字频率合成(DDS)在过去十年受到了频率合成器设计工程师极大的欢迎,它被认为是一种具有低相位噪声和优良杂散性能的灵活的频率源,基于DDS的频率合成器在许多应用中能比基于锁相环(PLL)频率
    发表于 07-08 07:26

    如何利用FPGA设计PLL频率合成器

    电子技术应用频率合成技术是现代通信的重要组成部分,它是将一个高稳定度和高准确度的基准频率经过四则运算,产生同样稳定度和准确度的任意频率。频率合成器是电子系统的心脏,是影响电子系统性能的关键因素之一
    发表于 07-30 07:55

    什么是频率合成器

      频率合成器是利用一个或多个基准频率,通过各种技术途径产生一系列的离散频率信号的设备。这些频率的稳定度和精度均和基准频率相同,而且频率的转换时间很短,这样才会有效率和实用价值。  频率合成器的实现
    发表于 08-19 19:18

    什么是PLL频率合成器?

    问:什么是PLL频率合成器?
    发表于 09-17 19:00

    锁相环频率合成器是什么原理?

    频率合成器的主要性能指标锁相环频率合成器原理锁相环频率合成器捕捉过程的分析与仿真
    发表于 04-22 06:27

    频率合成器,频率合成器原理及作用是什么?

    频率合成器,频率合成器原理及作用是什么? 所谓的频率合成器,就是以一个精确度、稳定度极好的石英晶体振荡器作为基准频率,并利用加、减
    发表于 03-23 11:04 1.5w次阅读

    单环锁相频率合成器,单环锁相频率合成器是什么意思

    单环锁相频率合成器,单环锁相频率合成器是什么意思 频率合成的历史 频率合成器被人们喻为众多电子系统的“心脏”。现代战争是
    发表于 03-23 11:36 913次阅读

    模拟单音电子管合成器CHRT

    CHRT 合成器是一个真正的模拟单音电子管合成器,主要是针对 MIDI 吹管控制器比如 Yamaha WX5 或 Akai EWI 的声音模块而设计的,不过固件变化版本也可以让它作为键盘演奏者的声音模块。
    的头像 发表于 04-16 14:23 4993次阅读

    FuniFi Midistik是用于合成器的紧凑型可编程MIDI控制器

    电子发烧友网站提供《FuniFi Midistik是用于合成器的紧凑型可编程MIDI控制器.zip》资料免费下载
    发表于 08-16 11:10 0次下载
    FuniFi Midistik是用于<b class='flag-5'>合成器</b>的紧凑型可编程<b class='flag-5'>MIDI</b>控制器

    用Arduino Nano构建一个SN76489 USB MIDI合成器

    电子发烧友网站提供《用Arduino Nano构建一个SN76489 USB MIDI合成器.zip》资料免费下载
    发表于 11-10 14:24 0次下载
    用Arduino Nano构建一个SN76489 USB <b class='flag-5'>MIDI</b><b class='flag-5'>合成器</b>

    用于整桶FB3100合成器的大型MIDI控制器

    电子发烧友网站提供《用于整桶FB3100合成器的大型MIDI控制器.zip》资料免费下载
    发表于 11-16 11:46 0次下载
    用于整桶FB3100<b class='flag-5'>合成器</b>的大型<b class='flag-5'>MIDI</b>控制器

    如何制作一个音频合成器

    合成器电路是能够使用电子设备产生音频信号的电路。现代合成器现在非常流行,因为它提供了制作优质音乐的便利性。您可能已经看到一些类似的合成器电路,例如电子钢琴,
    的头像 发表于 05-13 11:29 1370次阅读
    如何<b class='flag-5'>制作</b>一个音频<b class='flag-5'>合成器</b>?