问题标签 [sysex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - AKMIDIListener 未收到 SysEx
我在一个类上使用 AudioKit 的 AKMIDIListener 协议来监听 MIDI 消息。这适用于标准消息,例如Note On
,但SysEx
消息无法通过。
SysEx 消息是从外部硬件或测试软件发送的。我已经使用 MIDI 监控应用程序来确保消息被正确发送,但在我的应用程序中它们没有触发receivedMIDISystemCommand
。
接收我丢失的 SysEx 消息是否需要任何其他步骤?
提前感谢任何线索。
swift - Audiokit 似乎只接收前三个 sysex MIDI 消息
我正在尝试使用 audiokit 从 mac 上的应用程序中的硬件合成器接收系统消息。这些合成器消息由 11 个数字组成,例如:
在当前发布的 audiokit (4.5.5) 版本中,这样的消息是在函数中的 AKMIDIListener 类中接收的:receivedMIDISystemCommand(data). 她的“数据”对象收到如下“混乱”消息:[240, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
一些观察 - 似乎如此大量的数字是由 256 个数字的 6 个部分组成的。它们以取自真实消息的三个数字开头,然后是 253 个零。- 大多数部分都是重复的。
有了这一切,我可以重新创建原始消息。当我这样做时,我发现每条消息都被多次接收。而且很多消息似乎都丢失了。
长话短说,我真的很喜欢 Audiokit 有很多原因,但我不能用它来接收 sysex。
swift4 - 使用 audiokit 接收 Sysex 消息
我有一个应用程序,它使用 sysex 将控制器设置发送到硬件合成器。换句话说:这样的系统消息从合成器中选择一个参数,并设置它的值。使用 audiokit,这非常简单。此类消息如下所示: [240, 00, 32, 51, 1, 16, 112, 00, 40, 95, 247] 将参数 40(在参数组 112 中)设置为 95 00, 32, 51, 1 定义合成器型号,其他部件号和通道。
现在我尝试构建相反的东西:合成器将其参数和值发送到应用程序。
我确实在新版本的 audiokit 中收到了这样的 sysex 消息,其中收到了 MIDISystemCommand(_ data: [MIDIByte])功能。通过蓝牙连接 midi 的示例(使用 Yamaha MD-BT01 时):[240, 0, 32, 111, 64, 89, 0, 64, 87, 64, 192, 239, 91, 21, 191, 1, 0, 0, 1, 0, 247] 使用有线 MIDI 转 USB 时会有所不同(Roland UM-ONE)使用我的有线 Roland UM-ONE 我会收到不同的信息。它们看起来像这样: [240, 0, 32, 15, 223, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0,
大多数消息包含 21、17 或 13。很多消息只包含一个数字,即 247 前两条消息包含很多数字,可能大约 30,大部分是零
当我将参数发送到合成器时,参数的值应该在 0 到 127 之间(这是我的应用程序中的整数,在发送之前转换为 midi 字节:midiByte(127))。
但我收到的数字是更高的数字,如上例所示。我想我需要以某种方式转换这些数字,但是如何?我在看什么类型的数字?
有人可以指出我的一些可能性吗?
swift - 来自 AudioKit 的 sysex 接收的 MIDISystemCommand
我对 Swift 很陌生并且正在苦苦挣扎,所以请放轻松。我正在 XCode 10.1 中使用 Swift 4 构建一个 macOS 项目
我使用从 AudioKit 提供的 MIDIUtility 示例项目中获得的以下代码从设备接收 sysex 消息:
我收到的 sysex 与使用 SysEx Librarian 或 MIDI Monitor 接收相同的 sysEx 时得到的非常不同。这两个应用程序都接收 6 个 32,110,110,110,110 和 110 字节的数据包。这是我期望从我的 MIDI 设备中得到的。我的代码得到 6 个 520、1300、20、1538、1294 和 1544 字节的数据包。看起来我想要的数据在这些数据包中,但它被一堆 0 吐出。
在 MIDI Monitor 或 SysEx Librarian 中收到的数据:我的代码收到的一些数据
为什么我的代码会收到这么多额外数据?有没有办法过滤掉不需要的数据,或者我需要弄清楚如何在我的项目中使用其他 AudioKit 的东西?
midi - 我可以使用 csound 的 midiout 操作码发送 sysex 消息吗?如何?
系统独占 MIDI 消息可以是任意长度,csound 的 midiout 操作码可以适应吗?有解决方法吗?
python - 问:Python 问题将 32 位有符号长整数转换为 7 位值数组
我正在努力解决 Python 和 Firmata 的问题,因为它需要将 32 位长转换为 7 位(midi 风格)整数数组。我有 2 个变体,没有工作,看起来这两个函数都发送“位置”的垃圾值。电机启动并无限期地继续旋转,不需要步数。其他不需要此功能的功能就可以了。如何解决这个问题?提前致谢。
从文档:
版本 1
版本 2
ios - 在 Audiokit v5-main 中接收到 sysex 消息时,不会调用 ReceivedMIDISystemCommand()
对于我的 ipadOS 应用程序,我最近从 audiokit v5-develop(从正式 v5 发布之前)切换到 v5-main,这似乎破坏了接收 sysex 消息的能力。至少在 ipadOS 14.6 上。
接收到 sysex 消息时不会调用函数receivedMIDISystemCommand(...),但在调试模式下,我确实看到控制台中出现了很多如下消息:
我认为这意味着 Audiokit 正在接收 sysex,但没有调用receivedMIDISystemCommand(...)。我在文档中找不到任何相关的更改,对这里可能出现的问题有任何想法吗?
谢谢!!