MidiIn-Funktion?

Hallo!
Ich hab schon gegoogelt, jedoch nichts gefunden.
Ich wollte fragen, ob es eine MidiIn-Procedure oder etwas in diese Richtung gibt.

Ich möchte mit dem BCF2000 folgendes Skript realisieren:
Wenn ich den Fader1 hochschiebe(Vorheriger Wert = 0, neuer Wert > 0) -> Player1 starten
Wenn ich den Fader1 ganz runter schiebe(vorheriger Wert > 0, neuer Wert = 0) -> Player1 stoppen
Mit Fade1 zusätzlich die Lautstärke von Player1 regulieren -> Einfach über die Midi-Konfiguration

Würde mich über eine Antwort freuen.
Mit freundlichen Grüßen,
chrisswat

Unter Fernsteuerung kannst du das doch machen?

Ja die Lautstärke aber mit dem Abspielen stell ich mir folgendes Problem vor:
Also das Mischpult sendet doch ein MidiSignal, sobald ein Wert verändert wird oder?
Ich will, dass Player1 startet, wenn der Fader > 0 ist und vorheriger Wert 0 ist ( > 0 und nicht 100, da ich vielleicht leise beginnen will).
Wenn ich das jetzt einfach so bei der Fernsteuerung einstellen würde(ohne es mir dem vorherigen wert zu verlgiechen), würde doch folgendes passieren:
-> Das Lied ist zu Ende, Player1 geht aus und nimmt das nächste Lied in Fokus.
-> Wenn ich jetzt den Fader von Player1 von 100 auf 0 geben will, wird ein Signal mit Wert 99 an die Fernsteuerung gesendet (99 > 0) und Player1 wird ungewollt gestartet.

Liege ich da richtig? :’(

Könnte man umgehen, in dem man per MidiOut (script) den Fader auf “0” stellt. Sind doch motorisiert oder?
Es wird ein Event ausgelöst wenn der Player stoppt, damit kannst Du das Script triggern.

Such mal hier im Forum nach Deinen Behringer Modulen, die haben einige Leute im Einsatz und es gibt auch schon Threads darüber.

Midi-Befehle kann man wahlweise auch direkt per Notification Script empfangen und verarbeiten. Schau mal ins Template, da ist die Prozedur definiert.

Ja die Fader sind motorisiert jedoch weis ich noch nicht, ob diese auch einen Midi-Befehl senden, wenn sie durch den Motor bewegt werden, dann würde es nichts bringen.

Ich schätze Torben meint die Procedur “OnExecuteCommand” oder?
Ist ne gute Idee, werde es jetzt so versuchen:
->Die Lautstärke ändere ich mit der normalen Fernsteuerung
->Mit “OnExecuteCommand” bekomm ich im Skript die geänderte Lautstärke und setzte diesen intern als Vergleichswert für den Stop

Nein, ich meine OnMidiMessage.

Da kriegst du die “Rohdaten” geliefert, die du dann selbst auswerten und weiterverarbeiten kannst.

Ich habe selbst so ein BCF 2000 und damit mal herumexperimentiert. Klappte problemlos. (Das Script habe ich allerdings gerade nicht hier.)

Das ist ja genial!
Kannst du bitte die Funktionsparameter hinschreiben, finde die Procedure nirgends.
Ps: Ich brauche die Funktion “LeftStr” und “RightStr”, mairlist kennt diese jedoch beim Laden des Skriptes nicht, hat jemand eine Idee?

Hm, also bei mir ist sie im Notification Script Template verzeichnet:

procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
begin
end;

LeftStr und RightStr kennt Delphi nicht. Wenn du damit den substring von links bzw. rechts meinst, musst du stattdessen mit copy und length arbeiten.

Vielen Dank! :smiley: