MIDI: Update von 3.1.1 auf Snapshot Build 794

hi.

folgendes problem seit neuem snapshot:
wenn ich einen player über midi starte kommt eine fehlermeldung im systemlog, wenn der player stoppt soll er ein midi signal senden, macht er seit dem letzten snapshot nicht mehr.

systemlog mit den fehlermeldungen ist im anhang.

ps habe dann wieder auf 3.1.1 zurückgegriffen, da funkt. alles ! , brauchst du auch meine scripts die ich beim playerstop verwende?

Mike


ERROR.txt (4.15 KB)

Nimm mal bitte den Build 795 (gerade hochgeladen) und schalte in der Konfiguration unter Verschiedenes -> Optionen den Debug-Modus ein. Danach sollte dann bei den Fehlermeldungen zusätzlich der Dialog aufgehen, über den du einen detaillierten Bugreport schicken kannst. Das bitte machen.

Die Scripts zu sehen wäre sicherlich auch hilfreich.

Eine der Änderungen in den neuesten Snapshots ist es, dass die Scripts im Hintergrund (in einem anderen Thread) ausgeführt werden. Vielleicht liegt da das Problem, weil dein Script irgendwas macht, was damit nicht kompatibel ist. Du könntest parallel mal probieren, in der scripting.ini im Abschnitt “NotificationScripts” die Zeile

Threading=off

einzufügen. Wenn es dann wieder geht, liegt es definitiv am Threading.

ok danke mach ich.

Eine der Änderungen in den neuesten Snapshots ist es, dass die Scripts im Hintergrund (in einem anderen Thread) ausgeführt werden. Vielleicht liegt da das Problem, weil dein Script irgendwas macht, was damit nicht kompatibel ist. Du könntest parallel mal probieren, in der scripting.ini im Abschnitt "NotificationScripts" die Zeile

Code:

Threading=off

einzufügen. Wenn es dann wieder geht, liegt es definitiv am Threading.

habe ich gemacht, ändert sich leider nichts. ( im anhang )

habe den debug modus aktiviert, leider kein zusätzlicher dialog vorhanden.


scripting.ini (2.35 KB)

Die Einstellung gehört in einen zusätzlichen Abschnitt “NotificationScripts”:

[NotificationScripts]
Threading=off

Ohne dein Scripts zu sehen kann ich jetzt wenig mehr dazu sagen. Finde bitte vorher mal heraus, an welchem der vielen Scripts es liegt, und poste nur das.

ah ok danke, jetzt sendet er wieder midisignale, also liegt der fehler in dem Threading.

PS habe noch herausgefunden, dass mairlist bei diesem script:

[code]procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer; Duration: TTimeValue);
begin

if (PlayerIndex=0) and (PlayList(0).GetPlayer(0).GetState <> psPaused) then begin
MidiOut ( 03, 176, 73, 00 ) ;
end;
if (PlayerIndex=1) and (PlayList(0).GetPlayer(1).GetState <> psPaused) then begin
MidiOut ( 03, 176, 74, 00 ) ;
end;
end;

begin
end.[/code]

folgende fehlermeldung ins systemlog schreibt, wenn ich den player pausiere:

2010-09-13 15:15:22 Fehler PLAYERCONTROL_STOP 14B8FD690193590F ? 0000 0000 0117271D <?xml version="1.0" encoding="utf-8"?>Manfred Mann5-4-3-2-1Music118883262613.09.2010 15:15:20mAirListDB:5EFC3331F145A8AF95E4CFF7871F518D2118GenreNew AgeG:\Michael\Privat\Musik\musik1\oldies\NEU\Greatest Hits Of The 60s 2\14 - 5-4-3-2-1 - Manfred Mann.mp3 List index out of bounds (4635649)

bei diesem script sendet mairlist nur ein midi signal wenn der player stoppt und nicht pausiert.

Da fehlt am Ende der Parameter “Item”. Vergleiche mal mit dem Template:

procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer; Duration: TTimeValue; Item: IPlaylistItem);

Dadurch verschluckt sich mAirList, und der List Index Out Of Bounds Fehler tritt auf.

Den Parameter gibt es schon seit Version 3.0.13, sowohl bei OnPlayerStart als auch OnPlayerStop. Schau also noch einmal deine Scripts durch, ob er überall vorhanden ist. Dass bislang keine Fehler deswegen aufgetreten sind ist wohl eher Zufall gewesen.

Wegen dem Threading, ich werde in den kommenden Build noch ein paar Verbesserungen des MIDI-Codes einbauen. Vielleicht kann man es dann wieder aktivieren.

aahh dann is mir das bis jetzt nicht aufgefallen, danke dir ! ;D ;D ;D

Changelog lesen :slight_smile:

mach ich normal eh immer :slight_smile: