gnu: containerd: Update to 1.4.4.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
index 90b4ba3..eff45af 100644 (file)
@@ -1,14 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -19,7 +19,7 @@
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -27,7 +27,7 @@
 ;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
@@ -58,6 +58,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
        (method git-fetch)
        (uri
         (git-reference
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry")
          (commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
        (file-name (git-file-name name version))
        (sha256
          (commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
        (file-name (git-file-name name version))
        (sha256
@@ -196,17 +197,17 @@ promoting the market for advanced audio.")
 (define-public wildmidi
   (package
     (name "wildmidi")
 (define-public wildmidi
   (package
     (name "wildmidi")
-    (version "0.4.3")
+    (version "0.4.4")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/Mindwerks/wildmidi.git")
+         (url "https://github.com/Mindwerks/wildmidi")
          (commit (string-append name "-" version))))
        (file-name (git-file-name name version))
        (sha256
          (commit (string-append name "-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+        (base32 "08fbbsvw6pkwwqarjwcvdp8mq4zn5sgahf025hynwc6rvf4sp167"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; No target
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; No target
@@ -277,7 +278,7 @@ Coding (AAC) encoder.")
        (method git-fetch)
        (uri
         (git-reference
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/tinyalsa/tinyalsa.git")
+         (url "https://github.com/tinyalsa/tinyalsa")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -300,7 +301,7 @@ Linux kernel.")
 (define-public libopenmpt
   (package
     (name "libopenmpt")
 (define-public libopenmpt
   (package
     (name "libopenmpt")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -308,7 +309,7 @@ Linux kernel.")
         (string-append "https://download.openmpt.org/archive/libopenmpt/src/"
                        "libopenmpt-" version "+release.autotools.tar.gz"))
        (sha256
         (string-append "https://download.openmpt.org/archive/libopenmpt/src/"
                        "libopenmpt-" version "+release.autotools.tar.gz"))
        (sha256
-        (base32 "1f155yf5v57dwhzb7z0kh67lckr3yq4x8040dm54qgbxw582la77"))))
+        (base32 "0h7gpjx1221jwsq3k91p8zhf1h77qaxyasakc88s3g57vawhckgk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -475,41 +476,15 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
 (define-public alsa-modular-synth
   (package
     (name "alsa-modular-synth")
 (define-public alsa-modular-synth
   (package
     (name "alsa-modular-synth")
-    (version "2.1.2")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/alsamodular/alsamodular"
                                   "/" version "/ams-" version ".tar.bz2"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/alsamodular/alsamodular"
                                   "/" version "/ams-" version ".tar.bz2"))
               (sha256
                (base32
-                "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))
-              (patches
-               (search-patches "alsa-modular-synth-fix-vocoder.patch"))))
+                "056dn6b9c5nsw2jdww7z1kxrjqqfvxjzxhsd5x9gi4wkwyiv21nz"))))
     (build-system gnu-build-system)
     (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       '("--enable-qt5"
-         "CXXFLAGS=-std=gnu++11")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'set-paths 'hide-default-gcc
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((gcc (assoc-ref inputs "gcc")))
-               ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
-               ;; conflicts with the GCC 5 input.
-               (setenv "CPLUS_INCLUDE_PATH"
-                       (string-join
-                        (delete (string-append gcc "/include/c++")
-                                (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
-                        ":"))
-               #t)))
-         ;; Insert an extra space between linker flags.
-         (add-before 'configure 'add-missing-space
-           (lambda _
-             (substitute* "configure"
-               (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
-               (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
-             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
@@ -522,8 +497,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
        ("qtbase" ,qtbase)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qtbase" ,qtbase)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("gcc@5" ,gcc-5)))
+       ("qttools" ,qttools)))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -702,7 +676,7 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.4.1")
+    (version "2.4.2")
     (source
      (origin
        (method git-fetch)
     (source
      (origin
        (method git-fetch)
@@ -712,8 +686,9 @@ engineers, musicians, soundtrack editors and composers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn"))
-       (patches (search-patches "audacity-build-with-system-portaudio.patch"))
+         "0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546"))
+       (patches (search-patches "audacity-build-with-system-portaudio.patch"
+                                "audacity-add-include.patch"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -723,7 +698,7 @@ engineers, musicians, soundtrack editors and composers.")
               (delete-file-recursively (string-append "lib-src/" dir)))
             '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
               "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
               (delete-file-recursively (string-append "lib-src/" dir)))
             '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
               "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
-              "portaudio-v19" "portmidi" "soundtouch" "twolame"
+              "portmidi" "soundtouch" "twolame"
               ;; FIXME: these libraries have not been packaged yet:
               ;; "libnyquist"
               ;; "libscorealign"
               ;; FIXME: these libraries have not been packaged yet:
               ;; "libnyquist"
               ;; "libscorealign"
@@ -737,7 +712,7 @@ engineers, musicians, soundtrack editors and composers.")
               ;; "sbsms"
               ))
            #t))))
               ;; "sbsms"
               ))
            #t))))
-    (build-system glib-or-gtk-build-system)
+    (build-system cmake-build-system)
     (inputs
      `(("wxwidgets" ,wxwidgets)
        ("gtk+" ,gtk+)
     (inputs
      `(("wxwidgets" ,wxwidgets)
        ("gtk+" ,gtk+)
@@ -759,7 +734,6 @@ engineers, musicians, soundtrack editors and composers.")
        ("lv2" ,lv2)
        ("lilv" ,lilv)                   ;for lv2
        ("suil" ,suil)                   ;for lv2
        ("lv2" ,lv2)
        ("lilv" ,lilv)                   ;for lv2
        ("suil" ,suil)                   ;for lv2
-       ("portaudio" ,portaudio)
        ("portmidi" ,portmidi)))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("portmidi" ,portmidi)))
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -767,56 +741,28 @@ engineers, musicians, soundtrack editors and composers.")
        ("gettext" ,gettext-minimal)     ;for msgfmt
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)     ;for msgfmt
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
-       ("python" ,python-2)
+       ("python" ,python)
        ("which" ,which)))
     (arguments
      `(#:configure-flags
        ("which" ,which)))
     (arguments
      `(#:configure-flags
-       (let ((libid3tag (assoc-ref %build-inputs "libid3tag"))
-             (libmad (assoc-ref %build-inputs "libmad"))
-             (portmidi (assoc-ref %build-inputs "portmidi")))
-         (list
-          ;; Loading FFmpeg dynamically is problematic.
-          "--disable-dynamic-loading"
-          ;; SSE instructions are available on Intel systems only.
-          ,@(if (any (cute string-prefix? <> (or (%current-target-system)
-                                                 (%current-system)))
-                    '("x86_64" "i686"))
-              '()
-              '("--enable-sse=no"))
-          ;; portmidi, libid3tag and libmad provide no .pc files, so
-          ;; pkg-config fails to find them.  Force their inclusion.
-          (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
-          (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")
-          (string-append "LIBMAD_CFLAGS=-I" libmad "/include")
-          (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")
-          (string-append "PORTMIDI_CFLAGS=-I" portmidi "/include")
-          (string-append "PORTMIDI_LIBS=-L" portmidi "/lib -lportmidi")
-          "EXPAT_USE_SYSTEM=yes"
-          "FFMPEG_USE_SYSTEM=yes"
-          "LAME_USE_SYSTEM=yes"
-          "LIBFLAC_USE_SYSTEM=yes"
-          "LIBID3TAG_USE_SYSTEM=yes"
-          "LIBMAD_USE_SYSTEM=yes"
-          "USE_LOCAL_LIBNYQUIST="      ;not packaged yet
-          ;;"LIBSBSMS_USE_SYSTEM=yes"  ;bundled version is patched
-          "LIBSNDFILE_USE_SYSTEM=yes"
-          "LIBSOUNDTOUCH_USE_SYSTEM=yes"
-          "LIBSOXR_USE_SYSTEM=yes"
-          "LIBTWOLAME_USE_SYSTEM=yes"
-          "LIBVAMP_USE_SYSTEM=yes"
-          "LIBVORBIS_USE_SYSTEM=yes"
-          "LV2_USE_SYSTEM=yes"
-          "PORTAUDIO_USE_SYSTEM=yes"))
+       (list
+        ;; Loading FFmpeg dynamically is problematic.
+        "-Daudacity_use_ffmpeg=linked"
+        "-Daudacity_use_lame=system"
+        "-Daudacity_use_portsmf=system")
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%cmake-build-system-modules)
+       #:modules
+       ((guix build utils)
+        (guix build cmake-build-system)
+        ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
        #:phases
        (modify-phases %standard-phases
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-sbsms-check
+         (add-after 'unpack 'comment-out-revision-ident
            (lambda _
            (lambda _
-             ;; This check is wrong: there is no 2.2.0 release; not even the
-             ;; bundled sources match this release string.
-             (substitute* '("m4/audacity_checklib_libsbsms.m4"
-                            "configure")
-               (("sbsms >= 2.2.0") "sbsms >= 2.0.0"))
-             #t))
+             (substitute* "src/AboutDialog.cpp"
+               (("(.*RevisionIdent\\.h.*)" include-line)
+                (string-append "// " include-line)))))
          (add-after 'unpack 'use-upstream-headers
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/NoteTrack.cpp"
          (add-after 'unpack 'use-upstream-headers
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/NoteTrack.cpp"
@@ -826,12 +772,13 @@ engineers, musicians, soundtrack editors and composers.")
                (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
                (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
              (substitute* "src/prefs/MidiIOPrefs.cpp"
                (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
                (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
              (substitute* "src/prefs/MidiIOPrefs.cpp"
-               (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))
-             #t)))
-       ;; The test suite is not "well exercised" according to the developers,
-       ;; and fails with various errors.  See
-       ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
-       #:tests? #f))
+               (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))))
+         (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,
+         ;; and fails with various errors.  See
+         ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
+         #:tests? #f))
     (home-page "https://www.audacityteam.org/")
     (synopsis "Software for recording and editing sounds")
     (description
     (home-page "https://www.audacityteam.org/")
     (synopsis "Software for recording and editing sounds")
     (description
@@ -1105,6 +1052,40 @@ performances.  The plugins include a cellular automaton synthesizer, an
 envelope follower, distortion effects, tape effects and more.")
     (license license:gpl2+)))
 
 envelope follower, distortion effects, tape effects and more.")
     (license license:gpl2+)))
 
+(define-public snapcast
+  (package
+    (name "snapcast")
+    (version "0.24.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/badaix/snapcast")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f))                    ; no included tests
+    (inputs
+     `(("boost" ,boost)
+       ("libvorbis" ,libvorbis)
+       ("soxr" ,soxr)
+       ("alsa-lib" ,alsa-lib)
+       ("avahi" ,avahi)
+       ("pulseaudio" ,pulseaudio)
+       ("flac" ,flac)
+       ("opus" ,opus)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/badaix/snapcast")
+    (synopsis "Synchronous multiroom audio player")
+    (description
+     "Snapcast is a multi-room client-server audio player.  Clients are time
+synchronized with the server to play synced audio.")
+    (license license:gpl3+)))
+
 (define-public swh-plugins
   (package
     (name "swh-plugins")
 (define-public swh-plugins
   (package
     (name "swh-plugins")
@@ -1284,6 +1265,37 @@ object library.")
 language and software synthesizer.")
     (license license:lgpl2.1+)))
 
 language and software synthesizer.")
     (license license:lgpl2.1+)))
 
+(define-public midicomp
+  ;; The latest tagged release is 9 years old and there have been
+  ;; unreleased fixes, so we take the last commit.
+  (let ((commit "70f76963cb0cdb3cbe03ec6e7246b1fb885d3c68")
+        (revision "1"))
+    (package
+      (name "midicomp")
+      (version (git-version "0.0.8" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/markc/midicomp")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32
+            "12zh247c6v88ssy4l8v7yirh4bl2jcc1ch7f4gdry79a82kai1gf"))))
+     (build-system cmake-build-system)
+     (arguments
+      `(#:tests? #f))  ; no "check" target
+      (synopsis "Convert SMF MIDI files to and from plain text")
+      (description
+       "midicomp can manipulate SMF (Standard MIDI File) files.  It can both
+  read and write SMF files in 0 or format 1 and also read and write its own
+  plain text format.  This means a SMF file can be turned into easily
+  parseable text, edited with any text editor or filtered through any script
+  language, and recompiled back into a binary SMF file.")
+      (home-page "https://github.com/markc/midicomp")
+      (license license:agpl3))))
+
 (define-public clalsadrv
   (package
     (name "clalsadrv")
 (define-public clalsadrv
   (package
     (name "clalsadrv")
@@ -1644,7 +1656,7 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.1.5")
+    (version "2.1.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1653,7 +1665,7 @@ follower.")
               (file-name (git-file-name name version))
               (sha256
                (base32
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ccpq4p1h1g53ng3961g3lh590qnwvpzwdzpl6ai4j6iazq0bh73"))))
+                "0r944ndn138ak9s3ivgd1wgkwkh6zp7jjnxd30hryczc6kbhkpmr"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1676,7 +1688,7 @@ follower.")
        ("glib" ,glib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
        ("glib" ,glib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.fluidsynth.org/")
+    (home-page "https://www.fluidsynth.org/")
     (synopsis "SoundFont synthesizer")
     (description
      "FluidSynth is a real-time software synthesizer based on the SoundFont 2
     (synopsis "SoundFont synthesizer")
     (description
      "FluidSynth is a real-time software synthesizer based on the SoundFont 2
@@ -1968,8 +1980,15 @@ well suited to all musical instruments and vocals.")
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "INSTDIR="
                             (assoc-ref %outputs "out") "/lib/lv2"))
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "INSTDIR="
                             (assoc-ref %outputs "out") "/lib/lv2"))
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure))))        ; no configure script
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)        ; no configure script
+         ;; See https://github.com/tomszilagyi/ir.lv2/pull/20
+         (add-after 'unpack 'fix-type
+           (lambda _
+             (substitute* '("ir_gui.cc" "lv2_ui.h")
+               (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
+             #t)))))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("libsamplerate" ,libsamplerate)
     (inputs
      `(("libsndfile" ,libsndfile)
        ("libsamplerate" ,libsamplerate)
@@ -2397,14 +2416,14 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
 (define-public lilv
   (package
     (name "lilv")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.24.8")
+    (version "0.24.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0063i5zgf3d3accwmyx651hw0wh5ik7kji2hvfkcdbl1qia3dp6a"))))
+               "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2693,14 +2712,14 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.6.3")
+    (version "0.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x"))))
+                "0m72kglwwvn91dxnka4lx765p3r0bcpqw251svymxr2wxjc4rgjg"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
@@ -2757,7 +2776,7 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.11.0")
+    (version "3.11.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2768,7 +2787,7 @@ background file post-processing.")
               (file-name (git-file-name name version))
               (sha256
                (base32
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
+                "1gi7nrmjmbnjndqkmhfrkk0jchrzvnhl3f6gp6n5wgdd4mxbgxgw"))
               (modules '((guix build utils)
                          (ice-9 ftw)))
               (snippet
               (modules '((guix build utils)
                          (ice-9 ftw)))
               (snippet
@@ -2798,7 +2817,8 @@ link REQUIRED)"))
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
                            "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
                            "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
-                           "-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
+                           "-DFORTIFY=ON"
+                           ;"-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
                            "-DSC_EL=off") ;scel is packaged individually as
                                           ;emacs-scel
        #:phases
                            "-DSC_EL=off") ;scel is packaged individually as
                                           ;emacs-scel
        #:phases
@@ -3014,14 +3034,14 @@ input/output.")
 (define-public sratom
   (package
     (name "sratom")
 (define-public sratom
   (package
     (name "sratom")
-    (version "0.6.4")
+    (version "0.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/sratom-"
                                   version ".tar.bz2"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/sratom-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0vh0biy3ngpzzgdml309c2mqz8xq9q0hlblczb4c6alhp0a8yv0l"))))
+                "178v90qvsp6lw4sqdmdz0bzyjkgwhv9m75ph1d1z8say5bv0p4gv"))))
     (build-system waf-build-system)
     (arguments `(#:tests? #f))          ;no check target
     (propagated-inputs
     (build-system waf-build-system)
     (arguments `(#:tests? #f))          ;no check target
     (propagated-inputs
@@ -3041,14 +3061,14 @@ the Turtle syntax.")
 (define-public suil
   (package
     (name "suil")
 (define-public suil
   (package
     (name "suil")
-    (version "0.10.6")
+    (version "0.10.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/suil-"
                                   version ".tar.bz2"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/suil-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06"))))
+                "0h0ghk1s0lrj4gh12r7390b0ybaw7awnj0vhchyy9ll0gvhqgkci"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
@@ -3101,7 +3121,7 @@ for loudness normalisation.")
 (define-public timidity++
   (package
     (name "timidity++")
 (define-public timidity++
   (package
     (name "timidity++")
-    (version "2.14.0")
+    (version "2.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
@@ -3109,7 +3129,7 @@ for loudness normalisation.")
                                   "/TiMidity++-" version ".tar.bz2"))
               (sha256
                (base32
                                   "/TiMidity++-" version ".tar.bz2"))
               (sha256
                (base32
-                "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
+                "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -3239,32 +3259,27 @@ stretching and pitch scaling of audio.  This package contains the library.")
 (define-public wavpack
   (package
     (name "wavpack")
 (define-public wavpack
   (package
     (name "wavpack")
-    (version "5.3.2")
+    (version "5.4.0")
     (source
      (origin
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/dbry/WavPack")
-             (commit "e4e8d191e8dd74cbdbeaef3232c16a7ef517e68d")))
+       (method url-fetch)
+       (uri (string-append "https://github.com/dbry/WavPack/releases/download/"
+                           version "/wavpack-" version ".tar.xz"))
        (sha256
        (sha256
-        (base32 "1zj8svk6giy1abq3940sz32ygz7zldppxl47852zgn5wfm3l2spx"))
-       (file-name (git-file-name name version))))
+        (base32 "0ycbqarw25x7208jilh86vwwiqklr7f617jps9mllqc659mnmpjb"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
-       (list "--disable-static")
+       (list "--disable-static"
+             "--enable-tests")
        #:phases
        (modify-phases %standard-phases
        #:phases
        (modify-phases %standard-phases
-         (replace 'bootstrap
-           ;; Running ./autogen.sh would cause premature configuration.
-           (lambda _
-             (invoke "autoreconf" "-vif")
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "./cli/wvtest" "--default" "--short"))
              #t)))))
              #t)))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (home-page "http://www.wavpack.com/")
+    (home-page "https://www.wavpack.com/")
     (synopsis "Hybrid lossless audio codec")
     (description
      "WavPack is an audio compression format with lossless, lossy and hybrid
     (synopsis "Hybrid lossless audio codec")
     (description
      "WavPack is an audio compression format with lossless, lossy and hybrid
@@ -3447,7 +3462,7 @@ conversion.  It may be used, for example, to resample PCM-encoded audio.")
     (native-inputs
      `(("perl" ,perl)
        ("which" ,which)))               ;used in tests/test.pl
     (native-inputs
      `(("perl" ,perl)
        ("which" ,which)))               ;used in tests/test.pl
-    (home-page "http://www.twolame.org/")
+    (home-page "https://www.twolame.org/")
     (synopsis "MPEG Audio Layer 2 (MP2) encoder")
     (description
      "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
     (synopsis "MPEG Audio Layer 2 (MP2) encoder")
     (description
      "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
@@ -3840,9 +3855,9 @@ use them split WAVE data into multiple files.")
     (build-system gnu-build-system)
     (arguments
      ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
     (build-system gnu-build-system)
     (arguments
      ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
-     '(#:tests? #f
+     `(#:tests? #f
        #:make-flags
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              ;; Build shared library.
              "CONFIG_SHARED=1"
              (string-append "PREFIX=" (assoc-ref %outputs "out"))
              ;; Build shared library.
              "CONFIG_SHARED=1"
              (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -4086,14 +4101,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
 (define-public snd
   (package
     (name "snd")
-    (version "20.8")
+    (version "20.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "1hw81innyyiwiyb8jkpq9aj7idmcb41yvgd1blac997023h78sss"))))
+                "0jxkycxn6jcbs4gklk9sk3gfr0y26dz1m71nxah9rnx80wnzj6hr"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -4187,6 +4202,63 @@ the following features:
 ")
     (license license:lgpl3+)))
 
 ")
     (license license:lgpl3+)))
 
+(define-public lv2-speech-denoiser
+  (let ((commit "04cfba929630404f8d4f4ca5bac8d9b09a99152f")
+        (revision "1"))
+    (package
+      (name "lv2-speech-denoiser")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lucianodato/speech-denoiser/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4"))))
+      (build-system meson-build-system)
+      (arguments
+       `(#:meson ,meson-0.55
+         ;; Using a "release" build is recommended for performance
+         #:build-type "release"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-meson-build
+             (lambda _
+               (substitute* "meson.build"
+                 (("install_folder = 'sdenoise.lv2'")
+                  "install_folder = 'lib/lv2/sdenoise.lv2'")
+                 (("build/manifest.ttl") "../build/manifest.ttl"))
+               #t))
+           (add-after 'unpack 'build-rnnoise
+             (lambda _
+               (with-directory-excursion "rnnoise"
+                 (let ((old-CFLAGS (getenv "CFLAGS")))
+                   (setenv "CFLAGS" "-fvisibility=hidden -fPIC -Wl,--exclude-libs,ALL")
+                   (setenv "CONFIG_SHELL" (which "bash"))
+                   (invoke "autoreconf" "-vif")
+                   (invoke "sh" "configure"
+                           "--disable-examples"
+                           "--disable-doc"
+                           "--disable-shared"
+                           "--enable-static")
+                   (invoke "make")
+                   (setenv "CFLAGS" old-CFLAGS))))))))
+      (inputs
+       `(("lv2" ,lv2)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://github.com/werman/noise-suppression-for-voice")
+      (synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library")
+      (description "RNNoise is a library that uses deep learning to apply
+noise supression to audio sources with voice presence.  This package provides
+an LV2 audio plugin.")
+      (license license:lgpl3+))))
+
 (define-public cli-visualizer
   (package
     (name "cli-visualizer")
 (define-public cli-visualizer
   (package
     (name "cli-visualizer")
@@ -4236,7 +4308,7 @@ representations.")
 (define-public cava
   (package
     (name "cava")
 (define-public cava
   (package
     (name "cava")
-    (version "0.6.1")
+    (version "0.7.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4245,7 +4317,7 @@ representations.")
               (file-name (git-file-name name version))
               (sha256
                (base32
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy"))))
+                "04j5hb29hivcbk542sfsx9m57dbnj2s6qpvy9fs488zvgjbgxrai"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -4570,20 +4642,20 @@ workstations as well as consumer software such as music players.")
 (define-public redkite
   (package
     (name "redkite")
 (define-public redkite
   (package
     (name "redkite")
-    (version "1.0.3")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/geontime/redkite.git")
+             (url "https://gitlab.com/iurie-sw/redkite")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k"))))
+        (base32 "16j9zp5i7svq3g38rfb6h257qfgnd2brrxi7cjd2pdax9xxwj40y"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
-    (inputs
+    (propagated-inputs
      `(("cairo" ,cairo)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
      `(("cairo" ,cairo)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -4713,7 +4785,7 @@ in the package.")
 (define-public libaudec
   (package
     (name "libaudec")
 (define-public libaudec
   (package
     (name "libaudec")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
       (origin
         (method git-fetch)
     (source
       (origin
         (method git-fetch)
@@ -4723,11 +4795,13 @@ in the package.")
         (file-name (git-file-name name version))
         (sha256
           (base32
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "04hw61db8wscj28qjyiaiafx8xl87njgmvqszxyhs4gmg8xgjip7"))))
+            "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz"))))
    (build-system meson-build-system)
    (arguments
    (build-system meson-build-system)
    (arguments
-     ;; Compile tests.
-    `(#:configure-flags `("-Dtests=true")))
+    `(#:meson ,meson-0.55
+      #:configure-flags
+      ;; Build the tests.
+      `("-Dtests=true")))
    (inputs
     `(("libsamplerate" ,libsamplerate)
       ("libsndfile" ,libsndfile)))
    (inputs
     `(("libsamplerate" ,libsamplerate)
       ("libsndfile" ,libsndfile)))
@@ -4823,11 +4897,13 @@ with the provided metadata and adhere to well-known best practices.")
         (base32
          "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1"))))
     (build-system meson-build-system)
         (base32
          "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1"))))
     (build-system meson-build-system)
-    (inputs
-     `(("cairo" ,cairo)
-       ("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    ;; These are listed as propagated inputs because they are dependencies
+    ;; in pkgconfig.
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("libx11" ,libx11)))
     (synopsis "GUI toolkit for LV2 plugins")
     (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily
 inspired by GTK.  It handles events and low level drawing on behalf of
     (synopsis "GUI toolkit for LV2 plugins")
     (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily
 inspired by GTK.  It handles events and low level drawing on behalf of
@@ -4841,7 +4917,7 @@ minimum.")
 (define-public libinstpatch
   (package
     (name "libinstpatch")
 (define-public libinstpatch
   (package
     (name "libinstpatch")
-    (version "1.1.5")
+    (version "1.1.6")
     (source
      (origin
        (method git-fetch)
     (source
      (origin
        (method git-fetch)
@@ -4850,7 +4926,7 @@ minimum.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
+        (base32 "1w3nk0vvd1cxic70n45zjip0bdsrja969myvyvkhq3ngbarbykir"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ;there are no tests
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ;there are no tests
@@ -4871,29 +4947,27 @@ edited, converted, compressed and saved.")
     (license license:lgpl2.1)))
 
 (define-public ztoolkit-rsvg
     (license license:lgpl2.1)))
 
 (define-public ztoolkit-rsvg
-  (package
-    (inherit ztoolkit)
+  (package/inherit ztoolkit
     (name "ztoolkit-rsvg")
     (arguments
      `(#:configure-flags `("-Denable_rsvg=true")))
     (name "ztoolkit-rsvg")
     (arguments
      `(#:configure-flags `("-Denable_rsvg=true")))
-    (inputs
+    (propagated-inputs
      `(("librsvg" ,librsvg)
      `(("librsvg" ,librsvg)
-       ,@(package-inputs ztoolkit)))
+       ,@(package-propagated-inputs ztoolkit)))
     (synopsis "ZToolkit with SVG support")))
 
 (define-public lsp-dsp-lib
   (package
     (name "lsp-dsp-lib")
     (synopsis "ZToolkit with SVG support")))
 
 (define-public lsp-dsp-lib
   (package
     (name "lsp-dsp-lib")
-    (version "0.5.8")
+    (version "0.5.11")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
     (source
       (origin
         (method url-fetch)
         (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
-                            "releases/download/lsp-dsp-lib-" version
+                            "releases/download/" version
                             "/lsp-dsp-lib-" version "-src.tar.gz"))
         (sha256
                             "/lsp-dsp-lib-" version "-src.tar.gz"))
         (sha256
-         (base32
-          "07w3d2i0z0xmvi1ngcgs7lc5a0da8jvf7rv4dnjk01md43b7fkh1"))))
+         (base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no tests
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no tests
@@ -4901,6 +4975,11 @@ edited, converted, compressed and saved.")
        (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
        (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'omit-static-library
+           (lambda _
+             (substitute* "src/Makefile"
+               ((".*@.*ARTIFACT_SLIB.*") "")       ; don't install it
+               ((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "make" "config"
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "make" "config"
@@ -5046,3 +5125,57 @@ connected to a local network discover each other automatically and form a musica
 session in which each participant can perform independently: anyone can start or stop
 while still staying in time.")
     (license license:gpl2+)))
 session in which each participant can perform independently: anyone can start or stop
 while still staying in time.")
     (license license:gpl2+)))
+
+(define-public butt
+  (package
+    (name "butt")
+    (version "0.1.29")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/butt/butt/butt-"
+                                  version "/butt-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0nbz0z4d7krvhmnwn10594gwc61gn2dlb5fazmynjfisrfdswqlg"))))
+    (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)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("manual" ,(origin
+                    (method url-fetch)
+                    (uri (string-append "https://danielnoethen.de/butt/butt-"
+                                        version "_manual.pdf"))
+                    (sha256
+                     (base32
+                      "1hhgdhdg5s86hjcbwh856gcd3kcch0i5xgi3i3v02zz3xmzl7gg3"))))))
+    (home-page "https://danielnoethen.de/butt/")
+    (synopsis "Audio streaming tool")
+    (description "Butt is a tool to stream audio to a ShoutCast or
+Icecast server.")
+    (license license:gpl2+)))