問題タブ [directmusic]
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.
midi - DirectMusic で単音を再生する
開発中のアプリケーションで、MIDI 再生に DirectMusic を使用しています。DirectMusic を使用して個々の音符を再生できるかどうかを知っている人はいますか? 現在、「曲」全体を表すメモリ内データ構造を MIDI バッファに変換し、DirectMusic を介して再生しています。MIDI バッファを生成し、ロードして再生することなく、個々のノートを再生できるようにしたいと考えています。このようなことは DirectMusic でも可能ですか?
DirectMusic の世界に足を踏み入れるのはこれが初めてなので、その機能についてあまり知られていないことを願っています...
windows - MMEおよびDirectMusicを使用する場合のANSIまたはOEMコードページ?
MMEからMIDIポート名を読み取るとき、名前はANSIコードページを使用してエンコードされたマルチバイト文字列であることに気付きました。これは私のアプリがデフォルトで使用します。DirectMusicドライバーからこれらの名前を受け取る場合、名前はOEMコードページでエンコードされたワイド文字列です。コードページの簡単な復習については、RaymondChenによるこの記事を参照してください。
私のドイツ語システムでは、これは、ANSIコードページであることが判明した現在のコードページを使用すると、MMEから「Audiogerät」を取得し、DirectMusicから「Audiogeröt」を取得することを意味します。後者は間違っています。これは、その姓を代わりにOEMエンコードとして扱うと修正されます。
では、これらの名前をデコードするコードページをどのように知ることができますか?DirectMusicに由来する名前が異なる方法でエンコードされるのはなぜですか?それはUSBドライバーから来ていますか?COMフレームワーク?DirectMusic?MIDIポートの名前を読み取るときに使用するコードページを確実に知るにはどうすればよいですか?
情報:
- 使用するコードページの引数として、およびを使用して変換を実行するためにand関数を使用します
MultiByteToWideChar()
。WideCharToMultiByte()
CP_ACP
CP_OEMCP
midiInGetDeviceCaps()
MMEサブシステムからMIDIポート情報を取得するために使用します...- ...そして(ANSI)コードページ
MIDIINCAPS.szPname
を使用して変換します。CP_ACP
IID_IDirectMusic8::EnumPort()
DirectMusicからポート情報を取得するために使用します...DMUS_PORTCAPS.wszDescription
...そしてコードページを使用して変換しCP_OEMCP
ます。
c++ - DirectMusic を含む
問題は次のとおりです。 を含める<dmusici.h>
と、次のエラーが発生します。
例:
directx - 2 つのチャンネル グループで 2 つの MIDIS を同時に再生する DirectMusic
誰かが 1 つの Performance、1 つの MusicPort で 2 つの midis を読み込んで再生する方法のサンプル コードを提供できますか (midi 1 でチャネル 0-15 を使用し、別のチャネル グループを使用して midi 2 の 0-15 を再生しますか?)セグメントですが、最初の midi が一瞬再生されてから、2 番目の再生のみが再生されます。例が見つかりません。残念ながらうまくいきません。
基本的に私のテストではそうします(いくつかのステップはスキップされますが、デフォルトです)
ポートは Microsoft シンセサイザー
...
...
...
...