Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
942
Rating:
(35)
Veröffentlicht:
2016.06.20 12:42
\MQL5\Include\
incmidi.mqh (5.03 KB) ansehen
\MQL5\Experts\
emidi.mq5 (4.68 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Eine Klasse um ein MIDI Gerät zu steuern befindet sich in der Datei IncMIDI.mqh. ein Beispiel für die Verwendung ist in der Datei eMIDI.mq5 enthalten.

Schritte zu Verwendung der CMIDI Klasse

  1. Eine Datei mit der Klasse verbinden:
    #include <IncMIDI.mqh>
  2. Eine Klasse deklarieren:
    CMIDI m;
  3. Musikprogramm mit der SetMusic(string & aMusic[]) Methode transferieren.

  4. Wiedergabe mit der Play(bool aSynch=true) Methode ermöglichen. Wenn aSynch wahr ist, wird das Abspielen im asynchronen Modus des Zyklus ausgeführt, was durch die Sleep() Funktion pausiert wird. Wenn aSynch falsch ist, wird das Abspielen im synchronen Moduus ausgeführt, Sie können das Abspielen aber mit der Stop() Methode beenden. Um in der OnChartEvent() Funktion des Expert Advisors in einem synchronen Modus zu arbeiten, muss die the ChartEvent() Methode aufgerufen werden.

  5. Rufen Sie die Stop()-Methode nach Abschluss der Arbeit auf. Das ist notwendig für das Schließen des MIDI-Gerätes, sonst müssen Sie um es erneut ausführen das Termianl neu starten.

Musik-Programm

Musik-Programm wird im String-Array aufgezeichnet. In einem Array-Element wird eine Liste von Aktionen geschrieben. Aktionen werden durch ein Komma getrennt. Zuerst wird ein Befehl, dann ein Gleichheitszeichen und zuletzt ein Sollwert geschrieben. Die folgenden Befehle stehen zur Verfügung:

  • Tick - Zeit in Millisekunden während der alle Befehle eines Arrayelementes ausgeführt werden. Sie definiert das Tempo mit der das Spiel durchgeführt wird.
  • Volume - Lautstärke von 0 bis 100.
  • VolumeL - Lautstärke des linken Kanals von 0 bis 100.
  • VolumeR - Lautstärke des rechten Kanals von 0 bis 100.
  • Instrument - Auswahl des Musikinsttrumentes von 0 bis 127.
  • NoteDN - Drücken sie eine Taste. Die Zahl 60 entspricht der "do" Note der Hauptoktave, 61 - dem "C sharp", 62 - dem "re", etc.
  • NoteUP - Taste loslassen. Für einige Instrumente können Sie nicht Release verwenden, der Klang schwingt von alleine aus, und für einige Tasten es ist obligatorisch zu drücken.

Es ist möglich Akkorde zu wählen, zum Beispiel "NoteDN=57, NoteDN=60, NoteDN=64". Es ist möglich parallel mehrere Instrumente zu spielen, zum Beispiel "Instrument=1, NoteDN=60, Instrument=123, NoteDN=60". Die Lautstärke von verschiedenen Instrumenten kann nicht geändert werden, alle werden mit der selben Lautstärke gespielt, aber sie können die Lautstärke von verschiedenen Abschnitten des Stücke verändern, zum Beispiel:

"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"

Die Methoden der CMIDI Klasse 

  • void ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) - aufgerufen von der Funktion wenn im asynchronen Modus gespielt wird.
  • void Play(bool aSynch=true) - Abspielen einschalten. Wenn aSynch falsch ist, muss von der OnChartEvent Funktion die ChartEvent() Methode aufgerufen werden.  
  • void Stop() - stop play in an asynchronous play. Abspielen beenden und Gerät schließen.
  • void SetMusic(string & aMusic[]) - Senden eines Arrays mit einem Musik-Programm.
  • void SetEventID(ushort aID) - setzen einer Zahl eines benutzerdefinierten Events. Das ist notwendig, wenn im asynchronen Modus gespielt wird. Es ist nicht nötig es aufzurufen, Standardwert ist 1.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1555

Unterschied zwischen zwei gleitenden Durchschnitten Unterschied zwischen zwei gleitenden Durchschnitten

Expert Advisor basierend auf dem Unterschied von zwei gleitenden Durchschnitten.

MD5 Hash MD5 Hash

Berechnung des 32 stelligen String MD5-Hashwertes für das übermittelte Byte Array

IncGUI_BitPicA IncGUI_BitPicA

Eine aktualisierte Version der CBitPic Klasse mit der Möglichkeit die Transparenz der Zeichnung zu steuern

Narrowest Range Signal Narrowest Range Signal

Der narrowest range Indikator definiert den Augenblick, in dem der Markt in einem "komprimierten" zustand ist, der einen bevorstehenden Ausbruch in die eine oder andere Richtung voraussagt