Subject: [PATCH v4 2/2] gnu: Add r128gain.

From: Parnikkapore <[email-masked]>
Date: Fri, 4 Aug 2023 22:56:10 +0800

* gnu/packages/audio.scm (r128gain): New variable.
---

Ditto.

 gnu/packages/audio.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8a11d2d6cc..39f7f5496b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -45,6 +45,7 @@
 ;;; Copyright © 2023 Sharlatan Hellseher <[email-masked]>
 ;;; Copyright © 2023 Gabriel Wicki <[email-masked]>
 ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
+;;; Copyright © 2023 Parnikkapore <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -116,7 +117,9 @@ (define-module (gnu packages audio)
   #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -4691,6 +4694,45 @@ (define-public bs1770gain
 loudness of audio and video files to the same level.")
     (license license:gpl2+)))
 
+(define-public r128gain
+  (package
+    (name "r128gain")
+    (version "1.0.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/desbma/r128gain.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0zqclskkjb9hfdw9gq6iq4bs9dl1wj9nr8v1jz6s885379q9l8i7"))))
+    (build-system python-build-system)
+    (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'hardcode-ffmpeg
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "r128gain/__init__.py"
+                  (("ffmpeg_path or \"ffmpeg\"")
+                   (string-append "ffmpeg_path or \""
+                                  (search-input-file inputs "bin/ffmpeg")
+                                  "\""))))))))
+    (inputs (list python-crcmod python-ffmpeg-python python-mutagen
+                  python-tqdm ffmpeg))
+    (native-inputs (list python-future python-requests))
+    (home-page "https://github.com/desbma/r128gain")
+    (synopsis "Fast audio loudness scanner & tagger")
+    (description
+     "r128gain is a multi platform command line tool to scan your audio
+files and tag them with loudness metadata (ReplayGain v2 or Opus R128 gain
+format), to allow playback of several tracks or albums at a similar
+loudness level. r128gain can also be used as a Python module from other
+Python projects to scan and/or tag audio files.")
+    ;; setup.py claims LGPL2+, but this is not corroborated anywhere else
+    (license license:lgpl2.1)))
+
 (define-public filteraudio
   (let ((revision "1")
         (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
-- 
2.41.0