Zufalls-Rotation

Deutsches Forum - von Silverjuke-Nutzern für Silverjuke-Nutzer.
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
User avatar
Joachim Müller
Posts: 71
Joined: 6. Dec 10, 14:45
Location: Osterburken, Deutschland/Germany
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Zufalls-Rotation

Postby Joachim Müller » 1. Jul 13, 10:41

Hallo alle,

ein Thema, das mich eine ganze Weile umgetrieben hat und das ich erst vor Kurzem zufriedenstellend lösen konnte wollte ich ich hier mit der Community teilen:


Grundgedanke:
Folgendes Szenario trifft auf mich zu, aber auch auf viele andere: wenn bei einer Party mit Silverjuke-Beschallung keiner der Gäste per Silverjuke einen Musikwunsch geäußert hat, dann soll Zufallsmusik laufen. Dabei sollen aber nur halbwegs bekannte Titel laufen und nicht irgendwelche B-Seiten von Singles, Maxi- oder stundenlange Live-Versionen. Kurz: die Auswahl der Titel für die Zufallswiedergabe soll kleiner sein als die Gesamtmusikauswahl im Kiosk-Modus.

Beispiel:
In meinem Fall heisst das: aus den ca. 15.000 Titeln in 1.000 Alben in meiner Silverjuke-Datenbank sollen nur ca. 1.500 Titel im Zufallsmodus laufen, ähnlich der Rotationsliste von Radiosendern. Dabei sollen natürlich die Titel, die erst vor kurzem gespielt wurden von der Zufallswiedergabe ausgeschlossen sein. Außerhalb der Zufallswiedergabe sollen aber alle 15.000 Titel den Benutzern von Silverjuke zur Auswahl zur Verfügung stehen.

Realisierung mit Silverjuke - die Theorie:
Idealerweise könnte man für einen solchen Anwendungsfall die Bewerten-Funktion verwenden. Allerdings kocht da jeder Hersteller von MP3-Abspiel-Software sein eigenes Süppchen: Microsoft benutzt einen proprietären MP3-Tag, genauso wie Winamp. Apples iTunes speichert die Bewertung nur in der Apple-eigenen Datenbank, aber nicht in den ID3-Informationen der MP3-Datei, ebenso wie Silverjuke das tut. Man müsste sich also mühsam durch die Benutzeroberfläche von Silverjuke klicken und jedem einzelnen Titel, den man in der Zufallsrotation sehen will eine bestimmte Wertung verpassen. Das erschien mir zu langwierig und vor allem auch nicht sinnvoll im Sinne eine Nutzung dieses einmaligen Aufwands mit anderen Playern. Ich wollte also eine Lösung, bei der der "Schalter", der die Zufallswiedergabe für einen Titel aktiviert im ID3-Tag des Titels selbst gespeichert wird. Es musste also ein ID3-Feld her, das von Silverjuke's SQL-Statements gelesen werden kann, das aber für nichts anderes verwendet wird. Normalerwiese hätte sich dafür das Kommentar-Feld angeboten - das wird aber von etlichen anderen Playern wie iTunes bereits genutzt.
Meine Wahl fiel daher auf das ID3-Feld ORIGARTIST, das in Silverjuke-SQL-Statements als ORGARTISTNAME auftaucht. Das Feld ist laut ID3-Spezifikationen gedacht, um bei Remixes, Cover- und Karaokeversionen einen Verweis auf den Originalkünstler zu pflegen. In meiner ganzen Musiksammlung habe ich dieses Feld aber nicht genutzt.

Die Praxis - MP3-Dateien bearbeiten:
An dieser Stelle kann ich nur den hervorragenden, kostenlosen ID3-Tag-Editor empfehlen; meiner Meinung nach gibt es kein besseres Werkzeug zum ID3-Tags bearbeiten. Dort mal eben den fraglichen ID3-Tag anzeigen lassen durch "Ansicht" - "Spalten..." - "Neu". Dann die folgenden Einträge in den jeweiligen Feldern vornehmen und mit "OK" bestätigen: "Name":"Original-Künstler", "Wert":"%origartist%", "Feld": "%origartist%" (jeweils ohne Anführungszeichen).
MP3tag Spalten hinzufügen.png
Spalte "Original-Künstler" in MP3tag anzeigen
MP3tag Spalten hinzufügen.png (58.15 KiB) Viewed 2906 times

Dann mit "Datei" - "Verzeichnis wechseln..." in das Verzeichnis springen, in denen Eure MP3-Dateien für Silverjuke liegen. Es kann eine Weile dauern, bis die Tabelle eingelesen ist (abhängig von der Größe Eurer Musiksammlung). Anschließend könnt Ihr loslegen und in der neu geschaffenen Spalte "Original-Künstler" überall dort eine "1" eintragen (oder was auch immer - in meinem Fall Zahlen zwischen 1 und 9), wo die Datei in der Zufallsrotation auftauchen soll.
MP3tag Tabelle.png
MP3tag mit eingeblendeter Spalte "Original-Künstler"
MP3tag Tabelle.png (229.82 KiB) Viewed 2905 times

Nach der erfolgten Bearbeitung der MP3-Dateien (was sehr zeitaufwändig sein kann) muss auch noch die Silverjuke auf den neuesten Stand gebracht werden, als einmal "Einstellungen" - "Mein Musikarchiv" - "Musikarchiv aktualisieren" - "Musikarchiv aktualisieren" bzw. die [F5]-Taste außerhalb des Kiosk-Modus benutzen.

Letzter Schritt - Silverjuke-Einstellungen:
Dazu wechseln wir in die Silverjuke-Einstellungen in den Bereich "Wiedergabe" und dort auf "Automatische Steuerung". Hier aktivieren wir "AutoPlay" und setzen die Verzögerung auf den gewünschten Wert (in meinem Fall 0 Minuten) im Feld "Wenn die Wiedergabeliste leer ist, warte X Minuten". Das Feld "Spiele danach" setzen wir auf "1". Ich möchte, dass meine Party-Gäste jederzeit ihren eigenen Wunsch anbringen können, deshalb habe ich die Option "AutoPlay durch manuell eingestellte Titel sofort unterbrechen" aktiviert.
Silverjuke-Einstellungen.png
Silverjuke-Einstellungen.png (95.84 KiB) Viewed 2905 times

Jetzt kommt der eigentlich spannende Moment: wir basteln und eine Musikauswahl. Dazu klicken wir rechts von "Titel aus" auf die Schaltfläche mit den drei Punkten, um in den Musikauswahl-Bildschirm zu kommen. Hier erzeugen wir eine neue Musikauswahl ("Menü"->"Neue Musikauswahl") und geben Ihr einen sinnvollen Namen, z.B. "Rotation". Jetzt bearbeiten wir die neue Musikauswahl wie folgt:
Suche nach "Titeln" mit "allen" der folgenden Kriterien:
"Originärer Künstler" "ist gesetzt" [+]
"Ergebnis limitieren auf" "24" "Stunden" nach "selten gespielt".
Die erzeugte Musikauswahl "Rotation" wird gespeichert mit "Menü"->"Speichern"
Musikauswahl Rotation.png
Musikauswahl Rotation.png (58.37 KiB) Viewed 2905 times

Anschließend erzeugen wir eine weitere Musikauswahl ("Menü"->"Neue Musikauswahl") und geben ihr den Namen "zuletzt gespielte Alben", denn wir wollen sicherstellen, dass nicht dauernd Titel von ein und demselben Album in der Zufallswiedergabe auftauchen.
Für die neue Musikauswahl stellen wir folgende Kriterien ein:
Suche nach "Alben" mit "allen" der folgenden Kriterien:
"Zuletzt gespielt" "in den letzten" "24" "Stunden".
Auch diese neue Musikauswahl speichern wir mit "Menü"->"Speichern".
Musikauswahl zuletzt gespielte Alben.png
Musikauswahl zuletzt gespielte Alben.png (56.43 KiB) Viewed 2905 times

Bevor wir jetzt die "Schließen"-Schaltfläche betätigen klicken wir nochmals auf unsere zuerst erzeugte Musikauswahl "Rotation", um diese Musikauswahl zu markieren.
In dem darunter wieder zum Vorschein kommenden Dialog "Automatische Steuerung" aktivieren wir jetzt "Titel au der Musikauswahl ausschliesen" und wählen hier aus der Auswahlliste unsere als zweites angelegte Musikauswahl "zuletzt gespielte Alben".
Silverjuke-Einstellungen.png
Silverjuke-Einstellungen.png (95.84 KiB) Viewed 2905 times

Last not least: Schaltfläche "OK" anklicken und testen ;-).

Einschränkungen: bei den oben gemachten Einstellungen für die Musikauswahl bin ich davon ausgegangen, dass Ihr einen ähnlich großen Musikbestand wie ich habt und dass deshalb die Silverjuke mehr als 24 Stunden im Zufallsmodus laufen kann, ohne einen Titel doppelt zu spielen. Sollte das nicht der Fall sein (d.h. wenn die Summe der Spielzeiten Eurer MP3-Dateien mit "1" im ID3-Feld "ORIGARTIST" weniger als 24 Stunden ist), dann müsst Ihr diesen Wert sinnvoll reduzieren, sonst hört Eure Zufallswiedergabe nach einer gewissen Zeit auf und Silverjuke bleibt stumm, bis manuell ein Titel gewählt wird.

Ich hoffe, das hilft dem ein oder anderen weiter.

Joachim

FredHermann
Posts: 48
Joined: 18. Nov 10, 18:51
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Zufalls-Rotation

Postby FredHermann » 2. Jul 13, 06:02

Heyho Joachim,

ich hatte dafür auch schon mal eine Anleitung geschrieben --> viewtopic.php?t=3959
Aber was ich sehr interessant finde, ist dein Auschluss der bereits gespielten Titel in der Rotationsliste. Das habe ich noch nicht gewusst. Die Zufallswiedergabe ist manchmal doch alles andere als zufällig und manche Titel werden bevorzugt zufällig wiedergegeben. Ich werde das gleich mal umsetzen. ^^
Ich glaube aber, dass die 2. Musikauswahl mit den Alben überflüssig ist. Da bei einer Rotationsplaylist von 100 Titeln es nicht so häufig vorkommt, dass Titel vom gleichen Album oft gespielt werden (meiner Erfahrung nach). Ich werde daher in der Musikauswahl "Rotation" "Zuletzt gespielt - NICHT in den letzten - 24 Stunden" einfügen.

Vielen Dank und mit freundlichen Grüßen

FredHermann

User avatar
Joachim Müller
Posts: 71
Joined: 6. Dec 10, 14:45
Location: Osterburken, Deutschland/Germany
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Zufalls-Rotation

Postby Joachim Müller » 2. Jul 13, 11:56

Hallo Fred,

das mit dem Zufall ist so eine Sache: Du kannst halt nun mal keine zwei Sortierkriterien angeben, die Sinn machen. Die Sortierung nach "selten gespielt" entspricht einer Datenbankabfrage SORT BY timesplayed. Es liegen aber logischerweise eine ganze Menge von Dateien in Deiner Datenbank, die die gleiche Anzahl von Wiedergaben haben (am Anfang eben Null Wiedergaben). Unterscheiden sich also die Datensätze in diesem Kriterium nicht, dann wird nach ID sortiert, was in der Regel einer nahezu alphabetischen Sortierung nach Interpret entsprechen dürfte, da die meisten Verzeichnisse nach Interpret alphabetisch sortiert sein dürften und die Musik daher auch in dieser alphabetischen Reihenfolge in Deine Datenbank gelangt.
Nur deshalb habe ich die Begrenzung dieser ersten Abfrage relativ hoch gewählt mit 24 Stunden (das entspricht in der Regel 300 bis 400 Titeln). Bei mir sind das aber schon über 250 Titel von AC/DC (natürlich haben nicht alle das Feld "ORGARTIST" gesetzt), so dass bei der Nutzung mit nur einer Abfrage ohne den Ausschluß relativ häufig AC/DC und Abba gespielt wurde.
Idealerweise hätte ich gerne eine Abfrage gebaut, die einen Interpreten ausschließt, der innerhalb einer gewissen Zeit gespielt wurde und nicht bloß ein spezielles Album. Denk doch mal an die Rotation im Radio: wenn da ein Titel eines Interpreten gespielt wurde, dann sollte die Zufallswiedergabe nicht unbedingt 10 Minuten später ein weiteres Lied dieses Interpreten zu Tage fördern.
An dieser Stelle hätte ich von Silverjuke am liebsten die Möglichkeit, eine echte SQL-Abfrage einzubauen anstelle nur eines Teils des SQL-Statements. Leider wird es aber aller Voraussicht nach keine weiteren Versionen von Silverjuke geben - die Entwicklung scheint eingestellt zu sein (vgl. diverse andere Threads im Forum).
Es kommt also darauf an, wie groß Deine Datenbank ist und vor allem, wie viele unterschiedliche Interpreten Du in der Datenbank hast. Auf jeden Fall kostet die zweite Abfrage, die Alben ausschließt, die in den letzten 24 Stunden gelaufen sind nicht nennenswert Performance und sie sollte sicherstellen, dass die Zufallswiedergabe "zufälliger" wird.

Gruß Joachim

P.S. Die Einstellung "Kiosk-Modus -> Funktionalität -> zufällig Wiedergabe" hat damit nichts zu tun - sie ist zuständig für das zufällige Durchmischen von Titeln innerhalb der Warteschlange, d.h. i.d.R Titel, die vom Menschen zur Warteschlange hinzugefügt wurden und nicht vom AutoPlay-Mechanismus. Mit dem AutoPlay-Feature hat das nichts zu tun.

FredHermann
Posts: 48
Joined: 18. Nov 10, 18:51
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Zufalls-Rotation

Postby FredHermann » 2. Jul 13, 17:47

Hallo Joachim,

also ich glaube, ich habe das System hinter deiner Musikauswahl/en so langsam verstanden.
Du schreibst mit Hilfe von mp3Tag einen Hinweis in ein Tagfeld (bei dir eine Zahl von 1-9 in Origartist | bei mir Playlist in Kommentar) bei allen Titeln, die bei der Rotation gespielt werden sollen. Diese Titel werden durch "Originärer Künstler ist gesetzt" gefiltert. Das sind dann z.B. 1000 Titel mit 52h Spielzeit. Diese 1000 Titel wiederum, begrenzt du auf eine Spielzeit von 24h der davon am wenigsten gespielten Titel. Das sind dann z.B. 350 Titel mit 24h Spielzeit.
Und dann sagst du mit deiner 2. Auswahl, dass wenn ein Titel aus Rotation gespielt wurde in den nächsten 24h kein Titel mit dem selben Album gespielt werden darf. [Eigentlich sollte dann dort statt Album Artist stehen, da hast du recht. Da dort aber nur Album zur Auswahl steht, hast du die große Zahl von 24h gewählt. Daraus schließe ich, dass du so viele Alben eines Artist hast, dass das nötig ist. Denn bei Artist, könnte man das auf 1h oder so begrenzen.]
Ich schließe daraus aber auch, dass du in deiner Liste von "halbwegs bekannten Titeln" mehrere komplette Alben eines Künstlers drin hast (hört sich zumindest so an). Wobei ich finde, dass bei Alben meistens nur 2 Titel bekannt/ gut sind. Das ist natürlich eine Definitions- und Glaubenssache von "halbwegs bekannt".

Ich habe deshalb eine "kleine" Partyliste/ Rotationsliste erstellt (ca. 300 Titel mit Partyliste als Kommentar), wo wirklich nur die besten/ bekanntesten Lieder drin sind. Getreu dem Motto weniger ist mehr. Das sind wirklich nur Titel, die für mich und meine Gäste (junges Studentenvolk ^^) Stimmungs- und Partylieder sind. Für mehr Abwechslung sind dort natürlich Titel aus allen Genres vertreten. Und ich glaube, dass für sowas max. 500 Titel völlig ausreichend sind, noch dazu sollen die Gäste ja auch Musik auswählen. Das führt dann eigentlich dazu, dass von einem Artist maximal 5 gute/ bekannte Titel in der Liste sind und dein Problem, der ständigen Wiederholung gar nicht besteht. Ich finde, bei einer guten Rotationsliste sollten auch gar nicht mehr Titel vom selben Künstler vorhanden sein.
Desweiteren könnte die Auswahl "am seltensten gespielt" in die Irre führen. Deine Gäste könnten ein Lied aus der Rotationsliste besonders toll finden und manuell 4 mal am Abend reinstellen. Daraus folgt, dass der Zähler hochgetrieben wird und das Lied umso seltener abgespielt wird (bei den nächsten Feiern), obwohl die Leute den Titel gerne hören.

Ich habe daher meine Rotationsliste als Musikauswahl gespeichert mit den Attributen: "Kommentar ist gleich Partyliste" und jetzt neu dazu "Zuletzt gespielt nicht in den letzten 4 Stunden" um die "zufällige Auswahl" aus der Rotationsliste noch zufälliger zu gestalten. Das reicht meiner Meinung nach völlig aus um eine gesunde Musikmischung für eine Feier (Dauer: 7-9h) zu garantieren.

Meine Musikauswahl:
Unbenannt.jpg
Unbenannt.jpg (45.7 KiB) Viewed 2820 times


Aber letztendlich ist das alles eine Glaubensfrage. Ich fand deinen Beitrag auf jedenfall sehr informativ, da es mich sehr interessiert, wie dieses Problem woanders gehandhabt wird.

Mit freundlichen Grüßen

FredHermann

P.S.: Man kann übrigens auch SQL-Ausdrücke in der Musikauswahl verwenden (ganz unten in der Liste). Silverjuke wandelt einem auch das Attribut z.B. "Zuletzt gespielt nicht in den letzten 4 Stunden" in den passenden SQL-Ausdruck um. Durch Verknüpfung der einzelnen Attribute mit logischen Operatoren, kann man dann eigentlich jede Musikauswahl erstellen.

User avatar
Joachim Müller
Posts: 71
Joined: 6. Dec 10, 14:45
Location: Osterburken, Deutschland/Germany
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Zufalls-Rotation

Postby Joachim Müller » 3. Jul 13, 06:45

Hallo Fred,

danke für Deine Erläuterungen - für Deine Zwecke (Silverjuke spielt nur während Parties) sind die von Dir getroffenen Einstellungen mit Sicherheit nicht schlecht. Wie schon erwähnt kam das Kommentarfeld für mich nicht in Frage, da es von anderen Programmen, die auf meinen Musikbestand zugreifen für ihre Zwecke "misbraucht" werden (iTunes schreibt von sich aus Werte in die Kommentarfelder). Wenn bei Dir das Kommentarfeld nur für solche Zwecke genutzt wird ist ja alles bestens.
Bei mir kommt aber ein etwas anderes Einsatzgebiet zum Tragen als bei Dir, wo es offenbar hauptsächlich für Parties läuft: bei mir läuft Silverjuke Tag und Nacht an 7 Tagen die Woche im Dauerbetrieb. Hat jemand von der Familie Lust, Musik zu hören, dann wird der Verstärker eingeschaltet und er erhält eine Musikberieslung, die nicht aus den größten Partyhits besteht, sondern eine Musikauswahl, die so auch im Radio laufen könnte (mit dem Unterschied, dass eben keine Verkehrsnachrichten, Wetterlage, Werbung oder sonstiges Gequatsche im Weg ist). Ist bei mir tatsächlich eine Party im Gange, dann ist auch der Touchscreen in Betrieb und die Partygäste können sich ihre Wunschmusik zusammenstellen. Die Rotationsliste kommt bei Parties wenig zum Tragen, da die Gäste inzwischen meist regen Gebrauch von Silverjuke machen.

FredHermann schrieb:
> P.S.: Man kann übrigens auch SQL-Ausdrücke in der Musikauswahl verwenden (ganz unten in der Liste).
> Silverjuke wandelt einem auch das Attribut z.B. "Zuletzt gespielt nicht in den letzten 4 Stunden" in den passenden SQL-Ausdruck um.
> Durch Verknüpfung der einzelnen Attribute mit logischen Operatoren, kann man dann eigentlich jede Musikauswahl erstellen.

Das ist mir durchaus bewusst. Man kann aber eben nicht komplett die SQL-Syntax verwenden, sondern nur Teile davon - nämlich das, was hinter WHERE in einem SELECT-Statement steht, entweder verknüpft mit AND, wenn ganz oben "mit allen der folgenden Kriterien" gewählt wurde oder verknüpft mit OR, wenn oben "mit einigen der folgenden Kriterien" gewählt wurde oder eben NOT, wenn "mit keinem der folgenden Kriterien". Was man nicht machen kann ist die ORDER BY und LIMIT Syntax per SQL begrenzen ("Ergebnis begrenzen auf"), geschweige den mit JOIN arbeiten. Genau aus diesem Grund musste ich durch den etwas komplizierten Reifen springen, eine einschränkende Musikauswahl "hinterherzuschieben" - wenn Silverjuke vollständiges SQL zulassen würde, dann könnte ich die Abfrage in einer Query unterbringen (und zwar genau so, wie ich sie gerne hätte mit der Einschränkung, dass von einem Künstler nichts gespielt werden darf, von dem in den letzten 24 Stunden ein anderes Stück bereits gelaufen ist.
Deshalb schrieb ich ja auch
> An dieser Stelle hätte ich von Silverjuke am liebsten die Möglichkeit, eine echte SQL-Abfrage einzubauen anstelle nur eines Teils des SQL-Statements.

Vielleicht hätte ich schreiben sollen, dass die 24 Stunden in meinem oben aufgeführten Beispiel ersetzt werden können durch die Maximallänge einer Party, also in der Regel 6 Stunden.

Dein Einwand
> Deine Gäste könnten ein Lied aus der Rotationsliste besonders toll finden und manuell 4 mal am Abend reinstellen.
mag für Dich gelten - ich für meinen Teil versuche zu verhindern, dass Lieder mehrfach am Abend gespielt werden (weder durch die Zufallswiedergabe noch durch bewusste Wahl der Gäste), da ich die Erfahrung gemacht habe, dass die Mehrheit des Partyvolks es als eher lästig empfindet, wenn Titel mehrfach am Abend laufen. Ist aber natürlich Geschmackssache und hat mit der vorgestellten Rotationsliste nichts zu tun.

Gruß Joachim
Last edited by Joachim Müller on 5. Jul 13, 06:32, edited 3 times in total.

FredHermann
Posts: 48
Joined: 18. Nov 10, 18:51
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Zufalls-Rotation

Postby FredHermann » 3. Jul 13, 20:48

Hallo Joachim,

dass du Silverjuke als Radioersatz benutzt, hättest du ja auch früher sagen können ^^. Dann ist es schon extrem nervig, wenn man immer die gleiche Musik/ Alben/ Artist hört und dann verstehe ich auch, warum du so eine riesige Playlist hast. Bei meinen Feiern wird Silverjuke leider nicht so doll in Anspruch genommen, wie ich mir das gerne wünsche. Deshalb achte ich ziemlich dolle darauf, welche Musik in der Rotationsliste ist (deshalb eine kleinere Playlist), damit es nicht zu eintönig usw. wird. Mir persönlich ist es eigentlich ziemlich egal, was für Musik gehört wird, deshalb lasse ich "privat" Silverjuke immer den nächsten Titel aus der gesamten Musik auswählen, da findet man auch immer wieder mal einen neuen schicken Titel.

Von SQL-Ausdrücken habe leider nicht viel Ahnung, weshalb ich die gesamten Möglichkeiten nicht erahnen kann, die dahinter stecken. Ich hatte nur gesehen, dass es zumindest die Möglichkeit gibt etwas damit zu machen ^^

Mit freundlichen Grüßen

FredHermann


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Return to “Deutsches Forum”