Plugin für "Spitzenpegel finden" - Programmierer gesucht

  • Hallo an Programmierer,


    ich nutze Audacity 1.3.4 unter Windows XP SP 2.
    Ich hätte gerne einen Effekt "Locate Peak Value" / "Finde Spitzenpegel", z.B. als VST-Plugin-dll oder so.


    Ich habe mir selbst eine Utility geschrieben (in einer Programmiersprache, die ich lieber nicht nenne, um Hohn und Spott zu vermeiden), die nach Wahl einer WAV-Datei ermittelt, wo der Spitzenpegel liegt.
    Es ist ein Stand-Alone-Utility, arbeitet nur mit 16-Bit Stereo-WAV-Dateien mit einer Samplefrequenz von 44 100 Hz, gibt den Spitzenwert an (absolute und prozentuale Amplitude) und die Stelle in der Datei (Sample-Nummer und Zeit), wo dieser Spitzenwert zu finden ist.
    Ich weiß auch nicht, ob ich alles richtig gemacht habe, da ich mich im Hau-Ruck-Verfahren erst mal mit dem Aufbau von WAV-Dateien befassen mußte.


    Was ich möchte, ist ein Plug-In-Effekt, der auf eine gerade in Audacity geladene Datei wirkt, den Spitzenwert entweder prozentual oder als dB-Wert ermittelt und den Cursor an die Stelle setzt, wo dieser Wert zu finden ist.


    Mein Programmtext lautet im wesentlichen so:



    Gibt es jemand, der mir daraus ein Plugin basteln kann?
    Oder kann mir jemand sagen, wo es ein solches Plugin schon gibt?
    Ich möchte allerdings kein Riesenpaket mit zig Funktionen.

  • Frage: wie lang (in Minuten oder Sekunden) ist die Tonspur, die Du untersuchen möchtest? Hintergrund: bis zu einer Laufzeit von ca. drei bis fünf Minuten (je nach Speicherausbau des Rechners) wäre das mit einem Audacity Nyquist Plugin machber. Bei mehr als ca. fünf Minuten läuft aber der Speicher über. Bzw. wieviel Speicher hat der Rechner?

  • Für Geld programmiere ich alles ;) ;) ;)


    Nee, im Ernst:


    Was ist das für eine Programmiersprache? Sieht irgendwie nach Basic aus, dann fehlen aber wieder irgendwie die "then" bei der if-Anweisung. Außerdem macht man I/O in Basic mit "open #1 for blablabla" ;)


    Das Problem an der Plugin-Idee ist, dass Audacity derzeit nur Plugins für die Umwandlung von Audiodaten unterstützt. Aspekte der Benutzerschnittstelle, wie z.B. die Cursorposition, können von Plugins nicht kontrolliert werden. Deshalb müsste man diese Funktion direkt in Audacity reinbauen (was aber nicht so schwierig ist). Außerdem ist es vielleicht ein wenig naiv (sorry für die Wortwahl ;)), eine einfache Suche nach dem Maximum durchzuführen. Evtl. will man einen Peak eher durch den RMS-Wert o.ä. finden, um den Algorithmus etwas robuster zu gestalten. Kommt aber auch auf die Anwendung an, die man im Sinn hat. Warum willst Du denn das Maximum haben? Evtl. ist es viel sinnvoller, ein extra Programm zu schreiben, als Audacity aufzubohren?

  • wie kann Nyquist den Cursor setzen? - über den Umweg der Textmarken natürlich: Textmarke setzen, anklicken, Cursor springt zur Textmarke. Ist natürlich nur 'halbautomatisch'. :)


    Aber im Ernst:da das sowieso nicht bei längeren Dateien funktioniert rate ich da dringend von ab.

  • Apropos Textmarken:


    Textspuren können als ganz normale Textdateien importiert und exportiert werden. Das Format der Textdateien ist hier beschrieben:


    http://www.audacity-forum.de/d…-1.3-help/track_label.htm (ganz unten auf der Seite)


    Wenn thiersel doch sowieso schon ein Programm hat, das die richtige Stelle findet, braucht das Programm die Stelle nur in eine entsprechende Datei zu schreiben, und wenn man die dann in Audacity hineinimportiert wird eine Textmarke unter der betreffenden Stelle angezeigt. Ist zwar nicht sehr elegant, würde aber funktionieren.

  • @edgar:
    Hallo Edgar, wir hatten das schon mal (audacity-forum.de/thread/2635). Länge ist die typische Länge von Musikstücken, also meistens ca. 2 bis 8 Minuten, aber ich wäre gerne auch für ein 1-Stunden-Livekonzert gerüstet, wenn es möglch wäre. 5 Minuten ist knapp, aber es ist keine "alles oder nichts" Frage. Speicher: 512 MB RAM, von denen aber nur gut 400 wirklich da sind.
    Nyquist - wie gesagt: Wissen = Null .


    > Textspur - Textdatei
    Das Format habe ich mir noch nicht angesehen. Ich setze mal den Fall, ich komme damit klar. Dann sähe der Ablauf so aus, nachdem ich die fragliche Datei in Audacity geöffnet habe:
    1. Mein Programm starten
    2. Diesem mittels Dateiauswahlfenster Datei-Pfad-und-Name mitteilen.
    3. Textdatei in Audacity importieren
    4. Textmarke lokalisieren (dafür brauche ich die Gesamtansicht, weil die Textmarke ja überall sein kqann) und Cursor auf Max-Pegel-Stelle setzen (wie ist die Korrelation von Textmarke zu Position? In der Gesamtansicht ist so ´ne Textmarke ja ein paar Tausend Samples breit)
    5. vorher oder hinterher einzoomen
    Das ist zu viel. Ich kann jetzt schon in meinem Programm ablesen: Spitzenpegel bei 38,7 s. Da bringt der Textmarker keinen großen Vorteil.
    _________________________________________________________________________________
    Markus
    Hallo Markus

    Quote


    Was ist das für eine Programmiersprache?


    Ich habe doch geschrieben, daß ich Hohn und Spott vermeiden will. Diese Programmiersprache kennt außer mir keiner mehr, aber privat würde ich sie Dir verraten ;)

    Quote


    Cursorposition ... können von Plugins nicht kontrolliert werden


    :(

    Quote


    naiv


    Das ist so meine Art.

    Quote


    RMS-Wert


    Was ist das?

    Quote


    Warum willst Du denn das Maximum haben?


    Ich zitiere aus audacity-forum.de/thread/2635:

    Quote


    ... und ergänze: Auch sehr kurze Knackser, die oft Spitzenpegel haben, sind in einer längeren Datei bei "komplett ins Fenster eingepaßt"-Darstellung nicht immer sofort zu sehen.
    ... und für andere, ähnliche Zwecke.

    Quote


    sinnvoller, ein extra Programm zu schreiben


    Das habe ich ja gemacht, und es funktioniert auch (Testphase sehr kurz). Aber so ein Standalone-Ding ist natürlich unbequem zu benutzen. Hinzu kommt, daß dieses Programm nicht weiß, welche Audio-Datei ich gerade in Audacity geladen habe (meist habe ich genau eine Datei geladen), so daß ich ihm die Datei erst mal über ein Dateiauswahl-Fenster mitteilen muß (diesen Teil habe ich im Code weggelassen), was das Handling noch umständlicher macht.


    _________________________________________________________________________________
    @edgar und Markus
    Mein Wunschtraum: eine Funktion, die ich per festgelegtem Tastaturkürzel aufrufe: Ich drücke "M" auf der Tastatur und der Cursor steht (nach kurzem Grübeln) auf dem Maximum.
    Außerdem ist mein Programm nur bei eng umgrenzten Voraussetzungen brauchbar. Andere WAV-Formate zu berücksichtigen, würde ich mir noch zutrauen, aber bei MP3 müßte ich kapitulieren, obwohl es schön wäre, die Funktion auch für dieses Format zu haben.


    Grüße

  • Quote from thiersel


    Ich habe doch geschrieben, daß ich Hohn und Spott vermeiden will. Diese Programmiersprache kennt außer mir keiner mehr, aber privat würde ich sie Dir verraten ;)


    Wieso, sieht doch clean und skriptig aus und das liegt voll im Trend. Ich programmiere z.B. viel in Python, das sieht auch nicht recht viel anders aus. Lua ist auch so ähnlich, nur das hat eine andere For-Schleife.


    Quote


    Was ist das?


    Das bedeutet vereinfacht gesagt, dass man über einen bestimmten Bereich einen Mittelwert bildet und so ein besseres Maß für die Leistung des Signals an einem Punkt bekommt. So ist das Verfahren weniger anfällig für kleine "Messfehler". Beispiel: wenn Du eine Schallplatte aufnimmst, kriegst Du oft Samples rein, die nahe am Maximum liegen (sog. "Clicks"). Diese Clicks würden bei Deinem Verfahren als Maximum ausgewählt, obwohl es möglicherweise Stellen gibt, an denen die Musik subjektiv viel lauter klingt.


    Siehe auch: http://en.wikipedia.org/wiki/R…ting_the_root_mean_square


    Quote


    @edgar und Markus
    Mein Wunschtraum: eine Funktion, die ich per festgelegtem Tastaturkürzel aufrufe: Ich drücke "M" auf der Tastatur und der Cursor steht (nach kurzem Grübeln) auf dem Maximum.
    Außerdem ist mein Programm nur bei eng umgrenzten Voraussetzungen brauchbar. Andere WAV-Formate zu berücksichtigen, würde ich mir noch zutrauen, aber bei MP3 müßte ich kapitulieren, obwohl es schön wäre, die Funktion auch für dieses Format zu haben.


    Okay, für das was Du beschrieben hast, wäre es in der Tat sinnvoller, Audacity zu erweitern, da Du ja auch die anderen Bearbeitungsfunktionen brauchst (deswegen machst Du es ja). Es wäre auch in der Tat nicht schwierig, das in Audacity reinzubringen, aber ich habe leider derzeit keine Zeit dafür. Wenn Du es selbst probieren willst: es gibt eine Funktion "Nulldurchgänge finden", die mit der Taste "Z" ausgelöst wird. Wenn Du das im Audacity-Sourcecode anschaust, ist es eigentlich einfach zu sehen, wie man parallel dazu eine Tastenkombination "M" registrieren könnte, die das ganze File durchgeht und dann den Cursor auf das Maximum setzt.


    Es wäre aber sicher auch nicht schwierig (Edgar kann das), in, sagen wir, 10-20 Programmzeilen oder so ein Nyquist-Plugin zu programmieren, das die, sagen wir, 3 "lautesten" Stellen im File nach Deiner Maximum-Methode als Textmarken erzeugt. Für Dateien in normaler Song-Länge sollte das auch zeitlich einigermaßen akzeptabel sein. Das hat auch den Vorteil, dass Du, nachdem Du den Cursor versetzt hast, noch weißt, wo die Stellen waren. Denn wenn Audacity einen 5-Minuten-Song nach einem Maximum durchsuchen musst, dauert das schon seine Zeit (was Du ja bei Deinem Tool bestimmt auch schon gemerkt hast).

  • Markus


    Quote


    RMS-Wert ... Mittelwert ... subjektiv viel lauter klingt ...


    Nein, ich will wirklich diesen Peak finden, die subjektive Lautstärke wird anderweitig behandelt (da verlass ich mich auf meine Ohren).


    Quote


    Wenn Du es selbst probieren willst


    Das Problem ist, daß ich kein C++ habe. Ich kann doch nicht meine Exotensprache (na gut, es ist dBase) mit dem herrlichen Audacity C++ vermengen. Das macht doch kein Compiler mit. Oder wie geht das? Ich führe programmiermäßig ein Inseldasein.


    Quote


    einen 5-Minuten-Song nach einem Maximum durchsuchen ... dauert schon seine Zeit (was Du ja bei Deinem Tool bestimmt auch schon gemerkt hast)


    Du sagst es. Ich ringe gerade mit mir, ob ich bei mir als Augenzeitvertreib noch ´nen Fortschrittsbalken reinbaue. Aber dadurch würde es natürlich nochmal langsamer.

  • Quote from thiersel


    Das Problem ist, daß ich kein C++ habe. Ich kann doch nicht meine Exotensprache (na gut, es ist dBase) mit dem herrlichen Audacity C++ vermengen. Das macht doch kein Compiler mit. Oder wie geht das? Ich führe programmiermäßig ein Inseldasein.


    Das gute alte dBase! Da hab ich auch noch damit gearbeitet, zu DOS-Zeiten ;) Naja, C++ solltest Du schon "können". Wobei ja alle Programmiersprachen ähnlich sind. Du machst beim "if" ein paar Klammern mehr und nach jedem Befehl nen Strichpunkt, und dann hast Du schon fast C++ ;) Den Compiler bzw. die IDE gibt's übrigens kostenlos zum Runterladen bei Microsoft (oder ist bei Linux sowieso schon dabei). Also wenn Du die Zeit hast und die Muse, tu's Dir doch mal an, Dein kleines Tool in C++ zu formulieren...


    Quote


    Du sagst es. Ich ringe gerade mit mir, ob ich bei mir als Augenzeitvertreib noch ´nen Fortschrittsbalken reinbaue. Aber dadurch würde es natürlich nochmal langsamer.


    Nur unwesentlich, wenn Du den Fortschrittsbalken nur alle, sagen wir, 100.000 Samples updatest oder so.

  • Falss es interessiert: ich mache gerade einen ein-Stunden-mp3 Versuch mit einem Nyquist 'Peak Finder' Plugin auf einer 256MB Windows Gurke. Wenn das nicht abstürzt (und heute noch fertig wird mit rechnen) hätten wir zumindest mal eine 'vorübergehende' Lösung (C++ dürfte wahrscheinlich um Lichjahre schneller sein). Ich melde mich nachher wieder...

  • Also 'so richtig super' ist was anderes, aber es ist um Klassen 'besser als nichts'.


    Im Anhang unten ist eine Datei 'PeakFinder.ny'. Die kopierst Du ins 'Plug-Ins' Verzeichnis (Unterverzeichnis vom Audacity Installationsverzeichnis (dort, wo die 'audacity.exe' Datei ist), normalerweise ist das "C:\Programme\Audacity...\Plug-Ins"), dort sind auch schon andere '.ny' Dateien. Beim nächsten Start von Audacity hast Du im 'Analyse Menü' einen neuen Eintrag 'Peak Finder'. Wenn Du eine ganze (oder einen Teil einer) Tonspur markierst und dann auf 'Analyse > Peak Finder' gehst erscheint ein Fenster mit zwei Einstellfeldern:


    1. Textmarken


    * Nur am ersten Peak bedeutet, das das Plugin bei mehreren gleich-lauten Peaks nur die erste gefundene Stelle markiert. Das ist für den Fall, dass bei Dateien die z.B. mit einem Limiter bearbeitet wurden (und bei denen es deswegen hunderte gleich-laute Peaks gibt), Dein Bildschirm nicht von Textmarken überschwemmt wird.


    * An allen gleich lauten Peaks bedeutet, dass, wenn es mehrere gleich laute Peaks gibt, *alle* diese Peaks und nicht nur der erste markiert werden.


    2. Mindestabstand - hier kannst Du einstellen, dass, wenn es im Abstand von 'so-und-soviel' Samples gleich laute Peaks gibt, nur der erste davon markiert werden soll.


    Danach auf OK klicken (was 'Abbrechen' macht dürfte klar sein, 'Diagnose' ist nur zum Fehlersuchen interessant).


    Das Plugin durchsucht dann den markierten Teil der Tonspur nach der (oder den) lautesten Stelle(n), am Ende erscheint unter der Tonspur eine Spur mit Textmarken. Alle Peaks sind mit 'P' markiert. Wenn Du in das Feld mit dem 'P' klickst, springt der Cursor in der Tonspur zur Position der jeweiligen Textmarke. Dort kannst Du dann mit den Lupen aus der Werkzeugleiste beliebig nah ran oder wieder weg zoomen.


    Bereits getestete Einschränkungen: auf einem Windows Rechner mit 256MB realen Speicher (ich habe absichtlich einen 'sehr billigen' Rechner mit Minimalausstattung verwendet, so dass die hier berichteten Werte als 'worst-case' Szenario betrachtet werden können) kam ich zu folgenden Ergebnissen:


    Realer Speicher 256MB - Virtueller Speicher: 411212KB, Grenzwert: 634624KB (Angaben laut Windows Task-Manager)
    (Dumme Frage: wie finde ich auf einem Windows Rechner heraus wie schell er ist bzw. wieviel Megahertz er hat?)


    Maximale Länge einer Audacity Stereospur, die noch ohne Probleme bearbeitet werden konnte war 9 Minuten. Bei Mono-Tonspuren verdoppelt sich dieser Wert. Länger geht auch, aber dann wird's ätzend, weil Windows mehr mit 'Speicher ein- und auslagern' als mit 'Tondaten berechnen' beschäftigt ist (das ist nur was für Leute mit guten Nerven).


    Die Analyse der Tonspur erfolgte ungefähr mit 'doppelter Echtzeit', auf deutsch: für eine 9-Minuten Tonspur brauchte Audacity ungefähr viereinhalb Minuten.


    Wenn von vornherein optisch sichtbar ist, dass sich die lauteste Stelle in einem bestimmten Teil der Tonspur befindet, hilft es sehr, vor dem Starten des Plugins nur den betreffenden Teil der Tonspur zu markieren.

  • Dachte ich wäre schon auf dem 2008-Weg, bin aber noch da.


    Markus


    Wegen C++: Wußte nicht, daß man das kostenlos downloaden kann. Dachte, kostet ein paar Hundert Euro.
    Editor ist dabei? Auch Hilfe, Syntax-Sprach-Referenz? Also alles?


    Wieso kennst Du dBase und DOS-Zeiten? Hast Du in der Krabbelgruppe mit Programmieren begonnen?


    @Edgar


    Inzwischen "Peak Finder" nicht nur getestet, sondern schon ein bißchen real genutzt. Sehr sinnvolle(r) Aufbau / Features. Schön, daß die Einstellungen gespeichert werden (ist wohl seit 1.3 Standard). Handling besser als gedacht - flutscht. Unterschied zwischen "OK" und "Diagnose" inzwischen klar (hattest Du auch geschrieben :blush: ). Doppelt so schnell wie angekündigt. DANKE.


    @Edgar und Markus


    Weiterführender Gedanke: Wenn ich den Effekt "Verstärken" aufrufe, weiß Audacity sofort, wieviel dB Headroom noch da sind. Ist es eventuell so, daß Audacity beim Öffnen/Importieren und während eines Verstärkungsvorgangs selbst den Peak sucht (obwohl beides recht schnell geht), auch, um die Wellenformdarstellung richtig hinzukriegen? Merkt es sich vielleicht außerdem auch, wo der Peak ist?
    Wenn ja, kann man auf dieses "Wissen" nicht einfach zugreifen?


    GUTEN RUTSCH

  • Quote from thiersel


    Wegen C++: Wußte nicht, daß man das kostenlos downloaden kann. Dachte, kostet ein paar Hundert Euro.
    Editor ist dabei? Auch Hilfe, Syntax-Sprach-Referenz? Also alles?


    Yup. Für Windows gibt's die gesamte IDE (Editor, Compiler, Linker, das ganze Zeug halt) direkt von Microsoft hier:


    http://www.microsoft.com/germa…ress/visualc/default.mspx


    Das ist jetzt erst seit ein paar Jahren so, es gab aber schon immer (auch für Windows) kostenlose C++-Compiler, und zum Editieren kannst ja im Prinzip jeden beliebigen Text-Editor auch nehmen.


    Bei Linux ist eh so ziemlich alles kostenlos.


    Quote


    Wieso kennst Du dBase und DOS-Zeiten? Hast Du in der Krabbelgruppe mit Programmieren begonnen?


    Naja, ich geh ja jetzt auch schon hart auf die dreißig zu ;) Ich habe etwa mit 12 Jahren mit dem Programmieren begonnen und habe von dBase über die Schulungsunterlagen erfahren, die meine Mutter damals von einem Computer-Weiterbildungslehrgang mit nach Hause gebracht hat...


    Quote


    Weiterführender Gedanke: Wenn ich den Effekt "Verstärken" aufrufe, weiß Audacity sofort, wieviel dB Headroom noch da sind. Ist es eventuell so, daß Audacity beim Öffnen/Importieren und während eines Verstärkungsvorgangs selbst den Peak sucht (obwohl beides recht schnell geht), auch, um die Wellenformdarstellung richtig hinzukriegen? Merkt es sich vielleicht außerdem auch, wo der Peak ist?
    Wenn ja, kann man auf dieses "Wissen" nicht einfach zugreifen?


    Das stimmt, daran hatte ich noch garnicht so richtig gedacht. Audacity speichert zwar nicht, wo der Peak ist, aber merkt sich jeweils für 256 Samples den Maximal- und Minimalwert. Das ist natürlich besser als garnichts, weil es den Algorithmus schon mal 256x schneller machen würde.

  • edgar-rft
    Habe auch gerade das PeakFinder-Plugin erfolgreich getestet und möchte als Vorschlag noch anbringen den Wert des gefundenen Spitzenpegels mit in die Textmarke aufzunehmen (z.B. "P -5" wenn der Spitzenpegel -5 dB hat).


    Auf diesen Thread bin ich aber gestoßen weil ich folgende Frage habe:
    Wie kann ich mehrere Dateien um den gleichen Faktor normalisieren? Habe eine Konzert mitgeschnitten und während der Aufnahme pro Sück eine Datei erzeugt. Auf der fertigen CD sollen die Lautstärkeverhältnisse der einzelnen Stücke zueinander erhalten bleiben.
    Ich könnte natürlich die Stücke hintereinander in eine Spur einfügen und nach dem Normalisieren wieder zerteilen, gibt es noch einen anderen Weg?

  • Unten der Peak Finder mit db Werten in den Textmarken.


    Wenn's aber darum geht herauszufinden wie hoch der höchste Peak in der Gesamtaufnahme ist (bei mehreren Dateien) dürfte das einfachste sein alle Dateien als Tonspuren untereinander in Audacity reinzuladen und auf 'Effekte > Verstärken' zu gehen, dort wird der 'Verstärkungsfaktor' angegzeigt, mit dem auf 100% (odB) 'normalisiert' werden kann, das geht hundert mal schneller als mit dem 'Peak Finder' Plugin. Den Wert vom höchsten Peak schreibst Du Dir auf und verstärkst einfach *alle* Spuren mit diesem Wert (geht vielleicht mit der 'Stapelverarbeitung', habe ich selbst aber noch nicht mit gearbeitet).


    Zur Stapelverarbeitung hat thiersel folgende Anleitung geschrieben: http://www.audacity-forum.de/d…es_stapelverarbeitung.htm


    Wie ich selbst das machen würde: mit dem 'RFT-Limiter' (siehe 'Audacity PlugIns für Radioproduktion': http://www.audacity-forum.de/thread/637) kannst Du die Tonspur 'nach Gehör' normalisieren und ganz laute Peaks im Zweifelsfall einfach abschneiden. Das geht definitiv am schnellsten. Wenn Du jedesmal den gleichen Wert verwendest (muss mit der lautesten Datei ausexperimentiert werden) bleiben die Lautstärkeverhältnisse der Tonspuren untereinander erhalten.

  • Habe mir auch gerade PeakFinder 2 runtergeladen. Weiterhin sehr zufrieden. Die Handhabung ist wirklich okay. Übrigens bin ich auch froh darüber, daß er auch mit MP3-Files funktioniert (und sicher mit allen Audacity-tauglichen Formaten). Das liegt wohl daran, daß Audacity beim Laden immer wandelt und intern nur mit WAV arbeitet?

  • Audacity arbeitet mit '.au' Dateien (SUN, Unix), die gleichen wie sie auch im _data Ordner zu finden sind. Ist auch unkomprimiert, hat aber weniger Verwalungsballast als '.wav'.


    .au Datei Format: http://de.wikipedia.org/wiki/Au_%28Dateiformat%29


    mp3 'ohne Wandeln' ist mit Audacity nicht möglich (siehe http://www.audacity-forum.de/thread/1154).

  • Quote from edgar-rft:1199501174


    ...dürfte das einfachste sein alle Dateien als Tonspuren untereinander in Audacity reinzuladen...


    Logisch, bin selbst nicht darauf gekommen weil es ja kein Mehrspurprojekt ist, danke.


    Quote from edgar-rft:1199501174

    Zur Stapelverarbeitung


    Werde erst noch abwarten was sich da noch tut, habe aber auch nicht so viele Dateien.


    Quote from edgar-rft:1199501174

    Wie ich selbst das machen würde, mit dem 'RFT-Limiter'...


    Daß die eingebaute Normalisieren-Funktion beide Stereo-Kanäle unabhängig auf 0 dB zieht habe ich noch gar nicht gemerkt, damit ist sie ja kaum zu gebrauchen. Werde mir deine Radio-Seite mal zu Gemüte führen.


    Super Forum übrigens, habe schon viel Interessantes gelesen.