無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
884
評価:
(35)
パブリッシュ済み:
2016.09.29 11:09
\MQL5\Include\ \MQL5\Experts\
emidi.mq5 (4.68 KB) ビュー
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

MIDIデバイスを制御するクラスはIncMIDI.mqhファイルに含まれています。その使用例はeMIDI.mq5ファイルにあります。

CMIDIクラス使用の順番

  1. ファイルをクラスと接続する:
    #include <IncMIDI.mqh>
  2. クラスを宣言する:
    CMIDI m;
  3. SetMusic(string & aMusic[]) メソッドを使って音楽プログラムを転送する。

  4. Play(bool aSynch=true) メソッドを使って再生を可能にする。aSynchがtrueの場合、Sleep() を使って一時停止してサイクルで同期モードで再生される。 aSynchがfalseの場合、再生は同期モードでStop()メソッドを使った停止も可能。同期モードで動作には、エキスパートアドバイザーのOnChartEvent() 関数でChartEvent() メソッドが呼び出されなければなりません。

  5. 作業が完了したらStop()メソッドを呼び出します。再実行のためには、MIDIデバイスをオフにすることが必要で、そうでなければ端末を再起動する必要があります。

音楽プログラム

音楽プログラムは文字列配列に記録されます。アクションのリストが1つの配列要素に書かれます。アクションはコンマで書かれます。最初のコマンドでは、等号とコマンド値が書き込まれます。次のコマンドの使用が可能です。

  • Tick - 1つの配列要素のすべてのコマンドが実行されるミリ秒単位の時間。 これは、再生が実行されるテンポを定義します。
  • Volume - 0~100の音量レベル
  • VolumeL - 0~100の左チャネルの音量レベル
  • VolumeR - 0~100の右チャネルの音量レベル
  • Instrument - 0~127の楽器の選択
  • NoteDN - キーの押下。60はメインオクターブのド、61はド#、62はレなど
  • NoteUP - キーを放す。楽器によってはキーを放すことはできず音は自分でフェードしますが、キーのいくつかの押下は義務付けられています。

例えば「NoteDN=57, NoteDN=60, NoteDN=64」のように和音を弾くのも可能です。「Instrument=1, NoteDN=60, Instrument=123, NoteDN=60」のように複数の楽器を同時に弾くこともできます。複数の楽器はすべてが同じ音量で再生され変更することはできませんが、例えば、演奏のさまざまな部分の音量の変更はできます。

"Tick=1500, Instrument=123, Volume=100, NoteDN=60",
"VolumeL=0, VolumeR=100, NoteDN=64",
"VolumeL=100, VolumeR=0, NoteDN=57",
"Volume=50, NoteDN=67, NoneDN=57",
"Volume=25, NoteDN=64, NoneDN=67"

CMIDIクラスメソッド 

  • void ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) - 非同期モードでの再生の際に関数から呼び出されます。
  • void Play(bool aSynch=true) - 再生を可能にします。aSynchがfalseの場合、OnChartEvent関数からChartEvent()メソッドが呼ばれるべきです。  
  • void Stop() - 非同期再生を停止します。再生を停止して、デバイスをオフにします。
  • void SetMusic(string & aMusic[]) - 音楽プログラムの配列を送信します。
  • void SetEventID(ushort aID) - カスタムイベントの数を設定します。これは非同期モードで再生する場合に必要です。呼び出しは必要なく、デフォルト値は1です。

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1555

2つの移動平均の差 2つの移動平均の差

2つの移動平均値の差に基づいたエキスパートアドバイザー

MD5ハッシュ MD5ハッシュ

送信されたバイト配列からの32桁文字列のMD5ハッシュの計算

IncGUI_BitPicA IncGUI_BitPicA

透明の描画を制御する能力を持つCBitPicクラスの更新版

Narrowest Range Signal Narrowest Range Signal

市場が、この方向または反対方向での将来のブレイクスルーを暗示する「圧縮」状態にあるときに、最も狭い範囲の指標はモーメントを定義します。