1

我最近一直在使用 Arduino 进行一个项目,我基本上是在尝试将一个小型显示器连接到 Arduino,以使用 Ableton Live 中的 MIDI 映射旋钮的名称进行更新。

例如,假设我将旋钮映射到显示应显示为“A-Reverb”的轨道上的混响发送。这在今天有效,但仅在我第一次打开 Ableton 项目并第一次映射旋钮时有效。当我选择一个新选项时它不会更新。

这是我现在使用的设置:

  • Arduino - 带旋转编码器和 OLED 显示屏
  • 无毛 MIDI - 用于将 Arduino 的串行连接转换为 Live 可以读取的 MIDI CC# 消息。
  • Ableton Live 11 w/ Max For Live 8 - 这是补丁实际运行的地方。

对于 Max Patch,我使用的是Yehezkel Raz's One 的一个版本,我购买并随后对其进行了修改。我提到这个的原因是这个补丁已经完成了名称更新部分,所以理论上我应该能够通过串行方式将数据发送到 Arduino。

出于对 Yehezkel 工作的尊重,我不会附上整个补丁的截图,而是附上我修改后用于向 Arduino 发送数据的部分,你可以在这里看到

这是我到目前为止所尝试的:

  1. 验证无毛 MIDI、Arduino 和 Max Patch 的波特率相同
  2. 仅在 Ableton 启动后才尝试启动 Hairless MIDI
  3. 尝试在不打开 Arduino IDE 的情况下打开 Arduino 电源,以免出现串行冲突。

以下是我认为可能是问题,但我不知道如何解决它:

  • 我的 Arduino 代码中的部分逻辑依赖于Serial.available()真实性,以便将数据发送到屏幕。我在想也许串行连接仅在映射旋钮时才可用。

我知道这是很多信息,但如果有人对我如何能够让它发挥作用有任何想法,我将不胜感激!

4

1 回答 1

0

好的,我自己想通了;基本上发生的事情是我的代码期望换行以刷新显示器上的输出。我发现我可以通过发送值“10”通过串行连接发送换行符,这基本上会在字符串发送到 Arduino 时终止该字符串。

每当更新旋钮值时,它都会触发一个按钮,将值“10”发送回 Arduino。

我附上了一张截图,显示了我所做的更改,以防万一这有助于其他人:

最大补丁

于 2021-04-28T16:37:27.767 回答