LameXP - Ein vielfältiger Audio-Konverter (nicht nur) mit LAME MP3

  • Ich öffne hier mal ein Support beitrag für LameXP, weil ich dies nicht so gut in Fremdländsch erklären kann, aber trotzdem etwas dazu schreiben möchte.


    ------------------------------------------------
    LameXP Bugs.Katjarella#001
    * siehe Registry Problem: http://forum.doom9.org/showthread.php?p=1155722#post1155722


    ------------------------------------------------
    LameXP Bugs.Katjarella#002
    * bei defekten FLAGs wird "All files have been encoded successfully!" gemeldet.
    >> Done: Converted 1 files in 15 seconds. 0 errors occured.

    Richtige Meldung erwünscht:

    Quote

    FLAC_DEF.flac: testing, 90% completeFLAC_DEF.flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
    FLAC_DEF.flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
    FLAC_DEF.flac: ERROR while decoding data
    state = FLAC__STREAM_DECODER_READ_FRAME


    ------------------------------------------------
    LameXP Bugs.Katjarella#003
    * Bitraten Management bei MP3s stimmt nicht.

    Compression Method: Quality-based
    Quality/Bitrate: 0 (Highest)
    Restrict Bitrates: Min=64 ; Max=240

    Code
    [EXECUTION] Started by "*\lamexp.2008-07-07.debug.exe" [1064] [EXECUTION] Commandline - [ '*\lame_mp3.exe' --nohist -q 0 -V 0 -b 64 -B 240 --resample 44.1 -m s '*\lamexp_37ff4e26.wav' '*_sourcen\flac_ok.mp3' ]
    Code
    Encoding as 44.1 kHz stereo MPEG-1 Layer III VBR(q=0)    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA  8206/8206  (100%)|    0:11/    0:11|    0:11/    0:11|   18.051x|    0:00[COLOR='Red'] 32 [ 129] %%[/COLOR] 64 [   3] % 80 [   0] 96 [   1] %112 [   2] %128 [   3] %160 [  23] %192 [ 385] %%%%224 [7660] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Richtig mit Parameter : -F strictly enforce the -b option, for use with players that do not support low bitrate mp3

    Code
    Encoding as 44.1 kHz stereo MPEG-1 Layer III VBR(q=0)    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA  8206/8206  (100%)|    0:11/    0:11|    0:11/    0:11|   18.051x|    0:00 64 [ 132] %% 80 [   0] 96 [   1] %112 [   2] %128 [   3] %160 [  23] %192 [ 385] %%%%224 [7660] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Das gleich gilt für die Compression Method: Average Bitrate


    ------------------------------------------------
    LameXP Bugs.Katjarella#004
    * GUI Fehler bei Average Bitrate + Restrict Bitrates

    Es ist Möglich, eine höhere Average Bitrate anzugeben, als die Max Bitrate.

    Code
    [EXECUTION] Commandline - [ '*\lame_mp3.exe' --nohist -q 0 [B][COLOR='Red']--abr 320[/COLOR][/B] -b 64 [B][COLOR='#ff0000']-B 224[/COLOR][/B] --resample 44.1 -m s "*\lamexp_eee17e58.wav" "*\flac_ok (6).mp3" ]

    ------------------------------------------------

    Globale Wünsche:

    • keine Registry Einträge, erst recht keine Dateitypen Verknüpfung mit "LameXP.SupportedAudioFile". Und wenn dann nur per Nachfrage ( wie in der lamexp.2008-07-07.debug ) und NUR wenn es eine DeInstall funktion dazu gibt.
    • extra Parameter wie zb: bei MP3 --vbr-new -p --strictly-enforce-ISO etc per INI Definition

    ------------------------------------------------
    Das wars erstmal und schaun, was denn der Hr. LoRd_MuldeR schreibt.

  • LameXP Bugs.Katjarella#001
    LameXP v3.01 Beta-1 (2008-07-13)

    Quote

    This will not set up the file associations properly when you are running with a restricted account, but at least it won't crash anymore.


    Also das ist der einzige Workarround den Du anbietest? In dem Du versuchst, Deine Registry Einträge einfach reinschaufelst/setzt und nur die den Fehler abfängst? Denn ich hatte gerade das Problem, das der Eintrag "LameXP.SupportedAudioFile" vorhanden war, jedoch selbst der Administrator nicht mal mehr Zugriff auf die Subkeys hatte oder sie verändern durfte. Konnte es nur noch mit einem Spezialprogramm (Security Explorer) wieder berreinigen.

    Wenn Du unbedingt nicht auf die Registry verzichten willst, warum setzt Du dann nicht die "File Associations" im Userprofil?

    Was ist, wenn ich die Software nun lösche, wo ist die DeInstallationsroutine oder bleibt nun meine Registry/System (SendTo) voller "Leichen" ? Wenn JA: ist dies eine sehr Unsaubere Programmierung!

    PS: komme leider nicht an die Sourcen, mediafire.com macht hat wohl Probleme.

  • Du solltest daran denken, dass es sich hier um eine kostenlose OpenSource Software handelt, die lediglich als Hobby entwickelt wurde. Die Zeit, die ich aufwenden kann, um das Programm zu testen und zu warten, ist daher naturgemäß begrenzt. Deine Bugreports sind sehr hilfreich und ich werde versuchden, das meiste davon umzusetzen - sobald ich Zeit habe, mich darum zu kümmern. Aber gegen "Bugs.Katjarella#002" werde ich wohl nichts tun können, solange der FLAC decoder trotz Fehler den Exit Code 0 zurück liefert. Der Registry-Workaround war dafür gedacht, erstmal den Absturz bei Programmstart zu unterbinden. Den ganzen Verknüpfungs-Code neu zu schreiben wird wohl etwas länger dauern. Übrigens kannst du die Verknüpfungen entfernen, in dem du "Developer Tools -> Remove Shell Conext Menu" aus dem Window Menu aufrufst. Dass sich die Registry-Einträge bei dir nicht entfernen lassen, ist wohl eher auf einen Windows bug zurück zu führen als auf einen Fehler in LameXP, da die Einträge mit den "normalen" Registry Funktionen erstellt wurden, die die Win32 API anbietet. Die meisten Windows Programme legen ihre Verknüpfungen auf diese Weise an...

  • Ist ja auch nicht böse gemeint, Du solltest aber mal daran denken, das wie Du ja mal selber schriebst, ein MultiUser System ist und mein Sohn nun auch per Rechtsklick "jedes" Audioformat wandeln könnte. Auch der Administrator braucht sowas nicht bei mir, weil ich persönlich auch nur als User ohne Adminrechte arbeite.

    "Developer Tools -> Remove Shell Conext Menu" : Danke für den Hinweis.

  • Quote from LoRd_MuldeR


    Changes between v3.00 and v3.01:
    * Fixed file associations code (set file associations only for the current user)


    Fehlerhaft! Es wird immer noch in HKEY_CLASSES_ROOT geschrieben

    Quote from LoRd_MuldeR


    Changes between v3.00 and v3.01:
    * Updated load/save configuration code (store settings in an INI file instead of the registry)


    Fehlerhaft! Es wird immer noch in HKEY_CURRENT_USER\Software\MuldeR\LameXP geschrieben.
    Und warum wird die Settings.ini im LameXP-Ordner (da wo auch die LameXP.exe ist) nicht beachtet?

    LameXP v3.04 BETA. Jetzt neu mit WMA Support, natürlich nur als Input :)


    Teils Fehlerhaft!

    Quote

    Windows Media Audio 9 Lossless VBR Quality 100, 44 kHz, 2 channel 16 bit 1-pass VBR

    Code
    LameXP v3.04 (2008-08-15) - Audio Encoder Front-End
    Source File: ***\01 Titel 1.wma
    Output File: ***\LameXP_8F3B4F87.wav
    Commandline: "***\wmawav.exe" "***\01 Titel 1.wma" "***\LameXP_8F3B4F87.wav"
    EXIT CODE: 2147500037
  • Fehlerhaft! Es wird immer noch in HKEY_CLASSES_ROOT geschrieben

    Nein, es wird tatsächlich in "HKEY_CURRENT_USER\Software\Classes" geschrieben ;)

    Fehlerhaft! Es wird immer noch in HKEY_CURRENT_USER\Software\MuldeR\LameXP geschrieben.
    Und warum wird die Settings.ini im LameXP-Ordner (da wo auch die LameXP.exe ist) nicht beachtet?

    1. "Normale" user haben keine Schreibrechte auf den Installationsordner
    2. Daher werden Benutzerspezifische Daten unter "%APPDATA%\Mein Programm" abgelegt, so auch die INI Datei
    3. Der Regsitry eintrag unter "HKEY_CURRENT_USER\Software\MuldeR\LameXP" dient zur Verwaltung mehrerer Instanzen...

    Teils Fehlerhaft!

    Code
    LameXP v3.04 (2008-08-15) - Audio Encoder Front-End
    Source File: ***\01 Titel 1.wma
    Output File: ***\LameXP_8F3B4F87.wav
    Commandline: "***\wmawav.exe" "***\01 Titel 1.wma" "***\LameXP_8F3B4F87.wav"
    EXIT CODE: 2147500037

    Eventuell eine nicht unterstützte WMA Variante (WMA Pro oder WMA Lossless womöglich) oder dein Windows Media Runtime is nich auf dem neuesten Stand. Eine Beispiel Datei wäre hilfreich, da ich praktisch keine WMA Dateien besitze. Die paar Samples, die ich probiert hab, gingen soweit...

  • Nein, es wird tatsächlich in "HKEY_CURRENT_USER\Software\Classes" geschrieben ;)


    Das stimmt NICHT. Habe es gestern getestet! Und dies IMMER auf einem Frisch Installierten System. Einmal als Eingeschrenkter User und im Admin Modus. Letzterem wird in HKCR geschrieben!


    1. "Normale" user haben keine Schreibrechte auf den Installationsordner
    2. Daher werden Benutzerspezifische Daten unter "%APPDATA%\Mein Programm" abgelegt, so auch die INI Datei
    3. Der Regsitry eintrag unter "HKEY_CURRENT_USER\Software\MuldeR\LameXP" dient zur Verwaltung mehrerer Instanzen...


    1: Da Du keine InstallationsRoutine hast, ist ein Installieren garnicht möglich und der "User" muß es irgendwohin speichern, wo er auch schreiben kann. ERGO: ist es dort auch möglich eine ini zu speichern!

    2: Versteh ich, jedoch ist es dann für mein Verständnis sinnloß, weil auf dem System dann Reste bleiben, dich ich nicht will. Und somit kannst Du gleich ( machst ja auch) alles in die Reg schreiben > siehe 3.

    Eventuell eine nicht unterstützte WMA Variante (WMA Pro oder WMA Lossless womöglich) oder dein Windows Media Runtime is nich auf dem neuesten Stand. Eine Beispiel Datei wäre hilfreich, da ich praktisch keine WMA Dateien besitze. Die paar Samples, die ich probiert hab, gingen soweit...


    WMA Pro /Lossless wird von dem hacked CLI Prog unterstützt, anscheinend aber nicht alles ( muß da noch 24bit; 96khz; Mehrkanal testen ). Und da ich die WMA Dateien auf den gleichen frischinstallierten System erstellt habe, funktioniert mein WMA/WMV Encoder 100%.


    EDIT: Warum entpackst Du eigentlich zu Laufzeit eigentlich die CLI Helper und nimmst nicht einfach nen Unterordner wo dort die Tools drin sind? Denn es kommt schon vor, das im TMP Ordner die Programme nicht gelöscht werden.

  • @ katjarella:

    Liegt es eventuell im Rahmen des Denkbaren, dass "HKEY_CLASSES_ROOT" ein Shortcut auf "HKEY_CURRENT_USER\Software\Classes" ist, und nicht auf "HKEY_LOCAL_MACHINE\Software\Classes" - so wie du befürchtest?

    Ach ja: "HKEY_CURRENT_USER" ist auch bloß ein Shortcut auf "HKEY_USERS\SID".

  • Hab ich schon LoRd_MuldeR hier erklärt und es steht auch im Technet bei Microsoft.. glaube da, genaue Erklärung muß ich mal in die Technet.DVDs schaun.


    Edit...
    Hier mal die Infos unter einen Adminaccount...

    LameXP_Decline:

    • Sauberes Windows
    • LameXP.exe auf Desktop kopiert und gestartet.
    • Decline gedrückt > Programm beendet sich automatisch

    LameXP_Accept:

    • Sauberes Windows
    • LameXP.exe auf Desktop kopiert und gestartet.
    • Accept gedrückt. No Update, No WMA Download, Remind = Ja
    • ein paar Einstellungen geändert.
    • Exit Programm.

    LameXP_RemoveShell

    • Sauberes Windows
    • LameXP.exe auf Desktop kopiert und gestartet.
    • Accept gedrückt. No Update, No WMA Download, Remind = Ja
    • ein paar Einstellungen geändert.
    • Adv. Options> Remove Shell Context Menu gedrückt.
    • Meldung kommt, das alles "removed ist" OK> Programm beendet sich automatisch

    Bei allen Drein, wurde die Settings.ini, SendTo Link und div. Registry Einträge erstellt. :(

    Im Anhang die Registry Einträge, die erstellt werden und ein Admin Account Zugriff auf HKEY_CLASSES_ROOT hat, wird dort natürlich auch schön reingeschaufelt.

    Als NonAdmin brauch ich garnicht durchspielen, weil er ja garkein Zugriff auf div. Einträge hat und ich mir sicher bin, das dort auch "Überbleibsl" sind.

  • @ katjarella:

    Liegt es eventuell im Rahmen des Denkbaren, dass "HKEY_CLASSES_ROOT" ein Shortcut auf "HKEY_CURRENT_USER\Software\Classes" ist, und nicht auf "HKEY_LOCAL_MACHINE\Software\Classes" - so wie du befürchtest?

    Quote

    HKEY_CLASSES_ROOT (HKCR)

    Zusammenführung von HKEY_LOCAL_MACHINE\Software\Classes und HKEY_CURRENT_USER\Software\Classes. Hier werden Informationen über die verschiedenen COM-Objekte sowie Dateitypen gespeichert. Darunter fallen die Beschreibung, das Symbol und die verknüpfte Anwendung.

    Sowohl "HKEY_CURRENT_USER\Software\Classes" als auch "HKEY_LOCAL_MACHINE\Software\Classes" werden also nach "HKEY_CLASSES_ROOT" gemapt. Neue Einträge in "HKEY_CLASSES_ROOT" landen scheinbar in "HKEY_LOCAL_MACHINE\Software\Classes", weshalb es bei Benutzern mit eingeschränkten Rechten zu einer Zugriffsverletzung kommt. Daher lege ich jetzt die Einträge in "HKEY_CURRENT_USER\Software\Classes" an. Die Einträge werden aber aus den oben genannten Gründe dennoch in "HKEY_CLASSES_ROOT" erscheinen, wenn man den "HKEY_CLASSES_ROOT" Schlüssel aus dem entsprechenden Benutzerkonto herausbetrachtet. Bei anderen Benutzern sollten die Einträge aber nicht unter "HKEY_CLASSES_ROOT" zu finden sein...

  • Das stimmt NICHT. Habe es gestern getestet! Und dies IMMER auf einem Frisch Installierten System. Einmal als Eingeschrenkter User und im Admin Modus. Letzterem wird in HKCR geschrieben!

    Die Erklärung dazu findest du in meinem vorhergehenden Post ;)

    1: Da Du keine InstallationsRoutine hast, ist ein Installieren garnicht möglich und der "User" muß es irgendwohin speichern, wo er auch schreiben kann. ERGO: ist es dort auch möglich eine ini zu speichern!

    2: Versteh ich, jedoch ist es dann für mein Verständnis sinnloß, weil auf dem System dann Reste bleiben, dich ich nicht will. Und somit kannst Du gleich ( machst ja auch) alles in die Reg schreiben > siehe 3.

    1. Vllt hat es ein andere User (der Admin!?) dort abgelegt, wo ich nicht schreiben darf :zunge:

    2. Die INI-Datei wird erstellt, da einige Benutzer ihre Einstellungen sichern wollen. Das geht mit einer INI-Datei viel einfacher, als irgendwelche Reg-Keys zu importieren/exportieren....

    Denn es kommt schon vor, das im TMP Ordner die Programme nicht gelöscht werden.

    Das ist bei mir nie passiert, außer natürlich wenn das Hauptprogramm abstürzt oder von außen terminiert wird. Dann kann die CleanUp Routine nicht mehr ausgeführt werden.

    Das Hauptprogramm bleibt übrigens beim Beenden solange in einer Schleife hängen, bis alle Temp-Dateien erfolgreich gelöscht wurden oder aber ein Timeout auftritt. In letzterem Fall wird eine Fehlermeldung angezeigt, die den Benutzer darüber informiert, dass eventuell noch Dateien in seinem TEMP Ordner übrig geblieben sind...

  • zu1: das ist nur eine Ausrede und das weißt Du ganz genau!
    zu2: versteh ich, ist auch besser und NOCH besser, wenn die INI erst im Programmverzeichnis ausgelesen/angelegt wird.

    Aber warum verzichtest Du nicht einfach auf die In.die.Reg.Fummellei, verschiebst es in Dein SupportMenü da und wenns jemand will, kann er es darüber verknüpfen. Versteh es echt nicht warum Du Dich da so streubst, das rauszunehmen.

    Die neue Funktionionen hab ich noch nicht testen können, aber unterstützt Du UNICode?

  • zu1: das ist nur eine Ausrede und das weißt Du ganz genau!
    zu2: versteh ich, ist auch besser und NOCH besser, wenn die INI erst im Programmverzeichnis ausgelesen/angelegt wird.

    Benutzer-spezifische Dateien, wie zum Beispiel Einstellungen, sollten IMMER in %APPDATA% abgelegt werden. Dies ist die einzig korrekte und sinnvolle Methode, um Multi-User Betriebssysteme zu unterstützen. Die meisten Programm machen das zum Glück heute auch so...

    Aber warum verzichtest Du nicht einfach auf die In.die.Reg.Fummellei, verschiebst es in Dein SupportMenü da und wenns jemand will, kann er es darüber verknüpfen. Versteh es echt nicht warum Du Dich da so streubst, das rauszunehmen.

    Wenn du diese Funktion nicht magst, steht es dir frei, den entsprechenden Code zu deaktivieren. Es sollte dazu genügen, eine einzige Zeile auszukommentieren ;)

    Die neue Funktionionen hab ich noch nicht testen können, aber unterstützt Du UNICode?

    Delphi 7 -> Kein Unicode :nein:

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!