diff options
Diffstat (limited to 'gnu/packages/audio.scm')
-rw-r--r-- | gnu/packages/audio.scm | 180 |
1 files changed, 167 insertions, 13 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 70b0f1181c..bab9d66a2d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se> +;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1158,7 +1159,7 @@ envelope follower, distortion effects, tape effects and more.") (define-public snapcast (package (name "snapcast") - (version "0.24.0") + (version "0.26.0") (source (origin (method git-fetch) (uri (git-reference @@ -1167,7 +1168,7 @@ envelope follower, distortion effects, tape effects and more.") (file-name (git-file-name name version)) (sha256 (base32 - "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g")))) + "091gf3k1xv3k0m0kf2apr9bwiifw2czjcksd3vzwy544sfgrya08")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no included tests @@ -1914,10 +1915,44 @@ also play midifiles using a Soundfont.") "Faust is a programming language for realtime audio signal processing.") (license license:gpl2+))) +;; This version is needed to build older synths that require the lv2synth.cpp +;; architecture file, such as sorcer. +(define-public faust-0.9.67 + (package + (inherit faust) + (name "faust") + (version "0.9.67") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grame-cncm/faust") + (commit (string-append "v" + (string-map (lambda (c) + (if (char=? c #\.) #\- c)) + version))))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0856x666s6ymzk8v15f9gy402dbr8c9v2s40hyfadhraqljmqrm0")) + (snippet + ;; Remove prebuilt library + '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so")))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags + #~(list (string-append "prefix=" #$output)) + #:tests? #f + #:phases + '(modify-phases %standard-phases + ;; no "configure" script + (delete 'configure)))) + (native-inputs (list unzip)))) + (define-public faust-2 (package (inherit faust) - (version "2.5.23") + (version "2.41.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/grame-cncm/faust/" @@ -1925,15 +1960,29 @@ also play midifiles using a Soundfont.") "/faust-" version ".tar.gz")) (sha256 (base32 - "1yz5jnr76hh7rmxkpdi7gyrw1wp4gyqfpq8zyl97qdi5ga5gjznq")))) - (build-system gnu-build-system) + "0gk8ifxrbykq7ay0nvjns8fjryhp0wfhv5npgrl8xpgw9wfmw53j")))) + (build-system cmake-build-system) (arguments - (substitute-keyword-arguments (package-arguments faust) - ((#:make-flags flags) - `(list (string-append "prefix=" (assoc-ref %outputs "out")) - "world")))) + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + ;; The upstream package uses make to run cmake during the build stage. + ;; Here we ignore the Makefile and call cmake directly. + (replace 'configure + (lambda _ + (chdir "build") + (invoke "cmake" "-C" "backends/all.cmake" + (string-append "-DCMAKE_INSTALL_PREFIX=" + (assoc-ref %outputs "out"))))) + ;; The sound2faust tool would be built in the Makefile's "world" target + (add-after 'install 'sound2faust + (lambda _ + (chdir "../tools/sound2faust") + (setenv "PREFIX" (assoc-ref %outputs "out")) + (invoke "make") + (invoke "make" "install")))))) (native-inputs - `(("llvm" ,llvm-3.8) + `(("llvm" ,llvm) ("which" ,which) ("xxd" ,xxd) ("ctags" ,emacs-minimal) ; for ctags @@ -2748,6 +2797,38 @@ add functionality to support the needs of increasingly powerful audio software.") (license license:isc))) +(define-public ttl2c + (package + (name "ttl2c") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lvtk/ttl2c") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aybx8i5i0sridi9130a3937xgmfmjkk8m48f9whvhlhbzwy3xbl")))) + (build-system waf-build-system) + (arguments + (list + #:tests? #false ;no check target + #:phases + `(modify-phases %standard-phases + (add-before 'configure 'setup-waf + (lambda* (#:key inputs #:allow-other-keys) + (let ((waf (assoc-ref inputs "python-waf"))) + (copy-file (string-append waf "/bin/waf") "waf"))))))) + (inputs (list boost)) + (native-inputs (list python-waf)) + (home-page "https://github.com/lvtk/ttl2c") + (synopsis "Turtle to C header conversion utility for LV2 plugins") + (description + "This package provides a conversion utility for LV2 Plugin developers to +generate C headers from Turtle files.") + (license license:gpl3+))) + (define-public lv2-mda-piano (package (name "lv2-mda-piano") @@ -2771,7 +2852,7 @@ software.") (inputs (list lv2 lvtk)) (native-inputs - (list pkg-config)) + (list pkg-config ttl2c)) (native-search-paths (list (search-path-specification (variable "LV2_PATH") @@ -2794,14 +2875,14 @@ software.") (synopsis "LV2 port of the mda EPiano plugin") (description "An LV2 port of the mda EPiano VSTi."))) -(define-public lvtk +(define-public lvtk-2 ;; Use the latest commit, as the latest release was made in 2014 and depends ;; on Python 2. (let ((commit "a73feabe772f9650aa071e6a4df660e549ab7c48") (revision "0")) (package (name "lvtk") - (version (git-version "1.2.0" revision commit)) + (version (git-version "2" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -2823,6 +2904,49 @@ extensions into easy to use C++ classes. It is the successor of lv2-c++-tools.") (license license:isc)))) +(define-public lvtk-1 + ;; Use the latest commit, as the latest release was made in 2014 and depends + ;; on Python 2. + (let ((commit "23dd99531d88d7821b69f6f0d60516ef322a6729") + (revision "0")) + (package + (name "lvtk") + (version (git-version "1.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lvtk/lvtk") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0iw7skvsn3whw69dhcxbbdns7mssaf6z6iyzxjav53607ibyfr8d")))) + (build-system waf-build-system) + (arguments + (list + #:tests? #false ;no check target + #:configure-flags + #~(list (string-append "--boost-includes=" + #$(this-package-input "boost") + "/include")) + #:phases + `(modify-phases %standard-phases + (add-before 'configure 'setup-waf + (lambda* (#:key inputs #:allow-other-keys) + (let ((waf (assoc-ref inputs "python-waf"))) + (copy-file (string-append waf "/bin/waf") "waf"))))))) + (inputs (list boost gtkmm lv2)) + (native-inputs (list pkg-config python-waf)) + (home-page "https://github.com/lvtk/lvtk") + (synopsis "C++ libraries for LV2 plugins") + (description + "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and +extensions into easy to use C++ classes. It is the successor of +lv2-c++-tools.") + (license license:isc)))) + +(define-public lvtk lvtk-1) + (define-public openal (package (name "openal") @@ -5713,3 +5837,33 @@ source and extracts a 24-bit high resolution WAV file. It handles both DST and DSD streams.") (home-page "https://tari.in/www/software/odio-sacd/") (license license:gpl3+))) + +(define-public qpwgraph + (package + (name "qpwgraph") + (version "0.3.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/rncbc/qpwgraph") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zja4klvzbfwi14ihiahl8zm869h0c1yrpfkzvixxjcps372hh07")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ;; no tests + (inputs (list alsa-lib + pipewire-0.3 + ;; qtsvg is still on version 5; use qtbase-5 to match + qtbase-5 + qtsvg)) + (native-inputs (list pkg-config)) + (synopsis "PipeWire graph manager") + (description + "qpwgraph is a graph manager dedicated to PipeWire, using the Qt C++ +framework. It provides a visual interface to audio and video connections +managed by PipeWire.") + (home-page "https://gitlab.freedesktop.org/rncbc/qpwgraph") + (license license:gpl2))) |