Auto mp3gain

Get help with using AutoHotkey and its commands and hotkeys
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Auto mp3gain

03 Jun 2017, 11:01

Is use wxMP3gain to permanently normalize the volume of my music across devices. All I do is open the app, add the song, klick that green check mark, wait a little and close the program. It would be really nice to automate that every time a new .mp3 file is added to the Music folder. Is that possible?

Path

Code: Select all

C:\Program Files (x86)\wxMP3gain\wxMP3gain.exe
mp3gain.png
mp3gain.png (37.58 KiB) Viewed 2537 times
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

03 Jun 2017, 11:15

Isn't that similar to this: [MP3Gain] ??

TBH, ich würde in so einem fall (wie der steuerung mittels AHK) immer eine kommandozeilen-version vorziehen:
[CMD] :thumbup: ... which is part of the GUI download anyway 8-)
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

03 Jun 2017, 11:31

wxMP3gain the successor of MP3gain.

Aber wie funktioniert es automatisch im Hintergrund bei jeder neuen mp3 Datei? ;)
But how does it work completely in the background every time a new mp3 file gets added?
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

03 Jun 2017, 11:39

deutschegebabblindeutscheforumsektion :thumbup:

Well, it's up to you when exactly you wanna trigger the conversion.
a) combined with the download > hotkey
b) constantly scanning the destination folder for incoming files ? SetTimer, Loop,Run, FileMove
c) once in a while > hotkey
d) ...

... and NO:
16.09.2016 - wxMP3gain is a free front-end for the MP3gain
that means MP3gain is still the engine, so let's use its CMD line feature for automated tasks :mrgreen:
User avatar
noname
Posts: 509
Joined: 19 Nov 2013, 09:15

Re: Auto mp3gain

03 Jun 2017, 12:02

" just me " wrote the function WatchFolder() to receive notice when changes are made in a folder.

https://autohotkey.com/boards/viewtopic.php?t=8384
soundcloud.com/user-32706894
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

03 Jun 2017, 12:44

noname wrote:" just me " wrote the function WatchFolder() to receive notice when changes are made in a folder.

https://autohotkey.com/boards/viewtopic.php?t=8384
That's cooooool :dance:
Thx for that hint. Much appreciated :thumbup:
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

03 Jun 2017, 12:48

Code: Select all

copyright(c) 2001-2009 by Glen Sawyer
uses mpglib, which can be found at http://www.mpg123.de

Usage: mp3gain.exe [options] <infile> [<infile 2> ...]

options:
        /v - show version number
        /g <i>  - apply gain i without doing any analysis
        /l 0 <i> - apply gain i to channel 0 (left channel)
                  without doing any analysis (ONLY works for STEREO files, not Joint Stereo)
                  
        /l 1 <i> - apply gain i to channel 1 (right channel)
        /e - skip Album analysis, even if multiple files listed
        /r - apply Track gain automatically (all files set to equal loudness)
        /k - automatically lower Track/Album gain to not clip audio
        /a - apply Album gain automatically (files are all from the same
                      album: a single gain change is applied to all files, so
                      their loudness relative to each other remains unchanged,
                      but the average album loudness is normalized)
                      
        /m <i> - modify suggested MP3 gain by integer i
        /d <n> - modify suggested dB gain by floating-point n
        /c - ignore clipping warning when applying gain
        /o - output is a database-friendly tab-delimited list
        /t - writes modified data to temp file, then deletes original instead of modifying bytes in original file
        /q - Quiet mode: no status messages
        /p - Preserve original file timestamp
        /x - Only find max. amplitude of file
        /f - Assume input file is an MPEG 2 Layer III file (i.e. don't check for mis-named Layer I or Layer II files)
        /? or /h - show this message
        /s c - only check stored tag info (no other processing)
        /s d - delete stored tag info (no other processing)
        /s s - skip (ignore) stored tag info (do not read or write tags)
        /s r - force re-calculation (do not read tag info)
        /s i - use ID3v2 tag for MP3 gain info
        /s a - use APE tag for MP3 gain info (default)
        /u - undo changes made (based on stored tag info)
        /w - "wrap" gain change if gain+change > 255 or gain+change < 0 (use "/? wrap" switch for a complete explanation)
        
If you specify /r and /a, only the second one will work
If you do not specify /c, the program will stop and ask before
     applying gain change to a file that might clip
8-)
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

04 Jun 2017, 02:53

You're right, there is a mp3gain.exe located inside the install directory.

I want the audio files to only calculate and change new files (not existing or just changed files) completely in the background (every 60 seconds) without any prompt (except of course "fatal error") with the default of 89.0 but without writing any data as a tag and maybe even automatically remove any written ReplayGain tag. Files permanently changed as if they were always like that. :)

EDIT: Also I'd like to prevent clipping "/k - automatically lower Track/Album gain to not clip audio".

Will that work? Is something wrong? something missing? or maybe to much? Would be nice if you check this out before I ruin my whole music library. :?

Code: Select all

mp3gain.exe /q /c /s d /s s /r /k /g <89.0> /SetTimer 60
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

04 Jun 2017, 05:11

Die pfeilklammern in der beschreibung zur syntax kennzeichnen variable parameter, heißt, im verwendeten befehl zur ausführung fallen die klammern weg. Ich würde zur umwandlung immer ein separates eingangsverzeichnis verwenden. Nach umwandlung dann die datei in den zielordner verschieben. Damit entfällt zudem die thematik der unterscheidung zw bereits konvertierten und unbehandelten dateien. Pfade sind entsprechend anzupassen!

Code: Select all

F1::Run, cmd /k mp3gain.exe /q /c /s d /s s /r /k /g 89.0 My.mp3 ; press F1 to run ...
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

04 Jun 2017, 06:43

BoBo wrote:Die pfeilklammern in der beschreibung zur syntax kennzeichnen variable parameter, heißt, im verwendeten befehl zur ausführung fallen die klammern weg. Ich würde zur umwandlung immer ein separates eingangsverzeichnis verwenden. Nach umwandlung dann die datei in den zielordner verschieben. Damit entfällt zudem die thematik der unterscheidung zw bereits konvertierten und unbehandelten dateien. Pfade sind entsprechend anzupassen!

Code: Select all

F1::Run, cmd /k mp3gain.exe /q /c /s d /s s /r /k /g 89.0 My.mp3 ; press F1 to run ...
Also wenn mein Musikordner "D:\Music" ist, dann so?

Code: Select all

F1::Run, cmd /k mp3gain.exe /q /c /s d /s s /r /k /g 89.0 D:\Music ; press F1 to run ...
Was ist mit "SetTimer" damit es automatisch funktioniert? Bzgl. des Zwischenordner: Wie definiere man diesen im Skript?
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

04 Jun 2017, 10:17

Code: Select all

mp3gP :=  "D:\MP3G"                         ; pfad zu mp3gain/root path
SPath :=  "D:\MP3G\ToDo"                    ; pfad eingangsverzeichnis/source path
DPath :=  "D:\Music"                        ; pfad zum zielverzeichnis/destination path
param :=  " /q /c /s d /s s /r /k /g 89.0 " ; mp3g parameter/parameters          

F3::                                        ; zum starten drücke F3/press F3 to start
      SetTimer, Check4Files, 5000           ; check alle 5 sek/sec
      Return

Check4Files:
      if !FileExist(SPath . "\*.mp3") ; datei existiert nicht .../file doesn't exist
          Return                      ; zurück auf Los!/... back to sender.
      Loop, Files, % SPath . "\*.mp3" ; datei verarbeitung/file processing
          {
          RunWait, % "cmd /k " . mp3gP . "\" . mp3gain.exe " . param . " " . SPath . "\" . A_LoopFileName ; datei mp3gainen/convert file
          FileMove, % SPath . "\" . A_LoopFileName, % DPath . "\" . A_LoopFileName, 0                     ; nach konvertierung verschieben (nicht überschreiben)/move it (won't override)
          SoundBeep                                                                                       ; make some noize!
          }
      Return
Nicht gestestet AKA ohne Gew[ä|e]hr :silent:
FYI ..
cmd /k = "kiosk" modus, DOS-box bleibt sichtbar (gut zur anzeige von fehlermeldung)
cmd /c = "close" modus, DOS-box schließt nach ausführung
RunWait, ... , Hide versteckt die ausführung der DOS-box
Last edited by BoBo on 04 Jun 2017, 10:39, edited 3 times in total.
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

04 Jun 2017, 10:31

Danke! Wie ich sehe hast du daraus ein AHK Skript gemacht. Also doch nicht mehr via CMD? Warum der Wandel? Außerdem hätte ich noch einige Fragen:

- Läuft das Skript automatisch bis zum nächsten reboot weiter, wenn man es einmal gestartet hat?
- Bzgl. des "D:\MP3G" Ordners: Wird dieser konstant auf neue Dateien überwacht oder wird es der "D:\Music" Ordner?
- Wird nur bei neuen Dateien getriggert oder auch bei veränderten?
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

04 Jun 2017, 10:52

Thouldre wrote:Danke! Wie ich sehe hast du daraus ein AHK Skript gemacht. Also doch nicht mehr via CMD? Warum der Wandel? Außerdem hätte ich noch einige Fragen: Nö, kein wandel. Mit dem hotkey und der ausführung von mp3gain via CMD über Run[Wait] war das immer ein AHKscript.

- Läuft das Skript automatisch bis zum nächsten reboot weiter, wenn man es einmal gestartet hat? ; reboot? Reload, ja.
- Bzgl. des "D:\MP3G" Ordners: Wird dieser konstant auf neue Dateien überwacht oder wird es der "D:\Music" Ordner? Weder noch, überwacht wird "D:\MP3G\ToDo"
- Wird nur bei neuen Dateien getriggert oder auch bei veränderten? Dort, bei allen MP3s die drin liegen. Deswegen getrennte ordner
Wenn du ausschließlich einen einzelnen ordner beackern willst, kannst du unbearbeitete auf read/write-attribut suchen, und mit/nach konvertierung auf readonly setzen. Good luck :)
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

04 Jun 2017, 13:34

Ja, ein einziger Ordner wäre deutlich anwendungsfreundlicher. Könntest du mir einen Hilfelink geben, damit ich versuchen kann mich mit den read/write-attributen vertraut zu machen?
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

05 Jun 2017, 04:44

Ich habe die letzten drei Stunden versucht das hinzukriegen, aber leider nicht geschafft. Mir fehlt anscheinend zu viel Vorwissen... :(

Naja, dann muss ich wohl mit dem ursprünglichen Skript zurechtkommen. Danke für deine Hilfe, ohne dich wäre ich nicht einmal so weit gekommen! Ich weiß das sehr zu schätzen!
Solltest du aber irgendwann mal die Zeit und Lust finden das Skript auf einen einzelnen Ordner anzupassen, würde mich das sehr freuen!
BoBo
Posts: 3872
Joined: 13 May 2014, 17:15

Re: Auto mp3gain

05 Jun 2017, 06:49

Thouldre wrote:Ich habe die letzten drei Stunden versucht das hinzukriegen, aber leider nicht geschafft. Mir fehlt anscheinend zu viel Vorwissen... :(

Naja, dann muss ich wohl mit dem ursprünglichen Skript zurechtkommen. Danke für deine Hilfe, ohne dich wäre ich nicht einmal so weit gekommen! Ich weiß das sehr zu schätzen!
Solltest du aber irgendwann mal die Zeit und Lust finden das Skript auf einen einzelnen Ordner anzupassen, würde mich das sehr freuen!
Da bin ich bereits dran. Allerdings ist das setzen von file attributen (hier für mp3s) scheinbar nicht so ohne weiteres (3rd party tools) möglich. Werde dazu in einem separaten thread hilfe anfragen. Bei "normalen" dateien wären das wohl nur zwei zeilen zusätzlicher code gewesen.
Spoiler
Für mich bleibt allerdings unverständlich warum du mit der zwei folder-lösung nicht glücklich bist (schon aus sicherheitsgründen, denn kaputt probiert is schnell). Aus dem web lädt das system per default dateien in den download-folder (und lokal kannste deine sammlungen eben auch da reinkippen). Dort sollte dann das script auf eingehende dateien lauern. Nach konvertierung wird eh in einen wunsch-ordner verschoben. So what?[/color]

BTW, if you prefer to have a conversation in German (weils einfach einfacher ist :shh:) you should initiate your next thread at the German section ("District 9") of this forum.
Thx for listening 8-)
Thouldre
Posts: 42
Joined: 25 May 2017, 14:29

Re: Auto mp3gain

05 Jun 2017, 08:12

BoBo wrote:Da bin ich bereits dran. Allerdings ist das setzen von file attributen (hier für mp3s) scheinbar nicht so ohne weiteres (3rd party tools) möglich. Werde dazu in einem separaten thread hilfe anfragen. Bei "normalen" dateien wären das wohl nur zwei zeilen zusätzlicher code gewesen.
Spoiler
Danke das du weitermachst!! Es würde mich sehr freuen, wenn das klappt!
BoBo wrote:Für mich bleibt allerdings unverständlich warum du mit der zwei folder-lösung nicht glücklich bist (schon aus sicherheitsgründen, denn kaputt probiert is schnell). Aus dem web lädt das system per default dateien in den download-folder (und lokal kannste deine sammlungen eben auch da reinkippen). Dort sollte dann das script auf eingehende dateien lauern. Nach konvertierung wird eh in einen wunsch-ordner verschoben. So what?[/color]
Weil das eine simplere Lösung im Alltag wäre, die ich auch meinem Bruder einrichten kann ohne dass der Technikmuffel was davon mitbekommen muss. ;)
Außerdem sind im Download Ordner auch mp3 Dateien, die nicht in den Musikordner sollen.

Return to “Ask For Help”

Who is online

Users browsing this forum: AHKStudent, Bing [Bot], F4Jonatas, just me, MStavros, Xeo786 and 54 guests