MIDI接口功能硬件电路MIDI-IN--MIDI-OUT--MIDI-THRU

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Arduino Micro或Leonardo的简单USB转MIDI适配器,可以过滤MIDI数据(可选)。 硬件部件: Arduino Micro × 1个 6n137光耦合器× 1个 1N4148 –通用快速开关 × 1个 电容100 nF × 1个 电阻220欧姆 × 3 电阻10k欧姆 × 1个 通孔电阻,470欧姆 × 1个 LED(通用) × 1个 LED支架× 1个 DIN音频/视频连接器,5触点 × 2个 一块通用PCB× 1个 PCB安装座× 1个 软件应用程序和在线服务: Arduino IDE 我在网上搜索了如何使用Arduino构建USB转MIDI适配器的方法,但不幸的是,我只找到了效果不佳的解决方案(不良的MIDI软件或硬件实现)。因此,我决定自己构建一个并将结果放在hackster.io上。 我使用带有面包板的Arduino Leonardo构建了第一个原型。一切正常后,我改用Arduino Micro构建了焊接版本。两者均基于ATmega32u4,后者具有本地USB,可将其作为USB MIDI接口呈现给您所连接的PC。 MIDI使用光耦合器和一些电阻器来创建完全隔离的电流环路。该电路是非常标准的电路,我使用了6n137,因为它的速度很快且广泛可用。如电路图所示,只有MIDI OUT连接器的引脚2接地,这是MIDI的标准配置。 最终结果的一些照片: 在软件方面,我决定使用出色的Control Surface库。与某些其他库或手动编码的实现不同,Control Surface可以正确处理稍微复杂的MIDI协议的所有不同方面。 Control Surface还允许您添加各种附加功能。例如,您可以添加一些电位计,踏板或连接到模拟/数字输入的按钮,以添加额外的MIDI控件。只需在Control Surface网站上查看更多信息,它就很容易做到! 您还可以注册回调,以便可以在从MIDI传递到USB或其他方向之前处理数据。就我而言,我使用它来修复Roland D50合成器的MIDI实施损坏。每次按下最后一个键时,D50都会发送“关闭所有音符”命令。现代实现(例如我使用的大多数VST乐器)都将其解释为所有运行中音符延音的立即硬性中断。通过过滤掉“所有音符”,D50可以再次用作主键盘。 我在Control Surface库中遇到的一个问题是,它不能很好地处理大型SysEx软件包。尝试使用D50编辑器/图书管理员时,这会导致错误,因为它发送了相当大的SysEx软件包。我在源代码的注释标题中添加了有关如何解决此问题的说明。编写该库的人表示,一旦2.x版本问世,此问题将得到解决。 我提供了基本的USB到MIDI接口的源代码,以及带有“所有音符已关闭”过滤功能的版本。 当然,您也可以使用其他库或编写自己的MIDI实现,该硬件应与任何具有USB MIDI和串行MIDI支持的MIDI库一起使用。
硬件部件: Arduino Micro × 1个 无焊面包板一半尺寸 × 1个 MPS20N0040D-D压力传感器× 1个 LM358-N运算放大器× 1个 电阻1M欧姆 × 2 连接线套件,22 AWG × 1个 婴儿吸鼻器× 1个 5mm水族馆航空管× 1个 三通气管接头× 1个 软件应用程序和在线服务: Arduino IDE 手动工具和制造机: 剥线钳和切割器,32-20 AWG /0.05-0.5mm²单芯和绞线 在这个项目中,我们将构建一个简单的USB MIDI即插即用呼吸控制器。它的设计使用了容易找到的廉价组件,因此总成本仍然可以承受,并且大大低于商业上的等价物。这是仅使用气压传感器的基本版本,但计划将来对其进行升级以包括咬合和点头/倾斜传感器。 该项目假定您具有一些非常基础的电子学和Arduino知识,但由于不涉及焊接,因此即使是初学者也可以构建它。当然,更高级的用户可以将所有东西焊接在永久原型板上。由于Internet上有出色的教程,因此我不讨论IDE /库的安装以及上载代码的说明。 过采样用于平滑传感器的输入,效果非常好。您还可以根据自己的喜好调整范围,甚至拨入自定义曲线来调整控制器的行为。 由于传感器也可以测量负压,因此当您吸入空气而不是吹气时,会有第二个控制器消息流输出。两种类型的消息都可以由用户设置。例如,您可以将打击设置为弯音向上,而将其设置为弯音向下。默认情况下,两者均设置为控制器编号 建立步骤 1.如图/示意图所示,将Arduino插入面包板。 完整电路: 2.将传感器和运算放大器插入各自的位置,并根据侧面的小凹痕注意方向。 3.将电阻器的支脚切成适当的长度后,将其插入。 4.切/剥实心电缆,并将其放置在各自的位置。为了使这一点更易于理解,我将红色用于5V,将黑色用于接地,将黄色用于信号,但是您当然可以使用所有可用的东西。 5.如图所示,连接烟嘴,管道,三通接头和吸气器。您将需要切割一段“排气管”。 吹口,管道,连接器和排气口已连接: 6.按下三向连接器,使其适合传感器。它应该保持原状。 连接器安装到传感器: 7.安装Arduino IDE,并从“工具”->“管理库”安装所需的两个库(过采样和USB-MIDI)。用USB电缆将Arduino连接到计算机。上传附件代码。 8.应该设置好了,Arduino现在应该在您的DAW /音乐软件中显示为MIDI设备。启用它,并将其与键盘一起路由到支持呼吸控制器的插件。 调试模式下输出值的示例串行绘图仪图(蓝色:黄色,红色:空中绘制): 收割者DAW中的CC消息: 这种设计的一个物理缺点是唾液将不可避免地在管中流动并会引起明显的气流波动。三通连接器用于通过将唾液引导至“排气”管来解决此问题。为了最大程度地减少管道中的残留唾液,请通过调节管道长度来确保从咬嘴到三通接头之间存在连续的坡度。如果管子悬挂在三通接头的水平线以下,唾液将被卡在其下部,从而引起波动。吸气器的婴儿侧部分(包括其过滤器)连接到排气口,以最大程度地减少滴水和噪音,并增加流向传感器的空气流量。 在代码中,您可以根据自己的喜好调整值,包括自定义曲线。注释描述了如何执行此操作。如果发现很难达到127点,则减小最大范围,或者如果太容易,则增大它。无论何时更改值,都将需要重新上传代码。 将Arduino启动后的前几个读数取平均值,以校准其余位置。连接/重置设备时,请勿吹入管子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值