From: Sughosha via Guix-patches via <guix-patches@gnu.org>
To: Gabriel Wicki <gabriel@erlikon.ch>
Cc: Sughosha <sughosha@disroot.org>,
74344@debbugs.gnu.org, Gabriel Wicki <gabriel@erlikon.ch>
Subject: [bug#74344] [PATCH v2 7/7] gnu: Add jamesdsp.
Date: Thu, 28 Nov 2024 15:37:46 +0530 [thread overview]
Message-ID: <d32d79352e38e463daecca016f8dd93403a62f8e.1732788466.git.sughosha@disroot.org> (raw)
In-Reply-To: <cover.1732788466.git.sughosha@disroot.org>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 7286 bytes --]
* gnu/packages/audio.scm (jamesdsp): New variable.
Change-Id: I3444a8baf6eef02185c32e42f84f8b64498b7900
---
gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 133 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index f842d77031..e72b4c4bb1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -49,6 +49,7 @@
;;; Copyright © 2024 hapster <o.rojon@posteo.net>
;;; Copyright © 2024 mio <stigma@disroot.org>
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
+;;; Copyright © 2024 Sughosha <sughosha@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -158,6 +159,7 @@ (define-module (gnu packages audio)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (guix build-system waf)
#:use-module (guix download)
@@ -755,6 +757,137 @@ (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.
+ ;; NOTE: QCodeEditor from system fails to build EELEditor. WAF from
+ ;; system fails to build FlatTabWidget. 3rd party library found in
+ ;; LiquidEqualizerWidget is unknown. Hence these libraries found in
+ ;; their respective directories are untouched.
+ '(begin
+ ;; Delete the bundled 3rd party libraries.
+ (for-each delete-file-recursively
+ (list "3rdparty"
+ "src/subprojects/EELEditor/3rdparty/docking-system"
+ "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++"
+ "-lqcustomplot"
+ "-lqt6advanceddocking"
+ "-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 docking-system.
+ (substitute* "EELEditor.pri"
+ ((".*docking-system.*") ""))
+ ;; Do not link to bundled docking-system.
+ (substitute* "src.pro"
+ ((".*EELEditor-Linker.*") ""))
+ ;; Fix including headers from the system.
+ (substitute* '("eeleditor.cpp"
+ "eeleditor.h")
+ (("<Dock") "<qt6advanceddocking/Dock")
+ (("<FloatingDock") "<qt6advanceddocking/FloatingDock"))))))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase
+ #:tests? #f ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (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
+ qcustomplot
+ qt-advanced-docking-system
+ qtcsv
+ qtpromise
+ qtsvg
+ qt-widget-animation-framework))
+ (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 (list license:gpl3+
+ license:gpl2 ;LiquidEqualizerWidget's 3rd party library
+ license:gpl2+ ;GraphicEQWidget
+ license:expat)))) ;QAnimatedSlider and QCodeEditor
+
(define ardour-bundled-media
(origin
(method url-fetch)
--
2.46.0
prev parent reply other threads:[~2024-11-28 10:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 15:37 [bug#74344] [PATCH 0/7] gnu: Add jamesdsp Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 1/7] gnu: Add asyncplusplus Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 2/7] gnu: Add qcodeeditor Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 3/7] gnu: Add qt-advanced-docking-system Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 4/7] gnu: Add qtcsv Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 5/7] gnu: Add qtpromise Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 6/7] gnu: Add widgetanimationframework Sughosha via Guix-patches via
2024-11-13 15:46 ` [bug#74344] [PATCH 7/7] gnu: Add jamesdsp Sughosha via Guix-patches via
2024-11-26 22:52 ` [bug#74344] Review Gabriel Wicki
2024-11-28 8:19 ` Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 0/7] gnu: Add jamesdsp Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 1/7] gnu: Add asyncplusplus Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 2/7] gnu: Add qcodeeditor Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 3/7] gnu: Add qt-advanced-docking-system Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 4/7] gnu: Add qtcsv Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 5/7] gnu: Add qtpromise Sughosha via Guix-patches via
2024-11-28 10:07 ` [bug#74344] [PATCH v2 6/7] gnu: Add qt-widget-animation-framework Sughosha via Guix-patches via
2024-11-28 10:07 ` Sughosha via Guix-patches via [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d32d79352e38e463daecca016f8dd93403a62f8e.1732788466.git.sughosha@disroot.org \
--to=guix-patches@gnu.org \
--cc=74344@debbugs.gnu.org \
--cc=gabriel@erlikon.ch \
--cc=sughosha@disroot.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.