問題タブ [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.

0 投票する
1 に答える
545 参照

c++ - Objective-C++からObjective-Cに変換する

私はこのコードを.mmに持っています

void MyMIDINotifyProc(const MIDINotification *message, void *refCon);

これはこの行に一致します

MIDIClientCreate((CFStringRef)@"MidiMonitor MIDI Client", MyMIDINotifyProc, self, &client);

次に、MyMIDINotifyProcがCoreMIDIから呼び出されます。

ファイル拡張子を.mに変更せずに、Obj-C署名に変換しました。

これはコンパイルされますが、その行をどうするかわかりませんMIDIClientCreate。そのまま、を生成し"MyMIDINotifyProc" was not declared in this scopeます。それはタイプであると思われますvoid *...そしてドキュメントはそれがA refCon passed back to notifyRefConリンク)であることを100%明確にしています。

この問題はObj-Cだけで解決できますか?C ++のものをCに変換する必要があると思います。その場合は、そのままにしておきます。

0 投票する
3 に答える
904 参照

ipad - iPadでMIDIイベントをプログラムで生成するにはどうすればよいですか

MIDI アプリをテストして、物理キーボードを接続せずにいくつかの MIDI イベントを生成したいと考えています。ヒントはありますか?

0 投票する
3 に答える
1769 参照

cocoa - MIDIPacketList、numPackets は常に 1

私は iPad で Midi を処理していますが、すべて正常に動作しており、入ってくるものすべてをログに記録でき、すべて期待どおりに動作します。しかし、長いメッセージ (つまり Sysex) を受信しようとすると、最大 256 バイトのパケットを 1 つしか取得できず、その後は何も取得できません。

Apple が提供するコードを使用する:

packetList->numPacketsは常に 1 です。最初のメッセージを取得した後は、「新しい」sysex メッセージが送信されるまで、他のコールバック メソッドは呼び出されません。私の MIDI 処理メソッドが完全な packetList (潜在的に任意のサイズ) で呼び出されるとは思いません。データをストリームとして受け取ると思っていたでしょう。これは正しいです?

私が見つけた唯一のものはこれでした: http://lists.apple.com/archives/coreaudio-api/2010/May/msg00189.html、まったく同じことについて言及していますが、あまり役に立ちませんでした。おそらくバッファリングを実装する必要があることは理解していますが、最初の 256 バイト以降は何も表示されないため、どこから始めればよいかわかりません。

0 投票する
2 に答える
524 参照

ipad - CoreMidi _MIDINetworkNotificationContactsDidChange シンボルが見つかりません

CoreMIDI を使用する iPad アプリでクラッシュした後、次のエラーが表示されます ( *はアプリ名を空白にするためのものです)。

アプリが起動したら、次を使用して MIDI ネットワーク セッションをリッスンします。

これがクラッシュの原因のようです。これは私が電話した後です

このの CoreMIDI ライブラリはビルドに含まれていないようです。問題は、必要なフレームワークとしてビルドに含まれていることです。(そして、展開ターゲットは 4.2 に設定されています)。私は自分の iPad でビルドを正常に実行でき、他のユーザーの iPad でも問題なく広範囲にテストしてきました。また、これは、すでにいくつかの更新が行われた既存のアプリの更新であり、問​​題はありません。

展開ビルドを再確認したところ、フレームワークが確実に含まれており、そのビルドを (ストアとは異なるプロビジョニング プロファイルを使用して) iPad にインストールしたところ、問題なく動作しました。

何が起こっている可能性がありますか?Apple に送ったものに対して Xcode が不適切なビルドを行った可能性がありますか、それとも明らかな何かが欠けているのでしょうか? MIDINetworkNotificationSessionDidChangeとりあえず問題を解決するために、通知記号をリテラル文字列 ( )に変更でき@"MIDINetworkNotificationSessionDidChange"ますか?

助けてくれてありがとう!

0 投票する
2 に答える
4364 参照

c++ - iOS CoreMIDI対応クロスプラットフォームMIDIライブラリ

クロスプラットフォームの C または C++ MIDI ライブラリを探しています。MIDI ノート イベント、コントロール コード、およびタイミングを送受信するためだけであり、サウンドを生成するためではありません。

主なターゲットは iOS/iPad なので、iOS で CoreMIDI をサポートする必要がありますが、これはかなり最近のことです。CoreMidi を直接使用することもできますが、軽量なものがあれば、プロジェクトを PC に簡単に移植できるようにポータブルなものを使用するとよいでしょう。

それができない場合は、オープン ソースの優れた軽量なものがあれば、自分で作成するよりも CoreMIDI サポートを追加する方が簡単かもしれないと述べてください。

明確化: iOS を適切にサポートするMidiIOまたはPortMIDIに似たものを探しています。

0 投票する
1 に答える
225 参照

xamarin.ios - MonoTouch での CoreMIDI フレームワークのサポートはどうですか?

Mono ドキュメント ライブラリによると、現在 MonoTouch (3.2.5) は CoreMIDI フレームワーク (私が取り組んでいるバージョンの iOS 4.2 で利用可能) をサポートしていないようです。

CoreMIDI は MonoTouch 4.0 でサポートされますか?

前もって感謝します!

0 投票する
1 に答える
585 参照

c++ - コマンドラインでのCoreMIDI

任意のMIDIデータを送信できるRtMidiベースのコマンドラインアプリの開発を始めました。コンソールからツールを実行するとMIDIデバイスと通信できますが、別のマシンから自分のマシンにSSHで接続すると、MIDI機能をまったく動作させることができないことがわかりました。具体的には、RtMidiは、MIDIClientCreate()エラーコード-10839を返す呼び出しを行います。これは、私が見つけた場所には文書化されていません。作業プロセスの環境変数を複製しようとしましたが、それも機能しませんでした。

0 投票する
1 に答える
260 参照

coremidi - CoreMIDI メモリ リーク?

私は MIDINetSessionBrowser と MIDINetworkSession をテストしている CoreMIDI iOS アプリをまとめています。しばらくこれを調べていましたが、CoreMIDI にメモリ リークがあるようです。

また、Pete Goodliffe の CoreMIDI Objective-C デモを試したところ、プロファイラを実行するとメモリ リークが発生しました。

したがって、何かを見逃している可能性は低いと思います:)

他の誰かが CoreMIDI のプロファイリングを行い、同じことを見つけましたか? 注: 私は最新の XCode と最新の iOS を使用しており、iPod touch 4 デバイスで実行してプロファイリングを行っています。

0 投票する
3 に答える
2115 参照

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 を使用して、IAC ドライバーを有効/無効にするときに Audio Midi Setup.app がこのファイルを変更することを確認しました。

~/Preferences/ByHost/com.apple.MIDI.0017f2cxxxxx.plist

番号 0017f2cxxxxx は私のシステム IOPlatformUUID です。これは単純な XML プロパティ リストですが、直接書き込むのは慎重です。仮にそうしたとしても、どうにかして midi サーバー プロセスをだまして再読み込みさせる必要があるのではないでしょうか?

最後に、IAC ドライバーを使用すること自体が非常に厄介なソリューションであることにますます気づき始めています。最初は、Mac でしか機能しません。理想的には、ループバック MIDI ドライバーを作成すれば、すべての問題が解決されるはずです...

0 投票する
2 に答える
3982 参照

iphone - Xcode / Cocoa を使用して iPhone で MIDI ファイルまたは MIDI トーンを再生する

iPhone で MIDI ファイルまたは MIDI トーンを再生する必要があります。

MidiMonitorをテストしました。midiを受信するには、iPhoneに目的地を作成する必要があると思いますが、その方法がわかりません。

手伝って頂けますか?ソースコードの例は役に立ちます。