Script: Zufälligen Song abspielen

Hallo,

ich finde, das es recht praktisch wäre, wenn mAirList mithilfe eines Scripts einen zufälligen Song in die Playlist “packt”.

Ich habe nun mal folgendes probiert:

var
  str: IStrings;

begin
  str := FindFiles('I:\Sicherung\Musik und Jingles\Music\*.mp3', false);
  CurrentPlaylist.InsertFile(CurrentPlaylist.GetNextIndex, str.GetItem(Random(str.GetCount)));
end.

Jedoch folgende Fehlermeldung und es passiert auch nichts (Auf Wunsch auch gerne ein Screenshot)

Error running script: [Error] (6:94): Invalid number of Parameters

Ich hoffe ihr könnt mir helfen

So wie ich die Sache sehe, hast Du im Aufruf “CurrentPlaylist.InsertFile” den Parameter für den “file import task” vergessen.

CurrentPlaylist.InsertFile(CurrentPlaylist.GetNextIndex, str.GetItem(Random(str.GetCount)),[]);

Schau mal unter folgendem Link nach. Hier hat Torben das Ganze beschrieben
https://www.mairlist.com/forum/index.php/topic,5215.msg37385.html#msg37385.

Super, Danke! Es ist echt superpraktisch, dass man so schnell automatisch Musik-einfügen lassen kann.

ABER gibt es noch ein Problem: Und zwar werden werder die Ramps, noch Hookpunkte etc angezeigt. So als wären Sie nicht vorhanden. Wenn ich die Dateien manuell reinschiebe, klappt es aber. Woran könnte das liegen?!? Weil wenn er mir die nicht anzeigt nützt mir die Funktion ja nichts :frowning:

Kannst du (oder auch jemand anderes) mir da helfen?

Parameter für den “file import task” angeschaut?

Nach ein bisschen basteln habe ich es jetzt angepasst und auch als Hotkey festgelegt, praktisch :slight_smile:

Eine Frage hätte ich jedoch noch: Wie mache ich jetzt noch, das der Song ganz unten in der Playlist eingefügt wird?
Das vorgeschlagene unter dem Link funktioniert “invalid number of Parameters”

Bekomme ich noch eine Antwort von jemandem?

CurrentPlaylist.InsertFile(CurrentPlaylist.GetCount, str.GetItem(Random(str.GetCount)),[]);

Könntet Ihr - wenn das Script denn fertig ist und läuft - bitte mal das komplette Script posten?
Ich denke, mir, dass es auch für andere User interessant ist … für mich zum Bleistift … 8)

Liebe Grüße aus der Nordheide, der TomTom

Eigentlich wurde nur eine Zeile ausgetauscht ::slight_smile:

[code]var
str: IStrings;

begin
str := FindFiles(‘C:_mg\musik*.mp3’, false);
CurrentPlaylist.InsertFile(CurrentPlaylist.GetCount, str.GetItem(Random(str.GetCount)),[]);
end.[/code]

Genau :smiley:
Und wenn man (was ja Sinn macht) noch möchte, das die Tags (wie Ramp, Hook usw.) angezeigt werden, lautet der fertige Script so:

var
  str: IStrings;

begin
  str := FindFiles('C:\DEIN MUSIKORDNER\*.mp3', false);
  CurrentPlaylist.InsertFile(CurrentPlaylist.GetCount, str.GetItem(Random(str.GetCount)),[fitMMD, fitTags]);
end.

Ich möchte dieses Thema noch einmal nach oben holen, aber der Ansatz ist etwas anders…
Ich hätte gerne, dass das Script nicht einen Song aus einem PC-Ordner (wo die ganze Musik darin ist) sondern aus einem speziellen Datenbankordner zufällig in die Playlist packt. Ist das auch möglich?
(Hintergrund: Die aktuelleren Songs verschiebe ich immer in einen speziellen DB Ordner das diese öfter kommen, so sind auch meine Stundenvorlagen gestaltet. Sonst würden alle Songs zufällig genommen werden)
Danke schon mal im voraus :slight_smile:

[quote=“Waldschildkröte, post:11, topic:8706”]Ich möchte dieses Thema noch einmal nach oben holen, aber der Ansatz ist etwas anders…
Ich hätte gerne, dass das Script nicht einen Song aus einem PC-Ordner (wo die ganze Musik darin ist) sondern aus einem speziellen Datenbankordner zufällig in die Playlist packt. Ist das auch möglich?
(Hintergrund: Die aktuelleren Songs verschiebe ich immer in einen speziellen DB Ordner das diese öfter kommen, so sind auch meine Stundenvorlagen gestaltet. Sonst würden alle Songs zufällig genommen werden)
Danke schon mal im voraus :)[/quote]
Genau diese Funktion ist der Sinn des MiniSchedulers. Dazu brauchst Du also kein Script.

Frühen guten Morgen! Ja, ich habe Urlaub… 8) 8)

Error running Script: [Error] (1:1): period ('.') expected

Das bekomme ich als Fehlermeldung, wenn ich das Script ausführe. Mag es daran liegen, das ich einen Hauptordner mit Unterordnern ausgewählt habe? Der Hauptordner selbst enthält nämlich keine Dateien…

Ich glaube eher, es liegt daran, dass du die Scriptdatei mit einem Editor bearbeitet hast, der ein UTF8-BOM an den Anfang der Datei gesetzt hat. Damit kommt die Script-Engine leider nicht klar.

http://de.wikipedia.org/wiki/Byte_Order_Mark

Na, dann schreibe ich das nochmal neu mit einem richtigen Script-Programm! :wink:

Okay, es funktioniert. Kommt allerdings mit Unterordnern nicht klar, da bekomme ich einen ‘Listindex out of bounds’. Mit einem spezifischen Ordner klappt es.

Ich widerrufe meine Aussage.

Das zufällige Einfügen (aus einem definierten) Ordner klappt, allerdings werden die Tags weder aus der mp3 noch aus der DB ausgelesen.

Wie kann ich das ändern? Oder mache ich was nicht richtig?

Für Auslesen aus den normalen ID3-Tags (“native Tags”) musst du noch fitNativeTags als Option angeben (fitTags bezieht sich auf die mAirList-eigenen Tags).

Für Auslesen aus der Datenbank dann noch die Option ftiDatabaseLookup.

EDIT: fitDatabaseLookup muss es heißen.

Danke, läuft! Optimal wäre jetzt noch, wenn ich auch Unterordner einbeziehen könnte… :wink:

Sehr schönes Script… Danke. Habs mir entsprechend meinen Bedürfnissen umgebaut… Nun lädt es 5 Titel vor uns packt Station IDs dazwischen. Thx.

So lernt man.