mAirList 3.1 Preview

Hast du den Bugreport mal gecheckt?

Ja, habe ich. Offenbar ist mAirList stehengeblieben, nachdem versucht wurde, die Automation einzuschalten - und zwar während gerade ein Player geladen wurde (Zustand “LOADING”). Kann das sein?

Ja, das stimmt. Ich habe ein Skript, das zu jeder vollen Stunde zum ersten Element der neuen Playlist springt. Dazu wird die Automation kurz eingeschaltet und wieder ausgeschaltet:

[code]var i: integer;

begin
CurrentPlaylist.SetAutomation(true);
for i := CurrentPlaylist.GetHistoryCount to CurrentPlaylist.GetCount - 1 do
if copy(CurrentPlaylist.GetItem(i).GetTitle, 1, 13) = ‘Stundenbeginn’ then begin
CurrentPlaylist.AutomationJump(CurrentPlaylist.GetItem(i));
CurrentPlaylist.ForceUpdate;
break;
end;
CurrentPlaylist.SetAutomation(false);
end.[/code]

Hm, laut Bugreport war da aber auch ein Befehl “AUTOMATION 1 ON/OFF” im Spiel…

Das kann ich gerad nicht mehr nachvollziehen…

[quote=“Torben, post:140, topic:6512”]Ich habe leider keinen Rechner mit klassischem Gameport, sonst würde ich es mal ausprobieren.

Wie dem auch sei: Gut, dass die Ursache gefunden wurde.[/quote]

Also wie gesagt, kein Problem dir die Tastatur mit einer PCI Soundcard mit entsprechendem Port zuzuschicken.
Auf jeden Fall würde ich eventuell einen entsprechenden Hinweis in’s Handbuch schreiben.

Der Trick ist ja dass die Bauanleitungen zu diesen Tastaturen noch hier im Forum sind. Mit ein paar Dioden und Widerständen ist ja schnell so ein Joystick nachgebaut. Und eine alte SB-Karte mit Gameport hat jeder wahrscheinlich noch rumliegen.

Gruss:
-Serge-

Gibt es etwas, das auf das Handbuch aufgenommen werden? :-\

Bitte lassen Sie es mich wissen. :wink:

BFN
CAD

Hi CAD,

The point was that I was struggling for days with 100% CPU load when starting mAirList 3.1.
It turned out that the problem was not only related to mAirList 3.1 but to the fact the I was mistakenly putting the old cartwall keyboard config to remote.ini
This keyboard was emulating an old gamepad that got connected to the 15pin gameport of an old SoundBlaster Live Soundcard (non Plug and Play device)
So when starting mAirList without this device connected turned out in 100% CPU load. As of my understanding I would maybe put a comment into the handbook regarding the use of these gamepads, especially as they can be built or emulated by the use of a few switches, diodes and resistors.

This problem does not apply for USB Gamepads that are handles perfectly by the OS but solely to old 15-pin Joysticks.
Nowadays, it is probably the case that nobody uses this interface anymore, but who knows, as the building instructions to emulate such a gamepad are still easy to find in the forums.
However, for me well worth to add a comment to the instruction manual.
As you (should) know: the worst ink survives the best memory… ;D

regards:
-Serge-

Serge, mir fällt gerade noch was auf wegen der Fehlermeldung “List index out of bounds”. Und zwar habe ich erst jetzt den wahren Fehler gefunden. Der liegt nämlich in deinem Script (siehe Post #97). Guck mal ins Changelog, seit Version 3.0.13 haben die Prozeduren OnPlayerStart usw. einen zusätzlichen Parameter “Item: PlaylistItem”. Wenn man den vergisst (was die Script-Engine leider nicht kontrollieren kann), dann wird nach dem Aufruf der Speicher (Stack) etwas kaputt gemacht, was inbesondere die Schleifenvariable für den Aufruf der verschiedenen Scripts kaputt macht und zu dem genannten Fehler führt.

Vergleiche die Köpfe der Prozeduren in deinen Scripts am besten nochmal mit dem Template und ergänze den fehlenden Parameter.

Ah ja,
und das betrifft ebenfalls schon mAirList 3.1.0 Build 709 ?
Denn Meckern tut er nicht beim scriptladen. Wird auch korrekt ausgeführt.

Na Gut, also korrekt wäre dann:

procedure OnCartPlayerStart(PlayerIndex: integer; PlaylistItem: integer);

und

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; PlaylistItem: integer);

Wede das dann einfügen.
Ach ja, die .chm sagt diesbezüglich noch nix…

Gruss:
-Serge-

Ja, das betrifft auch mAirList 3.1. Alle Änderungen von mAirList 3.0 fließen auch automatisch in 3.1 ein, ohne dass ich sie einzeln ins Changelog schreibe. Das wird erst passieren, wenn 3.1.0 offiziell fertiggestellt ist.

Wie gesagt, leider kann die Script-Engine die Parameterliste nicht überprüfen.

Die genauen Definitionen stehen immer in der mitgelieferten “Notification Script Template.mls”. Ändere bitte oben noch den Typ von “Item” auf “IPlaylistItem” statt “integer”, dann stimmt es.

Sinn und Zweck des zusätzlichen Parameters ist es, dass man Zugriff auf das Element hat, auch wenn der Player ggf. schon entladen ist - das Script wird nämlich im Hintergrund ausgeführt, eventuell einige Millisekunden verzögert.

Tagchen, ich mal wieder.

Torben, hast Du schon mal was in Sachen Streamplayback machen können? Zur Erinnerung: Die 3.1 (aktueller Snapshot) kann sich einen externen Stream holen (egal ob mit fixer Spielzeit oder unendlich), lädt diesen auch in den jeweiligen Player und spielt den ab. Mit folgenden Fehlern:

[ul][li]der Stream ist laultlos, d.h. es ist nichts zu hören[/li]
[li]Songtitel werden zwar im mAirList-Player angezeigt, aber nicht zum Encoder übertragen, d.h. bei den Playern der Hörer kommt nix an[/li][/ul]

Letzteres Problem gibt es übrigens bei SAM auch, die sind demnach auch nicht allwissend/alleskönnend :-). Witzigerweise ist das mit Winamp und dem Encoder-Plugin von Spacial-Audio kein Problem.

Es ist ausserdem unerheblich, ob mAirList auf einem Server läuft (ohne Soundkarte) oder lokal im Studio, das Problem tritt in beiden Fällern auf. V3.0 arbeitet hingegen playbacktechnisch sauber, aber Titeldaten schaffen es auch hier nicht bis zum Encoder.

Gruß
Maic

Den Bug mit dem Streamplayback könnte ich zufälligerweise gerade gestern zum ersten Mal reproduzieren, und zwar auf meinem Laptop - hier am Entwicklungs-Rechner tritt er nicht auf. Jedenfalls habe ich jetzt einen Ansatz, wo ich weitersuchen kann.

Dass die Titeldaten nicht übertragen werden häre ich zum ersten Mal.

Update:

Da ich grad unterwegs bin (Maloche) habe ich auf dem Laptop rumgespielt…

Erster Ansatz:

Aktuelle bass.dll (mit mp3-codec) und bass.enc in’s Hauptverzeichnis packen, dann klappts mit dem Playback (bei 3.1).

Titeldaten bleiben trotzdem zuhause… Ob das im Studio und auf dem Server auch der Weg ist, kläre ich, wenn ich wieder zuhause bin.

An der bassenc.dll darf es eigentlich nicht liegen, die ist nur fürs Codieren da, spielt beim Playback keine Rolle.

Was ist, wenn du die bass.dll von mAirList 3.0 nimmst? Eigentlich müssten die identisch sein.

Klappt auch. Verwirrend. :smiley:

Nochmal langsam… Mit welchen Kombinationen aus mAirList und BASS geht es nun, und mit welchen nicht?

Die Sache mit den Streams ist geklärt. Oddy hat gerade am Telefon “nebenbei erwähnt”, dass das nur bei Streams mit Zeitbegrenzung passiert, nicht aber bei unendlichen Streams. Das war genau der Tipp, den ich brauchte. Ich habe vermutlich immer mit der falschen Sorte Stream getestet. (Die sind aus technischen Gründen unterschiedlich implementiert.)

Wie dem auch sei, Fehler ist gefunden und wird behoben. Die Sache mit “Cartplayer bleibt nach ersten Ausfaden stumm” ist damit vermutlich auch geklärt.

Build 711 steht nun zur Verfügung.

Neu ist insbesondere die Möglichkeit, beim Erstellen von Playlist-Vorlagen für jeden Eintrag einen Filter für (a) den Element-Typ und (b) die Attribute anzugeben. Der Mini Scheduler wählt dann nur Elemente aus, die alle diese Bedingungen erfüllen, oder bricht ab, wenn er keins findet.

Der Schalter “optional” ist derzeit noch ohne Funktion. Dazu später mehr.

Hallo Torben,

mit dem neuen Snapshot startet die mAirListDB nicht mehr:

Ancestor for ‘tbLibraryImport’ not found.

Any idea?