Fernsteuerung Ein und Aus schalten?

Momentan beschäftige ich mich mit der Midi Einrichtung vom Rode Rodecaster.
Nun ist es ja ein leichtes, die Fader die als Midi Controller fungieren, in die Fernsteuerung so ein zu binden, das bspw. ein Faderstart problemlos möglich ist.

Nun ist aber ein Faderstart nicht immer gewünscht und ich habe mich gefragt, ob man diese Funktion (auch per Tastendruck also Fernsteuerung) aktivieren und ggf. deaktivieren kann.

Genauer gesagt geht es um dieses Fenster

Item (0) und (1) sind Definitionen zu einer Preh-Tastatur.
Item (2) MIDI ist die Hauptkonfiguration des Rodecasters in Sachen Steuerung allgemein. Also Faderstellung, Buttons für Cartwall, PFL usw.
Item (3) und (4) sind ebenfalls Midi Steuerungen vom Rodecaster, die jedoch nur das Verhalten des Faderstarts selbst definieren. siehe Bild:

Frage:

Ist es möglich, per Script oder Command genau diese zwei Items (3) und (4) gezielt zu aktivieren und auch zu deaktivieren?
Sodass nach zugewiesenem Tastendruck die Fernsteuerungsübersicht so aussehen könnte?
image

Hierfür würde ich gerne bestimmte Tasten vom Rode verwenden die jeweils über dem Kanalzug sich befinden.

Die Krönung wäre dann noch eine Anzeige innerhalb mAirList ob Faderstart aktuell aktiv oder inaktiv ist.
Vielen Dank

Gerade ein Script getestet das ich aus Encoderverbinungen noch kenne:

begin
  Remotes.GetConnections.GetItem(3).SetEnabled(true);
end.

Jedoch kennt mAirList den Identifier Remotes leider nicht. Auch Remote selbst ist nicht vorhanden.
2023-02-01_17h12_36

Gibt es einen Identifier für Fernsteuerungen?

Tja …

Wenn ich wüßte, wie die Midi-Fernsteuerung intern heißt, dann ginge das womöglich. Ist aber nirgendwo dokumentiert. Jedenfalls funktioniert das hier für meinen Velleman:

var
  MidiOn: boolean;
  
procedure OnLoad;
begin
  MidiOn :=  true;
  K8055Remote(0).SetEnabled(true);
end;

procedure OnExecuteCommand(Command:string);
begin
  if Command = 'FADERSTART' then
  begin
    if MidiOn then begin
      MidiOn := false;
      K8055Remote(0).SetEnabled(false);
    end
    else
    begin
      MidiOn := true;
      K8055Remote(0).SetEnabled(true);
    end;
  end;
end;

begin
end.

1 Like

Dabei gehe ich davon aus das dein Vellemann an erster Stelle in der Liste steht für (0) im Code?

Nee, das ist das erste Velleman-Gerät. Wie gesagt, wegen fehlender Dokumentation und ohne Midi-Geräte kann ich’s nicht weiter erforschen. Bei Dir müßte es vermutlich so aussehen wie

<Midi-Gerät>(1).SetEnabled(false);
<Midi-Gerät>(2).SetEnabled(false);

usw.

Ah ok.
Naja dann müssen wir schauen ob @Torben da uns was machen kann.

Am liebsten wäre es mir natürlich, wenn er solch eine Steuerung zu Aktivierung in die Tabelle der Auswahlliste der zu steuernden Funktionen mit aufnehmen könnte.

Es geht nicht darum, daß @Torben „was macht“, sondern er die benötigten Vokabeln benennt.

1 Like

Im allgemeinen:

Remote(0).SetEnabled(true); // erste Fernsteuerung
Remote(1).SetEnabled(true); // zweite Fernsteuerung
// ...

Wobei sich die Nummerierung auf die Gesamtliste der Fernsteuerungen bezieht, unabhängig vom Typ.

Nur bestimmte Fernsteuerungen, die eine Script-Sonderfunktionalität bieten, haben eine spezielle Funktion wie DHDRemote, K8055NRemote, etc. - bei MIDI ist das nicht der Fall.

3 Likes

Danke, Torben. Ich habe viel rumprobiert, aber auf diese einfache Lösung bin ich nicht gekommen. Toms Skript müßte dann etwa lauten:

var
  MidiOn: boolean;
  
procedure OnLoad; 
begin               // Falls bei Programmstart Faderstart ausgeschaltet sein soll, …
  MidiOn :=  true;  // … hier ggf. jeweils "false" bzw. "OFF" einsetzen
  Remote(3).SetEnabled(true); 
  Remote(4).SetEnabled(true);
  ExecuteCommand('BUTTON.FADERSTART ON');
end;

procedure OnExecuteCommand(Command:string);
begin
  if Command = 'FADERSTART' then
  begin
    if MidiOn then
    begin
      MidiOn := false;
      Remote(3).SetEnabled(false); 
      Remote(4).SetEnabled(false);
    end
    else
    begin
      MidiOn := true;
      Remote(3).SetEnabled(true); 
      Remote(4).SetEnabled(true);
    end;
  end;
end;

begin
end.

(Ungetestetes Schreibtischprodukt.)

Voraussetzung: Ein erweiterter Button mit Fernsteuerungs-ID BUTTON.FADERSTART (oder beliebig anders, bitte ggf. im Skript ändern), der beim Ein- und Ausschalten jeweils den Befehl FADERSTART von sich gibt.

Alternativ kann der Befehl FADERSTART natürlich auch mittels einer Tastatur gegeben werden.

1 Like

Hey vielen dank euch beiden. :partying_face:
Ich werde das die Tage testen

1 Like

Ich hab es gerade mal versucht und bekomme den gleichen Fehler:

image
Ich habe das Script als Hintergrundscript angelegt.

@Torben?    

Ich hätte schwören können, die Funktion sei vordefiniert.

Ersatzweise oben im Script selbst implementieren:

function Remote(Index: integer): IRemote;
begin
   Result := Instance.GetRemoteController.GetItem(Index);
end;
1 Like

Also ich hab die Anpassung von Torben ins Script gemacht. Hoffe an der richtigen stelle.

var
  MidiOn: boolean;

function Remote(Index: integer): IRemote;
begin
   Result := Instance.GetRemoteController.GetItem(Index);
end;
  
procedure OnLoad; 
begin               // Falls bei Programmstart Faderstart ausgeschaltet sein soll, …
  MidiOn :=  false;  // … hier ggf. jeweils "false" bzw. "OFF" einsetzen
  Remote(3).SetEnabled(true); 
  Remote(4).SetEnabled(true);
  ExecuteCommand('BUTTON.FADERSTART ON');
end;

procedure OnExecuteCommand(Command:string);
begin
  if Command = 'FADERSTART' then
  begin
    if MidiOn then
    begin
      MidiOn := false;
      Remote(3).SetEnabled(false); 
      Remote(4).SetEnabled(false);
    end
    else
    begin
      MidiOn := true;
      Remote(3).SetEnabled(true); 
      Remote(4).SetEnabled(true);
    end;
  end;
end;

begin
end.

Die Fehlermeldung ist zumindest weg. :+1:

Beim Programstart soll Faderstart deaktiviert sein.
image
Der erweiterte Button ist drin:
image

Schalte ich jetzt jedoch den Faderstart per Button ( der noch nicht mit einem Midi Controll verbunden ist sondern aktuell noch per Maus aktiviert oder deaktiviert wird) ein, passiert leider gar nichts.

Nach Systemstart:


Nach Aktivieren per Maus:

Hab ich beim Button was falsch gemacht?
image
image

Wird denn der Befehl FADERSTART beim Betätigen des Buttons in der Fernsteuerungskonsole sichtbar?

Wirft das Script eine Fehlermeldung im System-Log aus?

Und…ähm… Das Script ist auch aktiviert? :stuck_out_tongue:

:rofl: Oh mann… Danke
Ja es war tatsächlich nicht aktiviert. :person_facepalming:

Danach kam auch alles in der Konsole an:
image

Ein anderes Problem hatte ich noch:
Ich hatte im Scipt die falschen Status Befehle geändert bzw nur den MidiOn Befehl geändert.
Jetzt sieht es so aus:

Der Button funktioniert nun: :white_check_mark: :partying_face:
AUS:


AN:

Nun geht es daran diese für den jeweiligen einzelnen Player zu trennen aber das sollte ich hin bekommen. Und diese dann natürlich als Fernsteuerung der Midi Note vom Rodecaster zuweisen.

PS: Sorry für die unübersichtlichen Screenshots

1 Like

Na sieh mal an, wie gut ich dich schon kenne :stuck_out_tongue: :rofl:

Wie kann das sein? Beim Hinzufügen neuer Skripte sind sie doch standardmäßig aktiviert? :thinking:

Ja manchmal sind es die einfachen Dinge :stuck_out_tongue:
Die Buttons hab ich zum Test jetzt ein wenig angepasst und die Scripte von einander getrennt für die jeweiligen Player.

Da ich es gestern schon getestet hatte, ohne Torbens Zusatz, hab ich das Script erst mal wegen der Fehlermeldung deaktiviert. Und heute beim Neuanlauf wieder vergessen zu aktivieren.


Nun stehe ich nur noch vor dem Problem das mir der aktuelle Status durch den Button selbst nicht signalisiert wird: Ergo soll ja auch der Button bei der Fernsteuerung selbst umschalten.

Den Befehl FADERSTART hab ich jeweils für die PLAYER A und B ergänzt im Script und auch für den Button selbst.

Hier ein Beispiel für Player A:

// Faderstart Scpript copyright by Tondose (mAirList Community Forum https://community.mairlist.com/t/fernsteuerung-ein-und-aus-schalten/16752
// 06.02.2023 nach wunsch von TomJumbo83 mittels erweiterten Button bestimmte Midi Funktionen AN und AUS zu schalten.
// Erweiterung auf Rode Rodecaster möglich als Fernsteuerung Command: PLAYERSTARTA der Midi Note zuweisen.

var
  MidiOn: boolean;
 
function Remote(Index: integer): IRemote;
begin
   Result := Instance.GetRemoteController.GetItem(Index);
end;
  
procedure OnLoad; 
begin               					// Falls bei Programmstart Faderstart ausgeschaltet sein soll, …
  MidiOn :=  false;  
  Remote(0).SetEnabled(false); 			//für Programmstart AUS auf "false" ändern
  ExecuteCommand('BUTTON.FADERSTARTA OFF'); 	//für Programmstart AUS auf "OFF" ändern 
end;

procedure OnExecuteCommand(Command:string);
begin
  if Command = 'FADERSTARTA' then			// Command für FADERSTARTA (Player A)
  begin
    if MidiOn then
    begin
      MidiOn := false;
      Remote(0).SetEnabled(false); 			// Die Nummern in der Klammer definieren die Position der Fernsteuerungen in mAirList beginnend mit (0),(1),(2)..usw.
     end
    else
    begin
      MidiOn := true;
      Remote(0).SetEnabled(true);			// Die Nummern in der Klammer definieren die Position der Fernsteuerungen in mAirList beginnend mit (0),(1),(2)..usw.
     end;
  end;
end;

begin
end.