Codebeispiele mAirListScript

ok, also dann hier mal ein “notstands-behelfs-script” :wink:

[code]procedure OnPlayerStart ( PlayerControl : IPlayerControl ; Item : IPlaylistItem );
var playlistCount: Integer;
begin
playlistCount:= CurrentPlaylist.GetCount

if playlistCount <5 then
  CurrentPlaylist.Insert(playlistCount, Database(0).CreatePlaylistItem(Random(<anzahl der songs in der db>),0,0,0));

end;

begin
end.[/code]

wenn weniger als 5 songs in der Playlist sind, soll mAirList einen nachschmeissen.
mit der anzahl ersetzen. :wink:

Achtung:
das Script hat folgende voraussetzungen:

  • es darf nie ein song aus der db gelöscht werden
  • die absolute anzahl der songs in der db darf sich nicht verändern (wenn doch, im script die zahl ändern)…

getestet mit mAirList 2.1.35 und eldoDB.
anmerkung: dieses Script ist ein notification script :wink:

warum arbeitet ihr eigentrlich nicht mit playlists? ich erstelle einmal in der woche meine (zufallsplaylisten), und wenn eine bestimmte zahl an items in der Playlist unterschritten wird, schmeisst mairlist die nächste ladung nach.

grüße, michi

Hey Leute!

Ich bräuchte eure Hilfe. Und zwar möchte über einen Midi Befehl den IMixer ansprechen, nur bring ich das irgendwie nicht zam.
Genau: Mit meinem Midicontroler schicke ich einen Midi Befehl an den IMixer und der soll den Mikrofonkanal öffnen(unmute).

Kann mir wer helfen ? Ist das überhaupt möglich?

Nein, das geht nicht, zumindest nicht mit mAirList. Vielleicht gibt es andere Software, die das kann.

Wobei, da fällt mir ein: Ich wollte schon seit langem mal die Notification Scripts um die Möglichkeit erweitern, die Befehle abzufangen, die von den Fernsteuerungsschnittstellen geschickt werden. Dann könntest du dir im MIDI-Interface einen neuen Befehl ausdenken (MIXER AN), und im Script entsprechend drauf reagieren.

Hihi grins. ja, das wäre nicht schlecht :wink: aber wüsstest du eine Software die das kann ?

In v2.1.39 drin.

BAM du bist schneller als die Polizei erlaubt :wink:

Manchmal ja. Hast mich in einem günstigen Augenblick erwischt.

und wie sieht jetzt so ein script aus das ich bräuchte ?

[code]procedure OnExecuteCommand(Command: string);
begin
if Command = ‘MIXER AN’ then begin
(irgendwas mit IMixer anstellen, siehe entsprechende Beispiele)
end;
end;

begin
end.[/code]

Dann musst du in mAirListConfig einstellen, dass der entsprechende MIDI-Befehl in das Faderstart-Kommando “MIXER AN” umgewandelt wird. Fertig.

EDIT: Der aktuelle Snapshot hat das schon mit drin, kannst du ja mal ausprobieren.

Oh VIELEN DANK !!!

Dann musst du in mAirListConfig einstellen, dass der entsprechende MIDI-Befehl in das Faderstart-Kommando "MIXER AN" umgewandelt wird. Fertig.

Ich versteh nicht ganz was du da meinst . ??

SUPER SUPER DANKE !!!
Hat funktioniert !!! :wink:

Hat jemand ein Script, bei dessen Aufruf die aktuelle Playlist und alle Player geleert und aus dem Speicher entfernt werden?

Nichts leichter als das:

begin CurrentPlaylist.Clear; end.

Die Player werden automatisch entladen, lediglich in dem Falle, dass gerade einer spielt, verbleibt sein Element in der Playlist.

Super, danke. Jetzt klappt das automatische Nachladen der nächsten Playlist auch mit Leeren der alten, um ein versehentliches Neustarten eines Titels während des AOT-Elements zu vermeiden. Sehr cool.

Liebe mAirList-Nutzer,

seit längerem gab es Diskussionen um Voicetracking mit mAirList (Sinn und Unsinn etc.).

Da es für mich aufgrund von immer weniger Zeit für immer mehr zu produzierende Sendungen wichtiger wurde, Voicetracking effektiv durchführen zu können, habe ich heute ein Script dafür geschrieben.

Funktionsweise:

  1. Trockene Moderation an die gewünschte Stelle und ins Kommentarfeld “MTMOD” eintragen
  2. Musikbett dahinter und ins Kommentargeld “MTBED” eintragen.
  3. So für alle weiteren Moderationen verfahren
  4. Script starten - es werden Cue-Punkte so gesetzt, dass Bett und Moderation parallel starten und das Bett rechzeitig zur Ramp des nachfolgenden Musikstücks ausgeblendet wird.

Hier das Script:

[code]// mAirTracking - Script to ease Voicetracking with mAirList
// written by Christoph Rothe and released under GPL
//
// v1.0 - initial Release
// v1.01- Bugfix
//
// USAGE:
//
// 1. Insert your Voice-File (Moderation) into Playlist and add Comment MTMOD (exactly written that way, NO CARRIAGE RETURN etc.)
// 2. Insert your Musicbed into Playlist and add Comment MTBED (exactly written that way, NO CARRIAGE RETURN etc.)
// 3. Add Music to playlist and set Cue-Points (especially Ramp)
// 4. Do the same for all breaks in your playlist
// 5. Start Script, it will set Cue-Points of Moderation+Bed (and colour the elements it found) so that you will have a Bed + perfect Ramptalk :slight_smile:
//
// ATTENTION: The Voice-File must be 3-5 dB louder than music and bed
//
// LIMITATIONS:
// - Only Breaks with one Voicefile, one Bed and one music track (in this order!) are supported
// - You have to assure that the Bed is at least as long as the Voicefile - Ramp of Track, or your automatic Ramptalk will fail
//
// TODO:
// - Do not use “Comment” Field, use User Defined Fields (ask Torben how to use those in mAirListScript)
// - Write scripts to set Player volume so that Voice will be louder than music automatically
// - Include Icons instead of colouring the Tracks found

var
i: integer;
moderation: integer;
bett: integer;
musik: integer;

begin
moderation:=-1;
bett:=-1;
for i := 0 to CurrentPlaylist.GetCount - 1 do
begin
if CurrentPlaylist.GetItem(i).GetComment = ‘MTMOD’ then
begin
SystemLog(‘Found Item:’+inttostr(i)+’ Comment:’+CurrentPlaylist.GetItem(i).GetComment);
CurrentPlaylist.GetItem(i).SetColor(clRed);
CurrentPlaylist.GetItem(i).SetColored(true);
moderation:=i;
end else
if CurrentPlaylist.GetItem(i).GetComment = ‘MTBED’ then
begin
SystemLog(‘Found Item:’+inttostr(i)+’ Comment:’+CurrentPlaylist.GetItem(i).GetComment);
CurrentPlaylist.GetItem(i).SetColor(clYellow);
CurrentPlaylist.GetItem(i).SetColored(true);
bett:=i;
end else
begin
if (bett >= 0) and (moderation >= 0) then
begin
CurrentPlaylist.GetItem(moderation).GetCuePosition(ptStartNext).SetValue(100000);
CurrentPlaylist.GetItem(bett).GetCuePosition(ptFadeOut).SetValue(CurrentPlaylist.GetItem(moderation).GetDuration-CurrentPlaylist.GetItem(i).GetCuePosition(ptRamp).GetValue-10000000);
CurrentPlaylist.GetItem(bett).GetCuePosition(ptStartNext).SetValue(CurrentPlaylist.GetItem(moderation).GetDuration-CurrentPlaylist.GetItem(i).GetCuePosition(ptRamp).GetValue);
CurrentPlaylist.GetItem(bett).GetCuePosition(ptCueOut).SetValue(CurrentPlaylist.GetItem(moderation).GetDuration-CurrentPlaylist.GetItem(i).GetCuePosition(ptRamp).GetValue+10000000);
end;
bett:=-1;
moderation:=-1;
end;

end;

end.[/code]

Gruss + viel Spass damit,

Christoph

Hallo!

Ich benutze ein paar kleine Scripte zum Ansteuern der Ausgänge der IO-Warrior Karte.
Zum Beispiel:

Zum Einschalten:

begin
IOWarrior.SetPort(0,1,true);
end.

Oder zum Ausschalten:

begin
IOWarrior.SetPort(0,1,false);
end.

Mit der Version 2.1.37 funktionierte es noch einwandfrei.
Mit der aktuellen Version 2.1.42 Built 479 tut sich aber Nichts mehr.

Liegt das daran, daß sich in den neuen Versionen die Scripterei geändert hat, oder ist das ein Bug ?
Die IO-Warrior ist in der Configuration angemeldet.

Die Scripterei ist für mich leider noch ein Thema mit - sagen wir mal 6 Siegeln.

Danke schon mal im Voraus!

MB-100

Die Aufrufe haben sich geändert, siehe hier: http://forum.mairlist.com/index.php/topic,2427.0.html

hey!

ich bräuchte mal wieder eure hilfe für ein script. und zwar habe ich die funktion eingeschaltet. “maximale anzahl der gespielten elemente: 1”
das heißt wenn alle lieder abgespielt sind steht dann noch ein gespieltes element in der playlist. das hätte ich gern, dass das auch gelöscht wird.: D.H. wenn sich kein spielbares Element mehr in der Playlist befindet, dass das einzige als markierte element gelöscht wird, so dass meine playlist leer ist. Ist das möglich?

Lg; Mike