问题标签 [coremidi]
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.
c++ - 从 Objective-C++ 转换为 Objective-C
我在 .mm 中有此代码
void MyMIDINotifyProc(const MIDINotification *message, void *refCon);
这条线
MIDIClientCreate((CFStringRef)@"MidiMonitor MIDI Client", MyMIDINotifyProc, self, &client);
然后从 CoreMIDI 调用 MyMIDINotifyProc。
在不将文件扩展名更改为 .m 的情况下,我将其转换为 Obj-C 签名:
可以编译,但是我不知道如何处理该MIDIClientCreate
行。照原样,它产生"MyMIDINotifyProc" was not declared in this scope
. 它应该是类型void *
......并且文档100%清楚它是A refCon passed back to notifyRefCon
(链接)。
这个问题可以单独在 Obj-C 中解决吗?我想我必须将 C++ 的东西翻译成 C,在这种情况下我就别管它了。
ipad - 如何在 iPad 上以编程方式生成 MIDI 事件
我想测试一个 MIDI 应用程序并想在不连接物理键盘的情况下生成一些 MIDI 事件。有什么提示吗?
cocoa - MIDIPacketList,numPackets 总是 1
我正在 iPad 上处理 Midi,一切正常,我可以记录所有进入的内容,一切都按预期工作。但是,在尝试接收长消息(即 Sysex)时,我只能得到一个最大 256 字节的数据包,之后什么也没有。
使用 Apple 提供的代码:
packetList->numPackets
始终为 1。在我收到第一条消息后,在发送“新”sysex 消息之前不会调用其他回调方法。我不认为我的 MIDI 处理方法会被完整的 packetList 调用(可能是任何大小)。我原以为我会以流的形式接收数据。这个对吗?
在挖掘之后,我唯一能找到的是: http: //lists.apple.com/archives/coreaudio-api/2010/May/msg00189.html,其中提到了完全相同的事情,但没有太大帮助。我知道我可能需要实现缓冲,但我什至看不到前 256 个字节之后的任何内容,所以我不知道从哪里开始。
ipad - CoreMidi _MIDINetworkNotificationContactsDidChange 符号未找到
在使用 CoreMIDI 的 iPad 应用程序崩溃后,我收到以下错误(*表示应用程序名称空白):
当应用程序启动时,我使用监听 MIDI 网络会话
这似乎是导致崩溃的原因。这是我打电话后
这种看起来像CoreMIDI 库没有包含在构建中。问题是,它作为必需的框架包含在构建中。(并且部署目标设置为 4.2)。我可以在我的 iPad 上很好地运行构建,并且已经在其他用户的 iPad 上进行了广泛的测试,也没有任何问题。此外,这是对现有应用程序的更新,该应用程序已经进行了多次更新,没有任何问题。
我只是仔细检查了我的部署构建,框架肯定包含在内,我刚刚将该构建安装到我的 iPad 上(使用来自商店的不同配置文件),它也可以正常工作。
会发生什么?可能是 Xcode 只是为我发送给 Apple 的那个做了一个糟糕的构建,还是我遗漏了一些明显的东西?我可以将MIDINetworkNotificationSessionDidChange
通知符号更改为文字字符串 ( @"MIDINetworkNotificationSessionDidChange"
) 以同时修复问题吗?
谢谢你的帮助!
c++ - 支持 iOS CoreMIDI 的跨平台 MIDI 库
我正在寻找一个跨平台的 C 或 C++ MIDI 库。只是发送/接收 MIDI 音符事件、控制代码和时间,而不是产生声音。
主要目标是 iOS/iPad,所以它必须支持 iOS 上的 CoreMIDI,我知道这是相当新的。我可以直接使用 CoreMidi,但如果有一些轻量级的东西,那么使用便携的东西会很好,这样我就可以轻松地将项目移植到 PC 上。
如果做不到这一点,请提及如果有一个好的、轻量级的开源的,那么添加 CoreMIDI 支持可能比我自己的支持更容易。
澄清:我正在寻找具有良好 iOS 支持的类似于MidiIO或PortMIDI的东西。
xamarin.ios - MonoTouch 中的 CoreMIDI 框架支持怎么样?
根据 Mono 文档库,目前 MonoTouch(3.2.5)似乎不支持 CoreMIDI 框架(在 iOS 4.2 中可用,我正在使用的版本)。
MonoTouch 4.0 是否支持 CoreMIDI?
提前致谢!
c++ - 命令行上的 CoreMIDI
我已经开始开发基于 RtMidi 的命令行应用程序,它可以发送任意 MIDI 数据。我发现,虽然当我从控制台运行该工具时可以与 MIDI 设备通信,但如果我从另一台机器连接到我的机器,我根本无法使用任何 MIDI 功能。具体来说,RtMidi 调用MIDIClientCreate()
返回错误代码 -10839,在我能找到的任何地方都没有记录。我试过复制工作进程的环境变量,但这也不起作用。
coremidi - CoreMIDI 内存泄漏?
我将一个 CoreMIDI iOS 应用程序放在一起,我正在测试 MIDINetSessionBrowser 和 MIDINetworkSession。我已经研究了一段时间了,CoreMIDI 似乎存在内存泄漏。
此外,我刚刚尝试了 Pete Goodliffe 的 CoreMIDI Objective-c 演示,当我通过分析器运行时它也会产生内存泄漏!
因此,我认为我错过某些东西的可能性较小:)
有没有其他人分析过 CoreMIDI 并发现了同样的情况?注意:我正在使用最新的 XCode 和最新的 iOS,并通过在 iPod touch 4 设备上运行进行分析。
python - 以编程方式配置 Mac OS X MIDI
我正在编写一个将 OSC 转换为 MIDI 的程序,允许启用 OSC 的应用程序(如我 iPhone 上的 touchOSC)控制启用 MIDI 的应用程序(Sibelius、Ableton Live 等)。
我正在使用 Python 创建一个 OSC 服务器并将 OSC 转换为 MIDI。为了将 MIDI 发送到相关应用程序,我将 MIDI 输出到 Apple IAC 驱动程序,然后在相关程序中将其作为输入启用。
有谁知道以编程方式以编程方式配置 Mac MIDI 设备的方法?特别是,我需要启用默认禁用的 IAC 驱动程序。
使用 FileMon,我观察到 Audio Midi Setup.app 在启用/禁用 IAC 驱动程序时会修改此文件:
~/Preferences/ByHost/com.apple.MIDI.0017f2cxxxxx.plist
数字 0017f2cxxxxx 是我的系统 IOPlatformUUID。这是一个简单的 XML 属性列表,但我对直接写入它持谨慎态度。即使我这样做了,大概我需要诱使midi服务器进程以某种方式重新读取它?
最后,我越来越意识到使用 IAC 驱动程序是一个非常糟糕的解决方案 - 首先它只适用于 Mac!理想情况下,我会编写一个回送 MIDI 驱动程序,我的所有问题都会得到解决......
iphone - 使用 Xcode / Cocoa 在 iPhone 中播放 midi 文件或 midi 音调
我需要在 iPhone 中播放 midi 文件或 midi 音调。
我已经测试了 MidiMonitor。我认为我需要在 iPhone 上创建一个目标点来接收 midi,但我不知道该怎么做。
你能帮助我吗?示例源代码将很有用。