GNU bug report logs - #74344
[PATCH 0/7] gnu: Add jamesdsp.

Previous Next

Package: guix-patches;

Reported by: Sughosha <sughosha <at> disroot.org>

Date: Wed, 13 Nov 2024 15:44:02 UTC

Severity: normal

Tags: patch

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>, Gabriel Wicki <gabriel <at> erlikon.ch>
Subject: [bug#74344] [PATCH v4 7/7] gnu: Add jamesdsp.
Date: Fri, 21 Feb 2025 14:32:00 +0530
* gnu/packages/audio.scm (jamesdsp): New variable.

Change-Id: Icabd933958029411a2e55ef9515fa3e94c09b22f
---
 gnu/packages/audio.scm | 139 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c1a99aee0f..9f50f7f940 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -52,6 +52,7 @@
 ;;; Copyright �� 2024 Roman Scherer <roman <at> burningswell.com>
 ;;; Copyright �� 2024 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
 ;;; Copyright �� 2025 Junker <dk <at> junkeria.club>
+;;; Copyright �� 2025 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -168,6 +169,7 @@ (define-module (gnu packages audio)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (guix download)
@@ -765,6 +767,143 @@ (define-public qm-dsp
 purposes developed at Queen Mary, University of London.")
     (license license:gpl2+)))
 
+(define-public jamesdsp
+  (package
+    (name "jamesdsp")
+    (version "2.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+          (url "https://github.com/Audio4Linux/JDSP4Linux")
+          (commit version)
+          ;; Recurse GraqhicEQWidget, FlatTabWidget, LiquidEqualizerWidget and
+          ;; EELEditor.
+          (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17vx12kbvwxvb69vzrlb82mrgf6sl3plyk71g9f39p49ialdsnbr"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Unbundle 3rd party libraries.
+        '(begin
+           ;; Delete the bundled 3rd party libraries.
+           (for-each delete-file-recursively
+            (list "3rdparty"
+                  "src/subprojects/EELEditor/3rdparty"
+                  "src/subprojects/EELEditor/QCodeEditor"
+                  "src/subprojects/EELEditor/src/EELEditor-Linker.pri"))
+           (with-directory-excursion "src"
+             (substitute* "src.pro"
+               ;; Do not use bundled 3rd party libraries.
+               ((".*3rdparty.*") "")
+               ;; Link required libraries from system.
+               (("-ldl")
+                (string-join '("-ldl"
+                               "-lasync++"
+                               "-lQCodeEditor"
+                               "-lqcustomplot"
+                               "-lqtadvanceddocking-qt6"
+                               "-lqtcsv"
+                               "-lwaf")
+                               " ")))
+             ;; Fix including WAF headers.
+             (substitute* "MainWindow.cpp"
+                       (("<Animation") "<WAF/Animation"))
+             ;; Do not use resources from the bundled docking-system.
+             (substitute* '("interface/fragment/AppManagerFragment.ui")
+               ((".*location.*3rdparty.*") "")
+               ((" resource=.*>") ">"))
+             (with-directory-excursion "subprojects/EELEditor/src"
+               ;; Do not use bundled QCodeEditor and docking-system.
+               (substitute* "EELEditor.pri"
+                 ((".*(QCodeEditor|docking-system).*") ""))
+               ;; Do not link to bundled docking-system.
+               (substitute* "src.pro"
+                 ((".*EELEditor-Linker.*") ""))
+               ;; Fix including headers from the system.
+               (substitute* (find-files "." "\\.(cpp|h)$")
+                 (("#include <Dock") "#include <qtadvanceddocking-qt6/Dock")
+                 (("#include <FloatingDock")
+                  "#include <qtadvanceddocking-qt6/FloatingDock")
+                 (("#include <QSyntaxStyle")
+                  "#include <QCodeEditor/QSyntaxStyle")
+                 (("#include <QStyleSyntaxHighlighter")
+                  "#include <QCodeEditor/QStyleSyntaxHighlighter")
+                 (("#include <QHighlightRule")
+                  "#include <QCodeEditor/QHighlightRule")
+                 (("#include <QLanguage") "#include <QCodeEditor/QLanguage")
+                 (("#include <QCodeEditor\\.hpp")
+                  "#include <QCodeEditor/QCodeEditor.hpp"))))))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:phases
+           #~(modify-phases %standard-phases
+               ;; Configure using qmake.
+               (replace 'configure
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (invoke "qmake" (string-append "PREFIX=" #$output))))
+               (add-after 'install 'install-icon
+                 (lambda _
+                   (let ((pixmaps (string-append #$output "/share/pixmaps")))
+                     (mkdir-p pixmaps)
+                     (copy-file "resources/icons/icon.png"
+                                (string-append pixmaps "/jamesdsp.png")))))
+               (add-after 'install-icon 'create-desktop-entry-file
+                 (lambda _
+                   (make-desktop-entry-file
+                    (string-append #$output
+                                  "/share/applications/jamesdsp.desktop")
+                    #:name "JamesDSP"
+                    #:comment "Audio effect processor"
+                    #:keywords '("equalizer" "audio" "effect")
+                    #:categories '("AudioVideo" "Audio")
+                    #:exec (string-append #$output "/bin/jamesdsp")
+                    #:icon (string-append #$output "/share/pixmaps/jamesdsp.png")
+                    #:startup-notify #f))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list asyncplusplus
+           glibmm-2.66
+           libarchive
+           pipewire
+           qcodeeditor
+           qcustomplot
+           qt-advanced-docking-system
+           qtcsv
+           qtpromise
+           qtsvg
+           qtwidgetanimationframework))
+    (home-page "https://github.com/Audio4Linux/JDSP4Linux")
+    (synopsis "Audio effect processor for PipeWire and PulseAudio clients")
+    (description "JamesDSP is an audio effect processor for PipeWire and
+PulseAudio clients, featuring:
+@itemize
+@item Automatic bass boost: Frequency-detecting bass-boost
+@item Automatic dynamic range compressor: automated multiband dynamic range
+ adjusting effect
+@item Complex reverberation IIR network (Progenitor 2)
+@item Interpolated FIR equalizer with flexible bands
+@item Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)
+@item AutoEQ database integration (requires network connection)
+@item Partitioned convolver (Auto segmenting convolution): Mono, stereo,
+ full/true stereo (LL, LR, RL, RR) impulse response
+@item Crossfeed: Realistic surround effects
+@item Soundstage wideness: A multiband stereo wideness controller
+@item ViPER-DDC: Parametric equalization on audio and creating VDC input files
+@item Analog modeling: An aliasing-free even harmonic generator
+@item Output limiter
+@item Scripting engine: Live programmable DSP using the EEL2 scripting language
+@item Scripting IDE featuring syntax highlighting, basic code completion,
+ dynamic code outline window, console output support and detailed error
+ messages with inline code highlighting
+@end itemize")
+    (license license:gpl3+)))
+
 (define ardour-bundled-media
   (origin
     (method url-fetch)
-- 
2.47.1





This bug report was last modified 147 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.