Max For Live Not Patch 不更新 Arduino 显示器上的数据

如何解决Max For Live Not Patch 不更新 Arduino 显示器上的数据

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

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

这是我现在使用的设置:

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

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

出于对 Yehezkel 工作的尊重,我不会附上整个补丁的屏幕截图,但附上了我修改后向 Arduino 发送数据的部分,you can see it here

这是我迄今为止尝试过的:

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

这就是我认为可能存在的问题,但我不知道如何解决它:

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

我知道这是很多信息,但如果有人对我如何使其工作有任何想法,我将不胜感激!

解决方法

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

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

我附上了一张屏幕截图,显示了我所做的更改,以防对其他人有所帮助:

max patch

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?