![]() |
|
Vorstellung von mir und meinem Projekt - Druckversion +- diy-hifi-forum.eu (https://diy-hifi-forum.eu) +-- Forum: Lautsprecher (https://diy-hifi-forum.eu/forumdisplay.php?fid=200) +--- Forum: Messung und Simulation (https://diy-hifi-forum.eu/forumdisplay.php?fid=204) +--- Thema: Vorstellung von mir und meinem Projekt (/showthread.php?tid=22403) Seiten:
1
2
|
Vorstellung von mir und meinem Projekt - Erdie - 02.07.2026 Hallo allerseits, ich bin absolut neu hier und habe keine Kategorie für Vorstellungen gefunden. Das Unterforum "Messen und Simulation" habe ich gewählt, weil dieses meine meine persönliches Thema ist. Ich bin zwar, wie gesagt, neu hier, bin aber selbst nicht mehr der jüngste wenn auch alles relativ ist und habe mich seit der Zeit meines Physik Studiums in den 80ern und 90ern mit Lautsprecher / Filter - Simulation beschäftigt. Natürlich habe ich auch damals Lautsprecher entwickelt, denn es war die Blütezeit der HiFi - Szene. Nur mal vorweg: Die Motivation mich hier anzumelden hat zwar auch damit zu tun mein Open Source Projekt, was ich in damals auf einem 8088 unter DOS / Turbo Pascal entwickelt hatte, zu bewerben. Es bestehen jedoch absolut NULL kommerzielle Interessen denn, wie gesagt, es ist Open Source unter der GPL. Was mich einzig und allein antreibt ist die Freude wenn es andere nutzen und nützlich finden. Wenn dann noch etwas Feedback dazukommt, würde ich mich besonders freuen. Zur Geschichte von "KFilter" ist zu sagen: Die Ur - Version lief unter DOS. In den 90ern gab es nicht vergleichbares. Ich kann mich an ein kommerzielles Produkt unter DOS erinnern, welches damals auf meinem 8088 mehrere Minuten brauchte um einen Plot zu berechnen (es gab noch kaum Co Prozessoren). Ich habe damals extrem viel Aufwand in Laufzeitoptimierungen gesteckt und war in der Lage das gleiche und viel mehr in 1-2s zu berechnen, wofür die Konkurrenz Minuten brauchte. Ende der 90er wollte ich es dann neu für Windows schreiben und habe dann schnell festgestellt, dass Linux / Unix mein Ding ist und bin dann dorthin abgebogen. Der entgültige Port ist dann für KDE1 - KDE3 entstanden. In den 2000ern war das Programm recht populär und auch auf einer SuSE Linux CD drauf. Ich bekam damals Feedback aus aller Welt z. B. Südamerika. Später schlief das Projekt ein, weil ich aus beruflichen Gründen keine Zeit mehr dafür aufwenden konnte, es auf aktuellen System lauffähig zu halten. In den letzten Monaten bin ich angefangen, KFilter auf das QT6 Toolkit ganz neu zu schreiben. Es läuft auf allen Systemen, die QT6 installiert haben, theoretisch auch Windows und Mac und ich habe mich entscheiden es weiter zu entwickeln. Optimal wäre es wenn es auch Linux Nutzer hier gäbe, die es mal ausprobieren möchten. Auch wenn Windows theoretsich funktionieren müßte, kann ich da nicht weiterhelfen, da ich seit ca 25 Jahren kein Windows mehr nutze und eben auch keines mehr habe. Abschließend meine Frage ob es jemanden interessiert und wenn ja, stände ich selbstverständlich zur Hilfe bereit. Um einen Eindruck zu vermitteln, Anbei ein Screenshot: KFilter6 Hier der Link zum GIT Repository: KFilter6 auf GIT Das direkte Einbetten hat irgendwie nicht funktioniert, daher ein Link. Ich würde mich freuen, wenn es Interessenten gibt. Und wie gesagt, es ist vollkommen frei. Ich hatte schon damals kein Interesse irgendetwas zu vermarkten und hab es auch heute nicht. Es macht mir einfach Spass, technische Probleme so elegant wie möglich zu lösen. Grüße Erdie RE: Vorstellung von mir und meinem Projekt - SimonSambuca - 03.07.2026 Hallo Erdie, willkommen im Forum! Spannende Sachen machst Du da
RE: Vorstellung von mir und meinem Projekt - Erdie - 03.07.2026 (03.07.2026, 09:17)SimonSambuca schrieb: Hallo Erdie, Danke Wenn es mal jemand ausprobieren möchte, bin ich bereit. Mir ist klar, die meisten nutzen kein Linux aber der eine oder andere ja vielleicht schon. Beizeiten werde ich mal eine Liste aller momentanen Featues erstellen.
RE: Vorstellung von mir und meinem Projekt - Erdie - 03.07.2026 Ich werde hier mal versuchen, den aktuellen Featureumfang von KFilter6 zu beschreiben (ich arbeite sowieso an der Doku): Allgemein: KFilter – Fokus des Tools KFilter ist ein Simulations- und Entwurfswerkzeug für Lautsprecher, Gehäuseabstimmungen und passive Filterstrukturen. Der Schwerpunkt liegt nicht auf automatisierter Black-Box-Optimierung, sondern auf: schnellem Experimentieren direkter visueller Rückmeldung physikalisch nachvollziehbaren Parametern kompaktem Workflow manuellem Abstimmen von Treibern, Gehäusen und Filtern KFilter richtet sich besonders an Leute, die Lautsprecher nicht nur „nach Rezept“ bauen wollen, sondern verstehen möchten, wie sich Parameteränderungen unmittelbar auf Frequenzgang, Impedanz und Summenverhalten auswirken. Zentrale Features: 1. Mehrere Driver-Slots pro Projekt KFilter arbeitet mit mehreren Treiber-Slots innerhalb eines Projekts. Jeder Slot enthält einen vollständigen Treiberarbeitsstand: Thiele/Small-Parameter Gehäuseparameter Pegel/Gain Polarität Anzeigeoptionen Netzwerk-/Filterdaten Damit lassen sich Mehrweg-Systeme, alternative Abstimmungen oder verschiedene Treiberkonfigurationen innerhalb eines Projekts untersuchen. 2. Eingabe klassischer Thiele/Small-Parameter Für jeden Treiber können zentrale Parameter gepflegt werden, unter anderem: Rdc Schwingspuleninduktivität Resonanzfrequenz Fs/F0 Qts Qes Qms Vas Membrandurchmesser Damit eignet sich KFilter sehr gut für klassische Bass-/Gehäusebetrachtungen und für das Verständnis des Tieftonverhaltens. 3. Gehäuseparameter und Abstimmung Pro Treiber können Gehäuseparameter bearbeitet werden, darunter: Vb Fb Ql V2 Gehäusetyp / Abstimmvorschlag Dadurch lassen sich verschiedene Abstimmungen direkt miteinander vergleichen. Besonders praktisch ist, dass Änderungen an Parametern wie Vb, Fb, Ql sofort sichtbar werden können, ohne ständig einen Berechnungsdialog neu starten zu müssen. 4. Unterstützung verschiedener Gehäuse-/Abstimmkonzepte KFilter ist nicht nur ein einfacher T/S-Rechner, sondern berücksichtigt verschiedene Gehäuse- und Abstimmungssituationen. Typische Anwendungsbereiche sind: geschlossene Gehäuse Bassreflex-Abstimmungen Bandpass-/Mehrvolumenbetrachtungen offene oder einfache Treibermodelle 5. Komfortfunktionen wie Berechnung von Qts aus Qes und Qms sowie Abstimmung nach Hodge und das Einfügen von Standard Filtern KFilter bietet eine Komfortfunktion zur Berechnung von Qts aus Qes und Qms sowie eine Standard Bassreflex Abstimmung nach Hodge als praktische Startparameter für weitere Simulationsexperimente. . Das ist praktisch, weil Datenblätter manchmal nicht alle Werte konsistent oder vollständig angeben, man aber mit den vorhandenen Größen weiterarbeiten möchte. Die Eingabe von Standardfiltern dient für das passive Filternetzwerk als grobe Experimentierbaiss und hat sich für den Workflow als hilfreich erwiesen. 6. Interaktive Driver-Parameter-Bearbeitung Der Driver-Parameter-Dialog ist auf schnelles Arbeiten ausgelegt. Wichtige Eigenschaften: direkte Eingabe über Felder Mausradbedienung der Zahlenfelder Live-Vorschau im Hauptfenster Apply/OK/Cancel-Semantik Das heißt: Man kann Werte ändern und sofort sehen, was passiert, ohne ständig den Dialog schließen oder neu anwenden zu müssen. Ein besonderer Vorteil ist das sichere Preview-Verhalten: Ändern → sofort sehen OK/Apply → übernehmen Cancel → zurück zum vorherigen Stand 7. Passive Netzwerk-/Filterstrukturen pro Treiber Jeder Treiber-Slot besitzt eigene Netzwerkdaten. Damit können Filter-/Weichenelemente pro Treiber modelliert und verändert werden. KFilter eignet sich dadurch nicht nur zur Betrachtung des nackten Treibers, sondern auch zur Untersuchung der Wirkung passiver Beschaltungen. Der aktuelle Slot-Ansatz umfasst einen vollständigen Satz von Netzwerk-Units pro Treiber. 8. Section-Edit-Dialoge mit Live-Verhalten Neben dem Driver-Dialog besitzen auch die Section-Edit-Dialoge ein bewährtes Live-Preview-Verhalten. Das macht Filterarbeit deutlich angenehmer: Bauteilwert ändern Kurve reagiert sofort bei Cancel wird der vorherige Zustand wiederhergestellt 9. Anzeige von Frequenzgang und Impedanz KFilter kann wesentliche Kurven darstellen, insbesondere: Schalldruck-/Frequenzgangkurven Impedanzkurven Summendarstellungen skalare Summen Impedanzsummen Damit sieht man nicht nur den einzelnen Treiber, sondern auch das Zusammenspiel mehrerer Treiber und Netzwerke. 10. Summen- und Vergleichsdarstellungen Ein wichtiger praktischer Vorteil ist die Möglichkeit, verschiedene Kurven gleichzeitig zu betrachten: einzelne Treiber akustische Summe Impedanzverhalten aktivierte/deaktivierte Teilkurven Dadurch kann man schnell prüfen, ob eine Änderung lokal sinnvoll ist oder das Gesamtsystem verschlechtert. 11. Polaritätsumschaltung / Phaseninversion Pro Treiber kann die Polarität invertiert werden. Das ist wichtig für Frequenzweichenexperimente, weil sich gerade im Übergangsbereich zwischen zwei Wegen oft erst durch Umpolung oder Vergleich der Summenbildung zeigt, ob die akustische Addition plausibel ist. 12. Gain/Pegelanpassung pro Treiber Jeder Treiber kann mit einem eigenen Gain-Faktor beziehungsweise Pegel versehen werden. Das ist praktisch für: Pegelabgleich zwischen Wegen Simulation unterschiedlicher Wirkungsgrade Vergleich alternativer Treiber schnelle Korrektur von Lautstärkeunterschieden 13. Anzeigeoptionen pro Treiber KFilter erlaubt, pro Treiber festzulegen, welche Kurven angezeigt oder in Summen berücksichtigt werden. Beispiele: Schalldruckkurve aktiv/inaktiv Impedanzkurve aktiv/inaktiv Summenanteile aktiv/inaktiv Full-Circuit-Betrachtung Das macht das Arbeiten übersichtlich, weil man gezielt Teilaspekte ein- und ausblenden kann. 14. Kompletter Driver-Slot-Import/-Export Ein neueres Feature ist der Import und Export vollständiger Driver-Slots. Das Format ist JSON-basiert und verwendet die Endung: .kfd Ein exportierter Driver-Slot enthält nicht nur die nackten T/S-Daten, sondern den kompletten Slot: T/S-Parameter Gehäuseparameter Ql Gain Plot-Flags Polarität Full-Circuit-Flag Netzwerkwerte Das hat zwei große Vorteile:
15. Projektdateien KFilter arbeitet projektbasiert. Der aktuelle Stand wird in Projektdateien gespeichert. Langfristig ist vorgesehen, das Projektformat auf ein JSON-basiertes .kfp -Format umzustellen. Dadurch wird das Projektformat transparenter, robuster und besser erweiterbar, zum Beispiel für spätere Messdatenintegration. 16. Perspektive: Messdatenintegration Ein geplanter langfristiger Ausbau ist die Integration realer Messdaten. Die Idee ist: FRD/ZMA/CSV/TXT-Messdaten importieren gemessene Kurven als Overlay anzeigen Messdaten pro Treiber zuordnen Simulation und Messung später sinnvoll kombinieren Das ist besonders für Mittel- und Tieftöner interessant, weil T/S-basierte Simulation im höheren Frequenzbereich naturgemäß an Grenzen stößt. Reale Effekte wie Partialschwingungen, reduzierte effektive Membranfläche oder Membranresonanzen können dann besser berücksichtigt werden. Praktische Vorteile von KFilter Schnelles Experimentieren KFilter ist darauf ausgelegt, Parameter schnell zu verändern und die Wirkung sofort zu sehen. Das ist beim Lautsprecherentwurf extrem hilfreich, weil viele Zusammenhänge erst beim interaktiven Verändern wirklich intuitiv werden. Kein Black-Box-Ansatz KFilter versucht nicht, dem Benutzer alle Entscheidungen abzunehmen. Stattdessen zeigt es transparent, wie sich Änderungen auswirken. Das macht es besonders interessant für Anwender, die verstehen wollen, was sie tun. Kompaktes Werkzeug KFilter ist bewusst kein überladenes Monsterprogramm. Der Vorteil ist ein fokussierter Workflow: Treiberparameter eingeben Gehäuse abstimmen Filter/Netzwerk verändern Kurven beobachten Entscheidungen treffen Gut für Lern- und Verständniszwecke Weil die Parameter direkt sichtbar und veränderbar sind, eignet sich KFilter auch sehr gut, um die Wirkung von T/S-Parametern, Gehäusegrößen, Bassreflexabstimmungen und Filtern besser zu verstehen. Praktisch für DIY-Lautsprecherentwicklung Für Selbstbauer ist KFilter besonders nützlich, wenn man schnell Ideen vergleichen möchte: anderes Gehäusevolumen andere Abstimmfrequenz anderer Treiber andere Filtersektion Pegelkorrektur Polaritätsvergleich Impedanzbetrachtung Zu guter Letzt seit noch erwähnt, dass sich Plotfarben und Hintergründe konfigurieren lassen. In Netzwerkfenster kann man den Hintergrund dunkler machen, standart ist Weiß. Sobald der Konstrast zu klein wird, wird die Grafik automatisch invertiert, so dass es wieder lesbar ist. Ich mag es lieber dunkel, daher sieht es im Screenshot auch so aus. Plot und Netzwerktopologie lassen sich als PDF exportieren, dabei wird die Darstellung in beiden Fällen druckerfreundlich adjustiert, so das mach nicht flächig Toner oder Tinte verbraucht auch wenn die Bildschirmansicht auf dunkel konfiguiert ist. Grüße Erdie RE: Vorstellung von mir und meinem Projekt - Gaga - 03.07.2026 Hallo Erdie, Hut ab vor Deiner Entwicklung! Zitat:In den letzten Monaten bin ich angefangen, KFilter auf das QT6 Toolkit ganz neu zu schreiben. Es läuft auf allen Systemen, die QT6 installiert haben, theoretisch auch Windows und Mac und ich habe mich entscheiden es weiter zu entwickeln.An einer Mac-Version hättei ch Interesse. Nutze ansonsten VituixCAD - aus meiner Sicht im Moment der Standard für Treiber-Gehäuse-Frequenzweichen-Simulationen mit importierten Meßdaten - muss aber halt dann mit einer virtuellen Maschine arbeiten. Grüße, Christoph RE: Vorstellung von mir und meinem Projekt - Erdie - 03.07.2026 (03.07.2026, 12:24)Gaga schrieb: Hallo Erdie, Ich habe beruflich einen Mac. Ich werde beizeiten mal versuchen, den Code dort zu kompilieren aber das könnte daran scheitern, dass es sich um ein Firmengerät handelt und ich nicht alles tun darf was ich will. Ich programmiere dort nur in python und bash und dabei kann man mit virtuellen Umgebungen arbeiten. Bei C++ muss man Qt6 vermutlich ins System installieren. Da muss ich probieren ob das geht. Evtl geht es ja ganz einfach, das wird sich zeigen. RE: Vorstellung von mir und meinem Projekt - Erdie - 08.07.2026 Ich arbeite momentan an einer Webseite für KFilter6. Das macht einiges einfacher. Sobald die online ist, melde ich mich zurück. RE: Vorstellung von mir und meinem Projekt - Willi - 10.07.2026 Moin Erdie, interessiert mich sehr. Ich habe zuhause einen Windows PC als auch einen mac und Linux Rechner stehen, alle mit QT ausgestattet. Wenn ich unterstützen kann melde dich einfach wenn es ums kompilieren auf anderen Systemen geht. RE: Vorstellung von mir und meinem Projekt - Erdie - 13.07.2026 (10.07.2026, 05:04)Willi schrieb: Moin Erdie, interessiert mich sehr. Hallo Willi, das freut mich. Versuch doch mal auf dem Linux Rechner entsprechend dem README den Code zu kompilieren Es sollte einfach funktionieren. Welche Distribution hast du? Anbei die Repo URL: https://github.com/erdies/kfilter6 Grüße Martin RE: Vorstellung von mir und meinem Projekt - Olaf_HH - 13.07.2026 Hallo Erdie Willkommen im Forum. Interessant was Du da so vorstellst RE: Vorstellung von mir und meinem Projekt - Willi - 13.07.2026 (13.07.2026, 12:18)Erdie schrieb:Moin Martin, ich nutze Elementary OS, versuche ich mal die nächsten Tage, die Herausforderung wäre für mich aber auf dem Mac, da dies mein Hauptrechner ist.(10.07.2026, 05:04)Willi schrieb: Moin Erdie, interessiert mich sehr. Mein Ziel für die unterstützung wäre, fertige Installationsmedien wie z.b. für - Linux ein rpm- oder deb Paket - Windows eine intallationsdatei (exe) - Mac ein Diskimgage zur Verfügung zu stellen. Das erspart die teilweise umständliche und aufwendige intstallation von QT. Näheres per PN. PS: Hast du dich mal mit dem Installer-Framewouvon QT auseinandergesetzt? RE: Vorstellung von mir und meinem Projekt - Erdie - 13.07.2026 Hi Willi, QT sollte normalerweise immer als Abhängigkeit mit installiert werden d. h. mit dem entsprechenden Paket Installer der entsprechenden Distrubution installiert werden. Wer KDE nutzt, hat das dann automatisch mit drauf. In meinem Fall, da ich Gentoo nutze, wäre es der Befehl: "emerge dev-qt/qtbase", bei rpm basierten Distros dann "rpm -i <Paketname>". Das mitzubringen wäre keine gute Idee, da es mit bereits installierten Paketen kollidieren könnte. Oder wie hast du das gemeint? Grüße Martin RE: Vorstellung von mir und meinem Projekt - Willi - 13.07.2026 (13.07.2026, 17:51)Erdie schrieb: Hi Willi, Moin Martin, ok Gentoo ist was anderes. Ich weiß auch nicht wieviele Leute das noch nutzen. Ich habe für Kunden schon einiges an Software auf dem Mac entwickelt und dann jeweils als „.deb“-„exe“ oder „.dmg“ zur Verfügung gestellt. Die nutzen Standart- Distris wie Debian oder Ubuntu-Derivate. Ich habe auch keine Lust (und Zeit) mich mit Gentoo auseinanderzusetzen. der Sourcecode reicht mir. Ich habe meine Distro nur, um auszuprobieren. Was mit den Abhängigkeiten passiert interessiert mich nicht, da ist Gentoo anders. Melde mich wenn ich mehr weiß RE: Vorstellung von mir und meinem Projekt - Erdie - 14.07.2026 Hi Willi, das mit Gentoo war nur ein Beispiel. Aber Abhängigkeiten werden immer als Referenzen paketiert, z. B. in rpm oder dep. Soweit ist weiß ist das mit den sog. Flatpacks anders, die sind statisch gelinkt. Aber was ich mal probieren könnte, wäre ein statisch gelinktes binary zu erzeugen. Das wäre zwar ziemlich groß aber zumndest einfach so lauffähiig. RE: Vorstellung von mir und meinem Projekt - Willi - 14.07.2026 (14.07.2026, 09:45)Erdie schrieb: Hi Willi, Nunja, die Zeiten mir dem Bits- und Byteszählen sind im Desktopbereich ja vorbei da Plattenplatz günstiger geworden ist. Ich schnüre Pakete, die eigentlich jeder installieren kann ohne groß zu „Scripten“ oder ähnliches. Im Enterprisebereich sieht’s nun wieder anders aus. Ich hätte nie gedacht, das ein Enterprise-Linux (RHEL) unsere Mainframe ablöst, die mit einem Kran durch das Dach in RZ gehievt wurde. Im Endeffekt liegt es an dir… Möchtest du es einem bereiteren Publikum zur Verfügung stellen um ggf. feedback zu erhalten oder doch lieber eine Art „Standalone“? RE: Vorstellung von mir und meinem Projekt - Erdie - 15.07.2026 Kannst du nicht einfach testweise die Quellen mit "git pull" herunterladen und dann kompilieren? Höchstwahrscheinlich wird das auf Anhieb funktionieren und wenn nicht, zeigt der log woran es scheitert. RE: Vorstellung von mir und meinem Projekt - JFA - 15.07.2026 (14.07.2026, 09:45)Erdie schrieb: Flatpacks sind unter Linux das, was früher an Windows kritisiert wurde: jedes Programm bringt seine Abhängigkeiten mit. Ich schaue mal, ob ich es unter Open/FreeBSD kompiliert bekomme. Sollte eigentlich gehen. RE: Vorstellung von mir und meinem Projekt - Willi - 15.07.2026 (15.07.2026, 13:55)Erdie schrieb: Kannst du nicht einfach testweise die Quellen mit "git pull" herunterladen und dann kompilieren? Höchstwahrscheinlich wird das auf Anhieb funktionieren und wenn nicht, zeigt der log woran es scheitert. Kann ich gerne machen wenn ich wieder zurück bin. Hab hier zurzeit auf hoher See keinen Rechner. Und wenn würde ich es auf dem Mac versuchen. Ich denke das ich meine Linux Distro erst aktualisieren müsste da ich diese sehr sehr selten nutze. RE: Vorstellung von mir und meinem Projekt - Erdie - 01.08.2026 (15.07.2026, 14:47)Willi schrieb:(15.07.2026, 13:55)Erdie schrieb: Kannst du nicht einfach testweise die Quellen mit "git pull" herunterladen und dann kompilieren? Höchstwahrscheinlich wird das auf Anhieb funktionieren und wenn nicht, zeigt der log woran es scheitert. Ein Kollege von mir hat das Programm inzwischen erfolgreich auf einem Mac kompliliert. Wir haben das bewußt so getestet weil er keine Ahnung von Lautsprechern und kfilter6 generell hat. Das Ergebnis ist wie folgt: Zusätzlich zu den Schritten im Readme sind folgende Dinge nötig: # Apple Clang, macOS SDK und Build-Werkzeuge xcode-select --install # CMake, Qt 6 Core/Widgets und Ninja brew install cmake qtbase ninja ich werde diese Schritte umgehend in das Readme einbauen unter dem Punkt MacOS Grüße Martin RE: Vorstellung von mir und meinem Projekt - Erdie - 11.08.2026 Weil mir hier und da darauf hingewiesen wurde, dass Programme wie Boxsim und ähnliche Applikationen Schallwandbeeinflussung simulieren können, habe ich auch eine Schallwandsimulation in KFilter eingebaut. KFilter berücksichtigt den Schallwandeinfluss nicht einfach über eine pauschale „Baffle-Step“-Näherung, sondern über ein geometriebasiertes Diffraktionsmodell. Aus Breite und Höhe der rechteckigen Schallwand sowie der tatsächlichen Position des Treibers werden die Beiträge der einzelnen Schallwandkanten frequenzabhängig berechnet. Zusätzlich wird die endliche Membranfläche durch Finite-Piston Spatial Averaging berücksichtigt, anstatt den Treiber nur als idealisierte Punktquelle zu behandeln. Das Ergebnis ist eine komplexe frequenzabhängige Übertragungsfunktion mit Betrag und Phase, die auf das simulierte Treibersignal angewendet wird. Dadurch werden sowohl der eigentliche Baffle Step als auch die durch unterschiedliche Kantenabstände verursachten Diffraktionsstrukturen berücksichtigt. Ich hatte das 2 Wege Zaph Audio Projekt bei der Entwicklung als Referenzobjekt für die Schallwandsimulation verwendet, was sehr interessant und aufschlussreich war, auch weil die Frequenzweiche relativ komplex ist. Grüße Erdie |