Drops automatisch auf die Ramp plazieren

Hi @Tondose
gibt es eine Möglichkeit, den Start Next komplett aus dem Script zu nehmen? Oder man einen anderen CuePunkt definieren kann?

Sodass das Script den “DropEnde” beim FadeOut Punkt oder einem X beliebigen Cue Punkt anerkennt?

Ich dachte zuerst, es sei eine Einstellungssache in mAirList:

Dem war nicht so. Dann habe ich mich durchs Script gelesen, die passende Zeile aber nicht gefunden, haha.

Im Endeffekt hätte ich gerne, dass der Drop bis zum FadeOut oder (was noch besser wäre) an einem eigenem Cue Punkt spielt: “Mixout” als Beispiel

Muß ich nachsehen. Ich vergesse immer, was ich so zusammenskripte, wenn die Dinger mal laufen.

Hallo Florian,

was ich im Skript gefunden habe ist folgendes:

v1.1
[*] Kein "StartNext"-Marker mehr vorausgesetzt
    "StartNext"-Marker no more mandatory

Insofern bin ich ein wenig verwirrt. Ich sehe im Moment auch kaum Chancen, Deine Wünsche/Anforderungen zu realisieren. Wohl auch, und das gebe ich zu, weil ich von deren Sinn nicht so recht überzugt bin.

Hallo Grüß dich,
Dein Automatisch Drop Setzen Ad On ist ja einfach der Wahnsinn.
Ich hätte da eine frage. Wäre es vielleicht möglich wenn du mir das Tool ein wenig abänderst?
Folgende Idee:
Ich würde über einen One Drive Datenserver eine bestimmte gennante mp3 Datei einfügen z.b 01.mp3. Wenn diese datei sich im Onedrive Verzeichnis welches mit Windows Verknüpft ist sich Aktuallisert also sprich eine neues Anderungsdatum erhält oder sich die Länge des Tracks ändert soll er diese Automatisch in die Sendesofware Mairlist Einplanen. Dieser soll er sofort spielen in dem er das Aktuelle Musikstück runter Fadet und nach beendung der Datei 01.mp3 wieder hoch Fadet. Zu gebrauchen wäre dies für sofort Verkehrsmeldung wie z.b ein Falschfahrer. Sobald ich die Meldung erhalte kann ich dies einsprechen und in den Onedrive Ordner Packen und er schmeißt es Automatisch in die Playlist.
Wäre sowas möglich?

Aber das hat doch weder etwas mit Drops noch mit Ramp"s zu tun.
Oder hab ich etwas an deinen Ausführungen falsch verstanden?

Abgesehen davon:

Wenn du etwas vergleichen möchtest, benötigst du mindestens 2 Werte.
In deinem Fall also Datum und Uhrzeit der Datei auf Onedrive.

Aber mit was möchtest du das vergleichen?
Wo ist hier der 2. Wert zum Vergleichen?

1 Like

Lieber @Miguel,

vielen Dank fürs Lob. Für Deinen Vorschlag sehe ich allerdings dunkel, denn alleine das automatische Errkennen einer Änderung auf Dateiebene ist alles andere als trivial. Ich sehe auch keinerlei Sinn darin: Wenn eine Falschfahrermeldung erscheint, warum willst Du den Umweg über (automatisches oder halbautomatisches) Voicetracking nehmen anstatt das Mikrofon aufzumachen und die dringende (!) Meldung live zu sprechen? (So machen wir es jedenfalls im Funkhaus.)

Grüße, TSD

2 Likes

Hi Tondose,
frohes neues Jahr zunächst :slight_smile:

Ich bräuchte mal kurz deinen Tipp: Ich habe das Script angepasst auf Moderation (pitVoice) und RAMPCAPTION = ‘++ MOD ueber Ramp ++’ und es parallel aktiviert. Funktioniert super, einzig macht es keinen Sinn, die MOD zu löschen, ich würde sie einfach “vor” das zu rampende Element setzen lassen wollen.
Das könnte man ja im Bereich “procedure DeleteDrop” machen. Also so ein CurrentPlaylist.Insert(CurrentPlaylist.IndexOf(DropItem) beispielsweise zusätzlich zum "CurrentPlaylist.Delete(CurrentPlaylist.IndexOf(DropItem)); ".

Aber der Syntax klappt noch nicht. Oder gäbe es einen “Verschieben” Befehl, um das Element einfach “eine Posititon nach oben” zu schieben ?

Da kämst du ins Spiel, würde mich freuen. Besten Dank schonmal für’s kümmern!

Viele Grüße Dirk

Gude Dirk,
es hat eine Weile gedauert, bis ich Deine Frage verstanden habe. Glaube ich zumindest. Zunächst sei mir die lästige Frage gestattet:
Wozu? Wenn die Moderation gesendet ist, dann kann sie auch weg (wie ein Drop auch). Geloggt wird zum Zeitpunkt der Ausstrahlung, da bleibt also alles für die Nachwelt erhalten.

Du sprichst von einem „Syntaxfehler“. Sicher? Oder läuft das Skript durch und erzeugt nur Unsinn im Ergebnis? Fehlermeldungen wären da hilfreich.

Ja, es lassen sich Elemente verschieben, indem man deren Indizes neu setzt. Den genauen Wortlaut habe ich gerade nicht zur Hand, möglicherweise was mit SetIndex. Wichtig ist, wenn Du schon am Basteln bist, ersetze bitte alle BeginRead und EndRead durch BeginUpdate und EndUpdate. Das hatte ich erst nach Fertigstellung erfahren, ist besser so.

Die passende Methode ist Move(OldIndex: integer, NewIndex: integer).

1 Like

Hi Tondose,

besten Dank für die Rückmeldung.

Zu deiner Frage: Nein, die Moderation ist ja noch nicht gesendet, sondern soll ja eigentlich In die Ramp (steht also nach der Musik). Ist sie aber zu lang, oder der Titel hat keine Ramp, würde sie gelöscht. Wenn ich also alles so einstelle und per Zufall klappt das bei 90% der Titel nicht, dann kommt ja quasi ein Non-Stop Programm raus. Die Moderation soll aber in jedem Fall gesendet werden. Wenn nicht IN der Ramp, dann eben davor (wie sonst auch) und das passt ja mit der Auswertung des Scripts.

Vielleicht noch der Hinweis, daß es sich um vorproduzierte Moderationen handelt, die nach Filtervorgabe (in der Vorlage) eingestellt werden vom System. Passend zur Musik, zu Monatsdaten oder Kalenderwoche etc.pp.

Was den Syntaxfehler angeht, damit war gemeint, daß ich an der Umsetzung im Script wegen dem Syntax noch gescheitert bin. Ich probiere mich da grad aus.

Aber, wenn ich das sagen darf, habe ich dein Script (auch das Auto-Drop) noch etwas gepimt, da es z.B. die CUE IN Zeit nicht berücksichtigt. Ich hatte den kuriosen Fall eines Musikstücks, dass zwar 30 Sekunden Ramp, aber den CUE IN bei 18 Sekunden hatte. Das sollte ja eigentlich passen. Hat es aber nicht, der Drop wurde an den Anfang gesetzt und (das noch größere Problem) die Stille-Zeit war um den CUE IN zu kurz.
Dazu habe ich den CUE IN in die Berechnung integriert:

… else if DropItem.GetEffectivePlaybackDuration >= RampCuePosition - STARTFADEDOWN - RampItem.GetCuePosition(ptCueIn) then

und dann auch in die Längenberechnung einbezogen

si.SetDuration(RampDuration - RampCuePosition + RampItem.GetCuePosition(ptCueIn));

Um alles perfekt mit den Blenden anpassen zu können, ist auch der STARTFADEUP eingeflossen. Damit kann man jetzt auch die Zeit zwischen Drop Ende und Ramp Ende voreinstellen. Ein paar ms müssen schon sein.

Seither ist das so klasse und universell geworden, das ist schon fast unglaublich. Dafür nochmal vielen Dank!

Ich werde deinen Tipp mal versuchen, ob ich das mit meinen rudimentären Kenntnissen schon auf die Kette bekomme. In Version 3.02 bei mir steht übrigens schon an allen Stellen

BeginUpdate

und

EndUpdate

:wink: .

Hi Tondose, ging schneller als gedacht:

CurrentPlaylist.Move(CurrentPlaylist.IndexOf(DropItem) , CurrentPlaylist.IndexOf(DropItem) -1)

an die Stelle “CurrentPlaylist.Delete” …

Und schon klappt alles wie gewünscht, danke für den Tipp !! :+1:

KLASSE !

1 Like

Vielen Dank. Und jetzt ist mir auch klar, warum Du das so haben willst.

1 Like