X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/284fa7264963acc5d114ef5d54c347126b1654ba..f8a29a41636fe2de4dfb3f22f9572a2ac3386f8a:/gnu/packages/audio.scm diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3ce8269358..37a38bae89 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2020 Oleg Pykhalov ;;; Copyright © 2018 okapi -;;; Copyright © 2018, 2020 Maxim Cournoyer +;;; Copyright © 2018, 2020, 2022 Maxim Cournoyer ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2018 Brett Gilio ;;; Copyright © 2018, 2019 Marius Bakke @@ -37,6 +37,8 @@ ;;; Copyright © 2021 jgart ;;; Copyright © 2021 Aleksandr Vityazev ;;; Copyright © 2022 Arjan Adriaanse +;;; Copyright © 2022 Juliana Sims +;;; Copyright © 2022 Simon Streit ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,6 +112,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages samba) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) @@ -123,6 +126,7 @@ #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -232,7 +236,7 @@ promoting the market for advanced audio.") ("openal" ,openal))) (synopsis "Software Synthesizer") (description "WildMIDI is a simple software midi player which has a core -softsynth library that can be use with other applications.") +softsynth library that can be used with other applications.") (home-page "https://www.mindwerks.net/projects/wildmidi/") (license (list @@ -362,7 +366,12 @@ Linux kernel.") "07857vdkak306d9s5g6fhmjyxk7vijzjhkmqb15s7ihfxx9lx8xb")))) (build-system cmake-build-system) (arguments - '(#:tests? #f)) ; no check target + '(#:tests? #f ;no check target + + ;; XXX: Building with '-fsanitize=undefined' leads to embedded C++ STL + ;; header file names in libgme.so, meaning that libgme retains a + ;; reference to GCC. Disable UBSAN to avoid that. + #:configure-flags '("-DENABLE_UBSAN=OFF"))) (home-page "https://bitbucket.org/mpyne/game-music-emu") (synopsis "Video game music file playback library") (description @@ -466,31 +475,6 @@ by MusicIP.") (home-page "https://code.google.com/archive/p/musicip-libofa/") (license license:gpl2+))) -(define-public faac - (package - (name "faac") - (version "1.30") - (source - (origin - (method url-fetch) - (uri - (string-append "mirror://sourceforge/faac/faac-src" - "/faac-" version "/faac-1_30.tar.gz")) - (sha256 - (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd")))) - (build-system gnu-build-system) - (native-inputs - (list autoconf automake libtool pkg-config)) - (synopsis "Freeware Advanced Audio Coder") - (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.") - (home-page "https://www.audiocoding.com/faac.html") - (license - (list - ;; ISO MPEG-4 reference code. - license:gpl2+ - ;; Others. - license:lgpl2.0+)))) - (define-public libtimidity (package (name "libtimidity") @@ -584,7 +568,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband liblo qtbase-5)) (native-inputs - (list pkg-config qttools)) + (list pkg-config qttools-5)) (home-page "http://alsamodular.sourceforge.net/") (synopsis "Realtime modular synthesizer and effect processor") (description @@ -616,8 +600,7 @@ Filter) modules follow the convention of 1V / Octave.") "--enable-jack" "--enable-sndfile" "--enable-samplerate" - "--enable-avcodec") - #:python ,python-2)) + "--enable-avcodec"))) (inputs (list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec (native-inputs @@ -873,6 +856,10 @@ engineers, musicians, soundtrack editors and composers.") (lambda* (#:key inputs #:allow-other-keys) (substitute* '("libraries/lib-files/FileNames.cpp") (("\"/usr/include/linux/magic.h\"") "")))) + (add-after 'install 'delete-gratuitous-script + (lambda* (#:key outputs #:allow-other-keys) + (delete-file (string-append (assoc-ref outputs "out") + "/audacity")))) (add-after 'wrap-program 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))) ;; The test suite is not "well exercised" according to the developers, @@ -1158,7 +1145,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 +1154,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 @@ -1393,7 +1380,7 @@ object library.") (define-public csound (package (name "csound") - (version "6.14.0") + (version "6.16.2") (source (origin (method git-fetch) @@ -1402,7 +1389,7 @@ object library.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j")))) + (base32 "1lgasyk8j4cl9178vci1dph63nks3cgwhf8y1d04z9dc8gg15dyn")))) (build-system cmake-build-system) (native-inputs (list bison flex gettext-minimal zlib)) @@ -1914,10 +1901,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 +1946,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 @@ -2239,23 +2274,23 @@ synchronous execution of all clients, and low latency operation.") ;; jack-2 implement the same API. JACK2 is provided primarily as a client ;; program for users who might benefit from the D-BUS features. (define-public jack-2 - (package (inherit jack-1) + (package + (inherit jack-1) (name "jack2") - (version "1.9.14") + (version "1.9.21") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/jackaudio/jack2/releases/" - "download/v" version "/jack2-" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2")))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackaudio/jack2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sbrffmdbajvrk7iqvsvrnwnpvmicvbjyq3f52r6ashdsznsz03b")))) (build-system waf-build-system) (arguments - `(#:tests? #f ; no check target - #:configure-flags '("--dbus" - "--alsa") + `(#:tests? #f ; no check target + #:configure-flags '("--dbus" "--alsa") #:phases (modify-phases %standard-phases (add-before 'configure 'set-linkflags @@ -2269,16 +2304,13 @@ synchronous execution of all clients, and low latency operation.") ((".*CFLAGS.*-Wall.*" m) (string-append m " conf.env.append_unique('LINKFLAGS'," - "'-Wl,-rpath=" %output "/lib')\n"))) - #t)) + "'-Wl,-rpath=" %output "/lib')\n"))))) (add-after 'install 'wrap-python-scripts - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key outputs #:allow-other-keys) ;; Make sure 'jack_control' runs with the correct PYTHONPATH. - (let* ((out (assoc-ref outputs "out")) - (path (getenv "GUIX_PYTHONPATH"))) - (wrap-program (string-append out "/bin/jack_control") - `("GUIX_PYTHONPATH" ":" prefix (,path)))) - #t))))) + (wrap-program (search-input-file outputs "bin/jack_control") + `("GUIX_PYTHONPATH" ":" + prefix (,(getenv "GUIX_PYTHONPATH"))))))))) (inputs (list alsa-lib dbus @@ -2305,17 +2337,15 @@ synchronous execution of all clients, and low latency operation.") "05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj")))) (build-system waf-build-system) (arguments - `(#:tests? #f ; no check target - #:python ,python-2)) + `(#:tests? #f)) ; no check target (inputs - `(("lv2" ,lv2) - ("lilv" ,lilv) - ("suil" ,suil) - ("gtk2" ,gtk+-2) - ("gtk3" ,gtk+) - ("gtkmm" ,gtkmm-2) - ("qtbase" ,qtbase-5) - ("jack" ,jack-1))) + (list lv2 + lilv + suil + gtk + gtkmm + qtbase-5 + jack-1)) (native-inputs (list pkg-config)) (home-page "https://drobilla.net/software/jalv/") @@ -2567,9 +2597,6 @@ compensation, (de)interleaving, and byte-swapping cross-platform audio input/output stream library.") (license license:expat))) -(define-public python2-pyaudio - (package-with-python2 python-pyaudio)) - (define-public python-pyliblo (package (name "python-pyliblo") @@ -2596,9 +2623,6 @@ to send and receive OSC messages using a nice and simple Python API. Also included are the command line utilities @code{send_osc} and @code{dump_osc}.") (license license:lgpl2.1+))) -(define-public python2-pyliblo - (package-with-python2 python-pyliblo)) - (define-public python-soundfile (package (name "python-soundfile") @@ -2759,6 +2783,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") @@ -2782,7 +2838,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") @@ -2805,38 +2861,77 @@ software.") (synopsis "LV2 port of the mda EPiano plugin") (description "An LV2 port of the mda EPiano VSTi."))) -(define-public lvtk - (package - (name "lvtk") - (version "1.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lvtk/lvtk") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1b01zvzl70ana6l1kn8fgyr7msnn3c7x61cgw7fdpp50322352p8")))) - (build-system waf-build-system) - (arguments - `(#:tests? #f ; no check target - #:python ,python-2 - #:configure-flags - (list (string-append "--boost-includes=" - (assoc-ref %build-inputs "boost") - "/include")))) - (inputs - (list boost gtkmm-2 lv2)) - (native-inputs - (list pkg-config)) - (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 +(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 "2" 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 + "0scmv8b4jlm88d21dqqchjy98wb93zclc9x960h213gdi871vsaj")))) + (build-system waf-build-system) + (arguments (list #:tests? #f)) ;no check target + (inputs (list boost gtkmm lv2)) + (native-inputs (list pkg-config)) + (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:gpl3+))) + (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 @@ -2973,21 +3068,25 @@ different audio devices such as ALSA or PulseAudio.") (define-public qjackctl (package (name "qjackctl") - (version "0.9.6") + (version "0.9.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir")))) + "1rvxgxd7bbv7yazcpw3ily0jlra8ms5c0kkf7cybgivahw59zk87")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no check target (inputs - (list jack-1 alsa-lib portaudio qtbase-5 qtx11extras)) + (list alsa-lib + jack-1 + portaudio + qtbase-5 + qtsvg-5)) (native-inputs - (list pkg-config qttools)) + (list pkg-config qttools-5)) (home-page "https://qjackctl.sourceforge.io/") (synopsis "Jack server control application") (description "Control a Jack server. Allows you to plug various sources @@ -3108,7 +3207,7 @@ link REQUIRED)")))))) (string-append ide "/bin")) (delete-file scide))))))) (native-inputs - (list ableton-link pkg-config qttools xorg-server-for-tests)) + (list ableton-link pkg-config qttools-5 xorg-server-for-tests)) (inputs (list jack-1 libsndfile fftw @@ -3122,12 +3221,12 @@ link REQUIRED)")))))) boost-sync yaml-cpp qtbase-5 - qtdeclarative - qtsvg - qtwebchannel - qtwebsockets)) + qtdeclarative-5 + qtsvg-5 + qtwebchannel-5 + qtwebsockets-5)) (propagated-inputs ;to get native-search-path - (list qtwebengine)) + (list qtwebengine-5)) (home-page "https://github.com/supercollider/supercollider") (synopsis "Synthesis engine and programming language") (description "SuperCollider is a synthesis engine (@code{scsynth} or @@ -3162,49 +3261,6 @@ using Guix System.") ;; GNU Library (not Lesser) General Public License. (license license:lgpl2.0+))) -(define-public raul - (package - (name "raul") - (version "0.8.0") - (source (origin - (method url-fetch) - (uri (string-append "https://download.drobilla.net/raul-" - version ".tar.bz2")) - (sha256 - (base32 - "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b")))) - (build-system waf-build-system) - (arguments - `(#:python ,python-2 - #:tests? #f)) ; no check target - (inputs - (list glib boost)) - (native-inputs - (list pkg-config)) - (home-page "https://drobilla.net/software/raul/") - (synopsis "Real-time audio utility library") - (description - "Raul (Real-time Audio Utility Library) is a C++ utility library primarily -aimed at audio/musical applications.") - (license license:gpl2+))) - -(define-public raul-devel - (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624") - (revision "1")) - (package (inherit raul) - (name "raul") - (version (string-append "0.8.9-" revision "." - (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.drobilla.net/raul.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr"))))))) - (define-public resample (package (name "resample") @@ -3268,7 +3324,7 @@ tempo and pitch of an audio recording independently of one another.") (define-public rtmidi (package (name "rtmidi") - (version "4.0.0") + (version "5.0.0") (source (origin (method url-fetch) (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi" @@ -3276,7 +3332,7 @@ tempo and pitch of an audio recording independently of one another.") (file-name (string-append "rtmidi-" version ".tar.gz")) (sha256 (base32 - "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p")))) + "1ff2yfq3k4l209fr71v3w98fpjjv1chs09vkbmxj03lcikahxns8")))) (build-system gnu-build-system) (inputs (list jack-1 alsa-lib)) @@ -3290,6 +3346,19 @@ classes) that provide a common cross-platform API for realtime MIDI input/output.") (license license:expat))) +(define-public rtmidi-4.0 + (package + (inherit rtmidi) + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi" + "/release/rtmidi-" version ".tar.gz")) + (file-name (string-append "rtmidi-" version ".tar.gz")) + (sha256 + (base32 + "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p")))))) + (define-public sratom (package (name "sratom") @@ -3518,19 +3587,19 @@ stretching and pitch scaling of audio. This package contains the library.") (define-public libkeyfinder (package (name "libkeyfinder") - (version "2.2.6") + (version "2.2.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mixxxdj/libkeyfinder") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0s7nqjmv44q5qjynfcs0j6h4a6qcz4mxzandkkdjjbnwv5rxc3zg")))) + (base32 "0nvhdzy0m3bchk3dpnspv2f518p2v9fjcrv36z1sva1pv9a2g35w")))) (build-system cmake-build-system) (native-inputs - (list catch-framework2)) + (list catch2)) (inputs (list fftw)) (home-page "https://mixxxdj.github.io/libkeyfinder/") @@ -3823,7 +3892,7 @@ interface.") (arguments `(#:tests? #f)) ; no "check" phase (native-inputs - (list qttools pkg-config)) + (list qttools-5 pkg-config)) (inputs (list fluidsynth qtbase-5 qtx11extras)) (home-page "https://qsynth.sourceforge.io") @@ -4273,7 +4342,7 @@ code, used in @code{libtoxcore}.") (define-public gsm (package (name "gsm") - (version "1.0.19") + (version "1.0.20") (source (origin (method url-fetch) @@ -4281,8 +4350,7 @@ code, used in @code{libtoxcore}.") (string-append "http://www.quut.com/" name "/" name "-" version ".tar.gz")) (sha256 - (base32 - "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9")))) + (base32 "1gwhmqs24c14gc9qr91iqb2jkbr3qqy4dvf27yf8j7mq322w65b3")))) (build-system gnu-build-system) (arguments `(#:test-target "tst" @@ -4295,8 +4363,7 @@ code, used in @code{libtoxcore}.") ;; mediastreamer. (substitute* "Makefile" (("^CCFLAGS.*" all) - (string-append all "CCFLAGS += -fPIC\n"))) - #t)) + (string-append all "CCFLAGS += -fPIC\n"))))) (add-before 'install 'pre-install (lambda _ (let ((out (assoc-ref %outputs "out"))) @@ -4305,8 +4372,7 @@ code, used in @code{libtoxcore}.") (mkdir-p (string-append out "/man/man1")) (mkdir-p (string-append out "/man/man3")) (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/lib"))) - #t)) + (mkdir-p (string-append out "/lib"))))) (add-after 'install 'post-install (lambda _ (let ((out (assoc-ref %outputs "out"))) @@ -4314,8 +4380,7 @@ code, used in @code{libtoxcore}.") (string-append out "/include")) (mkdir-p (string-append out "/include/gsm")) (copy-recursively "inc" - (string-append out "/include/gsm"))) - #t)) + (string-append out "/include/gsm"))))) (delete 'configure)))) ; no configure script (synopsis "GSM 06.10 lossy speech compression library") (description "This C library provides an encoder and a decoder for the GSM @@ -4346,9 +4411,6 @@ It is currently fairly complete for PCM devices, and has some support for mixers.") (license license:psfl))) -(define-public python2-pyalsaaudio - (package-with-python2 python-pyalsaaudio)) - (define-public ldacbt (package (name "ldacbt") @@ -4632,37 +4694,44 @@ representations.") (file-name (git-file-name name version)) (sha256 (base32 - "1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86")))) + "1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86")) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file-recursively "iniparser") + (substitute* "configure.ac" + (("AC_CONFIG_FILES\\(iniparser/Makefile\\)") "")) + (substitute* "Makefile.am" + (("SUBDIRS = iniparser") "")))))) (build-system gnu-build-system) - (native-inputs - (list autoconf automake libtool)) - (inputs - (list fftw ncurses pulseaudio)) + (native-inputs (list autoconf automake libtool)) + (inputs (list fftw ncurses pulseaudio iniparser)) (arguments - `(#:configure-flags - (list (string-append "PREFIX=" %output) - (string-append "FONT_DIR=" %output "/share/consolefonts")) - #:make-flags - (let ((lib (string-append %output "/lib"))) - (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib))) - #:phases - (modify-phases %standard-phases - (replace 'bootstrap - (lambda* (#:key outputs #:allow-other-keys) - (setenv "HOME" (getcwd)) - (invoke "sh" "autogen.sh"))) - (add-before 'build 'make-cava-ldflags - (lambda* (#:key outputs #:allow-other-keys) - (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) - #t)) - (add-after 'install 'data - (lambda* (#:key outputs #:allow-other-keys) - (for-each (lambda (file) - (install-file file - (string-append (assoc-ref outputs "out") - "/share/doc/examples"))) - (find-files "example_files")) - #t))))) + (list #:configure-flags + #~(list (string-append "PREFIX=" + #$output) + (string-append "FONT_DIR=" + #$output "/share/consolefonts")) + #:make-flags + #~(let ((lib (string-append #$output "/lib"))) + (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib " -lrt"))) + #:phases + #~(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (setenv "HOME" + (getcwd)) + (invoke "sh" "autogen.sh"))) + (add-before 'build 'make-cava-ldflags + (lambda _ + (mkdir-p (string-append #$output "/lib")))) + (add-after 'install 'data + (lambda _ + (for-each (lambda (file) + (install-file file + (string-append #$output + "/share/doc/examples"))) + (find-files "example_files"))))))) (home-page "https://karlstav.github.io/cava/") (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio") (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal @@ -4990,50 +5059,47 @@ as is the case with audio plugins.") (base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no "check" target - #:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-before 'build 'set-CC-variable-and-show-features - (lambda _ - (setenv "CC" "gcc") - (invoke "make" "features"))) - (add-after 'install 'make-carla-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (chmod (string-append out "/share/carla/carla") #o555) - #t))) - (add-after 'install 'wrap-executables - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-script (string-append out "/bin/carla") - #:guile (search-input-file inputs "bin/guile") - `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))) - #t)))))) + (list #:tests? #f ; no "check" target + #:make-flags + #~(list (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'build 'set-CC-variable-and-show-features + (lambda _ + (setenv "CC" #$(cc-for-target)) + (invoke "make" "features"))) + (add-after 'install 'make-carla-executable + (lambda _ + (chmod (string-append #$output "/share/carla/carla") #o555))) + (add-after 'install 'wrap-executables + (lambda* (#:key inputs #:allow-other-keys) + (wrap-script (string-append #$output "/bin/carla") + #:guile (search-input-file inputs "bin/guile") + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH"))))))))) (inputs - `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg) - ("fluidsynth" ,fluidsynth) - ("file" ,file) - ("liblo" ,liblo) - ("libsndfile" ,libsndfile) - ("gtk2" ,gtk+-2) ;needed for bridging GTK2 plugins in GTK3 hosts - ("gtk+" ,gtk+) - ("python-pyliblo" ,python-pyliblo) - ("python-pyqt" ,python-pyqt) - ("python-rdflib" ,python-rdflib) - ;; python-pyqt shows the following error without python-wrapper: - ;; Error while finding module specification for 'PyQt5.uic.pyuic' - ;; (ModuleNotFoundError: No module named 'PyQt5') - ("python-wrapper" ,python-wrapper) - ("libx11" ,libx11) - ("qtbase" ,qtbase-5) - ("zlib" ,zlib) - - ;; For WRAP-SCRIPT above. - ("guile" ,guile-2.2))) + (list alsa-lib + ffmpeg + fluidsynth + file + liblo + libsndfile + libx11 + gtk+-2 ;needed for bridging GTK2 plugins in GTK3 hosts + gtk+ + python-pyliblo + python-pyqt + python-rdflib + ;; python-pyqt shows the following error without python-wrapper: + ;; Error while finding module specification for 'PyQt5.uic.pyuic' + ;; (ModuleNotFoundError: No module named 'PyQt5') + python-wrapper + qtbase-5 + zlib + + ;; For WRAP-SCRIPT above. + guile-2.2)) (native-inputs (list pkg-config)) (home-page "https://kx.studio/Applications:Carla") @@ -5378,11 +5444,11 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.") python ;for running tests portaudio ;for portaudio examples qtbase-5 ;for Qt examples - qtdeclarative - qttools)) + qtdeclarative-5 + qttools-5)) (inputs (list jack-1 ;for JACK examples - qtquickcontrols)) ;for Qt examples + qtquickcontrols-5)) ;for Qt examples (propagated-inputs ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp ;; contains '#include '. @@ -5444,55 +5510,54 @@ while still staying in time.") (define-public butt (package (name "butt") - (version "0.1.32") + (version "0.1.34") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/butt/butt/butt-" version "/butt-" version ".tar.gz")) (sha256 (base32 - "1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r")) + "0zd1g1673pv8z437y34fllxska8dzpd7mygpham35pzwpdyc5c1p")) (modules '((guix build utils))) (snippet '(substitute* "src/butt.cpp" ((".*zica.*") ""))))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (manual (assoc-ref inputs "manual")) - (doc (string-append out "/share/doc/" ,name "-" ,version))) - (install-file "README" doc) - (copy-file manual (string-append doc "/butt-manual.pdf")))))))) - (inputs - `(("dbus" ,dbus) - ("flac" ,flac) - ("fltk" ,fltk) - ("lame" ,lame) - ("libfdk" ,libfdk) - ("libsamplerate" ,libsamplerate) - ("libvorbis" ,libvorbis) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxfixes" ,libxfixes) - ("libxft" ,libxft) - ("libxrender" ,libxrender) - ("ogg" ,libogg) - ("openssl" ,openssl) - ("opus" ,opus) - ("portaudio" ,portaudio))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-documentation + (lambda _ + (let ((doc (string-append #$output "/share/doc/" #$name))) + (install-file "README" doc) + (copy-file #$(this-package-native-input "manual") + (string-append doc "/butt-manual.pdf")))))))) (native-inputs `(("pkg-config" ,pkg-config) - ("manual" ,(origin - (method url-fetch) - (uri (string-append "https://danielnoethen.de/butt/butt-" - version "_manual.pdf")) - (sha256 - (base32 - "0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh")))))) + ("manual" + ,(origin + (method url-fetch) + (uri (string-append "https://danielnoethen.de/butt/butt-" + version "_manual.pdf")) + (sha256 + (base32 "0kadqzzbk25n0aqxgbqhg4mq4hsbjq44phzcx5qj1b8847yzz8si")))))) + (inputs + (list dbus + flac + fltk + lame + libfdk + libsamplerate + libvorbis + libx11 + libxext + libxfixes + libxft + libxrender + libogg + openssl + opus + portaudio)) (home-page "https://danielnoethen.de/butt/") (synopsis "Audio streaming tool") (description "Butt is a tool to stream audio to a ShoutCast or @@ -5758,3 +5823,59 @@ 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.5") + (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 + "01f4zabn22dp0yl7szxck6gkbayk1p5iqajfgzls7mdkba7515b6")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) ;; no tests + (inputs (list alsa-lib + libxkbcommon + pipewire-0.3 + qtbase + 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))) + +(define-public streamripper + (package + (name "streamripper") + (version "1.64.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/projects/streamripper" + "/files/streamripper%20(current)/" + version "/streamripper-" version ".tar.gz")) + (sha256 + (base32 "0hnyv3206r0rfprn3k7k6a0j959kagsfyrmyjm3gsf3vkhp5zmy1")) + (modules '((guix build utils))) + (snippet + ;; Delete bundled copy of libmad. + '(delete-file-recursively "libmad-0.15.1b")))) + (build-system gnu-build-system) + (native-inputs (list pkg-config)) + (inputs (list faad2 glib libmad libvorbis)) + (home-page "http://streamripper.sourceforge.net") + (synopsis "Record audio streams to your hard drive") + (description "Streamripper records shoutcast-compatible +streams. For shoutcast style streams it finds the “meta data” or track +separation data, and uses that as a marker for where the track should +be separated.") + (license license:gpl2+)))