Alternative text

Ok, ist schade das es “noch” nicht intergriert ist.
Wenn das mit scripting auch zu lösen ist dan klapt es ja auch.
Leider ist scripting nur fur ict experten, und die meisten von uns sind das leider nicht.

Dan wurde ich die ICT experten vragen um hierzu einer script zu vervügung zu stellen , wenn möglich.

Ist in Arbeit.  

1 Like

Probiere folgendes: Setze den Typ der Betten auf Bett und richte dieses Hintergrundskript ein:

const
  ALTARTIST = 'Alternative Artist'; //  <-- Set alternate Artist here
  ALTTITLE =  'Alternative Title';  //  <-- Set alternate Title here

procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer;
  OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
  if NewState = psPlaying then
  begin
    if (Item.GetItemType = pitUnknown) OR
      (Item.GetItemType = pitBed) then
    begin
      Item.SetTitle(ALTTITLE);
      Item.SetArtist(ALTARTIST);
    end;
  end;
end;

begin
end.

In Zeile 2 und 3 kannst Du die gewünschten Texte eintragen, bitte auf die 'Anführungen' achten.

Oh, forgot about the cartwall! Standby, please.

So, hier kommt das Skript komplett:

const
  ALTARTIST = 'Alternative Artist'; //  <-- Set alternate Artist here
  ALTTITLE =  'Alternative Title';  //  <-- Set alternate Title here
  
var
  InitArtist, InitTitle: string;

procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer;
  OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
  if NewState = psPlaying then
  begin
    if (Item.GetItemType = pitUnknown) OR
      (Item.GetItemType = pitBed) then
    begin
      Item.SetTitle(ALTTITLE);
      Item.SetArtist(ALTARTIST);
    end;
  end;
end;

procedure OnCartwallPlayerStateChange(PlayerIndex: integer;
  OldState: TPlayerState; NewState: TPlayerState;
  Item: IAudioCartwallItem; PlaylistItem: IPlaylistItem;
  OnAirMode: TCartwallOnAirMode);
begin
  if NewState = psPlaying then
  begin
    if (PlaylistItem.GetItemType = pitUnknown) OR
      (PlaylistItem.GetItemType = pitBed) then
    begin
      InitArtist := PlaylistItem.GetArtist;
      InitTitle  := PlaylistItem.GetTitle;
      PlaylistItem.SetTitle(ALTTITLE);
      PlaylistItem.SetArtist(ALTARTIST);
    end;
  end
  else if (OldState = psPlaying) AND (NewState = psStopped) then
  begin
    if (PlaylistItem.GetItemType = pitUnknown) OR
      (PlaylistItem.GetItemType = pitBed) then
    begin
      PlaylistItem.SetTitle(InitTitle);
      PlaylistItem.SetArtist(InitArtist);
    end;
  end;
end;


begin
end.

Einschränkung: Aus der Cartwall immer nur einen solchen Titel auf einmal starten, sonst kommt die Beschriftung durcheinander.

1 Like

Puristisch betrachtet ist “Moderation” ja auch bloß ein Audio-Element - ob nun VT, fertiges Interview, Beitrag, Musikwunsch… welchen Element-Typ du dem Audio verpasst, ob nun Nachrichten, Wetter, Beitrag oder eben Moderation, spielt für das Element selbst eigentlich keine Rolle.

Von daher: Ja, man kann ein Moderations-Element ausspielen, wenn man es so formuliert. Die Frage ist halt nur, was sich hinter diesem Element-Typ “versteckt”.

Und damit zu einer Korrektur meiner vorherigen Aussage und dem ganz großen…
ABER: Mit einem Platzhalter geht das nicht.

Lösung für Live-Moderationen und einem neuen Metadatum bzw. Log-Eintrag:
:bulb: Trick 17, mit dem Element “Stille”.

Ich habe der Playlist also für die Anzeige der Moderation (oder was auch immer angezeigt werden soll, z.B. der Stationsname) ein einsekündiges Stille-Element beigefügt.

Durch die Verlinkung wird erreicht, dass unmittelbar nach EOF der gewünschte Text angezeigt wird, bis der nächste Titel gestartet wird.

Et voilà:

Veracocha - Carte Blanche [Original Version]
$Radioname - Am Mikrofon: Uli
Jan Hammer - Forever Tonight [Extended CD Mix]
$Radioname - Am Mikrofon: Uli


Update:
Du kannst den Element-Typ auch auf “Moderation” ändern. Entscheidend ist eigentlich nur, dass dem gewünschten Element-Typ eine mindestens einsekündige Stille zugrunde liegt, um das Metadatum bzw. den Log-Eintrag auszulösen.

Ich habe vor einiger Zeit schon mal bei @Torben angeregt (ping!), dass man Elementen eine Wiedergabeoption “Mit vorigem Element verknüpft” verpassen könne, vergleichbar mit “Mit dem nächsten Element verknüpft”. Das würde solchen Elementen (aber auch jeglicher Verpackung) einen Vorteil in der Datenbank verschaffen.
Das soll allerdings nicht ganz so einfach sein, soweit mein Kenntnisstand.

Schlaflose Grüße und fröhliches Testen!


Beinahe vergessen: Mit der Cartwall klappt das natürlich auch.
Da könnte man sich also verschiedene “Zwischentexte”, je nach Bedarf, bereitlegen.

1 Like

Ja guten morgen :wink:
Ich hab den script getested auf ver 6.1.11 build 3964, da leuft es nicht, oder ich mach was falsch :frowning:
Also hab den script copiert, und als .mls weggeschrieben, und starte dies als action beim start von ein BED.
Oder lauft er nur in ver 7 ?
Testen mach am liebsten nicht in die productions umgebung.

Dann bräuchte ich bitte die komplette Fehlermeldung aus dem SystemLog. Es kann aber tatsächlich sein, daß es nur in v7 (oder v7.1?) läuft. Torben hatte mal was im Logging geändert.

Vielleicht mag es jemand anders mal ausprobieren.

Hallo Jan,

ich habe das Thema von “Allgemein” nach “mAirList 7.x” verschoben, weil du ein “verified customer” bist und ich dementsprechend in deine Lizenznummer geschaut habe.
Aus diesem Grund ging ich davon aus, dass du Version 7 nutzt.

@Tondose hat sich wahrscheinlich am Forenbereich “mairList 7.x” orientiert. Diese Einordnung geht auf meine Kappe. Es war nicht absehbar, dass sich das in Richtung Script entwickelt, zumal ich in Beitrag #16 noch eine andere Lösung (für weitere, interessierte Leser) präsentiert habe.

Kein Grund zur Rechtfertigung. Ich weiß nur nicht mehr genau, ob Torben die Änderung schon in die v6 gepflegt hatte oder erst in v7. Kannst ja mal recherchieren im Forum. Ich habe es auf die schnelle nicht gefunden, weiß aber, daß es irgendwo stehen muß.

Guter Ansatz! Aber bis wir das herausgefunden haben seit v6.1.11…

Vorschlag @JandeVries: Du erzeugst den Fehler und sendest uns direkt aus der Situation heraus einen bug report (Toolbar, mAirList-Icon rechts, dropdown, Bugreport erzeugen).
Dann kann Torben nachschauen, was den Fehler auslöst und ob wir vielleicht was übersehen haben bei der Programmierung von v7.

Du könntest uns damit sehr helfen.
Vielen Dank! :slightly_smiling_face:

Zuviel Aufwand. Es ist bekannt, daß vor Torbens Änderung das Logging Priorität hatte vor allem anderen, Titeländerungen z. B. sich also nicht darauf auswirkten. Torben hatte das dann auf meinen Rat hin glattgezogen und das Logging als letzte Verrichtung in den Ablauf gestellt. Jetzt finde mal heraus, bitte, wann genau das war, und wir können uns vielleicht alle weiteren Tests sparen. In v7 funktioniert das Skript jedenfalls.

ah , das wurde es erklahren.
Dan teste ich das dan einmal auf einer der playout’s.
Der “Uli” lösung lauft hier eben nicht weil die Beds ausgespielt werden uber die cart’s.

Nah ja, den script ist jetzt da, evt im programm integrieren und actievieren mittels ein haken :wink:

Danke euch !

nb verbleibt noch mein wunsch fur remote voice tracking uber https, wie playout1 das hat, wurde ein super möchgligkeit sein !

Viel radio Spass :wink:

1 Like

… und welche Version hat das Playout, wenn nicht Version 6? :thinking:

Verzeihung, jetzt bin ich ein wenig irritiert.

Playout 7.2.0 build 5415

Aber keine bange, den ver 6 hat auch ein licentz, auf anvrage kriegst du die in ein PB.

Lauft Super auf den playout !!
Danke !

1 Like

Hmm den alternative text ist jetzt auch im playlist . .
So war das aber nicht gedacht, es solte ja nur den text ändern in den log file, fur rds/dls/stream, und nicht in den playlist.
Wen da jetzt ein gast komt, und nimt einen wunschtitel mit, dan wird diesen track im playlist kopiert ( steht nicht im DB ) , dan sieht man titel/artist, aber beim abspiel-start ist das jetzt weg und hast nur den alternatieven text titel/artist . Also in den playlist sol sich dan nichts andern.
Wurdet ihr bitte noch einmal die muhe nemen und euch den script anschauen ob das mochlich ist ?

Dann müßte man das über Runtime Data lösen. Da ich aber aus gewissen Gründen hier nicht tätig werden kann (@uli.mairlist weiß Bescheid), verweise ich das Problem an @Torben.

1 Like

Ich lehne mich mal etwas aus dem Fenster und kündige hiermit an, dass die gewünschte Funktion in Version 7.3 kommen wird.

2 Likes

YESSSSS !! TNX. Wurde super sein :wink: