summary refs log tree commit diff
path: root/gnu/packages/audio.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/audio.scm')
-rw-r--r--gnu/packages/audio.scm1701
1 files changed, 964 insertions, 737 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b746cd370d..b186c79451 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -8,14 +8,14 @@
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2022 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 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
+;;; Copyright © 2018, 2021 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
@@ -34,6 +34,9 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,6 +92,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3) ;taglib
@@ -101,12 +105,14 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
   #:use-module (gnu packages linux)
@@ -130,6 +136,7 @@
   #:use-module (guix build-system waf)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -276,17 +283,17 @@ Coding (AAC) encoder.")
 (define-public tinyalsa
   (package
     (name "tinyalsa")
-    (version "1.1.1")
+    (version "2.0.0")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
          (url "https://github.com/tinyalsa/tinyalsa")
-         (commit version)))
+         (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+        (base32 "1p9khz3bdpdcrnc9p6w522a0ankdchj4nxd3ki41z9401rxmnljq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; No target
@@ -302,6 +309,50 @@ Linux kernel.")
     (home-page "https://github.com/tinyalsa/tinyalsa")
     (license (license:non-copyleft "file:///NOTICE"))))
 
+(define-public libgme
+  (package
+    (name "libgme")
+    (version "0.6.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/"
+                                  "downloads/game-music-emu-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "07857vdkak306d9s5g6fhmjyxk7vijzjhkmqb15s7ihfxx9lx8xb"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f))                    ; no check target
+    (home-page "https://bitbucket.org/mpyne/game-music-emu")
+    (synopsis "Video game music file playback library")
+    (description
+     "Game-music-emu is a collection of video game music file emulators that
+support the following formats and systems:
+@table @code
+@item AY
+ZX Spectrum/Asmtrad CPC
+@item GBS
+Nintendo Game Boy
+@item GYM
+Sega Genesis/Mega Drive
+@item HES
+NEC TurboGrafx-16/PC Engine
+@item KSS
+MSX Home Computer/other Z80 systems (doesn't support FM sound)
+@item NSF/NSFE
+Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound)
+@item SAP
+Atari systems using POKEY sound chip
+@item SPC
+Super Nintendo/Super Famicom
+@item VGM/VGZ
+Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
+@end table")
+    (license (list license:lgpl2.1+
+                   ;; demo and player directories are under the Expat license
+                   license:expat))))
+
 (define-public libopenmpt
   (package
     (name "libopenmpt")
@@ -328,9 +379,7 @@ Linux kernel.")
                (for-each delete-file (find-files lib "\\.a$"))
                #t))))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen perl pkg-config))
     (inputs
      `(("alsa" ,alsa-lib)
        ("flac" ,flac)
@@ -367,12 +416,11 @@ library.  It is based on the player code of the Open ModPlug Tracker project.")
          "libofa-ftbfs-2.diff"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("expat" ,expat)))
+     (list curl expat))
     (propagated-inputs
-     `(("fftw" ,fftw)))
+     (list fftw))
     (synopsis "Open Fingerprint Architecture")
     (description "LibOFA is an audio fingerprint library, created and provided
 by MusicIP.")
@@ -387,16 +435,13 @@ by MusicIP.")
      (origin
        (method url-fetch)
        (uri
-        (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
-                       "faac-1.30/faac-1_30.tar.gz/download"))
+        (string-append "mirror://sourceforge/faac/faac-src"
+                       "/faac-" version "/faac-1_30.tar.gz"))
        (sha256
         (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (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")
@@ -423,9 +468,9 @@ by MusicIP.")
     (arguments
      `(#:tests? #f))       ; XXX: LibTiMidity could not be initialised
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ao" ,ao)))
+     (list ao))
     (synopsis "MIDI to WAVE converter library")
     (description "LibTiMidity is a MIDI to WAVE converter library that uses
 Gravis Ultrasound-compatible patch files to generate digital audio data from
@@ -490,18 +535,17 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
                 "056dn6b9c5nsw2jdww7z1kxrjqqfvxjzxhsd5x9gi4wkwyiv21nz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
-       ;; license incompatibility.
-       ("clalsadrv" ,clalsadrv)
-       ("fftw" ,fftw)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("liblo" ,liblo)
-       ("qtbase" ,qtbase-5)))
+     (list alsa-lib
+           ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
+           ;; license incompatibility.
+           clalsadrv
+           fftw
+           jack-1
+           ladspa
+           liblo
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -536,13 +580,9 @@ Filter) modules follow the convention of 1V / Octave.")
         "--enable-avcodec")
        #:python ,python-2))
     (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("fftwf" ,fftwf)
-       ("ffmpeg" ,ffmpeg))) ; for libavcodec
+     (list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://aubio.org/")
     (synopsis "Library for audio labelling")
     (description
@@ -571,7 +611,7 @@ streams from live audio.")
 (define-public ardour
   (package
     (name "ardour")
-    (version "6.8")
+    (version "6.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -589,7 +629,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
                     #t)))
               (sha256
                (base32
-                "16x7bkzbrk0rgywq5vrkhf2z3jj08jw1bvaq9vwlf2b4h4sd7i4s"))
+                "0vlcbd70y0an881zv87kc3akmaiz4w7whsy3yaiiqqjww35jg1mm"))
               (file-name (string-append name "-" version))))
     (build-system waf-build-system)
     (arguments
@@ -626,48 +666,48 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
              #t)))
        #:test-target "test"))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("atkmm" ,atkmm)
-       ("aubio" ,aubio)
-       ("boost" ,boost)
-       ("cairomm" ,cairomm)
-       ("curl" ,curl)
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("flac" ,flac)
-       ("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm-2)
-       ("jack" ,jack-1)
-       ("libarchive" ,libarchive)
-       ("libart-lgpl" ,libart-lgpl)
-       ("libgnomecanvasmm" ,libgnomecanvasmm)
-       ("liblo" ,liblo)
-       ("libogg" ,libogg)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("libusb" ,libusb)
-       ("libvorbis" ,libvorbis)
-       ("libwebsockets" ,libwebsockets)
-       ("libxml2" ,libxml2)
-       ("lilv" ,lilv)
-       ("lrdf" ,lrdf)
-       ("lv2" ,lv2)
-       ("openssl" ,openssl)  ; Required by libwebsockets.
-       ("pangomm" ,pangomm)
-       ("python-rdflib" ,python-rdflib)
-       ("pulseaudio" ,pulseaudio)
-       ("readline" ,readline)
-       ("redland" ,redland)
-       ("rubberband" ,rubberband)
-       ("serd" ,serd)
-       ("sord" ,sord)
-       ("soundtouch" ,soundtouch)
-       ("sratom" ,sratom)
-       ("suil" ,suil)
-       ("taglib" ,taglib)
-       ("vamp" ,vamp)))
+     (list alsa-lib
+           atkmm
+           aubio
+           boost
+           cairomm
+           curl
+           dbus
+           eudev
+           fftw
+           fftwf
+           flac
+           glibmm
+           gtkmm-2
+           jack-1
+           libarchive
+           libart-lgpl
+           libgnomecanvasmm
+           liblo
+           libogg
+           libsamplerate
+           libsndfile
+           libusb
+           libvorbis
+           libwebsockets
+           libxml2
+           lilv
+           lrdf
+           lv2
+           openssl ; Required by libwebsockets.
+           pangomm
+           python-rdflib
+           pulseaudio
+           readline
+           redland
+           rubberband
+           serd
+           sord
+           soundtouch
+           sratom
+           suil
+           taglib
+           vamp))
     (native-inputs
      `(("cppunit" ,cppunit)
        ("gettext" ,gettext-minimal)
@@ -685,7 +725,7 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.4.2")
+    (version "3.1.3")
     (source
      (origin
        (method git-fetch)
@@ -695,9 +735,7 @@ engineers, musicians, soundtrack editors and composers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546"))
-       (patches (search-patches "audacity-build-with-system-portaudio.patch"
-                                "audacity-add-include.patch"))
+         "1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -705,13 +743,10 @@ engineers, musicians, soundtrack editors and composers.")
            (for-each
             (lambda (dir)
               (delete-file-recursively (string-append "lib-src/" dir)))
-            '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
-              "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
-              "portmidi" "soundtouch" "twolame"
+            '("libsoxr" "libvamp" "lv2" "soundtouch" "sqlite" "twolame"
               ;; FIXME: these libraries have not been packaged yet:
               ;; "libnyquist"
               ;; "libscorealign"
-              ;; "libwidgetextra"
               ;; "portburn"
               ;; "portsmf"
               ;; "portmixer"
@@ -723,27 +758,31 @@ engineers, musicians, soundtrack editors and composers.")
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("wxwidgets" ,wxwidgets)
-       ("gtk+" ,gtk+)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("expat" ,expat)
-       ("ffmpeg" ,ffmpeg)
-       ("lame" ,lame)
-       ("flac" ,flac)
-       ("libid3tag" ,libid3tag)
-       ("libmad" ,libmad)
-       ;;("libsbsms" ,libsbsms)         ;bundled version is modified
-       ("libsndfile" ,libsndfile)
-       ("soundtouch" ,soundtouch)
-       ("soxr" ,soxr)                   ;replaces libsamplerate
-       ("twolame" ,twolame)
-       ("vamp" ,vamp)
-       ("libvorbis" ,libvorbis)
-       ("lv2" ,lv2)
-       ("lilv" ,lilv)                   ;for lv2
-       ("suil" ,suil)                   ;for lv2
-       ("portmidi" ,portmidi)))
+     (list wxwidgets-3.1
+           gtk+
+           alsa-lib
+           jack-1
+           expat
+           ffmpeg
+           lame
+           linux-libre-headers
+           flac
+           libid3tag
+           libjpeg-turbo
+           libmad
+           ;;("libsbsms" ,libsbsms)         ;bundled version is modified
+           libsndfile
+           soundtouch
+           soxr ;replaces libsamplerate
+           sqlite
+           twolame
+           vamp
+           libvorbis
+           lv2
+           lilv ;for lv2
+           suil ;for lv2
+           portaudio
+           portmidi))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -755,10 +794,12 @@ engineers, musicians, soundtrack editors and composers.")
     (arguments
      `(#:configure-flags
        (list
-        ;; Loading FFmpeg dynamically is problematic.
-        "-Daudacity_use_ffmpeg=linked"
-        "-Daudacity_use_lame=system"
-        "-Daudacity_use_portsmf=system")
+        "-Daudacity_conan_enabled=off"
+        "-Daudacity_lib_preference=system"
+        ;; TODO: enable this flag once we've packaged all dependencies
+        ;; "-Daudacity_obey_system_dependencies=on"
+        ;; disable crash reports, updates, ..., anything that phones home
+        "-Daudacity_has_networking=off")
        #:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%cmake-build-system-modules)
        #:modules
@@ -767,27 +808,42 @@ engineers, musicians, soundtrack editors and composers.")
         ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-cmake-rpath
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("\\$ORIGIN/\\.\\./\\$\\{_PKGLIB\\}")
+                (string-append (assoc-ref outputs "out") "/lib/audacity"))
+               (("CMAKE_BUILD_WITH_INSTALL_RPATH [A-Z]*")
+                "CMAKE_BUILD_WITH_INSTALL_RPATH TRUE")
+               (("CMAKE_INSTALL_RPATH_USE_LINK_PATH [A-Z]*")
+                "CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE"))
+             (substitute* "src/CMakeLists.txt"
+               (("-Wl,--disable-new-dtags") "-Wl,--enable-new-dtags"))))
          (add-after 'unpack 'comment-out-revision-ident
            (lambda _
+             (substitute* "src/CMakeLists.txt"
+               (("file\\( TOUCH \".*RevisionIdent\\.h\" \\)" directive)
+                (string-append "# " directive)))
              (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"
-                            "src/AudioIO.cpp"
-                            "src/AudioIO.h"
-                            "src/AudioIOBase.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"))))
+             (substitute* '("libraries/lib-files/FileNames.cpp")
+               (("\"/usr/include/linux/magic.h\"") "<linux/magic.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))
+       ;; 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))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "AUDACITY_MODULES_PATH")
+            (files '("lib/audacity/modules")))
+           (search-path-specification
+            (variable "AUDACITY_PATH")
+            (files '("share/audacity")))))
     (home-page "https://www.audacityteam.org/")
     (synopsis "Software for recording and editing sounds")
     (description
@@ -844,7 +900,7 @@ tools.")
                                       "CVE-2017-6831" "CVE-2017-6833"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)))
+     (list alsa-lib))
     (home-page "https://audiofile.68k.org/")
     (synopsis "Library to handle various audio file formats")
     (description "This is an open-source version of SGI's audiofile library.
@@ -885,7 +941,7 @@ G.711 mu-law and A-law.")
                 (string-append (assoc-ref outputs "out") "/lib/ladspa")))
              #t)))))
     (inputs
-     `(("ladspa" ,ladspa)))
+     (list ladspa))
     (home-page "http://tombaran.info/autotalent.html")
     (synopsis "Pitch-correction LADSPA audio plugin")
     (description
@@ -924,12 +980,9 @@ formant warp.")
                (utime "azr3.1" early-1980 early-1980))
              #t)))))
     (inputs
-     `(("gtkmm" ,gtkmm-2)
-       ("lvtk" ,lvtk)
-       ("jack" ,jack-1)
-       ("lash" ,lash)))
+     (list gtkmm-2 lvtk jack-1 lash))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://ll-plugins.nongnu.org/azr3/")
     (synopsis "Tonewheel organ synthesizer")
     (description
@@ -953,18 +1006,18 @@ plugins are provided.")
                 "17x4hylgq4dn9qycsdacfxy64f5cv57n2qgkvsdp524gnqzw4az3"))))
     (build-system gnu-build-system)
     (inputs
-     `(("fluidsynth" ,fluidsynth)
-       ("expat" ,expat)
-       ("glib" ,glib)
-       ("gtk" ,gtk+-2)
-       ("cairo" ,cairo)
-       ("lash" ,lash)
-       ("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("ladspa" ,ladspa)
-       ("fftw" ,fftw)))
+     (list fluidsynth
+           expat
+           glib
+           gtk+-2
+           cairo
+           lash
+           jack-1
+           lv2
+           ladspa
+           fftw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -1009,7 +1062,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
                (("/usr/local")(assoc-ref outputs "out")))
              #t)))))
     (inputs
-     `(("lv2" ,lv2)))
+     (list lv2))
     ;; home-page of the original LADSPA version: http://quitte.de/dsp/caps.html
     (home-page "https://github.com/moddevices/caps-lv2")
     (synopsis "LV2 port of the CAPS audio plugin collection")
@@ -1049,13 +1102,9 @@ generators of mostly elementary and occasionally exotic nature.")
                (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
              #t)))))
     (inputs
-     `(("cairo" ,cairo)
-       ("fftwf" ,fftwf)
-       ("lv2" ,lv2)
-       ("ntk" ,ntk)
-       ("zita-resampler" ,zita-resampler)))
+     (list cairo fftwf lv2 ntk zita-resampler))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://ssj71.github.io/infamousPlugins")
     (synopsis "LV2 plugins for live use")
     (description
@@ -1081,16 +1130,16 @@ envelope follower, distortion effects, tape effects and more.")
     (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)))
+     (list boost
+           libvorbis
+           soxr
+           alsa-lib
+           avahi
+           pulseaudio
+           flac
+           opus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/badaix/snapcast")
     (synopsis "Synchronous multiroom audio player")
     (description
@@ -1112,16 +1161,15 @@ synchronized with the server to play synced audio.")
                (base32
                 "1c98z2xxz9pgcb4dg99gz8qrylh5cnag0j18a52d88ifsy24isvq"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal) ;for autopoint
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           gettext-minimal ;for autopoint
+           libtool
+           perl
+           pkg-config
+           which))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("perl-xml-parser" ,perl-xml-parser)))
+     (list fftwf perl-xml-parser))
     (build-system gnu-build-system)
     (home-page "http://plugin.org.uk")
     (synopsis "The SWH Plugins package for the LADSPA plugin system")
@@ -1159,11 +1207,9 @@ synchronized with the server to play synced audio.")
                (("install:") "install: install-system"))
              #t)))))
     (inputs
-     `(("lv2" ,lv2)
-       ("fftwf" ,fftwf)))
+     (list lv2 fftwf))
     (native-inputs
-     `(("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)))
+     (list libxslt pkg-config))
     (home-page "http://plugin.org.uk")
     (synopsis "SWH plugins in LV2 format")
     (description
@@ -1173,6 +1219,38 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
     (license license:gpl3+)))
 
+(define-public libdjinterop
+  (package
+    (name "libdjinterop")
+    (version "0.16.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xsco/libdjinterop")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16nrqpr90vb9ggmp9j73m0hspd7pmfdhh0g6iyp8vd7kx7g17qnk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; crate_test writes a database file to the source tree.
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files ".")))))))
+    (native-inputs
+     (list boost pkg-config))
+    (inputs
+     (list sqlite zlib))
+    (home-page "https://github.com/xsco/libdjinterop")
+    (synopsis "C++ library for access to DJ record libraries")
+    (description
+     "@code{libdjinterop} is a C++ library that allows access to database
+formats used to store information about DJ record libraries.")
+    (license license:lgpl3+)))
+
 (define-public tao
   (package
     (name "tao")
@@ -1190,10 +1268,8 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
                                "tao-fix-parser-types.patch"))
               (modules '((guix build utils)))
               (snippet
-               '(begin
-                  (substitute* "configure"
-                    (("SHELL=/bin/sh") ""))
-                  #t))))
+               '(substitute* "configure"
+                  (("SHELL=/bin/sh") "")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("TAO_RELEASE=-beta")
@@ -1209,8 +1285,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
                 (string-append (which "sed") " -f $distdir/"))
                (("distdir=.*")
                 (string-append "distdir="
-                               (assoc-ref outputs "out") "/share/tao")))
-             #t))
+                               (assoc-ref outputs "out") "/share/tao")))))
          (add-after 'install 'install-extra-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1221,18 +1296,17 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
                (install-file "user-scripts/error.parse" share)
                (copy-recursively "examples" (string-append share "examples"))
                (for-each (lambda (file) (install-file file inc))
-                         (find-files "include" "\\.h"))
-               #t))))))
+                         (find-files "include" "\\.h"))))))))
     (inputs
-     `(("audiofile" ,audiofile)
-       ("libxi" ,libxi)
-       ("libxmu" ,libxmu)
-       ("mesa" ,mesa)
-       ("glut" ,freeglut)
-       ("flex" ,flex)
-       ("bison" ,bison)
-       ("sed" ,sed)
-       ("grep" ,grep)))
+     (list audiofile
+           libxi
+           libxmu
+           mesa
+           freeglut
+           flex
+           bison
+           sed
+           grep))
     (home-page "http://taopm.sourceforge.net/")
     (synopsis "Sound Synthesis with Physical Models")
     (description "Tao is a software package for sound synthesis using physical
@@ -1243,6 +1317,37 @@ playing instruments and a C++ API for those who would like to use it as an
 object library.")
     (license license:gpl2+)))
 
+(define-public tao-synth
+  (let ((commit "f3aedd81efbc775574e591081b57ae1c08427064")
+        (revision "1"))
+    (package
+      (name "tao-synth")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/lucasw/tao_synth")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jds2l3cb96b02jxd7lmrjjl9s7mylnrvg6fpw0j8c141bk8vyg3"))))
+      (build-system cmake-build-system)
+      (arguments (list #:tests? #false))  ;there are no tests
+      (inputs
+       (list glfw freeglut))
+      (native-inputs
+       (list gcc-7))
+      (home-page "https://github.com/lucasw/tao_synth")
+      (synopsis "Sound synthesis with physical models")
+      (description "Tao is a software package for sound synthesis using physical
+models.  It provides a virtual acoustic material constructed from masses and
+springs which can be used as the basis for building quite complex virtual
+musical instruments.  Tao comes with a synthesis language for creating and
+playing instruments and a C++ API for those who would like to use it as an
+object library.")
+      (license license:lgpl2.0+))))
+
 (define-public csound
   (package
     (name "csound")
@@ -1258,18 +1363,15 @@ object library.")
         (base32 "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gettext" ,gettext-minimal)
-       ("zlib" ,zlib)))
+     (list bison flex gettext-minimal zlib))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("liblo" ,liblo)
-       ("libsndfile" ,libsndfile)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           boost
+           jack-1
+           ladspa
+           liblo
+           libsndfile
+           pulseaudio))
     (home-page "https://csound.com/")
     (synopsis "Sound and music computing system")
     (description
@@ -1343,8 +1445,7 @@ language and software synthesizer.")
          ;; no configure script
          (delete 'configure))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)))
+     (list alsa-lib fftw))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "C++ wrapper around the ALSA API")
     (description
@@ -1668,7 +1769,7 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.1.8")
+    (version "2.2.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1677,7 +1778,7 @@ follower.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r944ndn138ak9s3ivgd1wgkwkh6zp7jjnxd30hryczc6kbhkpmr"))))
+                "1061rdj69503spkd8vmfl3fqvyg4l41k5xcc4gw7niy31hnpnjmn"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1688,18 +1789,19 @@ follower.")
              ;; Install libraries to /lib, not /lib64.
              (substitute* "CMakeLists.txt"
                (("LIB_SUFFIX \\$\\{_init_lib_suffix\\}")
-                "LIB_SUFFIX \"\""))
-             #t)))))
+                "LIB_SUFFIX \"\"")))))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("lash" ,lash)
-       ("readline" ,readline)
-       ("glib" ,glib)))
+     (list ladspa))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
+    (propagated-inputs
+     ;; In Libs.private of fluidsynth.pc.
+     (list alsa-lib
+           glib
+           jack-1
+           lash
+           libsndfile
+           readline))
     (home-page "https://www.fluidsynth.org/")
     (synopsis "SoundFont synthesizer")
     (description
@@ -1709,22 +1811,6 @@ device.  It is the software analogue of a MIDI synthesizer.  FluidSynth can
 also play midifiles using a Soundfont.")
     (license license:lgpl2.1+)))
 
-;; gzdoom@3.3.0 and lmms@1.1.3 requires this version.  Remove once no longer
-;; needed.
-(define-public fluidsynth-1
-  (package
-    (inherit fluidsynth)
-    (version "1.1.11")
-    (source (origin
-              (inherit (package-source fluidsynth))
-              (uri (git-reference
-                    (url "https://github.com/FluidSynth/fluidsynth")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "fluidsynth" version))
-              (sha256
-               (base32
-                "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))))
-
 (define-public faad2
   (package
     (name "faad2")
@@ -1779,7 +1865,7 @@ also play midifiles using a Soundfont.")
                        (find-files "architecture/max-msp" ".*"))
              #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://faust.grame.fr/")
     (synopsis "Signal processing language")
     (description
@@ -1811,11 +1897,7 @@ also play midifiles using a Soundfont.")
        ("ctags" ,emacs-minimal)  ; for ctags
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))))
+     (list libsndfile libmicrohttpd ncurses openssl zlib))))
 
 (define-public freepats
   (package
@@ -1847,8 +1929,7 @@ also play midifiles using a Soundfont.")
                      (copy-recursively "." out)
                      #t))))
     (native-inputs
-     `(("tar" ,tar)
-       ("bzip2" ,bzip2)))
+     (list tar bzip2))
     (home-page "http://freepats.zenvoid.org")
     (synopsis "GUS compatible patches for MIDI players")
     (description
@@ -1860,7 +1941,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
 (define-public guitarix
   (package
     (name "guitarix")
-    (version "0.41.0")
+    (version "0.43.1")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1868,7 +1949,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
                    version ".tar.xz"))
              (sha256
               (base32
-               "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0"))))
+               "1bsjlfd7x09p3iiljilyfbns6hpqn9cgp6psl4ccd6i1lwascfrm"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -1877,21 +1958,21 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
         ;; Add the output lib directory to the RUNPATH.
         (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("boost" ,boost)
-       ("curl" ,curl)
-       ("avahi" ,avahi)
-       ("eigen" ,eigen)
-       ("lv2" ,lv2)
-       ("lilv" ,lilv)
-       ("ladspa" ,ladspa)
-       ("jack" ,jack-1)
-       ("gtkmm" ,gtkmm)
-       ("gtk+" ,gtk+)
-       ("fftwf" ,fftwf)
-       ("lrdf" ,lrdf)
-       ("zita-resampler" ,zita-resampler)
-       ("zita-convolver" ,zita-convolver)))
+     (list libsndfile
+           boost
+           curl
+           avahi
+           eigen
+           lv2
+           lilv
+           ladspa
+           jack-1
+           gtkmm-3
+           gtk+
+           fftwf
+           lrdf
+           zita-resampler
+           zita-convolver))
     (native-inputs
      `(("gperf" ,gperf)
        ("faust" ,faust)
@@ -1943,21 +2024,21 @@ auto-wah.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-utils" ,alsa-utils)
-       ("fltk" ,fltk)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)
-       ("libxrender" ,libxrender)
-       ("libxpm" ,libxpm)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)
-       ("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("zlib" ,zlib)))
+     (list alsa-utils
+           fltk
+           libx11
+           libxext
+           libxfixes
+           libxft
+           libxrender
+           libxpm
+           fontconfig
+           freetype
+           jack-1
+           alsa-lib
+           libsndfile
+           libsamplerate
+           zlib))
     (home-page "http://rakarrack.sourceforge.net/")
     (synopsis "Audio effects processor")
     (description
@@ -2002,14 +2083,14 @@ well suited to all musical instruments and vocals.")
                (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
              #t)))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("lv2" ,lv2)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("zita-convolver" ,zita-convolver)))
+     (list libsndfile
+           libsamplerate
+           lv2
+           glib
+           gtk+-2
+           zita-convolver))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -2046,15 +2127,14 @@ especially for creating reverb effects.  It supports impulse responses with 1,
                         (("libnn=lib64") "libnn=lib"))
                       #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("readline" ,readline)))
+     (list alsa-lib readline))
     ;; uuid.h is included in the JACK type headers
     ;; db.h is included in the libjack metadata headers
     (propagated-inputs
      `(("libuuid" ,util-linux "lib")
        ("bdb" ,bdb)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://jackaudio.org/")
     (synopsis "JACK audio connection kit")
     (description
@@ -2108,34 +2188,34 @@ synchronous execution of all clients, and low latency operation.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
              (let* ((out (assoc-ref outputs "out"))
-                    (path (getenv "PYTHONPATH")))
+                    (path (getenv "GUIX_PYTHONPATH")))
                (wrap-program (string-append out "/bin/jack_control")
-                 `("PYTHONPATH" ":" prefix (,path))))
+                 `("GUIX_PYTHONPATH" ":" prefix (,path))))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("expat" ,expat)
-       ("libsamplerate" ,libsamplerate)
-       ("opus" ,opus)
-       ("python-dbus" ,python-dbus)
-       ("readline" ,readline)))
+     (list alsa-lib
+           dbus
+           expat
+           libsamplerate
+           opus
+           python-dbus
+           readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
     (license (list license:gpl2+ license:lgpl2.1+))))
 
 (define-public jalv
   (package
     (name "jalv")
-    (version "1.6.4")
+    (version "1.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/jalv-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1wwfn7yzbs37s2rdlfjgks63svd5g14yyzd2gdl7h0z12qncwsy2"))))
+                "05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2150,7 +2230,7 @@ synchronous execution of all clients, and low latency operation.")
        ("qtbase" ,qtbase-5)
        ("jack" ,jack-1)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/jalv/")
     (synopsis "Simple LV2 host for JACK")
     (description
@@ -2246,11 +2326,9 @@ to be plugged into a wide range of audio synthesis and recording packages.")
     ;; According to pkg-config, packages depending on lash also need to have
     ;; at least the following packages declared as inputs.
     (propagated-inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("libxml2" ,libxml2)))
+     (list alsa-lib dbus libxml2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.nongnu.org/lash/")
     (synopsis "Audio application session manager")
     (description
@@ -2272,8 +2350,8 @@ connections between them.")
                (base32
                 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libsndfile" ,libsndfile)))
+    (native-inputs (list pkg-config))
+    (inputs (list libsndfile))
     (home-page "https://sourceforge.net/projects/bs2b/")
     (synopsis "Bauer stereophonic-to-binaural DSP")
     (description
@@ -2296,9 +2374,8 @@ essential distortions.")
                (base32
                 "1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("ladspa" ,ladspa)
-              ("libbs2b" ,libbs2b)))
+    (native-inputs (list pkg-config))
+    (inputs (list ladspa libbs2b))
     (home-page "https://sourceforge.net/projects/bs2b/")
     (synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin")
     (description "The Bauer stereophonic-to-binaural DSP (bs2b) library and
@@ -2358,11 +2435,9 @@ implementation of the Open Sound Control (@dfn{OSC}) protocol.")
                (rename-file (string-append inc "/RtAudio.h")
                             (string-append inc "/rtaudio/RtAudio.h"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib jack-1 pulseaudio))
     (synopsis "Common API for real-time audio I/O")
     (description
      "RtAudio is a set of C++ classes that provides a common API for real-time
@@ -2398,7 +2473,7 @@ compensation, (de)interleaving, and byte-swapping
          "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
     (build-system python-build-system)
     (inputs
-     `(("portaudio" ,portaudio)))
+     (list portaudio))
     (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
     (synopsis "Bindings for PortAudio v19")
     (description "This package provides bindings for PortAudio v19, the
@@ -2422,9 +2497,9 @@ cross-platform audio input/output stream library.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ;no tests
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("liblo" ,liblo)))
+     (list liblo))
     (home-page "http://das.nasophon.de/pyliblo/")
     (synopsis "Python bindings for liblo")
     (description
@@ -2450,11 +2525,9 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
          "0yqhrfz7xkvqrwdxdx2ydy4h467sk7z3gf984y1x2cq7cm1gy329"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-numpy" ,python-numpy)
-       ("libsndfile" ,libsndfile)))
+     (list python-cffi python-numpy libsndfile))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:tests? #f ; missing OGG support
        #:phases
@@ -2505,15 +2578,15 @@ files.")
             "12wf17abn3psbsg2r2lk0xdnk8n5cd5rrvjlpxjnjfhd09n7qqgm"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-cffi" ,python-cffi)
-        ("python-cython" ,python-cython)
-        ("python-numpy" ,python-numpy)
-        ("python-progressbar2" ,python-progressbar2)
-        ("python-pycparser" ,python-pycparser)
-        ("python-python3-midi" ,python-python3-midi)
-        ("python-soundfile" ,python-soundfile)))
+      (list python-cffi
+            python-cython
+            python-numpy
+            python-progressbar2
+            python-pycparser
+            python-python3-midi
+            python-soundfile))
     (native-inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2521,7 +2594,7 @@ files.")
            (lambda _
              (substitute* "requirements.txt" (("==") ">=")))))))
     (home-page "https://github.com/NFJones/audio-to-midi")
-    (synopsis "Convert audio to multichannel MIDI.")
+    (synopsis "Convert audio to multichannel MIDI")
     (description "@command{audio-to-midi} converts audio files to multichannel
 MIDI files.  It accomplishes this by performing FFTs on all channels of the
 audio data at user-specified time steps.  It then separates the resulting
@@ -2533,14 +2606,14 @@ frequencies.  This data is then formatted to MIDI and written to disk.")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.24.10")
+    (version "0.24.12")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi"))))
+               "0qchfsyrsrp2pdpd59025kllycr04ddpzd03ha1iz70ci687g8r6"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2550,24 +2623,18 @@ frequencies.  This data is then formatted to MIDI and written to disk.")
           (lambda* (#:key outputs #:allow-other-keys)
             (setenv "LDFLAGS"
                     (string-append "-Wl,-rpath="
-                                   (assoc-ref outputs "out") "/lib"))
-            #t))
+                                   (assoc-ref outputs "out") "/lib"))))
          (add-after 'unpack 'full-store-path-to-shared-library
            (lambda* (#:key outputs #:allow-other-keys)
              (with-directory-excursion "bindings/python"
                (substitute* "lilv.py"
                  (("liblilv-0.so") (string-append (assoc-ref outputs "out")
-                                                  "/lib/liblilv-0.so"))))
-             #t)))))
+                                                  "/lib/liblilv-0.so")))))))))
     ;; Required by lilv-0.pc.
     (propagated-inputs
-     `(("lv2" ,lv2)
-       ("serd" ,serd)
-       ("sord" ,sord)
-       ("sratom" ,sratom)))
+     (list lv2 serd sord sratom))
     (native-inputs
-     `(("python" ,python)
-       ("pkg-config" ,pkg-config)))
+     (list python pkg-config))
     (home-page "https://drobilla.net/software/lilv")
     (synopsis "Library to simplify use of LV2 plugins in applications")
     (description
@@ -2579,23 +2646,23 @@ significantly faster and have minimal dependencies.")
 (define-public lv2
   (package
     (name "lv2")
-    (version "1.18.0")
+    (version "1.18.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://lv2plug.in/spec/lv2-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0gs7401xz23q9vajqr31aa2db8dvssgyh5zrvr4ipa6wig7yb8wh"))))
+               "0pp0n9x1rg8d4fw853z9cvfifjdi4bl85yjxxddqa1acfjy1z2af"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
        #:configure-flags '("--no-plugins")))
     (inputs
      ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://lv2plug.in/")
     (synopsis "LV2 audio plugin specification")
     (description
@@ -2626,10 +2693,9 @@ software.")
        #:tests? #f ; no check target
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("lv2" ,lv2)
-       ("lvtk" ,lvtk)))
+     (list lv2 lvtk))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -2674,11 +2740,9 @@ software.")
                             (assoc-ref %build-inputs "boost")
                             "/include"))))
     (inputs
-     `(("boost" ,boost)
-       ("gtkmm" ,gtkmm-2)
-       ("lv2" ,lv2)))
+     (list boost gtkmm-2 lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/lvtk/lvtk")
     (synopsis "C++ libraries for LV2 plugins")
     (description
@@ -2721,8 +2785,7 @@ lv2-c++-tools.")
                               "\")")))
             #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (synopsis "3D audio API")
     (description
      "OpenAL provides capabilities for playing audio in a virtual 3D
@@ -2754,7 +2817,7 @@ buffers, and audio capture.")
     (arguments
      `(#:tests? #f))  ; no check target
     (inputs
-     `(("openal" ,openal)))
+     (list openal))
     (synopsis "Free implementation of OpenAL's ALUT standard")
     (description "freealut is the OpenAL Utility Toolkit.")
     (home-page "https://kcat.strangesoft.net/openal.html")
@@ -2763,7 +2826,7 @@ buffers, and audio capture.")
 (define-public patchage
   (package
     (name "patchage")
-    (version "1.0.2")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/patchage-"
@@ -2771,22 +2834,21 @@ buffers, and audio capture.")
                                   ".tar.bz2"))
               (sha256
                (base32
-                "0dk3fiac10m83mwss3026yz7ygc47c2iw924cwwnh2fyydc9bsy6"))))
+                "0gbakiw3mikgbvy3pssrmqmn7z5c7kp4vyaxj5rs4jnkscxgw9vw"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f                      ; no check target
-       #:python ,python-2))
+     `(#:tests? #f))                    ; no check target
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("jack" ,jack-1)
-       ("ganv" ,ganv)
-       ("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm-2)
-       ("dbus-glib" ,dbus-glib)))
+     (list alsa-lib
+           boost
+           jack-1
+           ganv
+           glibmm
+           gtkmm-2
+           dbus-glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "https://drobilla.net/software/patchage/")
+     (list pkg-config))
+    (home-page "https://drobilla.net/software/patchage.html")
     (synopsis "Modular patch bay for audio and MIDI systems")
     (description
      "Patchage is a modular patch bay for audio and MIDI systems based on JACK
@@ -2809,14 +2871,9 @@ and ALSA.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf automake libtool pkg-config which))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (synopsis "Portable C audio library")
     (description
      "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to
@@ -2829,26 +2886,21 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.9.4")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "186rg3j67rac9ds1r7gnrib2d0smgv15cmr5gwb7v83mywcp1gzy"))))
+                "0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
     (inputs
-     `(("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)
-       ("portaudio" ,portaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list jack-1 alsa-lib portaudio qtbase-5 qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://qjackctl.sourceforge.io/")
     (synopsis "Jack server control application")
     (description "Control a Jack server.  Allows you to plug various sources
@@ -2878,11 +2930,9 @@ into various outputs and to start, stop and configure jackd")
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (native-inputs
-     `(("qtbase" ,qtbase-5))) ; for qmake
+     (list qtbase-5)) ; for qmake
     (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1 libsndfile qtbase-5))
     (home-page "https://sourceforge.net/projects/qjackrcd/")
     (synopsis "Stereo audio recorder for JACK")
     (description "QJackRcd is a simple graphical stereo recorder for JACK
@@ -2893,51 +2943,52 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.11.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/supercollider/supercollider")
-                    (commit (string-append "Version-" version))
-                    ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
-                    (recursive? #t)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1gi7nrmjmbnjndqkmhfrkk0jchrzvnhl3f6gp6n5wgdd4mxbgxgw"))
-              (modules '((guix build utils)
-                         (ice-9 ftw)))
-              (snippet
-               ;; The build system doesn't allow us to unbundle the following
-               ;; libraries.  hidapi is also heavily patched and upstream not
-               ;; actively maintained.
-               '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
-                                   "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
-                  (with-directory-excursion "./external_libraries"
-                    (for-each
-                     delete-file-recursively
-                     (scandir "."
-                              (lambda (x)
-                                (and (eq? (stat:type (stat x)) 'directory)
-                                     (not (member (basename x) keep-dirs)))))))
-                  ;; To find the Guix provided ableton-link library.
-                  (substitute* "lang/CMakeLists.txt"
-                    (("include\\(\\.\\./external_libraries/link/\
+    (version "3.12.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/supercollider/supercollider")
+             (commit (string-append "Version-" version))
+             ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0id522338a464j1slcspajwc7klypbc9qpigw5mqjhrw970wij5z"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)))
+       (snippet
+        ;; The build system doesn't allow us to unbundle the following
+        ;; libraries.  hidapi is also heavily patched and upstream not
+        ;; actively maintained.
+        '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
+                            "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
+           (with-directory-excursion "./external_libraries"
+             (for-each
+              delete-file-recursively
+              (scandir "."
+                       (lambda (x)
+                         (and (eq? (stat:type (stat x)) 'directory)
+                              (not (member (basename x) keep-dirs)))))))
+           ;; To find the Guix provided ableton-link library.
+           (substitute* "lang/CMakeLists.txt"
+             (("include\\(\\.\\./external_libraries/link/\
 AbletonLinkConfig\\.cmake\\)")
-                     "find_package(AbletonLink NAMES AbletonLink ableton-link \
-link REQUIRED)"))
-                  #t))))
+              "find_package(AbletonLink NAMES AbletonLink ableton-link \
+link REQUIRED)"))))))
     (build-system cmake-build-system)
     (outputs
-     '("out"   ;core language
-       "ide")) ;qt ide
+     '("out"                            ;core language
+       "ide"))                          ;qt ide
     (arguments
-     `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
-                           "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
+     `(#:configure-flags '("-DSYSTEM_BOOST=ON"
+                           "-DSYSTEM_YAMLCPP=ON"
+                           "-DSC_QT=ON"
+                           "-DCMAKE_BUILD_TYPE=Release"
                            "-DFORTIFY=ON"
-                           ;"-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
-                           "-DSC_EL=off") ;scel is packaged individually as
-                                          ;emacs-scel
+                           ;; "-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
+                           "-DSC_EL=OFF") ;scel is packaged individually as emacs-scel
        #:phases
        (modify-phases %standard-phases
          ;; HOME must be defined otherwise supercollider throws a "ERROR:
@@ -2945,8 +2996,7 @@ link REQUIRED)"))
          ;; The graphical tests also hang without it.
          (add-after 'unpack 'set-home-directory
            (lambda _
-             (setenv "HOME" (getcwd))
-             #t))
+             (setenv "HOME" (getcwd))))
          (add-after 'unpack 'patch-scclass-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -2957,13 +3007,11 @@ link REQUIRED)"))
                  (((string-append
                     "SC_Filesystem::instance\\(\\)\\.getDirectory"
                     "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
-                  (string-append "Path(\"" scclass-dir "\")")))
-               #t)))
+                  (string-append "Path(\"" scclass-dir "\")"))))))
          (add-before 'build 'prepare-x
            (lambda _
              (system "Xvfb &")
-             (setenv "DISPLAY" ":0")
-             #t))
+             (setenv "DISPLAY" ":0")))
          (add-before 'install 'install-ide
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -2971,33 +3019,28 @@ link REQUIRED)"))
                     (scide "editors/sc-ide/scide"))
                (install-file scide
                              (string-append ide "/bin"))
-               (delete-file scide)
-               #t))))))
+               (delete-file scide)))))))
     (native-inputs
-     `(("ableton-link" ,ableton-link)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
-    (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("fftw" ,fftw)
-       ("libxt" ,libxt)
-       ("readline" ,readline)           ;readline support for sclang's CLI
-       ("alsa" ,alsa-lib)               ;for sclang's MIDI interface
-       ("eudev" ,eudev)                 ;for user interactions with devices
-       ("avahi" ,avahi)                 ;zeroconf service discovery support
-       ("icu4c" ,icu4c)
-       ("boost" ,boost)
-       ("boost-sync" ,boost-sync)
-       ("yaml-cpp" ,yaml-cpp)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebsockets" ,qtwebsockets)))
+     (list ableton-link pkg-config qttools xorg-server-for-tests))
+    (inputs (list jack-1
+                  libsndfile
+                  fftw
+                  libxt
+                  readline              ;readline support for sclang's CLI
+                  alsa-lib              ;for sclang's MIDI interface
+                  eudev                 ;for user interactions with devices
+                  avahi                 ;zeroconf service discovery support
+                  icu4c
+                  boost
+                  boost-sync
+                  yaml-cpp
+                  qtbase-5
+                  qtdeclarative
+                  qtsvg
+                  qtwebchannel
+                  qtwebsockets))
     (propagated-inputs                  ;to get native-search-path
-     `(("qtwebengine" ,qtwebengine)))
+     (list qtwebengine))
     (home-page "https://github.com/supercollider/supercollider")
     (synopsis "Synthesis engine and programming language")
     (description "SuperCollider is a synthesis engine (@code{scsynth} or
@@ -3010,6 +3053,28 @@ for \"realtime\" in the index of the Guix manual to learn how to achieve this
 using Guix System.")
     (license license:gpl2+)))
 
+(define-public libshout-idjc
+  (package
+    (name "libshout-idjc")
+    (version "2.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p"
+                           "/libshout-idjc-" version ".tar.gz"))
+       (sha256
+        (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libogg libtheora libvorbis speex))
+    (home-page "http://idjc.sourceforge.net/")
+    (synopsis "Broadcast streaming library with IDJC extensions")
+    (description "This package provides libshout plus IDJC extensions.")
+    ;; GNU Library (not Lesser) General Public License.
+    (license license:lgpl2.0+)))
+
 (define-public raul
   (package
     (name "raul")
@@ -3026,10 +3091,9 @@ using Guix System.")
      `(#:python ,python-2
        #:tests? #f)) ; no check target
     (inputs
-     `(("glib" ,glib)
-       ("boost" ,boost)))
+     (list glib boost))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/raul/")
     (synopsis "Real-time audio utility library")
     (description
@@ -3067,10 +3131,7 @@ aimed at audio/musical applications.")
                        "074zj8ydp05yy1hjcglfv3hkvj4cm50f9nralka1992pm6yf8yvy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list autoconf automake pkg-config libtool))
     (synopsis "Sampling rate conversion and filter design utilities")
     (description "This package contains the @command{resample} and
 @command{windowfilter} command line utilities.  The @command{resample} command
@@ -3107,11 +3168,9 @@ filters using the so-called @emph{window method}.")
                ((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
              #t)))))
     (inputs
-     `(("ladspa" ,ladspa)
-       ("libsamplerate" ,libsamplerate)
-       ("vamp" ,vamp)))
+     (list ladspa libsamplerate vamp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://breakfastquay.com/rubberband/")
     (synopsis "Audio time-stretching and pitch-shifting library")
     (description
@@ -3133,13 +3192,9 @@ tempo and pitch of an audio recording independently of one another.")
                 "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
     (build-system gnu-build-system)
     (inputs
-     `(("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)))
+     (list jack-1 alsa-lib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
     (synopsis "Cross-platform MIDI library for C++")
     (description
@@ -3163,11 +3218,9 @@ input/output.")
     (arguments `(#:tests? #f))          ;no check target
     (propagated-inputs
      ;; In Requires of sratom-0.pc.
-     `(("lv2" ,lv2)
-       ("serd" ,serd)
-       ("sord" ,sord)))
+     (list lv2 serd sord))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/sratom/")
     (synopsis "Library for serialising LV2 atoms to/from RDF")
     (description
@@ -3178,24 +3231,24 @@ the Turtle syntax.")
 (define-public suil
   (package
     (name "suil")
-    (version "0.10.8")
+    (version "0.10.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/suil-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0h0ghk1s0lrj4gh12r7390b0ybaw7awnj0vhchyy9ll0gvhqgkci"))))
+                "1ysbazqlbyxlzyr9zk7dj2mgb6pn0amllj2cd5g1m56wnzk0h3vm"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
     (inputs
-     `(("lv2" ,lv2)
-       ("gtk+" ,gtk+-2)
-       ("gtk+" ,gtk+)
-       ("qt" ,qtbase-5)))
+     (list lv2
+           gtk+-2
+           gtk+
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/suil/")
     (synopsis "Library for loading and wrapping LV2 plugin UIs")
     (description
@@ -3212,7 +3265,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
 (define-public libebur128
   (package
     (name "libebur128")
-    (version "1.2.4")
+    (version "1.2.6")
     (source
      (origin
        (method git-fetch)
@@ -3221,7 +3274,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0n81rnm8dm1zmibkr2v3q79rsd609y0dbbsrbay18njcjva88p0g"))))
+        (base32 "0xkpz5rzz1j1srhprbh89669gw8z5f1njpvcnxqgf7qax69vd8sh"))))
     (build-system cmake-build-system)
     (arguments
      `(;; Tests require proprietary .wav files. See
@@ -3271,17 +3324,17 @@ for loudness normalisation.")
                                                "/share/freepats/freepats.cfg")))))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("flac" ,flac)
-       ("jack" ,jack-1)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("speex" ,speex)
-       ("ncurses" ,ncurses)
-       ("freepats" ,freepats)))
+     (list alsa-lib
+           ao
+           flac
+           jack-1
+           libogg
+           libvorbis
+           speex
+           ncurses
+           freepats))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://timidity.sourceforge.net/")
     (synopsis "Software synthesizer for playing MIDI files")
     (description
@@ -3319,9 +3372,9 @@ disks as various audio file formats.")
                                (string-append out "/lib/libvamp-hostsdk.la"))))
              #t)))))
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://vamp-plugins.org")
     (synopsis "Modular and extensible audio processing system")
     (description
@@ -3344,7 +3397,7 @@ analysis plugins or audio feature extraction plugins.")
        (sha256
         (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
     (build-system gnu-build-system)
-    (native-inputs `(("automake" ,automake)))
+    (native-inputs (list automake))
     (arguments
      `(#:configure-flags
        ;; Disable the use of SSE unless on x86_64.
@@ -3360,8 +3413,10 @@ analysis plugins or audio feature extraction plugins.")
             ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
             (delete-file "ar-lib")
             (symlink
-             (string-append (assoc-ref inputs "automake") "/share/automake-"
-                            ,(package-version automake) "/ar-lib")
+             (search-input-file inputs
+                                (string-append "/share/automake-"
+                                               ,(package-version automake)
+                                               "/ar-lib"))
              "ar-lib")
             #t)))))
     (home-page "http://sbsms.sourceforge.net/")
@@ -3373,6 +3428,31 @@ stretching and pitch scaling of audio.  This package contains the library.")
     ;; containing gpl2.
     (license license:gpl2)))
 
+(define-public libkeyfinder
+  (package
+    (name "libkeyfinder")
+    (version "2.2.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mixxxdj/libkeyfinder")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0s7nqjmv44q5qjynfcs0j6h4a6qcz4mxzandkkdjjbnwv5rxc3zg"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list catch-framework2))
+    (inputs
+     (list fftw))
+    (home-page "https://mixxxdj.github.io/libkeyfinder/")
+    (synopsis "Musical key detection for digital audio")
+    (description
+     "@code{libkeyfinder} is a small C++11 library for estimating the musical
+key of digital audio.")
+    (license license:gpl3+)))
+
 (define-public wavpack
   (package
     (name "wavpack")
@@ -3459,10 +3539,9 @@ Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
                 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxmp" ,libxmp)
-       ("pulseaudio" ,pulseaudio)))
+     (list libxmp pulseaudio))
     (home-page "http://xmp.sourceforge.net/")
     (synopsis "Extended module player")
     (description
@@ -3486,10 +3565,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
         (base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("file" ,file)))
+     (list autoconf automake libtool file))
     (home-page "https://www.surina.net/soundtouch/")
     (synopsis
      "Audio processing library for changing tempo, pitch and playback rate")
@@ -3518,18 +3594,18 @@ control functionality, or just for playing around with the sound effects.")
        ;; bug reports.
        '("--with-distro=Guix System Distribution")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("flac" ,flac)
-       ("lame" ,lame)
-       ("libid3tag" ,libid3tag)
-       ("libltdl" ,libltdl)
-       ("libmad" ,libmad)
-       ("libpng" ,libpng)
-       ("libvorbis" ,libvorbis)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           ao
+           flac
+           lame
+           libid3tag
+           libltdl
+           libmad
+           libpng
+           libvorbis
+           pulseaudio))
     (home-page "http://sox.sourceforge.net")
     (synopsis "Sound processing utility")
     (description
@@ -3575,10 +3651,9 @@ conversion.  It may be used, for example, to resample PCM-encoded audio.")
         (base32 "0zf8sxqb02w07ah55b1y7ab643zmpbhn62spa9pqra0rc17l4dfc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("perl" ,perl)
-       ("which" ,which)))               ;used in tests/test.pl
+     (list perl which))               ;used in tests/test.pl
     (home-page "https://www.twolame.org/")
     (synopsis "MPEG Audio Layer 2 (MP2) encoder")
     (description
@@ -3604,15 +3679,11 @@ portions of LAME.")
     (build-system gnu-build-system)
     (inputs
      ;; TODO: Add ASIHPI.
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)))
+     (list alsa-lib jack-1))
     ;; Autoreconf is necessary because the audacity-compat patch modifies .in
     ;; files.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (arguments
      '(#:tests? #f                      ;no 'check' target
        #:parallel-build? #f             ;fails on some systems
@@ -3665,12 +3736,9 @@ interface.")
     (arguments
      `(#:tests? #f))                    ; no "check" phase
     (native-inputs
-     `(("qttools" ,qttools)
-       ("pkg-config" ,pkg-config)))
+     (list qttools pkg-config))
     (inputs
-     `(("fluidsynth" ,fluidsynth)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list fluidsynth qtbase-5 qtx11extras))
     (home-page "https://qsynth.sourceforge.io")
     (synopsis "Graphical user interface for FluidSynth")
     (description
@@ -3693,13 +3761,13 @@ synthesizer written in C++.")
         (base32 "0gspmr3klwnq98h17p5hc6ifygya4p80g4g8r7a1qavm3mv19waf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("ao" ,ao)
-       ("libsamplerate" ,libsamplerate)
-       ("openal" ,openal)
-       ("portaudio" ,portaudio)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           jack-1
+           ao
+           libsamplerate
+           openal
+           portaudio
+           pulseaudio))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -3737,12 +3805,9 @@ with a much different focus than most other audio daemons.")
        (list (string-append "docdir=" (assoc-ref %outputs "out")
                             "/share/doc/xjackfreak"))))
     (inputs
-     `(("jack" ,jack-1)
-       ("libx11" ,libx11)
-       ("libxt" ,libxt)
-       ("libxext" ,libxext)))
+     (list jack-1 libx11 libxt libxext))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/johnhldavis/xjackfreak")
     (synopsis "JACK audio frequency analyzer and display")
     (description
@@ -3794,7 +3859,7 @@ result.")
              #t))
          ;; no configure script
          (delete 'configure))))
-    (inputs `(("fftwf" ,fftwf)))
+    (inputs (list fftwf))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "Fast, partitioned convolution engine library")
     (description
@@ -3892,8 +3957,7 @@ provide high-quality sample rate conversion.")
           ;; no configure script
           (delete 'configure))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)))
+     (list alsa-lib fftw))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "C++ wrapper around the ALSA API")
     (description
@@ -3919,10 +3983,7 @@ point audio data.")
     (build-system gnu-build-system)
     ;; The source checkout is not bootstrapped.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list autoconf automake flex bison))
     (synopsis "Cue and toc file parsers and utilities")
     (description "Cuetools is a set of programs that are useful for manipulating
 and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC
@@ -3931,6 +3992,33 @@ machine-readable ASCII format.")
     (home-page "https://github.com/svend/cuetools")
     (license license:gpl2+)))
 
+(define-public mp3guessenc
+  (package
+    (name "mp3guessenc")
+    (version "0.27.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-"
+                           (version-major+minor version) "/mp3guessenc-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)))) ; no configure phase
+    (home-page "https://mp3guessenc.sourceforge.io")
+    (synopsis "Analyze MPEG layer I/II/III files")
+    (description "mp3guessenc is a command line utility that tries to detect the
+encoder used for an MPEG Layer III (MP3) file, as well as scan any MPEG audio
+file (any layer) and print a lot of useful information.")
+    (license license:lgpl2.1+)))
+
 (define-public shntool
   (package
     (name "shntool")
@@ -4021,8 +4109,7 @@ with support for HD extensions.")
               ,home-page))
            #t))))
     (build-system gnu-build-system)
-    (inputs `(("ffmpeg" ,ffmpeg)
-              ("sox" ,sox)))
+    (inputs (list ffmpeg sox))
     (synopsis "Tool to adjust loudness of media files")
     (description
      "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
@@ -4129,7 +4216,7 @@ code, used in @code{libtoxcore}.")
     (arguments
      `(#:tests? #f))                   ; tests require access to ALSA devices.
     (inputs
-     `(("alsa-lib" ,alsa-lib)))
+     (list alsa-lib))
     (home-page "https://larsimmisch.github.io/pyalsaaudio/")
     (synopsis "ALSA wrappers for Python")
     (description
@@ -4188,20 +4275,17 @@ kbps at 24 bit/96 kHz.")
                             (assoc-ref %outputs "out")
                             "/etc/dbus-1/system.d"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bluez" ,bluez)
-       ("dbus" ,dbus)
-       ("glib" ,glib)
-       ("ldacbt" ,ldacbt)
-       ("libbsd" ,libbsd)
-       ("ncurses" ,ncurses)
-       ("ortp" ,ortp)
-       ("sbc" ,sbc)))
+     (list alsa-lib
+           bluez
+           dbus
+           glib
+           ldacbt
+           libbsd
+           ncurses
+           ortp
+           sbc))
     (home-page "https://github.com/Arkq/bluez-alsa")
     (synopsis "Bluetooth ALSA backend")
     (description "This project is a rebirth of a direct integration between
@@ -4250,23 +4334,23 @@ on the ALSA software PCM plugin.")
                (copy-recursively "pix" (string-append doc "/pix"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsl" ,gsl)
-       ("gtk+" ,gtk+)
-       ("jack" ,jack-1)
-       ("libsamplerate" ,libsamplerate)
-       ("mpc" ,mpc)
-       ("mpfr" ,mpfr)
-       ("mpg123" ,mpg123)
-       ("speex" ,speex)
-       ("timidity++" ,timidity++)
-       ("vorbis-tools" ,vorbis-tools)
-       ("wavpack" ,wavpack)))
+     (list alsa-lib
+           fftw
+           flac
+           gmp
+           gsl
+           gtk+
+           jack-1
+           libsamplerate
+           mpc
+           mpfr
+           mpg123
+           speex
+           timidity++
+           vorbis-tools
+           wavpack))
     (synopsis "Sound editor")
     (home-page "https://ccrma.stanford.edu/software/snd/")
     (description
@@ -4294,10 +4378,9 @@ the Snd sources), Ruby, or Forth.")
        (list (string-append "--prefix=" (assoc-ref %outputs "out")
                             "/lib/lv2"))))
     (inputs
-     `(("lv2" ,lv2)
-       ("fftwf" ,fftwf)))
+     (list lv2 fftwf))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/lucianodato/noise-repellent")
     (synopsis "LV2 plugin for broadband noise reduction")
     (description "Noise Repellent is an LV2 plugin to reduce noise.  It has
@@ -4336,8 +4419,7 @@ the following features:
           (base32 "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4"))))
       (build-system meson-build-system)
       (arguments
-       `(#:meson ,meson-0.55
-         ;; Using a "release" build is recommended for performance
+       `(;; Using a "release" build is recommended for performance
          #:build-type "release"
          #:phases
          (modify-phases %standard-phases
@@ -4363,12 +4445,9 @@ the following features:
                    (invoke "make")
                    (setenv "CFLAGS" old-CFLAGS))))))))
       (inputs
-       `(("lv2" ,lv2)))
+       (list lv2))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool 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
@@ -4392,12 +4471,10 @@ an LV2 audio plugin.")
     (build-system cmake-build-system)
     (native-inputs
      ;; TODO: Try using the latest googletest for versions > 1.8.
-     `( ;; ("googletest" ,googletest-1.8)
-       ("which" ,which)))
+     (list ;; ("googletest" ,googletest-1.8)
+           which))
     (inputs
-     `(("fftw" ,fftw)
-       ("ncurses" ,ncurses)
-       ("pulseaudio" ,pulseaudio)))
+     (list fftw ncurses pulseaudio))
     (arguments
      '(#:tests? #f
        ;; XXX Enable tests after patching them to use the system googletest.
@@ -4437,13 +4514,9 @@ representations.")
                 "1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("fftw" ,fftw)
-       ("ncurses" ,ncurses)
-       ("pulseaudio" ,pulseaudio)))
+     (list fftw ncurses pulseaudio))
     (arguments
      `(#:configure-flags
        (list (string-append "PREFIX=" %output)
@@ -4524,9 +4597,7 @@ using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
           "1fkrnzs78fmj11n9z3l0w53i2fl16jcfiyavwidck9bzmkmsf486"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/mstorsjo/fdk-aac")
     (synopsis "Fraunhofer FDK AAC library")
     (description "FDK is a library for encoding and decoding Advanced Audio
@@ -4542,7 +4613,7 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1
 (define-public libopenshot-audio
   (package
     (name "libopenshot-audio")
-    (version "0.2.0")
+    (version "0.2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4551,16 +4622,16 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "13if0m5mvlqly8gmbhschzb9papkgp3yqivklhb949dhy16m8zgf"))))
+                "03dygh85riljk7dpn5a5a0d22a2kz45fs13gzwqgnbzzr1k17p2y"))))
     (build-system cmake-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ;; The following are for JUCE GUI components:
-       ("libx11" ,libx11)
-       ("freetype" ,freetype)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)
-       ("libxcursor" ,libxcursor)))
+     (list alsa-lib
+           ;; The following are for JUCE GUI components:
+           libx11
+           freetype
+           libxrandr
+           libxinerama
+           libxcursor))
     (arguments
      `(#:tests? #f                      ;there are no tests
        #:configure-flags
@@ -4577,7 +4648,7 @@ library.")
 (define-public faudio
   (package
     (name "faudio")
-    (version "21.09")
+    (version "21.10")
     (source
      (origin
        (method git-fetch)
@@ -4586,15 +4657,13 @@ library.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0411fj5b9gvjz1z1gpvy07hkm7rz2nmwggw2v3hbn7ran7w3w5zy"))))
+        (base32 "0l9bicg8v1shsyq9k48zh4wv5kwfs6lfjmm9blzd13xrgmhd07w2"))))
     (arguments
      '(#:tests? #f                      ; No tests.
        #:configure-flags '("-DGSTREAMER=ON")))
     (build-system cmake-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("gstreamer" ,gstreamer)
-              ("gst-plugins-base" ,gst-plugins-base)
-              ("sdl2" ,sdl2)))
+    (native-inputs (list pkg-config))
+    (inputs (list gstreamer gst-plugins-base sdl2))
     (home-page "https://github.com/FNA-XNA/FAudio")
     (synopsis "XAudio reimplementation")
     (description "FAudio is an XAudio reimplementation that focuses solely on
@@ -4619,12 +4688,9 @@ developing fully accurate DirectX Audio runtime libraries.")
          "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+-2)
-       ("libsndfile" ,libsndfile)
-       ("portaudio" ,portaudio)))
+     (list alsa-lib gtk+-2 libsndfile portaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://gnaural.sourceforge.net/")
     (synopsis "Binaural beat synthesizer")
     (description "Gnaural is a programmable auditory binaural beat synthesizer
@@ -4647,15 +4713,15 @@ other Gnaural instances, allowing synchronous sessions between many users.")
                (base32
                 "05yq7lggxygrkd76yiqby3msrgdn082p0qlvmzzv9xbw8hmyra76"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("lame" ,lame)
-              ("libvorbis" ,libvorbis)
-              ("opus" ,opus)
-              ("twolame" ,twolame)
-              ("alsa-lib" ,alsa-lib)
-              ("pulseaudio" ,pulseaudio)
-              ("jack" ,jack-1)
-              ("libsamplerate" ,libsamplerate)))
+    (native-inputs (list pkg-config))
+    (inputs (list lame
+                  libvorbis
+                  opus
+                  twolame
+                  alsa-lib
+                  pulseaudio
+                  jack-1
+                  libsamplerate))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-lame-prefix="
@@ -4684,8 +4750,7 @@ stream to one or more IceCast and/or ShoutCast servers.")
     (arguments
      `(#:parallel-tests? #f))           ;tests fail otherwise
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (synopsis "Encode or decode Linear/Longitudinal Time Code (LTC) audio")
     (description "Libltc is a POSIX-C Library for handling
 @dfn{Linear/Longitudinal Time Code} (LTC) data.")
@@ -4749,11 +4814,9 @@ supports both of ID3v1/v2 and APEv2 tags.")
     (arguments
      `(#:tests? #f)) ;no tests included
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib jack-1 pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://libsound.io")
     (synopsis "C library for real-time audio input and output")
     (description "@code{libsoundio} is a C library providing audio input and
@@ -4764,23 +4827,23 @@ workstations as well as consumer software such as music players.")
 (define-public redkite
   (package
     (name "redkite")
-    (version "1.3.0")
+    (version "1.3.1")                     ;marked unmaintained as of Oct. 2021
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/iurie-sw/redkite")
+             (url "https://github.com/free-sm/redkite")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16j9zp5i7svq3g38rfb6h257qfgnd2brrxi7cjd2pdax9xxwj40y"))))
+        (base32 "1zb2k2a4m7z2ravqrjn8fq8lic20wbr2m8kja3p3113jsk7j9zvd"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
     (propagated-inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Small GUI toolkit")
     (description "Redkite is a small GUI toolkit developed in C++17 and
 inspired from other well known GUI toolkits such as Qt and GTK.  It is
@@ -4793,7 +4856,7 @@ as is the case with audio plugins.")
 (define-public carla
   (package
     (name "carla")
-    (version "2.1.1")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -4803,8 +4866,7 @@ as is the case with audio plugins.")
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g"))))
+        (base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -4823,10 +4885,11 @@ as is the case with audio plugins.")
                (chmod (string-append out "/share/carla/carla") #o555)
                #t)))
          (add-after 'install 'wrap-executables
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (wrap-script (string-append out "/bin/carla")
-                            `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+                            #:guile (search-input-file inputs "bin/guile")
+                            `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
                #t))))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -4851,7 +4914,7 @@ as is the case with audio plugins.")
        ;; For WRAP-SCRIPT above.
        ("guile" ,guile-2.2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://kx.studio/Applications:Carla")
     (synopsis "Audio plugin host")
     (description "Carla is a modular audio plugin host, with features like
@@ -4872,22 +4935,22 @@ default and preferred audio driver but also supports native drivers like ALSA.")
               (sha256
                (base32 "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     ;; It would be nice to add mikmod to inputs if that gets packaged
     ;; eventually.
-    (inputs `(("alsa-lib" ,alsa-lib)
-              ("jack" ,jack-1)
-              ("mpg123" ,mpg123)
-              ("lame" ,lame)
-              ("vorbis-tools" ,vorbis-tools)
-              ("faad2" ,faad2)
-              ("flac" ,flac)
-              ("timidity++" ,timidity++)
-              ("libsndfile" ,libsndfile)
-              ("libsamplerate" ,libsamplerate)
-              ("ncurses" ,ncurses)
-              ("ladspa" ,ladspa)
-              ("lilv" ,lilv)))
+    (inputs (list alsa-lib
+                  jack-1
+                  mpg123
+                  lame
+                  vorbis-tools
+                  faad2
+                  flac
+                  timidity++
+                  libsndfile
+                  libsamplerate
+                  ncurses
+                  ladspa
+                  lilv))
     (home-page "https://nosignal.fi/ecasound/index.php")
     (synopsis "Multitrack audio processing")
     (description "Ecasound is a software package designed for multitrack audio
@@ -4920,15 +4983,13 @@ in the package.")
             "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz"))))
    (build-system meson-build-system)
    (arguments
-    `(#:meson ,meson-0.55
-      #:configure-flags
+    `(#:configure-flags
       ;; Build the tests.
       `("-Dtests=true")))
    (inputs
-    `(("libsamplerate" ,libsamplerate)
-      ("libsndfile" ,libsndfile)))
+    (list libsamplerate libsndfile))
    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
    (synopsis "Library for reading and resampling audio files")
    (description "libaudec is a wrapper library over ffmpeg, sndfile and
 libsamplerate for reading and resampling audio files, based on Robin Gareus'
@@ -4956,11 +5017,9 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
        `("-Delf-tests=true" ; for checking symbol visibility
          "-Donline-tests=true"))) ; for checking URI existence
     (inputs
-      `(("curl" ,curl)
-        ("libelf" ,libelf)
-        ("lilv" ,lilv)))
+      (list curl libelf lilv))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "LV2 plugin lint tool")
     (description "lv2lint is an LV2 lint-like tool that checks whether a
 given plugin and its UI(s) match up with the provided metadata and adhere
@@ -4991,11 +5050,9 @@ to well-known best practices.")
       (modify-phases %standard-phases
         (delete 'configure))))
     (inputs
-      `(("jalv" ,jalv)
-        ("lilv" ,lilv)))
+      (list jalv lilv))
     (native-inputs
-      `(("help2man" ,help2man)
-        ("pkg-config" ,pkg-config)))
+      (list help2man pkg-config))
     (synopsis "Documentation generator for LV2 plugins")
     (description
       "lv2toweb allows the user to create an xhtml page with information
@@ -5020,12 +5077,11 @@ with the provided metadata and adhere to well-known best practices.")
          "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     ;; These are listed as propagated inputs because they are dependencies
     ;; in pkgconfig.
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("libx11" ,libx11)))
+     (list cairo 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
@@ -5056,8 +5112,7 @@ minimum.")
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("libsndfile" ,libsndfile)))
+     (list glib libsndfile))
     (home-page "http://www.swamiproject.org/")
     (synopsis "Instrument file software library")
     (description
@@ -5081,7 +5136,7 @@ edited, converted, compressed and saved.")
 (define-public lsp-dsp-lib
   (package
     (name "lsp-dsp-lib")
-    (version "0.5.11")
+    (version "0.5.14")
     (source
       (origin
         (method url-fetch)
@@ -5089,23 +5144,23 @@ edited, converted, compressed and saved.")
                             "releases/download/" version
                             "/lsp-dsp-lib-" version "-src.tar.gz"))
         (sha256
-         (base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
+         (base32 "1gcznkyybywbgdi2fhx27i8sckhy6ahvxax72b213g1lr5aaw7bq"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests
-       #:make-flags
-       (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"
-                     (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+     (list #:tests? #f                  ; no tests
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target)))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'omit-static-library
+                 (lambda _
+                   (substitute* "src/Makefile"
+                     ((".*cp \\$\\(ARTIFACT_SLIB\\).*") "") ; don't install it
+                     ((" \\$\\(ARTIFACT_SLIB\\)") ""))))    ; don't build it
+               (replace 'configure
+                 (lambda _
+                   (invoke "make" "config"
+                           (string-append "PREFIX=" #$output)))))))
     (home-page "https://github.com/sadko4u/lsp-dsp-lib")
     (synopsis "Digital signal processing library")
     (description "The LSP DSP library provides a set of functions that perform
@@ -5128,9 +5183,7 @@ currently operate on IEEE-754 single-precision floating-point numbers.")
         (base32 "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bc" ,bc)
-       ("octave" ,octave)
-       ("valgrind" ,valgrind)))
+     (list bc octave valgrind))
     (arguments
      `(#:tests? #f ; TODO: Fix tests (paths, graphic toolkit, octave modules).
        #:phases
@@ -5176,7 +5229,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
 (define-public ableton-link
   (package
     (name "ableton-link")
-    (version "3.0.2")
+    (version "3.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5185,7 +5238,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir"))
+                "1wplqj11ww64gmw2kzlxpvfs3v04m2036f7k5ndm34zcv12b91fa"))
               (modules '((guix build utils)))
               (patches
                (search-patches "ableton-link-system-libraries-debian.patch"))
@@ -5197,23 +5250,22 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                     (("root_dir,") "root_dir, os.pardir,"))
                   ;; Unbundle dependencies.
                   (delete-file-recursively "third_party")
-                  (delete-file-recursively "modules")
-                  #t))))
+                  (delete-file-recursively "modules")))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("catch" ,catch-framework)
-       ("python" ,python)       ;for running tests
-       ("portaudio" ,portaudio) ;for portaudio examples
-       ("qtbase" ,qtbase-5)       ;for Qt examples
-       ("qtdeclarative" ,qtdeclarative)
-       ("qttools" ,qttools)))
+     (list catch-framework
+           python ;for running tests
+           portaudio ;for portaudio examples
+           qtbase-5 ;for Qt examples
+           qtdeclarative
+           qttools))
     (inputs
-     `(("jack" ,jack-1)                       ;for JACK examples
-       ("qtquickcontrols" ,qtquickcontrols))) ;for Qt examples
+     (list jack-1 ;for JACK examples
+           qtquickcontrols)) ;for Qt examples
     (propagated-inputs
      ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
      ;; contains '#include <asio.hpp>'.
-     `(("asio" ,asio)))
+     (list asio))
     (arguments
      `(#:configure-flags
        '("-DLINK_BUILD_QT_EXAMPLES=ON"
@@ -5221,19 +5273,15 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
        #:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((python (string-append (assoc-ref inputs "python")
-                                          "/bin/python3"))
-                   (run-tests (string-append "../ableton-link-"
-                                             ,version
-                                             "-checkout/ci/run-tests.py")))
-               (invoke python run-tests "--target" "LinkCoreTest")
-               (invoke python run-tests "--target" "LinkDiscoveryTest"))))
+           (lambda* (#:key inputs tests? #:allow-other-keys)
+             (when tests?
+               (let* ((python (search-input-file inputs "/bin/python3"))
+                      (run-tests "../source/ci/run-tests.py"))
+                 (invoke python run-tests "--target" "LinkCoreTest")
+                 (invoke python run-tests "--target" "LinkDiscoveryTest")))))
          (add-before 'install 'patch-cmake
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((source (string-append "../ableton-link-"
-                                                ,version
-                                                "-checkout/")))
+             (let* ((source "../source/"))
                (substitute* (string-append source
                                            "cmake_include/AsioStandaloneConfig.cmake")
                  (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
@@ -5244,14 +5292,13 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                  (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
                   "${CMAKE_CURRENT_LIST_DIR}/../../../include")
                  (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
-                  "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp"))
-               #t)))
+                  "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (lib-cmake (string-append out "/lib/cmake/ableton-link"))
-                    (source (string-append "../ableton-link-" ,version "-checkout")))
+                    (source "../source"))
                (for-each (lambda (test-file)
                            (delete-file test-file))
                          '("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
@@ -5262,8 +5309,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                              lib-cmake)
                (install-file (string-append source
                                             "/cmake_include/AsioStandaloneConfig.cmake")
-                             (string-append lib-cmake "/cmake_include"))
-               #t))))))
+                             (string-append lib-cmake "/cmake_include"))))))))
     (home-page "https://github.com/Ableton/link")
     (synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
     (description
@@ -5277,14 +5323,14 @@ while still staying in time.")
 (define-public butt
   (package
     (name "butt")
-    (version "0.1.31")
+    (version "0.1.32")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/butt/butt/butt-"
                                   version "/butt-" version ".tar.gz"))
               (sha256
                (base32
-                "19zvdi5vr6vqnrpc60jir7550nz9a5x1c61lh13355cdny2zp28z"))
+                "1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r"))
               (modules '((guix build utils)))
               (snippet
                '(substitute* "src/butt.cpp"
@@ -5325,7 +5371,7 @@ while still staying in time.")
                                         version "_manual.pdf"))
                     (sha256
                      (base32
-                      "0a0kgd069whfp1v8xgw6qm67w02n8b7b4h5ay5665wgq947hxanp"))))))
+                      "0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh"))))))
     (home-page "https://danielnoethen.de/butt/")
     (synopsis "Audio streaming tool")
     (description "Butt is a tool to stream audio to a ShoutCast or
@@ -5368,7 +5414,7 @@ Icecast server.")
                          (list "/bin" "/share/man/man1" "/share/man/man5"))
                (apply invoke "make" "sysinstall" make-flags)))))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (native-inputs
      `(("groff" ,groff-minimal)         ; for nroff
        ("util-linux" ,util-linux)))     ; for col
@@ -5379,6 +5425,128 @@ generator, generating audio signals out of Linux's /dev/dsp audio
 device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
     (license license:gpl2)))
 
+(define-public python-pysox
+  ;; PyPi does not include the data folder containing audio files for testing.
+  (let ((commit "3d0053381c24ae3490f759d4de87194b85789d36")
+        (revision "0"))
+    (package
+      (name "python-pysox")
+      (version (git-version "1.4.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rabitt/pysox")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0i62jx92vfpcr2z7lp69yzqdi9idfs3pifl3rzm2akc2c4cr1mac"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-sox
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((sox-store-path (assoc-ref inputs "sox"))
+                      (sox-bin (string-append sox-store-path "/bin/sox")))
+                 (substitute* "sox/__init__.py"
+                   (("sox -h")
+                    (string-append sox-bin " -h")))
+                 (substitute* "sox/core.py"
+                   (("\\['sox")
+                    (string-append "['" sox-bin))))))
+           (replace 'check
+             (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+               (when tests?
+                 (add-installed-pythonpath inputs outputs)
+                 (invoke "pytest")))))))
+      (propagated-inputs
+       (list python-numpy python-typing-extensions))
+      (native-inputs
+       (list sox python-pytest python-pytest-cov python-soundfile))
+      (home-page "https://github.com/rabitt/pysox")
+      (synopsis "Python wrapper around SoX")
+      (description "@code{python-pysox} is a wrapper around the @command{sox}
+command line tool.  The API offers @code{Transformer} and @code{Combiner}
+classes that allow the user to incrementally build up effects and audio
+manipulations.  @code{python-pysox} also provides methods for querying audio
+information such as sample rate, determining whether an audio file is silent,
+and much more.")
+      (license license:bsd-3))))
+
+(define-public python-resampy
+  (package
+    (name "python-resampy")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         ;; PyPi does not include tests.
+         (url "https://github.com/bmcfee/resampy")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0qmkxl5sbgh0j73n667vyi7ywzh09iaync91yp1j5rrcmwsn0qfs"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "tests")))))))
+    (propagated-inputs
+     (list python-numba python-numpy python-scipy python-six))
+    (native-inputs
+     (list python-pytest python-pytest-cov))
+    (home-page "https://github.com/bmcfee/resampy")
+    (synopsis "Efficient signal resampling")
+    (description
+     "@code{python-resampy} implements the band-limited sinc interpolation
+method for sampling rate conversion as described by Julius O. Smith at the
+@url{https://ccrma.stanford.edu/~jos/resample/, Digital Audio Resampling
+Home Page}.")
+    (license license:isc)))
+
+(define-public python-librosa
+  (package
+    (name "python-librosa")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "librosa" version))
+       (sha256
+        (base32 "1cx6rhcvak0hy6bx84jwzpxmwgi92m82w77279akwjmfd3khagf5"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests require internet connection to download MATLAB scripts for
+     ;; generating the testing data.
+     `(#:tests? #f))
+    (propagated-inputs
+     (list python-audioread
+           python-decorator
+           python-joblib
+           python-numba
+           python-numpy
+           python-packaging
+           python-pooch
+           python-resampy
+           python-scikit-learn
+           python-scipy
+           python-soundfile))
+    (home-page "https://librosa.org")
+    (synopsis "Python module for audio and music processing")
+    (description
+     "@code{librosa} is a python package for music and audio analysis.  It
+provides the building blocks necessary to create music information retrieval
+systems.")
+    (license license:isc)))
+
 (define-public mda-lv2
   (package
     (name "mda-lv2")
@@ -5397,9 +5565,9 @@ device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
        (list (string-append "--prefix="
                             (assoc-ref %outputs "out")))))
     (inputs
-     `(("lv2" ,lv2)))
+     (list lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -5410,3 +5578,62 @@ device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
      "MDA-LV2 is an LV2 port of the MDA plugins.  It includes effects and a few
 instrument plugins.")
     (license license:gpl3+)))
+
+(define-public libodiosacd
+  (package
+   (name "libodiosacd")
+   (version "21.8.30")
+   (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/tari01/libodiosacd")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "0iamf7wksbql0qfigdv5ahaax53ms2yligdav8dw6x0ay88x4lhi"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f ; no check target
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'patch-makefile
+          (lambda _
+            (substitute* "Makefile"
+              (("\\$\\(DESTDIR\\)/usr")
+                "\\$(DESTDIR)"))))
+        (delete 'configure)) ; no configure script
+      #:make-flags
+      (list (string-append "DESTDIR=" %output))))
+   (synopsis "Library for decoding Super Audio CDs (SACD)")
+   (description
+    "The Odio SACD shared library is a decoding engine which takes a Super
+Audio CD source and extracts a 24-bit high resolution WAV file.  It handles
+both DST and DSD streams.")
+   (home-page "https://tari.in/www/software/libodiosacd/")
+   (license license:gpl3+)))
+
+(define-public odio-sacd
+  (package
+   (name "odio-sacd")
+   (version "21.1.9")
+   (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/tari01/odio-sacd")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "0314srqk0r4qv292qiaply619l2fw04nkdwvqhj3q1dqzv41g4qk"))))
+   (inputs (list libodiosacd))
+   ;; Build system and arguments for libodiosacd are identical.
+   (build-system (package-build-system libodiosacd))
+   (arguments (package-arguments libodiosacd))
+   (synopsis "Rip Super Audio CDs (SACD)")
+   (description
+    "Odio SACD is a command-line application which takes a Super Audio CD
+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+)))