gnu: libsoundio: Fix indentation.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
index c7f55bb..45431be 100644 (file)
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016 ng0 <ng0@n0.is>
+;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +71,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnunet) ; libmicrohttpd
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnunet) ; libmicrohttpd
@@ -85,6 +90,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vim) ;xxd
   #:use-module (gnu packages video)
   #:use-module (gnu packages vim) ;xxd
+  #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public opensles
+  (package
+    (name "opensles")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+         (commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))
+       (patches
+        (search-patches "opensles-add-license-file.patch"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'clean
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/etc"))
+               (mkdir-p (string-append out "/include"))
+               (mkdir-p (string-append out "/share"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_IID.c")
+                (string-append out "/etc/OpenSLES_IID.c"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES.h")
+                (string-append out "/include/OpenSLES.h"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_Platform.h")
+                (string-append out "/include/OpenSLES_Platform.h"))
+               (rename-file
+                (string-append out "/api/1.1/README.txt")
+                (string-append out "/share/README.txt"))
+               (rename-file
+                (string-append out "/LICENSE.txt")
+                (string-append out "/share/LICENSE.txt"))
+               (for-each delete-file-recursively
+                         (list
+                          (string-append out "/api")
+                          (string-append out "/specs")))
+               (for-each delete-file
+                         (list
+                          (string-append out "/CODE_OF_CONDUCT.md")
+                          (string-append out "/index.php")
+                          (string-append out "/README.md"))))
+             #t)))))
+    (synopsis "Embedded Audio Acceleration")
+    (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems.  It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+    (home-page "https://www.khronos.org/opensles/")
+    (license (license:non-copyleft "file:///LICENSE.txt"))))
+
+(define-public wildmidi
+  (package
+    (name "wildmidi")
+    (version "0.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Mindwerks/wildmidi.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; No target
+       #:configure-flags
+       (list
+        "-DWANT_ALSA=ON"
+        "-DWANT_OSS=ON"
+        "-DWANT_OPENAL=ON")))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("openal" ,openal)))
+    (synopsis "Software Synthesizer")
+    (description "WildMIDI is a simple software midi player which has a core
+softsynth library that can be use with other applications.")
+    (home-page "https://www.mindwerks.net/projects/wildmidi/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl3+
+      ;; Player.
+      license:gpl3+))))
+
+(define-public webrtc-audio-processing
+  (package
+    (name "webrtc-audio-processing")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://freedesktop.org/software/pulseaudio/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
+    (build-system gnu-build-system)
+    (synopsis "WebRTC's Audio Processing Library")
+    (description "WebRTC-Audio-Processing library based on Google's
+implementation of WebRTC.")
+    (home-page
+     "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
+    (license (license:non-copyleft "file:///COPYING"))))
+
+(define-public vo-aacenc
+  (package
+    (name "vo-aacenc")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/opencore-amr/files/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
+    (build-system gnu-build-system)
+    (synopsis "VisualOn AAC Encoder")
+    (description "VO-AACENC is the VisualOn implementation of Advanced Audio
+Coding (AAC) encoder.")
+    (home-page "https://sourceforge.net/projects/opencore-amr/")
+    (license license:asl2.0)))
+
+(define-public tinyalsa
+  (package
+    (name "tinyalsa")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/tinyalsa/tinyalsa.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (synopsis "ALSA interfacing library")
+    (description "TinyALSA is a small library to interface with ALSA in the
+Linux kernel.")
+    (home-page "https://github.com/tinyalsa/tinyalsa")
+    (license (license:non-copyleft "file:///NOTICE"))))
+
+(define-public libopenmpt
+  (package
+    (name "libopenmpt")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://download.openmpt.org/archive/libopenmpt/src/"
+                       "libopenmpt-" version "+release.autotools.tar.gz"))
+       (sha256
+        (base32 "1cwpc4j90dpxa2siia68rg9qwwm2xk6bhxnslfjj364507jy6s4l"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--docdir=" (assoc-ref %outputs "out")
+                            "/share/doc/" ,name "-" ,version))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'delete-static-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (for-each delete-file (find-files lib "\\.a$"))
+               #t))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("flac" ,flac)
+       ("mpg123" ,mpg123)
+       ("portaudio" ,portaudio)
+       ("pulseaudio" ,pulseaudio)
+       ("sdl2" ,sdl2)
+       ("sndfile" ,libsndfile)
+       ("vorbis" ,libvorbis)
+       ("zlib" ,zlib)))
+    (synopsis "Audio tracking library")
+    (description "LibOpenMPT is a cross-platform C++ and C module playback
+library.  It is based on the player code of the Open ModPlug Tracker project.")
+    (home-page "https://openmpt.org/")
+    (license (license:non-copyleft "file:///LICENSE"))))
+
+(define-public libofa
+  (package
+    (name "libofa")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-downloads/v2/code.google.com/"
+                       "musicip-libofa/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
+       (patches
+        (search-patches
+         "libofa-ftbfs-1.diff"
+         "libofa-curl.diff"
+         "libofa-ftbfs-2.diff"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("expat" ,expat)))
+    (propagated-inputs
+     `(("fftw" ,fftw)))
+    (synopsis "Open Fingerprint Architecture")
+    (description "LibOFA is an audio fingerprint library, created and provided
+by MusicIP.")
+    (home-page "https://code.google.com/archive/p/musicip-libofa/")
+    (license license:gpl2+)))
+
+(define-public faac
+  (package
+    (name "faac")
+    (version "1.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
+                       "faac-1.30/faac-1_30.tar.gz/download"))
+       (sha256
+        (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Freeware Advanced Audio Coder")
+    (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
+    (home-page "https://www.audiocoding.com/faac.html")
+    (license
+     (list
+      ;; ISO MPEG-4 reference code.
+      license:gpl2+
+      ;; Others.
+      license:lgpl2.0+))))
+
+(define-public libtimidity
+  (package
+    (name "libtimidity")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))       ; XXX: LibTiMidity could not be initialised
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ao" ,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
+General MIDI files.")
+    (home-page "http://libtimidity.sourceforge.net/")
+    (license
+     ;; This project is dual-licensed.
+     ;; Either of the following licenses can be exercised.
+     (list
+      license:lgpl2.1+
+      license:artistic2.0))))
+
 (define-public vo-amrwbenc
   (package
     (name "vo-amrwbenc")
 (define-public vo-amrwbenc
   (package
     (name "vo-amrwbenc")
@@ -170,7 +481,9 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
                                   "/" version "/ams-" version ".tar.bz2"))
               (sha256
                (base32
                                   "/" version "/ams-" version ".tar.bz2"))
               (sha256
                (base32
-                "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
+                "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))
+              (patches
+               (search-patches "alsa-modular-synth-fix-vocoder.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -178,6 +491,17 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
          "CXXFLAGS=-std=gnu++11")
        #:phases
        (modify-phases %standard-phases
          "CXXFLAGS=-std=gnu++11")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'set-paths 'hide-default-gcc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
+               ;; conflicts with the GCC 5 input.
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (delete (string-append gcc "/include/c++")
+                                (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+                        ":"))
+               #t)))
          ;; Insert an extra space between linker flags.
          (add-before 'configure 'add-missing-space
            (lambda _
          ;; Insert an extra space between linker flags.
          (add-before 'configure 'add-missing-space
            (lambda _
@@ -198,7 +522,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)
-       ("gcc" ,gcc-5)))
+       ("gcc@5" ,gcc-5)))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -377,17 +701,17 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.3.3")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/audacity/audacity.git")
+             (url "https://github.com/audacity/audacity")
              (commit (string-append "Audacity-" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
              (commit (string-append "Audacity-" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0707fsnrl4vjalsi21w4blwgz024qhd0w8rdd5j5vpxf5lyk2rbk"))
+         "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn"))
        (patches (search-patches "audacity-build-with-system-portaudio.patch"))
        (modules '((guix build utils)))
        (snippet
        (patches (search-patches "audacity-build-with-system-portaudio.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -455,7 +779,7 @@ engineers, musicians, soundtrack editors and composers.")
           ;; SSE instructions are available on Intel systems only.
           ,@(if (any (cute string-prefix? <> (or (%current-target-system)
                                                  (%current-system)))
           ;; SSE instructions are available on Intel systems only.
           ,@(if (any (cute string-prefix? <> (or (%current-target-system)
                                                  (%current-system)))
-                    '("x64_64" "i686"))
+                    '("x86_64" "i686"))
               '()
               '("--enable-sse=no"))
           ;; portmidi, libid3tag and libmad provide no .pc files, so
               '()
               '("--enable-sse=no"))
           ;; portmidi, libid3tag and libmad provide no .pc files, so
@@ -700,7 +1024,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
              ;; Actually https://github.com/moddevices/caps-lv2.git, but it's
              ;; missing fixes for newer glibc, so using the origin of a pull
              ;; request regarding this issue:
              ;; Actually https://github.com/moddevices/caps-lv2.git, but it's
              ;; missing fixes for newer glibc, so using the origin of a pull
              ;; request regarding this issue:
-             (url "https://github.com/jujudusud/caps-lv2.git")
+             (url "https://github.com/jujudusud/caps-lv2")
              (commit "9c9478b7fbd8f9714f552ebe2a6866398b0babfb")))
        (file-name (git-file-name name version))
        (sha256
              (commit "9c9478b7fbd8f9714f552ebe2a6866398b0babfb")))
        (file-name (git-file-name name version))
        (sha256
@@ -736,7 +1060,7 @@ generators of mostly elementary and occasionally exotic nature.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/ssj71/infamousPlugins.git")
+                    (url "https://github.com/ssj71/infamousPlugins")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -775,7 +1099,7 @@ envelope follower, distortion effects, tape effects and more.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/swh/ladspa.git")
+                    (url "https://github.com/swh/ladspa")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -805,7 +1129,7 @@ envelope follower, distortion effects, tape effects and more.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/swh/lv2.git")
+                    (url "https://github.com/swh/lv2")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -843,33 +1167,103 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
     (license license:gpl3+)))
 
 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
     (license license:gpl3+)))
 
-(define-public csound
+(define-public tao
   (package
   (package
-    (name "csound")
-    (version "6.13.0")
+    (name "tao")
+    (version "1.0-beta-10May2006")
     (source (origin
     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/csound/csound.git")
-                    (commit version)))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/taopm/Tao/"
+                                  "tao-" version "/"
+                                  "tao-" version ".tar.gz"))
               (sha256
                (base32
               (sha256
                (base32
-                "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh"))))
-    (build-system cmake-build-system)
+                "156py3g6mmglldfd0j76bn7n242hdwf49diaprjpj7crp8vgf2pz"))
+              (patches
+               (search-patches "tao-add-missing-headers.patch"
+                               "tao-fix-parser-types.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "configure"
+                    (("SHELL=/bin/sh") ""))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("TAO_RELEASE=-beta")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-references
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "user-scripts/tao.in"
+               (("taoparse")
+                (string-append (assoc-ref outputs "out") "/bin/taoparse"))
+               (("grep") (which "grep"))
+               (("sed -f \\$distdir/user-scripts/")
+                (string-append (which "sed") " -f $distdir/"))
+               (("distdir=.*")
+                (string-append "distdir="
+                               (assoc-ref outputs "out") "/share/tao")))
+             #t))
+         (add-after 'install 'install-extra-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share/tao/"))
+                    (inc (string-append out "/include/tao/")))
+               (mkdir-p share)
+               (mkdir-p inc)
+               (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))))))
     (inputs
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("pulseaudio" ,pulseaudio)
-       ("libsndfile" ,libsndfile)
-       ("liblo" ,liblo)
-       ("ladspa" ,ladspa)
-       ("jack" ,jack-1)
-       ("gettext" ,gettext-minimal)))
+     `(("audiofile" ,audiofile)
+       ("libxi" ,libxi)
+       ("libxmu" ,libxmu)
+       ("mesa" ,mesa)
+       ("glut" ,freeglut)
+       ("flex" ,flex)
+       ("bison" ,bison)
+       ("sed" ,sed)
+       ("grep" ,grep)))
+    (home-page "http://taopm.sourceforge.net/")
+    (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:gpl2+)))
+
+(define-public csound
+  (package
+    (name "csound")
+    (version "6.14.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/csound/csound")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j"))))
+    (build-system cmake-build-system)
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
        ("zlib" ,zlib)))
        ("zlib" ,zlib)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("jack" ,jack-1)
+       ("ladspa" ,ladspa)
+       ("liblo" ,liblo)
+       ("libsndfile" ,libsndfile)
+       ("pulseaudio" ,pulseaudio)))
     (home-page "https://csound.com/")
     (synopsis "Sound and music computing system")
     (description
     (home-page "https://csound.com/")
     (synopsis "Sound and music computing system")
     (description
@@ -1237,16 +1631,16 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.1.1")
+    (version "2.1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/FluidSynth/fluidsynth.git")
+                    (url "https://github.com/FluidSynth/fluidsynth")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "09jq04hrasidf6b5gkk4aba13fq55z3bmn7bq35rdaikz26xiij4"))))
+                "1r3khwyw57ybg5m4x0rvdzq7hgw2484sd52k6bm19akbw8yicfna"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1297,22 +1691,22 @@ also play midifiles using a Soundfont.")
 (define-public faad2
   (package
     (name "faad2")
 (define-public faad2
   (package
     (name "faad2")
-    (version "2.8.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
-                                  (version-major+minor version) ".0/"
-                                  "faad2-" version ".tar.gz"))
-              (sha256
-               (base32
-                "089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5"))))
+    (version "2.8.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
+                       (version-major+minor version) ".0/"
+                       "faad2-" version ".tar.gz"))
+       (sha256
+        (base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
     (build-system gnu-build-system)
     (home-page "https://www.audiocoding.com/faad2.html")
     (synopsis "MPEG-4 and MPEG-2 AAC decoder")
     (description
     (build-system gnu-build-system)
     (home-page "https://www.audiocoding.com/faad2.html")
     (synopsis "MPEG-4 and MPEG-2 AAC decoder")
     (description
-     "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
-PS, and DAB+.")
-    (license license:gpl2)))
+     "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
+    (license license:gpl2+)))
 
 (define-public faust
   (package
 
 (define-public faust
   (package
@@ -1321,7 +1715,7 @@ PS, and DAB+.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/grame-cncm/faust.git")
+                    (url "https://github.com/grame-cncm/faust")
                     (commit (string-append "v"
                                            (string-map (lambda (c)
                                                          (if (char=? c #\.) #\- c))
                     (commit (string-append "v"
                                            (string-map (lambda (c)
                                                          (if (char=? c #\.) #\- c))
@@ -1429,7 +1823,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
 (define-public guitarix
   (package
     (name "guitarix")
 (define-public guitarix
   (package
     (name "guitarix")
-    (version "0.38.1")
+    (version "0.41.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1437,28 +1831,14 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
                    version ".tar.xz"))
              (sha256
               (base32
                    version ".tar.xz"))
              (sha256
               (base32
-               "0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
+               "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
-       #:python ,python-2
        #:configure-flags
        (list
         ;; Add the output lib directory to the RUNPATH.
        #:configure-flags
        (list
         ;; Add the output lib directory to the RUNPATH.
-        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-boost-includes
-           (lambda _
-             (substitute* "src/headers/gx_internal_plugins.h"
-               (("namespace gx_jack" m)
-                (string-append "#include <boost/noncopyable.hpp>\n" m)))
-             (substitute* '("src/headers/gx_system.h"
-                            "src/headers/gx_parameter.h"
-                            "src/headers/gx_json.h")
-               (("namespace gx_system" m)
-                (string-append "#include <boost/noncopyable.hpp>\n" m)))
-             #t)))))
+        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("boost" ,boost)
     (inputs
      `(("libsndfile" ,libsndfile)
        ("boost" ,boost)
@@ -1469,8 +1849,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        ("lilv" ,lilv)
        ("ladspa" ,ladspa)
        ("jack" ,jack-1)
        ("lilv" ,lilv)
        ("ladspa" ,ladspa)
        ("jack" ,jack-1)
-       ("gtkmm" ,gtkmm-2)
-       ("gtk+" ,gtk+-2)
+       ("gtkmm" ,gtkmm)
+       ("gtk+" ,gtk+)
        ("fftwf" ,fftwf)
        ("lrdf" ,lrdf)
        ("zita-resampler" ,zita-resampler)
        ("fftwf" ,fftwf)
        ("lrdf" ,lrdf)
        ("zita-resampler" ,zita-resampler)
@@ -1480,7 +1860,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        ("faust" ,faust)
        ("intltool" ,intltool)
        ("gettext" ,gettext-minimal)
        ("faust" ,faust)
        ("intltool" ,intltool)
        ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("sassc" ,sassc)))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -1601,15 +1982,16 @@ especially for creating reverb effects.  It supports impulse responses with 1,
   (package
     (name "jack")
     (version "0.125.0")
   (package
     (name "jack")
     (version "0.125.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://jackaudio.org/downloads/jack-audio-connection-kit-"
-                   version
-                   ".tar.gz"))
-             (sha256
-              (base32
-               "0i6l25dmfk2ji2lrakqq9icnwjxklgcjzzk65dmsff91z2zva5rm"))))
+    (source
+     (origin
+       (method url-fetch)
+       ;; jackaudio.org/downloads/jack-audio-connection-kit-0.125.0.tar.gz
+       ;; no longer exists (404).  Use an unofficial mirror.
+       (uri (string-append "https://crux.ster.zone/downloads/"
+                           "jack-audio-connection-kit/"
+                           "jack-audio-connection-kit-" version ".tar.gz"))
+       (sha256
+        (base32 "0i6l25dmfk2ji2lrakqq9icnwjxklgcjzzk65dmsff91z2zva5rm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1629,7 +2011,7 @@ especially for creating reverb effects.  It supports impulse responses with 1,
        ("bdb" ,bdb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
        ("bdb" ,bdb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://jackaudio.org/")
+    (home-page "https://jackaudio.org/")
     (synopsis "JACK audio connection kit")
     (description
      "JACK is a low-latency audio server.  It can connect a number of
     (synopsis "JACK audio connection kit")
     (description
      "JACK is a low-latency audio server.  It can connect a number of
@@ -1648,7 +2030,7 @@ synchronous execution of all clients, and low latency operation.")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
-    (version "1.9.13")
+    (version "1.9.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@@ -1657,7 +2039,7 @@ synchronous execution of all clients, and low latency operation.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
+               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -1667,6 +2049,10 @@ synchronous execution of all clients, and low latency operation.")
        (modify-phases %standard-phases
          (add-before 'configure 'set-linkflags
            (lambda _
        (modify-phases %standard-phases
          (add-before 'configure 'set-linkflags
            (lambda _
+             ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
+             ;; will not link with undefined reference to symbol
+             ;; '__gxx_personality_v0@@CXXABI_1.3'
+             (setenv "LDFLAGS" "-lstdc++")
              ;; Add $libdir to the RUNPATH of all the binaries.
              (substitute* "wscript"
                ((".*CFLAGS.*-Wall.*" m)
              ;; Add $libdir to the RUNPATH of all the binaries.
              (substitute* "wscript"
                ((".*CFLAGS.*-Wall.*" m)
@@ -1853,6 +2239,31 @@ for headphone prolonged listening to disable superstereo fatigue without
 essential distortions.")
     (license license:expat)))
 
 essential distortions.")
     (license license:expat)))
 
+(define-public ladspa-bs2b
+  (package
+    (name "ladspa-bs2b")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/bs2b/plugins/LADSPA%20plugin/"
+                    version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("ladspa" ,ladspa)
+              ("libbs2b" ,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
+plugins is designed to improve headphone listening of stereo audio records.
+Recommended for headphone prolonged listening to disable superstereo fatigue
+without essential distortions.  This package contains a LADSPA plugin for use
+with applications that support them (e.g. PulseAudio).")
+    (license license:gpl2+)))
+
 (define-public liblo
   (package
     (name "liblo")
 (define-public liblo
   (package
     (name "liblo")
@@ -1876,6 +2287,48 @@ essential distortions.")
 implementation of the Open Sound Control (@dfn{OSC}) protocol.")
     (license license:lgpl2.1+)))
 
 implementation of the Open Sound Control (@dfn{OSC}) protocol.")
     (license license:lgpl2.1+)))
 
+(define-public rtaudio
+  (package
+    (name "rtaudio")
+    (version "5.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/thestk/rtaudio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("pulseaudio" ,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
+audio input/output.  It was designed with the following objectives:
+
+@itemize
+@item object-oriented C++ design
+@item simple, common API across all supported platforms
+@item only one source and one header file for easy inclusion in programming
+projects
+@item allow simultaneous multi-api support
+@item support dynamic connection of devices
+@item provide extensive audio device parameter control
+@item allow audio device capability probing
+@item automatic internal conversion for data format, channel number
+compensation, (de)interleaving, and byte-swapping
+@end itemize")
+    (home-page "https://www.music.mcgill.ca/~gary/rtaudio/")
+    ;; License is expat with a non-binding request to send modifications to
+    ;; original developer.
+    (license license:expat)))
+
 (define-public python-pyaudio
   (package
     (name "python-pyaudio")
 (define-public python-pyaudio
   (package
     (name "python-pyaudio")
@@ -1931,14 +2384,14 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
 (define-public lilv
   (package
     (name "lilv")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.24.6")
+    (version "0.24.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1p3hafsxgs5d4za7n66lf5nz74qssfqpmk520cm7iq2njvvlqm2z"))))
+               "0063i5zgf3d3accwmyx651hw0wh5ik7kji2hvfkcdbl1qia3dp6a"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -1977,24 +2430,24 @@ significantly faster and have minimal dependencies.")
 (define-public lv2
   (package
     (name "lv2")
 (define-public lv2
   (package
     (name "lv2")
-    (version "1.16.0")
+    (version "1.18.0")
     (source (origin
              (method url-fetch)
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://lv2plug.in/spec/lv2-"
+             (uri (string-append "https://lv2plug.in/spec/lv2-"
                                  version ".tar.bz2"))
              (sha256
               (base32
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1ppippbpdpv13ibs06b0bixnazwfhiw0d0ja6hx42jnkgdyp5hyy"))))
+               "0gs7401xz23q9vajqr31aa2db8dvssgyh5zrvr4ipa6wig7yb8wh"))))
     (build-system waf-build-system)
     (arguments
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f  ; no check target
+     `(#: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)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
        #:configure-flags '("--no-plugins")))
     (inputs
      ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
      `(("libsndfile" ,libsndfile)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://lv2plug.in/")
+    (home-page "https://lv2plug.in/")
     (synopsis "LV2 audio plugin specification")
     (description
      "LV2 is an open specification for audio plugins and host applications.
     (synopsis "LV2 audio plugin specification")
     (description
      "LV2 is an open specification for audio plugins and host applications.
@@ -2057,7 +2510,7 @@ software.")
     (source (origin
              (method git-fetch)
              (uri (git-reference
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/lvtk/lvtk.git")
+                   (url "https://github.com/lvtk/lvtk")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
@@ -2161,7 +2614,7 @@ buffers, and audio capture.")
 (define-public patchage
   (package
     (name "patchage")
 (define-public patchage
   (package
     (name "patchage")
-    (version "1.0.0")
+    (version "1.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/patchage-"
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/patchage-"
@@ -2169,10 +2622,10 @@ buffers, and audio capture.")
                                   ".tar.bz2"))
               (sha256
                (base32
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
+                "0dk3fiac10m83mwss3026yz7ygc47c2iw924cwwnh2fyydc9bsy6"))))
     (build-system waf-build-system)
     (arguments
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f ; no check target
+     `(#:tests? #f                      ; no check target
        #:python ,python-2))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        #:python ,python-2))
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -2259,7 +2712,7 @@ into various outputs and to start, stop and configure jackd")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/orouits/qjackrcd.git")
+                    (url "https://github.com/orouits/qjackrcd")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -2290,60 +2743,90 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.10.4")
+    (version "3.11.0")
     (source (origin
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/supercollider/supercollider"
-                    "/releases/download/Version-" version
-                    "/SuperCollider-" version "-Source-linux.tar.bz2"))
+              (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
               (sha256
                (base32
-                "0x11g3pfw11m6v18qfpfl5w99dbmf73g4z7wvwhrj1a4qv2dn084"))))
+                "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
+              (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))))
     (build-system cmake-build-system)
     (build-system cmake-build-system)
+    (outputs
+     '("out"   ;core language
+       "ide")) ;qt ide
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
-                           "-DSC_QT=off"
+                           "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
+                           "-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
                            "-DSC_EL=off") ;scel is packaged individually as
                                           ;emacs-scel
                            "-DSC_EL=off") ;scel is packaged individually as
                                           ;emacs-scel
-       #:modules ((guix build utils)
-                  (guix build cmake-build-system)
-                  (ice-9 ftw))
        #:phases
        (modify-phases %standard-phases
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'rm-bundled-libs
+         ;; HOME must be defined otherwise supercollider throws a "ERROR:
+         ;; Primitive '_FileMkDir' failed." error when generating the doc.
+         ;; The graphical tests also hang without it.
+         (add-after 'unpack 'set-home-directory
            (lambda _
            (lambda _
-             ;; The build system doesn't allow us to unbundle the following
-             ;; libraries.  hidapi is also heavily patched.
-             (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))))))))
+             (setenv "HOME" (getcwd))
              #t))
              #t))
-         ;; Some tests are broken (see:
-         ;; https://github.com/supercollider/supercollider/issues/3555 and
-         ;; https://github.com/supercollider/supercollider/issues/1736
-         (add-after 'rm-bundled-libs 'disable-broken-tests
+         (add-after 'unpack 'patch-scclass-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (scclass-dir
+                     (string-append out
+                                    "/share/SuperCollider/SCClassLibrary")))
+               (substitute* "lang/LangSource/SC_LanguageConfig.cpp"
+                 (((string-append
+                    "SC_Filesystem::instance\\(\\)\\.getDirectory"
+                    "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
+                  (string-append "Path(\"" scclass-dir "\")")))
+               #t)))
+         (add-before 'build 'prepare-x
            (lambda _
            (lambda _
-             (substitute* "testsuite/server/supernova/CMakeLists.txt"
-               (("server_test.cpp")
-                "")
-               (("perf_counter_test.cpp")
-                ""))
-             (delete-file "testsuite/server/supernova/server_test.cpp")
-             (delete-file "testsuite/server/supernova/perf_counter_test.cpp")
-             (substitute* "testsuite/CMakeLists.txt"
-               (("add_subdirectory\\(sclang\\)")
-                ""))
-             (delete-file "testsuite/sclang/CMakeLists.txt")
-             #t)))))
+             (system "Xvfb &")
+             (setenv "DISPLAY" ":0")
+             #t))
+         (add-before 'install 'install-ide
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (ide (assoc-ref outputs "ide"))
+                    (scide "editors/sc-ide/scide"))
+               (install-file scide
+                             (string-append ide "/bin"))
+               (delete-file scide)
+               #t))))))
     (native-inputs
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("ableton-link" ,ableton-link)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
     (inputs
      `(("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
@@ -2356,7 +2839,14 @@ background file post-processing.")
        ("icu4c" ,icu4c)
        ("boost" ,boost)
        ("boost-sync" ,boost-sync)
        ("icu4c" ,icu4c)
        ("boost" ,boost)
        ("boost-sync" ,boost-sync)
-       ("yaml-cpp" ,yaml-cpp)))
+       ("yaml-cpp" ,yaml-cpp)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtsvg" ,qtsvg)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebsockets" ,qtwebsockets)))
+    (propagated-inputs                  ;to get native-search-path
+     `(("qtwebengine" ,qtwebengine)))
     (home-page "https://github.com/supercollider/supercollider")
     (synopsis "Synthesis engine and programming language")
     (description "SuperCollider is a synthesis engine (@code{scsynth} or
     (home-page "https://github.com/supercollider/supercollider")
     (synopsis "Synthesis engine and programming language")
     (description "SuperCollider is a synthesis engine (@code{scsynth} or
@@ -2430,9 +2920,12 @@ aimed at audio/musical applications.")
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
        ("libtool" ,libtool)))
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
        ("libtool" ,libtool)))
-    (synopsis "Real-time library for sampling rate conversion")
-    (description "The @command{resample} software package contains free
-sampling-rate conversion and filter design utilities.")
+    (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
+allows changing the sampling rate of a sound file, while the
+@command{windowfilter} command allows to design Finite Impulse Response (FIR)
+filters using the so-called @emph{window method}.")
     (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
     (license license:lgpl2.1+)))
 
     (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
     (license license:lgpl2.1+)))
 
@@ -2706,17 +3199,31 @@ stretching and pitch scaling of audio.  This package contains the library.")
 (define-public wavpack
   (package
     (name "wavpack")
 (define-public wavpack
   (package
     (name "wavpack")
-    (version "5.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://www.wavpack.com/"
-                                  "wavpack-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1qvpvfx30kvrkw7y1g6r8xj109wszg1z0qmkfm17wf3flb7v3rbp"))))
+    (version "5.3.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dbry/WavPack")
+             (commit "e4e8d191e8dd74cbdbeaef3232c16a7ef517e68d")))
+       (sha256
+        (base32 "1zj8svk6giy1abq3940sz32ygz7zldppxl47852zgn5wfm3l2spx"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     '(#:configure-flags
+       (list "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           ;; Running ./autogen.sh would cause premature configuration.
+           (lambda _
+             (invoke "autoreconf" "-vif")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (home-page "http://www.wavpack.com/")
     (synopsis "Hybrid lossless audio codec")
     (description
     (home-page "http://www.wavpack.com/")
     (synopsis "Hybrid lossless audio codec")
     (description
@@ -3004,7 +3511,7 @@ synthesizer written in C++.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/Themaister/RSound.git")
+             (url "https://github.com/Themaister/RSound")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -3043,7 +3550,7 @@ with a much different focus than most other audio daemons.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/johnhldavis/xjackfreak.git")
+                    (url "https://github.com/johnhldavis/xjackfreak")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -3123,7 +3630,7 @@ engine.")
 (define-public zita-resampler
   (package
     (name "zita-resampler")
 (define-public zita-resampler
   (package
     (name "zita-resampler")
-    (version "1.3.0")
+    (version "1.6.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3133,26 +3640,28 @@ engine.")
               (snippet
                ;; Don't optimize for a specific processor architecture.
                '(begin
               (snippet
                ;; Don't optimize for a specific processor architecture.
                '(begin
-                  (substitute* '("apps/Makefile" "libs/Makefile")
+                  (substitute* '("apps/Makefile" "source/Makefile")
                     (("^CXXFLAGS \\+= -march=native") ""))
                   #t))
               (modules '((guix build utils)))
               (sha256
                (base32
                     (("^CXXFLAGS \\+= -march=native") ""))
                   #t))
               (modules '((guix build utils)))
               (sha256
                (base32
-                "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
+                "1my5k2dh2dkvjp6xjnf9qy6i7s28z13kw1n9pwa4a2cpwbzawfr3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "SUFFIX="))
        #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'patch-makefile-and-enter-directory
           (lambda _
        #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'patch-makefile-and-enter-directory
           (lambda _
-            (substitute* "libs/Makefile"
+            (substitute* "source/Makefile"
               (("ldconfig") "true")
               (("^LIBDIR =.*") "LIBDIR = lib\n"))
               (("ldconfig") "true")
               (("^LIBDIR =.*") "LIBDIR = lib\n"))
-            (chdir "libs")
+            (chdir "source")
             #t))
          (add-after
           'install 'install-symlink
             #t))
          (add-after
           'install 'install-symlink
@@ -3174,7 +3683,7 @@ provide high-quality sample rate conversion.")
 (define-public zita-alsa-pcmi
   (package
     (name "zita-alsa-pcmi")
 (define-public zita-alsa-pcmi
   (package
     (name "zita-alsa-pcmi")
-    (version "0.2.0")
+    (version "0.3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3183,19 +3692,21 @@ provide high-quality sample rate conversion.")
                     version ".tar.bz2"))
               (sha256
                (base32
                     version ".tar.bz2"))
               (sha256
                (base32
-                "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
+                "12d7vdg74yh21w69qi0wg57iz4876j94qbiq09bvscih6xz9y78s"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "SUFFIX="))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-makefile-and-enter-directory
            (lambda _
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-makefile-and-enter-directory
            (lambda _
-             (substitute* "libs/Makefile"
+             (substitute* "source/Makefile"
                (("ldconfig") "true")
                (("^LIBDIR =.*") "LIBDIR = lib\n"))
                (("ldconfig") "true")
                (("^LIBDIR =.*") "LIBDIR = lib\n"))
-             (chdir "libs")
+             (chdir "source")
              #t))
          (add-after 'install 'install-symlink
            (lambda _
              #t))
          (add-after 'install 'install-symlink
            (lambda _
@@ -3224,7 +3735,7 @@ point audio data.")
     (source (origin
              (method git-fetch)
              (uri (git-reference
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/svend/cuetools.git")
+                   (url "https://github.com/svend/cuetools")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
@@ -3274,7 +3785,7 @@ use them split WAVE data into multiple files.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/foo86/dcadec.git")
+                    (url "https://github.com/foo86/dcadec")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -3306,17 +3817,18 @@ with support for HD extensions.")
 (define-public bs1770gain
   (package
     (name "bs1770gain")
 (define-public bs1770gain
   (package
     (name "bs1770gain")
-    (version "0.6.7")
+    (version "0.7.0")
+    (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
                            version "/bs1770gain-" version ".tar.gz"))
        (sha256
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
                            version "/bs1770gain-" version ".tar.gz"))
        (sha256
-        (base32 "13hsbqj1dkpz1gbclnjxv50kr7b4gcjai6c1l38g01433h217qjc"))
+        (base32 "0a2dcaxvxy5m3a5sb1lhplsymvz3ypaiidc5xn9qy01h53zvyvkp"))
        (modules '((guix build utils)))
        (snippet
        (modules '((guix build utils)))
        (snippet
-        '(begin
+        `(begin
            ;; XXX
            (substitute* (find-files "." "\\.[ch]$")
              (("^ \\* N..o.*") ""))
            ;; XXX
            (substitute* (find-files "." "\\.[ch]$")
              (("^ \\* N..o.*") ""))
@@ -3328,12 +3840,11 @@ with support for HD extensions.")
                               "configure.ac"
                               "configure")
              (("https?://bs1770gain[^/]*/")
                               "configure.ac"
                               "configure")
              (("https?://bs1770gain[^/]*/")
-              "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html"))
+              ,home-page))
            #t))))
     (build-system gnu-build-system)
     (inputs `(("ffmpeg" ,ffmpeg)
               ("sox" ,sox)))
            #t))))
     (build-system gnu-build-system)
     (inputs `(("ffmpeg" ,ffmpeg)
               ("sox" ,sox)))
-    (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
     (synopsis "Tool to adjust loudness of media files")
     (description
      "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
     (synopsis "Tool to adjust loudness of media files")
     (description
      "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
@@ -3352,7 +3863,7 @@ loudness of audio and video files to the same level.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/irungentoo/filter_audio.git")
+               (url "https://github.com/irungentoo/filter_audio")
                (commit commit)))
          (file-name (string-append name "-" version "-checkout"))
          (sha256
                (commit commit)))
          (file-name (string-append name "-" version "-checkout"))
          (sha256
@@ -3461,7 +3972,7 @@ mixers.")
               ;; bootstrapped build system.
               (method git-fetch)
               (uri (git-reference
               ;; bootstrapped build system.
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/Arkq/bluez-alsa.git")
+                    (url "https://github.com/Arkq/bluez-alsa")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -3506,14 +4017,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
 (define-public snd
   (package
     (name "snd")
-    (version "19.9")
+    (version "20.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "13s8fahpsjygjdrcwmprcrz23ny3klaj2rh2xzdv3bfs69gxvhys"))))
+                "1kd422krz8ln4m8g3p14wfplcq8lgpzly9297rpbvyc94dc6sdwj"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -3570,7 +4081,7 @@ the Snd sources), Ruby, or Forth.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/lucianodato/noise-repellent.git")
+                    (url "https://github.com/lucianodato/noise-repellent")
                     (commit version)))
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                     (commit version)))
               (file-name (string-append name "-" version "-checkout"))
               (sha256
@@ -3615,7 +4126,7 @@ the following features:
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/dpayne/cli-visualizer.git")
+             (url "https://github.com/dpayne/cli-visualizer")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -3660,7 +4171,7 @@ representations.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/karlstav/cava.git")
+                    (url "https://github.com/karlstav/cava")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
@@ -3813,7 +4324,7 @@ library.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/FNA-XNA/FAudio.git")
+             (url "https://github.com/FNA-XNA/FAudio")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -3863,15 +4374,15 @@ other Gnaural instances, allowing synchronous sessions between many users.")
 (define-public darkice
   (package
     (name "darkice")
 (define-public darkice
   (package
     (name "darkice")
-    (version "1.3")
+    (version "1.4")
     (source (origin
               (method url-fetch)
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/darkice/darkice/"
-                                  version "/darkice-" version ".tar.gz"))
+              (uri (string-append "https://github.com/rafael2k/darkice/releases/"
+                                  "download/v" version "/darkice-"
+                                  version ".tar.gz"))
               (sha256
               (sha256
-               (base32 "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c"))
-              (patches
-               (search-patches "darkice-workaround-fpermissive-error.patch"))))
+               (base32
+                "05yq7lggxygrkd76yiqby3msrgdn082p0qlvmzzv9xbw8hmyra76"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("lame" ,lame)
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("lame" ,lame)
@@ -3918,10 +4429,79 @@ stream to one or more IceCast and/or ShoutCast servers.")
     (home-page "https://x42.github.io/libltc/")
     (license license:lgpl3+)))
 
     (home-page "https://x42.github.io/libltc/")
     (license license:lgpl3+)))
 
+(define-public ttaenc
+  (package
+    (name "ttaenc")
+    (version "3.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/tta/"
+                           "tta/ttaenc-src"
+                           "/ttaenc-" version "-src.tgz"))
+       (sha256
+        (base32
+         "1iixpr4b89g9g1hwn8ak8k8iflcww3r5f09a117qdidc2nqcijdj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "INSDIR=" (assoc-ref %outputs "out") "/bin"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure
+         (add-before 'install 'make-bindir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/bin"))
+               #t))))))
+    (synopsis "TTA lossless audio encoder")
+    (description
+     "TTA performs lossless compression on multichannel 8,16 and 24 bits
+data of the Wav audio files.  Being lossless means that no data-
+quality is lost in the compression - when uncompressed, the data will
+be identical to the original.  The compression ratios of TTA depend on
+the type of music file being compressed, but the compression size
+will generally range between 30% - 70% of the original.  TTA format
+supports both of ID3v1/v2 and APEv2 tags.")
+    (home-page "http://tausoft.org/")
+    (license license:gpl2+)))
+
+(define-public libsoundio
+  (package
+    (name "libsoundio")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/andrewrk/libsoundio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "12l4rvaypv87vigdrmjz48d4d6sq4gfxf5asvnc4adyabxb73i4x"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ;no tests included
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("pulseaudio" ,pulseaudio)))
+    (native-inputs
+     `(("pkg-config" ,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
+output.  The API is suitable for real-time software such as digital audio
+workstations as well as consumer software such as music players.")
+    (license license:expat)))
+
 (define-public redkite
   (package
     (name "redkite")
 (define-public redkite
   (package
     (name "redkite")
-    (version "0.8.0")
+    (version "1.0.3")
     (source
      (origin
        (method git-fetch)
     (source
      (origin
        (method git-fetch)
@@ -3930,8 +4510,7 @@ stream to one or more IceCast and/or ShoutCast servers.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1747w1kg8y9jbl11xi018d85dm38xk7843pz26sh0k5fdv87a10q"))))
+        (base32 "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
@@ -3951,18 +4530,18 @@ as is the case with audio plugins.")
 (define-public carla
   (package
     (name "carla")
 (define-public carla
   (package
     (name "carla")
-    (version "2.0.0")
+    (version "2.1.1")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/falkTX/Carla.git")
+         (url "https://github.com/falkTX/Carla")
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0fqgncqlr86n38yy7pa118mswfacmfczj7w9xx6c6k0jav3wk29k"))))
+         "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -3993,6 +4572,7 @@ as is the case with audio plugins.")
        ("file" ,file)
        ("liblo" ,liblo)
        ("libsndfile" ,libsndfile)
        ("file" ,file)
        ("liblo" ,liblo)
        ("libsndfile" ,libsndfile)
+       ("gtk2" ,gtk+-2)   ;needed for bridging GTK2 plugins in GTK3 hosts
        ("gtk+" ,gtk+)
        ("python-pyliblo" ,python-pyliblo)
        ("python-pyqt" ,python-pyqt)
        ("gtk+" ,gtk+)
        ("python-pyliblo" ,python-pyliblo)
        ("python-pyqt" ,python-pyqt)
@@ -4064,7 +4644,7 @@ in the package.")
 (define-public libaudec
   (package
     (name "libaudec")
 (define-public libaudec
   (package
     (name "libaudec")
-    (version "0.2")
+    (version "0.2.3")
     (source
       (origin
         (method git-fetch)
     (source
       (origin
         (method git-fetch)
@@ -4074,14 +4654,14 @@ in the package.")
         (file-name (git-file-name name version))
         (sha256
           (base32
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "0lfydvs92b0hr72z71ci3yi356rjzi162pgms8dphgg18bz8dazv"))))
+            "04hw61db8wscj28qjyiaiafx8xl87njgmvqszxyhs4gmg8xgjip7"))))
    (build-system meson-build-system)
    (arguments
    (build-system meson-build-system)
    (arguments
-    `(#:configure-flags `("-Denable_tests=true -Denable_ffmpeg=true")))
+     ;; Compile tests.
+    `(#:configure-flags `("-Dtests=true")))
    (inputs
     `(("libsamplerate" ,libsamplerate)
    (inputs
     `(("libsamplerate" ,libsamplerate)
-      ("libsndfile" ,libsndfile)
-      ("ffmpeg" ,ffmpeg)))
+      ("libsndfile" ,libsndfile)))
    (native-inputs
      `(("pkg-config", pkg-config)))
    (synopsis "Library for reading and resampling audio files")
    (native-inputs
      `(("pkg-config", pkg-config)))
    (synopsis "Library for reading and resampling audio files")
@@ -4094,7 +4674,7 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
 (define-public lv2lint
   (package
     (name "lv2lint")
 (define-public lv2lint
   (package
     (name "lv2lint")
-    (version "0.4.0")
+    (version "0.8.0")
     (source
       (origin
         (method git-fetch)
     (source
       (origin
         (method git-fetch)
@@ -4104,7 +4684,7 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
         (file-name (git-file-name name version))
         (sha256
           (base32
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "1pspwqpzl2dw1hd9ra9yr53arqbbqjn7d7j0f7p9g3iqa76vblpi"))))
+            "1jrka0hsn4n1clri7zfkcl3c2vi52144lkpjm81l51ff8rqy8ks1"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -4189,6 +4769,38 @@ minimum.")
     (home-page "https://git.zrythm.org/cgit/ztoolkit/")
     (license license:agpl3+)))
 
     (home-page "https://git.zrythm.org/cgit/ztoolkit/")
     (license license:agpl3+)))
 
+(define-public libinstpatch
+  (package
+    (name "libinstpatch")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swami/libinstpatch")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ;there are no tests
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libsndfile" ,libsndfile)))
+    (home-page "http://www.swamiproject.org/")
+    (synopsis "Instrument file software library")
+    (description
+     "libInstPatch is a library for processing digital sample based MIDI
+instrument \"patch\" files.  The types of files libInstPatch supports are used
+for creating instrument sounds for wavetable synthesis.  libInstPatch provides
+an object framework (based on GObject) to load patch files, which can then be
+edited, converted, compressed and saved.")
+    (license license:lgpl2.1)))
+
 (define-public ztoolkit-rsvg
   (package
     (inherit ztoolkit)
 (define-public ztoolkit-rsvg
   (package
     (inherit ztoolkit)
@@ -4199,3 +4811,169 @@ minimum.")
      `(("librsvg" ,librsvg)
        ,@(package-inputs ztoolkit)))
     (synopsis "ZToolkit with SVG support")))
      `(("librsvg" ,librsvg)
        ,@(package-inputs ztoolkit)))
     (synopsis "ZToolkit with SVG support")))
+
+(define-public lsp-dsp-lib
+  (package
+    (name "lsp-dsp-lib")
+    (version "0.5.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
+                            "releases/download/lsp-dsp-lib-" version
+                            "/lsp-dsp-lib-" version "-src.tar.gz"))
+        (sha256
+         (base32
+          "07w3d2i0z0xmvi1ngcgs7lc5a0da8jvf7rv4dnjk01md43b7fkh1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "config"
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+    (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
+SIMD-optimized computing on several hardware architectures.  All functions
+currently operate on IEEE-754 single-precision floating-point numbers.")
+    (license license:lgpl3+)))
+
+(define-public codec2
+  (package
+    (name "codec2")
+    (version "0.9.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/drowe67/codec2")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("bc" ,bc)
+       ("octave" ,octave)
+       ("valgrind" ,valgrind)))
+    (arguments
+     `(#:tests? #f ; TODO: Fix tests (paths, graphic toolkit, octave modules).
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-test-environment
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (synopsis "Speech codec")
+    (description
+     "Codec 2 is a speech codec designed for communications quality speech
+between 700 and 3200 bit/s.  The main application is low bandwidth HF/VHF
+digital radio.")
+    (home-page "https://www.rowetel.com/?page_id=452")
+    (license license:lgpl2.1)))
+
+(define-public ableton-link
+  (package
+    (name "ableton-link")
+    (version "3.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Ableton/link")
+                    (commit (string-append "Link-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir"))
+              (modules '((guix build utils)))
+              (patches
+               (search-patches "ableton-link-system-libraries-debian.patch"))
+              (snippet
+               '(begin
+                  ;; Tests assume that CMake's "build" directory is a
+                  ;; sub-directory of the source tree, so we fix it.
+                  (substitute* "ci/run-tests.py"
+                    (("root_dir,") "root_dir, os.pardir,"))
+                  ;; Unbundle dependencies.
+                  (delete-file-recursively "third_party")
+                  (delete-file-recursively "modules")
+                  #t))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("catch" ,catch-framework)
+       ("python" ,python)       ;for running tests
+       ("portaudio" ,portaudio) ;for portaudio examples
+       ("qtbase" ,qtbase)       ;for Qt examples
+       ("qtdeclarative" ,qtdeclarative)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("jack" ,jack-1)                       ;for JACK examples
+       ("qtquickcontrols" ,qtquickcontrols))) ;for Qt examples
+    (propagated-inputs
+     ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
+     ;; contains '#include <asio.hpp>'.
+     `(("asio" ,asio)))
+    (arguments
+     `(#:configure-flags
+       '("-DLINK_BUILD_QT_EXAMPLES=ON"
+         "-DLINK_BUILD_JACK=ON")
+       #: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"))))
+         (add-before 'install 'patch-cmake
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((source (string-append "../ableton-link-"
+                                                ,version
+                                                "-checkout/")))
+               (substitute* (string-append source
+                                           "cmake_include/AsioStandaloneConfig.cmake")
+                 (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
+                                  "modules/asio-standalone/asio/include"))
+                  (string-append (assoc-ref inputs "asio")
+                                 "/include")))
+               (substitute* (string-append source "AbletonLinkConfig.cmake")
+                 (("\\$\\{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)))
+         (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")))
+               (for-each (lambda (test-file)
+                           (delete-file test-file))
+                         '("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
+               (copy-recursively "bin" bin)
+               (copy-recursively (string-append source "/include/ableton")
+                                 (string-append out "/include/ableton"))
+               (install-file (string-append source "/AbletonLinkConfig.cmake")
+                             lib-cmake)
+               (install-file (string-append source
+                                            "/cmake_include/AsioStandaloneConfig.cmake")
+                             (string-append lib-cmake "/cmake_include"))
+               #t))))))
+    (home-page "https://github.com/Ableton/link")
+    (synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
+    (description
+     "Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase
+across multiple applications running on one or more devices.  Applications on devices
+connected to a local network discover each other automatically and form a musical
+session in which each participant can perform independently: anyone can start or stop
+while still staying in time.")
+    (license license:gpl2+)))