gnu: icecat: Update to 78.10.0-guix0-preview1 [security fixes].
[jackhill/guix/guix.git] / gnu / packages / music.scm
index 1e6da43..11702af 100644 (file)
@@ -1,21 +1,21 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
-;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 nikita <nikita@n0.is>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
-;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2018, 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -24,7 +24,7 @@
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;; Copyright © 2019 raingloom <raingloom@protonmail.com>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
-;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2019, 2020, 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio) ;libsndfile
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages stb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vim)       ;for 'xxd'
   #:use-module (gnu packages web)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -336,116 +344,200 @@ and play MIDI files with a few clicks in a user-friendly interface offering
 score, keyboard, guitar, drum and controller views.")
     (license license:gpl3+)))
 
-;; We don't use the latest release because it depends on Qt4.  Instead we
-;; download the sources from the tip of the "qt5" branch.
 (define-public clementine
-  (let ((commit "4619a4c1ab3b17b13d4b2327ad477912917eaf36")
-        (revision "2"))
-    (package
-      (name "clementine")
-      (version (git-version "1.3.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/clementine-player/Clementine")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1hximk3q0p8nw8is5w7215xgkb7k4flnfyr0pdz9svfwvcm05w1i"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    (for-each
-                     (lambda (dir)
-                       (delete-file-recursively
-                        (string-append "3rdparty/" dir)))
-                     (list
-                      ;; TODO: The following dependencies are still bundled:
-                      ;; - "qxt": Appears to be unmaintained upstream.
-                      ;; - "qsqlite"
-                      ;; - "qtsingleapplication"
-                      ;; - "qocoa"
-                      ;; - "qtiocompressor"
-                      ;; - "gmock": The tests crash when using our googletest
-                      ;;   package instead of the bundled gmock.
-                      "SPMediaKeyTap"
-                      "fancytabwidget"
-                      "google-breakpad"
-                      "libmygpo-qt"
-                      "libmygpo-qt5"
-                      "libprojectm"
-                      "qtwin"
-                      "sha2" ;; Replaced by openssl.
-                      "taglib"
-                      "tinysvcmdns"))
-                    #t))
-                (patches (search-patches "clementine-use-openssl.patch"
-                                         "clementine-remove-crypto++-dependency.patch"
-                                         "clementine-fix-sqlite.patch"))))
-      (build-system cmake-build-system)
-      (arguments
-       '(#:test-target "clementine_test"
-         #:configure-flags
-         (list ;; Requires unpackaged "projectm"
-               "-DENABLE_VISUALISATIONS=OFF"
-               ;; Otherwise it may try to download a non-free library at run-time.
-               ;; TODO In an origin snippet, remove the code that performs the
-               ;; download.
-               "-DHAVE_SPOTIFY_DOWNLOADER=FALSE"
-               "-DUSE_SYSTEM_SHA2=TRUE")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'wrap-program
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out             (assoc-ref outputs "out"))
-                     (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
-                 (wrap-program (string-append out "/bin/clementine")
-                   `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))
-                 #t))))))
-      (native-inputs
-       `(("gettext" ,gettext-minimal)
-         ("pkg-config" ,pkg-config)
-         ("qtlinguist" ,qttools)))
-      (inputs
-       `(("boost" ,boost)
-         ("chromaprint" ,chromaprint)
-         ("fftw" ,fftw)
-         ("glib" ,glib)
-         ("glu" ,glu)
-         ("gstreamer" ,gstreamer)
-         ("gst-plugins-base" ,gst-plugins-base)
-         ("gst-plugins-good" ,gst-plugins-good)
-         ("gst-libav" ,gst-libav)
-         ("libcdio" ,libcdio)
-         ("libmygpo-qt" ,libmygpo-qt)
-         ;; TODO: Package libgpod.
-         ("libmtp" ,libmtp)
-         ("libxml2" ,libxml2)
-         ("openssl" ,openssl)
-         ("protobuf" ,protobuf)
-         ("pulseaudio" ,pulseaudio)
-         ("qtbase" ,qtbase)
-         ("qtx11extras" ,qtx11extras)
-         ("sqlite" ,sqlite)
-         ("sparsehash" ,sparsehash)
-         ("taglib" ,taglib)))
-      (home-page "https://clementine-player.org")
-      (synopsis "Music player and library organizer")
-      (description "Clementine is a multiplatform music player.  It is inspired
+  (package
+    (name "clementine")
+    (version "1.4.0rc1-450-g2725ef99d")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/clementine-player/Clementine")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1pcwwi9b2qcfjn748577gqx6d1hgg7cisw2dn43npwafdvvkdb90"))
+              (modules '((guix build utils)
+                         (ice-9 regex)))
+              (snippet
+               '(begin
+                  (use-modules ((ice-9 regex)))
+                  (for-each
+                   (lambda (dir)
+                     ;; TODO: The following dependencies are still bundled:
+                     ;; - "qxt": Appears to be unmaintained upstream.
+                     ;; - "qsqlite"
+                     ;; - "qtsingleapplication"
+                     ;; - "qocoa"
+                     ;; - "qtiocompressor"
+                     (let ((bundled '("qsqlite"
+                                      "qtsingleapplication"
+                                      "qxt"
+                                      "qocoa"
+                                      "qtiocompressor")))
+                       (if (not
+                            (string-match
+                              (string-append ".?*(" (string-join bundled "|") ")")
+                              dir))
+                           (delete-file-recursively dir))))
+                   (find-files "3rdparty"
+                               (lambda (file stat)
+                                 (string-match "^3rdparty/[^/]*$" file))
+                               #:directories? #t))
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:test-target "clementine_test"
+       #:configure-flags
+       (list ;; Requires unpackaged "projectm"
+             "-DENABLE_VISUALISATIONS=OFF"
+             ;; Otherwise it may try to download a non-free library at run-time.
+             ;; TODO In an origin snippet, remove the code that performs the
+             ;; download.
+             "-DHAVE_SPOTIFY_DOWNLOADER=FALSE"
+             ;; Clementine checks that the taglib version is higher than 1.11,
+             ;; because of https://github.com/taglib/taglib/issues/864. Remove
+             ;; this flag when 1.12 is released.
+             "-DUSE_SYSTEM_TAGLIB=TRUE")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out             (assoc-ref outputs "out"))
+                   (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+               (wrap-program (string-append out "/bin/clementine")
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))
+               #t))))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (inputs
+     `(("boost" ,boost)
+       ("chromaprint" ,chromaprint)
+       ("fftw" ,fftw)
+       ("glib" ,glib)
+       ("glu" ,glu)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gst-libav" ,gst-libav)
+       ("libcdio" ,libcdio)
+       ("libmygpo-qt" ,libmygpo-qt)
+       ;; TODO: Package libgpod.
+       ("libmtp" ,libmtp)
+       ("libxml2" ,libxml2)
+       ("protobuf" ,protobuf)
+       ("pulseaudio" ,pulseaudio)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
+       ("sqlite" ,sqlite)
+       ("sparsehash" ,sparsehash)
+       ("taglib" ,taglib)))
+    (home-page "https://clementine-player.org")
+    (synopsis "Music player and library organizer")
+    (description "Clementine is a multiplatform music player.  It is inspired
 by Amarok 1.4, focusing on a fast and easy-to-use interface for searching and
 playing your music.")
-      (license (list
-                 ;; clementine and qtiocompressor are under GPLv3.
-                 license:gpl3+
-                 ;; gmock is under BSD-3.
-                 license:bsd-3
-                 ;; qxt is under CPL1.0.
-                 license:cpl1.0
-                 ;; qsqlite and qtsingleapplication are under LGPL2.1+.
-                 license:lgpl2.1+
-                 ;; qocoa is under MIT and CC by-sa for the icons.
-                 license:cc-by-sa3.0)))))
+    (license (list
+               ;; clementine and qtiocompressor are under GPLv3.
+               license:gpl3+
+               ;; qxt is under CPL1.0.
+               license:cpl1.0
+               ;; qsqlite and qtsingleapplication are under LGPL2.1+.
+               license:lgpl2.1+
+               ;; qocoa is under MIT and CC by-sa for the icons.
+               license:cc-by-sa3.0))))
+
+(define-public strawberry
+  (package
+    (name "strawberry")
+    (version "0.9.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/strawberrymusicplayer/strawberry")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0d9asg21j9ai23sb35cimws8bd8fsnpha777rgscraa7i09q0rx2"))
+              (modules '((guix build utils)
+                         (ice-9 regex)))
+              (snippet
+               '(begin
+                  (use-modules ((ice-9 regex)))
+                  (for-each
+                   (lambda (dir)
+                     ;; TODO: The following dependencies are still bundled:
+                     ;; - "singleapplication"
+                     (let ((bundled '("singleapplication")))
+                       (if (not
+                            (string-match
+                              (string-append ".?*(" (string-join bundled "|") ")")
+                              dir))
+                           (delete-file-recursively dir))))
+                   (find-files "3rdparty"
+                               (lambda (file stat)
+                                 (string-match "^3rdparty/[^/]*$" file))
+                               #:directories? #t))
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:test-target "run_strawberry_tests"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out             (assoc-ref outputs "out"))
+                   (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+               (wrap-program (string-append out "/bin/strawberry")
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))
+               #t)))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xorg-server (assoc-ref inputs "xorg-server")))
+               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
+               (setenv "DISPLAY" ":1")
+               (setenv "HOME" (getcwd))
+               #t))))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("chromaprint" ,chromaprint)
+       ("dbus" ,dbus)
+       ("fftw" ,fftw)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("libcdio" ,libcdio)
+       ("libmtp" ,libmtp)
+       ("protobuf" ,protobuf)
+       ("pulseaudio" ,pulseaudio)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
+       ("sqlite" ,sqlite)
+       ("taglib" ,taglib)))
+    (home-page "https://www.strawberrymusicplayer.org/")
+    (synopsis "Music player and library organizer")
+    (description "Strawberry is a music player and music collection organizer.
+It is a fork of Clementine aimed at music collectors and audiophiles.")
+    (license (list
+              ;; strawberry.
+              license:gpl3+
+              ;; singleapplication
+              license:expat
+              ;; icons.
+              license:cc-by-sa3.0))))
 
 (define-public cmus
   (package
@@ -510,14 +602,13 @@ many input formats and provides a customisable Vi-style user interface.")
 (define-public denemo
   (package
     (name "denemo")
-    (version "2.4.0")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnu/denemo/"
-                           "denemo-" version ".tar.gz"))
+       (uri (string-append "mirror://gnu/denemo/denemo-" version ".tar.gz"))
        (sha256
-        (base32 "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd"))))
+        (base32 "05kwy8894hsxr6123hc854j2qq2sxyjw721zk4g3vzz8pw29p887"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -628,7 +719,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
 (define-public hydrogen
   (package
     (name "hydrogen")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method git-fetch)
@@ -637,7 +728,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1"))))
+        (base32 "0nhn2njs8yyxcijxv5zgymf3211y6anzm0v9kn4vnd8kai7zwxxp"))))
     (build-system cmake-build-system)
     (arguments
      `(#:test-target "tests"
@@ -934,7 +1025,7 @@ MusePack, Monkey's Audio, and WavPack files.")
        ("emacs" ,emacs-no-x)))
     ;; Extempore refuses to build on architectures other than x86_64
     (supported-systems '("x86_64-linux"))
-    (home-page "https://digego.github.io/extempore/")
+    (home-page "https://github.com/digego/extempore")
     (synopsis "Programming environment for live coding of multimedia")
     (description
      "Extempore is a programming language and runtime environment designed
@@ -947,6 +1038,45 @@ are helpful when working in problem spaces where timing is important (such as
 audio and video).")
     (license license:bsd-2)))
 
+(define-public fluida-lv2
+  (package
+   (name "fluida-lv2")
+   (version "0.6")
+   (source
+    (origin
+      (method git-fetch)
+      (uri
+       (git-reference
+        (url "https://github.com/brummer10/Fluida.lv2")
+        (commit (string-append "v" version))
+        (recursive? #t))) ; references specific commit of libxputty
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "1v0bh4wcx79y832qigc3my8ixq0r4ica6z5fg2rg946pkh20x1a2"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f  ; no "check" target
+      #:make-flags
+      (list (string-append "INSTALL_DIR="
+                           (assoc-ref %outputs "out") "/lib/lv2")
+            "CC=gcc")
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure))))
+   (inputs
+    `(("cairo" ,cairo)
+      ("libx11" ,libx11)
+      ("lv2" ,lv2)
+      ("fluidsynth" ,fluidsynth)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)))
+   (home-page "https://github.com/brummer10/Fluida.lv2")
+   (synopsis "Fluidsynth as an LV2 audio plugin")
+   (description "Fluida is an audio plugin in the LV2 format that acts as
+a frontend for fluidsynth.")
+   (license license:gpl2+)))
+
 (define-public surge-synth
   (package
    (name "surge-synth")
@@ -1372,6 +1502,57 @@ Guile.")
     ;; more than an hour of silence, so double the max silent time.
     (properties `((max-silent-time . 7200)))))
 
+(define-public python-abjad
+  (package
+    (name "python-abjad")
+    (version "3.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+         (url "https://github.com/Abjad/abjad")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1dzf5v7pawbzkb4qxp4s5z4r3gibkk705pag83yvgzkx6fd6jf2g"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* "setup.py"
+               (("uqbar>=0.5.1, <0.5.0") "uqbar>=0.5.0"))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; See: https://stackoverflow.com/a/34140498
+               (invoke "python" "-m" "pytest" "tests")
+               #t))))))
+    (native-inputs
+     `(("lilypond" ,lilypond)
+       ("python-black" ,python-black)
+       ("python-flake8" ,python-flake8)
+       ("python-iniconfig" ,python-iniconfig)
+       ("python-isort" ,python-isort)
+       ("python-mypy" ,python-mypy)
+       ("python-ply" ,python-ply)
+       ("python-pytest" ,python-pytest-6)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-sphinx-autodoc-typehints" ,python-sphinx-autodoc-typehints)))
+    (propagated-inputs
+     `(("python-quicktions" ,python-quicktions)
+       ("python-roman" ,python-roman)
+       ("python-six" ,python-six)
+       ("python-uqbar" ,python-uqbar)))
+    (home-page "https://abjad.github.io")
+    (synopsis "Python API for building LilyPond files")
+    (description
+     "This package provides a Python API for building LilyPond files.")
+    (license license:expat)))
+
 (define-public non-sequencer
   ;; The latest tagged release is three years old and uses a custom build
   ;; system, so we take the last commit.
@@ -1734,7 +1915,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
        ("txt2man" ,txt2man)
        ("libxml2" ,libxml2) ; for tests
        ("ghostscript" ,ghostscript)
-       ("texinfo" ,texinfo)))
+       ("texinfo" ,texinfo-5)))
     (home-page "https://www.gnu.org/software/solfege/")
     (synopsis "Ear training")
     (description
@@ -1838,7 +2019,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.18")
+    (version "0.9.21")
     (source (origin
               (method url-fetch)
               (uri
@@ -1846,7 +2027,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1sggiaswcdpyxnnbg583ldg0m92fiys6nc5qdiqli7450w416a6c"))))
+                "0wg4ywkqf307vln0y923p083xacb5ahr2ghzvb9gmqyszd7k2v15"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1870,7 +2051,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.18")
+    (version "0.9.21")
     (source (origin
               (method url-fetch)
               (uri
@@ -1878,7 +2059,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1bzkaz7sqx1pvirja8zm7i2ckzl5ad6xspr4840389ik3l8qpnr5"))))
+                "1ym7kns7hfgxdwm2nzvpdm5vjxpkwb9dssjiic6rrpicv1p2v59m"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1903,7 +2084,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.18")
+    (version "0.9.21")
     (source (origin
               (method url-fetch)
               (uri
@@ -1911,7 +2092,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "13p5aj1513fwhzi9s4i1a5dbvzmbx9867zb0ddb9s9nbwks4ry3q"))))
+                "1kz8hcpzhrkvxpah6irz5gbah4m7knjhi4rk5hs1kwiikn7p6vgk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1936,7 +2117,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.18")
+    (version "0.9.21")
     (source (origin
               (method url-fetch)
               (uri
@@ -1944,7 +2125,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1karrprb3ijrbiwpr43rl3nxnzc33lnmwrd1832psgr3flnr9fp5"))))
+                "0s28l8vp9b85s4bdm18qm57dh8dx8rx7659r05p44828g4053ipl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -2295,7 +2476,7 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.51-3")
+    (version "0.51-4")
     (source (origin
               (method url-fetch)
               (uri
@@ -2303,7 +2484,7 @@ export.")
                               version ".src.tar.gz"))
               (sha256
                (base32
-                "10cqg387xdpiirak5v9y1lpvcds9bpqz61znx6d1m1hb45n513aw"))))
+                "1hgw1ciwr59f4f9s0h7c2l36wcsn3jsddhr1r9qj97vf64c1ynaj"))))
     (build-system gnu-build-system)
     (arguments
      (let ((wish (string-append "wish" (version-major+minor
@@ -2512,18 +2693,17 @@ browser.")
 (define-public drumstick
   (package
     (name "drumstick")
-    (version "1.1.3")
+    (version "2.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/drumstick/"
                                   version "/drumstick-" version ".tar.bz2"))
               (sha256
                (base32
-                "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m"))))
+                "06lz4kzpgg5lalcjb14pi35jxca5f4j6ckqf6mdxs1k42dfhjpjp"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no test target
-       #:configure-flags '("-DLIB_SUFFIX=")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-docbook
@@ -2538,13 +2718,15 @@ browser.")
     (inputs
      `(("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)
+       ("qttools" ,qttools)
        ("alsa-lib" ,alsa-lib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libxslt" ,libxslt)             ; for xsltproc
        ("docbook-xsl" ,docbook-xsl)
-       ("doxygen" ,doxygen)))
-    (home-page "http://drumstick.sourceforge.net/")
+       ("doxygen" ,doxygen)
+       ("graphviz" ,graphviz))) ; for dot
+    (home-page "https://drumstick.sourceforge.io/")
     (synopsis "C++ MIDI library")
     (description
      "Drumstick is a set of MIDI libraries using C++/Qt5 idioms and style.  It
@@ -2558,14 +2740,14 @@ backends, including ALSA, OSS, Network and FluidSynth.")
 (define-public vmpk
   (package
     (name "vmpk")
-    (version "0.7.2")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/vmpk/vmpk/"
                                   version "/vmpk-" version ".tar.bz2"))
               (sha256
                (base32
-                "1i3hnvdgz46n4k5v0q4jhgh7nkh0s390ix4nqr69z0q3026yp0p6"))))
+                "1kv256j13adk4ib7r464gsl4vjhih820bq37ddhqfyfd07wh53a2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f  ; no test target
@@ -2650,7 +2832,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.7.3")
+    (version "1.7.4")
     (source
      (origin
        (method url-fetch)
@@ -2658,7 +2840,7 @@ capabilities, custom envelopes, effects, etc.")
                            (version-major+minor version)
                            "/yoshimi-" version ".tar.bz2"))
        (sha256
-        (base32 "1ixb2kqmfgm2lfjaj6z3h03c840hcfmca4h6pjnc4aln2mzm7fcw"))))
+        (base32 "0lxfqj4p4njww3n0wa6yfj38zfls16y3wszd47gvc5asmqyg5vjd"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -2910,14 +3092,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.18")
+    (version "0.9.21")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "121vmygdzp37p6f93f8dbbg2m2r55j7amyiapzkqgypgn4vfdbwr"))))
+                "12hn17hqs3jndv6238wj8yhw07n99s0zachab4kfvhwa0qfflsbl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -2940,7 +3122,7 @@ from the command line.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
-    (home-page "http://qtractor.org/")
+    (home-page "https://qtractor.org/")
     (synopsis "Audio/MIDI multi-track sequencer")
     (description
      "Qtractor is an Audio/MIDI multi-track sequencer application.  It uses
@@ -3116,7 +3298,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.")
 (define-public pianobar
   (package
     (name "pianobar")
-    (version "2020.04.05")
+    (version "2020.11.28")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3125,7 +3307,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1gq8kpks6nychqz4gf0rpy7mrhz5vjw48a60x56j6y9flmazmypw"))))
+                "13qx52a1yj2wghf7yd9jf4ar92scbc8zgqdq0kkqf4p9isf1phf3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -3219,8 +3401,31 @@ APEv2 tags can be edited regardless of audio format.  It can also manipulate Ogg
 streams on an individual packet/page level.")
     (license license:gpl2))) ; "later version" never mentioned
 
-(define-public python2-mutagen
-  (package-with-python2 python-mutagen))
+(define-public python-mediafile
+  (package
+    (name "python-mediafile")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mediafile" version))
+       (patches (search-patches "python-mediafile-wavpack.patch"))
+       (sha256
+        (base32
+         "0jmsp3f57xj35ayp8b6didk85nxgl3viw34s5px3l5dwgc055yx3"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-mutagen" ,python-mutagen)
+       ("python-six" ,python-six)
+       ("python-tox" ,python-tox)))
+    (home-page "https://github.com/beetbox/mediafile")
+    (synopsis "Read and write audio file tags")
+    (description
+     "MediaFile is a simple interface to the metadata tags for many audio file
+formats.  It wraps Mutagen, a high-quality library for low-level tag
+manipulation, with a high-level, format-independent interface for a common set
+of tags.")
+    (license license:expat)))
 
 (define-public python-musicbrainzngs
   (package
@@ -3455,6 +3660,61 @@ websites such as Libre.fm.")
     of tools for manipulating and accessing your music.")
     (license license:expat)))
 
+(define-public beets-next
+  (let ((commit "04ea754d00e2873ae9aa2d9e07c5cefd790eaee2")
+        (revision "1"))
+    (package
+      (inherit beets)
+      (name "beets-next")
+      (version (git-version (package-version beets) revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/beetbox/beets")
+                      (commit commit)))
+                (file-name (git-file-name "beets" version))
+                (sha256
+                 (base32
+                  "092a9sss2shhcjmpgbwvscv8brpm5970i5hddkhi81xcff3bg1h4"))))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; XXX: unclear why this fails
+           (add-after 'unpack 'disable-failing-tests
+             (lambda _
+               (substitute* "test/test_zero.py"
+                 (("def test_album_art") "def _test_album_art"))
+               #t))
+           (add-after 'unpack 'set-HOME
+             (lambda _
+               (setenv "HOME" (string-append (getcwd) "/tmp"))
+               #t))
+           (replace 'check
+             (lambda _
+               ;; Resources must be writable.
+               (for-each make-file-writable
+                         (find-files "test/rsrc" "."))
+               (invoke "nosetests" "-v")))
+           ;; Wrap the executable, so it can find python-gi (aka pygobject) and
+           ;; gstreamer plugins.
+           (add-after 'wrap 'wrap-typelib
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((prog (string-append (assoc-ref outputs "out")
+                                          "/bin/beet"))
+                     (plugins (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                     (types (getenv "GI_TYPELIB_PATH")))
+                 (wrap-program prog
+                   `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,plugins))
+                   `("GI_TYPELIB_PATH" ":" prefix (,types)))
+                 #t))))))
+      (inputs
+       `(("python-confuse" ,python-confuse)
+         ("python-mediafile" ,python-mediafile)
+         ("python-reflink" ,python-reflink)
+         ("python-requests-oauthlib" ,python-requests-oauthlib)
+         ("opusfile" ,opusfile)
+         ,@(package-inputs beets))))))
+
 (define-public beets-bandcamp
   (package
     (name "beets-bandcamp")
@@ -3478,14 +3738,14 @@ websites such as Libre.fm.")
     (synopsis "Bandcamp plugin for beets")
     (description
      "This plugin for beets automatically obtains tag data from @uref{Bandcamp,
-                                                                      https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
-    using the beets FetchArt plugin.")
+https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
+using the beets FetchArt plugin.")
     (license license:gpl2)))
 
 (define-public milkytracker
   (package
     (name "milkytracker")
-    (version "1.02.00")
+    (version "1.03.00")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3494,7 +3754,7 @@ websites such as Libre.fm.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05a6d7l98k9i82dwrgi855dnccm3f2lkb144gi244vhk1156n0ca"))
+                "025fj34gq2kmkpwcswcyx7wdxb89vm944dh685zi4bxx0hz16vvk"))
               (modules '((guix build utils)))
               ;; Remove non-FSDG compliant sample songs.
               (snippet
@@ -3576,14 +3836,14 @@ with a number of bugfixes and changes to improve IT playback.")
 (define-public sooperlooper
   (package
     (name "sooperlooper")
-    (version "1.7.4")
+    (version "1.7.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://essej.net/sooperlooper/sooperlooper-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1jjvq4aflbyr3nr8b318k1vkad16xfa1jkqn9ckzw4419qc6c1k5"))))
+        (base32 "0kbb1pj62rl32c88j6p7dg823kvs0gb5s42qy3bl6yg0wn10dksj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -4312,7 +4572,7 @@ are a C compiler and glib.  Full API documentation and examples are included.")
 (define-public lmms
   (package
     (name "lmms")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method git-fetch)
@@ -4322,7 +4582,7 @@ are a C compiler and glib.  Full API documentation and examples are included.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1gx730z361xx30iqbsm99aam1k2c8yf561gcay6sryyjksb4w1wy"))))
+         "11xgf461cnmq0jkgdgx5bddi87ammpik4whg1m4fcvd3i0d5i601"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no tests
@@ -4390,7 +4650,8 @@ are a C compiler and glib.  Full API documentation and examples are included.")
        ("libxft" ,libxft)
        ("freetype2" ,freetype)
        ("fftw3f" ,fftwf)
-       ("jack" ,jack-1)))
+       ("jack" ,jack-1)
+       ("carla" ,carla)))
     (home-page "https://lmms.io/")
     (synopsis "Music composition tool")
     (description "LMMS is a digital audio workstation.  It includes tools for sequencing
@@ -4398,10 +4659,40 @@ melodies and beats and for mixing and arranging songs.  LMMS includes instrument
 audio samples and various soft sythesizers.  It can receive input from a MIDI keyboard.")
     (license license:gpl2+)))
 
+(define-public liquidsfz
+  (package
+    (name "liquidsfz")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://space.twc.de/~stefan/liquidsfz/"
+                                  "liquidsfz-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1hb4hc3gkvjfbx0ls6wxzavhv2hf9ix11cz8yvndyb6q9lwkimwl"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-shared")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ;; Fails with default gcc (#include <filesystem> not found).
+       ("gcc" ,gcc-9)))
+    (inputs
+     `(("jack" ,jack-2)
+       ("lv2" ,lv2)
+       ("readline" ,readline)
+       ("libsndfile" ,libsndfile)))
+    (home-page "https://github.com/swesterfeld/liquidsfz")
+    (synopsis "Sampler library")
+    (description "The main goal of liquidsfz is to provide an SFZ sampler
+implementation library that is easy to integrate into other projects.  A
+standalone JACK client and an LV2 plugin is also available.")
+    (license license:lgpl2.1+)))
+
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.5.2")
+    (version "3.6.2")
     (source
      (origin
        (method git-fetch)
@@ -4410,7 +4701,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0yzps5xxa50cr2i5iv2ycjdywd0mcrdd6hx93l4p8lfljag3w3al"))
+        (base32 "0szvb6mlzy9df9lrq546rrpixa480knzij1wgh6ilflxz87q048q"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove unused libraries.
@@ -4546,6 +4837,67 @@ list view, and a score editor.  MusE aims to be a complete multitrack virtual
 studio.")
     (license license:gpl2+)))
 
+(define-public gsequencer
+  (package
+    (name "gsequencer")
+    (version "3.7.48")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.savannah.gnu.org/git/gsequencer.git/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0pqaj09x3lzcj0zbbkqpyaky9i1w462bhhvg1akh73nzwvyy46zd"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'prepare-x-for-test
+           (lambda _
+             (system "Xvfb &")
+             (setenv "DISPLAY" ":0")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("cunit" ,cunit)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("libxslt" ,libxslt)
+       ("pkg-config" ,pkg-config)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("dssi" ,dssi)
+       ("fftw" ,fftw)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gstreamer" ,gstreamer)
+       ("gtk+" ,gtk+)
+       ("jack" ,jack-1)
+       ("ladspa" ,ladspa)
+       ("libinstpatch" ,libinstpatch)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("libsoup" ,libsoup)
+       ("libuuid" ,util-linux "lib")
+       ("libxml2" ,libxml2)
+       ("lv2" ,lv2)
+       ("pulseaudio" ,pulseaudio)
+       ("webkitgtk" ,webkitgtk)))
+    (home-page "https://nongnu.org/gsequencer/")
+    (synopsis "Advanced Gtk+ Sequencer")
+    (description
+     "GSequencer allows you to play, capture and create music.  There is a piano
+roll, automation and wave form editor.  It has machines for playing drum samples,
+Soundfont2 sound containers and synthesizers.  They usually can be connected to a
+MIDI input source (instrument).  It has support for various audio backends like
+ALSA, Pulseaudio, JACK, OSSv4 and CoreAudio.")
+    (license license:gpl3+)))
+
 (define-public dssi
   (package
     (name "dssi")
@@ -5286,7 +5638,7 @@ for integration into status line generators or other command-line tools.")
 (define-public artyfx
   (package
     (name "artyfx")
-    (version "1.3")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5296,7 +5648,7 @@ for integration into status line generators or other command-line tools.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9"))))
+                "0cxikdnxgjk5gp6kmml4dx2jy2cy4x0c837h7bwraj2pfz0nfgqq"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                                ; no tests included
@@ -5585,16 +5937,16 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
 (define-public geonkick
   (package
     (name "geonkick")
-    (version "2.3.8")
+    (version "2.7.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/geontime/geonkick.git")
+             (url "https://gitlab.com/iurie-sw/geonkick")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07809yy2q7dd6fcp0yndlg1vw2ca2zisnsplb3xrxvzdvrqlw910"))))
+        (base32 "0w1mvqm46qdwldcl81svaykwii4wvx7mcr57kwvnj0iv2qrc891i"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no tests included
@@ -5604,8 +5956,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
              (string-append "-DCMAKE_INSTALL_PREFIX="
                             (assoc-ref %outputs "out")))))
     (inputs
-     `(("cairo" ,cairo)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
+     `(("hicolor-icon-theme" ,hicolor-icon-theme)
        ("jack" ,jack-1)                 ;for the standalone JACK application
        ("libsndfile" ,libsndfile)
        ("libx11" ,libx11)
@@ -5621,9 +5972,54 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
     (description "Geonkick is a synthesizer that can synthesize elements
 of percussion such as kicks, snares, hit-hats, shakers, claps and sticks.
 It can also play and mix samples.")
-    (home-page "https://gitlab.com/geontime/geonkick")
+    (home-page "https://gitlab.com/iurie-sw/geonkick")
     (license license:gpl3+)))
 
+(define-public mamba
+  (package
+   (name "mamba")
+   (version "2.1")
+   (source
+    (origin
+      (method git-fetch)
+      (uri
+       (git-reference
+        (url "https://github.com/brummer10/Mamba")
+        (commit (string-append "v" version))
+        (recursive? #t))) ; references specific commit of libxputty
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "1bq6sqsij3cdwcsj3wpsnivi4c7jl4l5gwfywhqnib70v60smdja"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f  ; no "check" target
+      #:make-flags
+      (list (string-append "PREFIX="
+                           (assoc-ref %outputs "out"))
+            (string-append "CC=" ,(cc-for-target)))
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure))))
+   (inputs
+    `(("alsa-lib" ,alsa-lib)
+      ("cairo" ,cairo)
+      ("fluidsynth" ,fluidsynth)
+      ("jack" ,jack-1)
+      ("liblo" ,liblo)
+      ("libsigc++" ,libsigc++)
+      ("libsmf" ,libsmf)
+      ("libx11" ,libx11)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)))
+   (home-page "https://github.com/brummer10/Mamba")
+   (synopsis "Virtual MIDI keyboard and MIDI file player/recorder for JACK")
+   (description "Mamba is a virtual MIDI keyboard and MIDI file
+player/recorder for the JACK Audio Connection Kit.  It comes with predefined
+keymaps for QWERTZ, QWERTY and AZERTY keyboards and also allows custom
+ones.")
+   (license license:bsd-0)))
+
 (define-public dpf-plugins
   (package
     (name "dpf-plugins")
@@ -5782,7 +6178,7 @@ and as an LV2 plugin.")
     ;; distros to make necessary changes to integrate the software into the
     ;; distribution.
     (name "zrythm")
-    (version "1.0.0-alpha.3.0.1")
+    (version "1.0.0-alpha.12.0.1")
     (source
       (origin
         (method url-fetch)
@@ -5790,7 +6186,7 @@ and as an LV2 plugin.")
                             version ".tar.xz"))
         (sha256
           (base32
-            "06025367x08y4g9grhcn35bk1dsrpgm04c8l8j50i3p49dl3s1n0"))))
+           "1si4n8rdg0a3frlbj6yqpyzr4f20v3cpl4m6kv0yf7r25psyl5pk"))))
    (build-system meson-build-system)
    (arguments
     `(#:glib-or-gtk? #t
@@ -5823,6 +6219,7 @@ and as an LV2 plugin.")
       ("libyaml" ,libyaml)
       ("lilv" ,lilv)
       ("lv2" ,lv2)
+      ("pulseaudio" ,pulseaudio)
       ("reproc" ,reproc)
       ("rubberband" ,rubberband)
       ("rtmidi" ,rtmidi)
@@ -5899,34 +6296,39 @@ hall reverb and a room reverb.  Both are available as LV2 plugins as well
 as JACK standalone applications.")
     (license license:gpl3+)))
 
-(define-public zlfo
+(define-public zplugins
   (package
-    (name "zlfo")
-    (version "0.1.3")
+    (name "zplugins")
+    (version "0.1.7")
     (source
      (origin
        (method git-fetch)
-       (uri (git-reference
-             (url "https://git.zrythm.org/git/ZLFO")
-             (commit (string-append "v" version))))
+       (uri
+        (git-reference
+         (url "https://git.zrythm.org/git/zplugins")
+         (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0bm466ci5xyvxvq7l9p6xyh789lvk6i31b4zja1igqh13akbjnjz"))))
+         "1rkm2xajmyik6289b20rp5a5br9f3sh1xk8nb1bs6qpmcrfirgbs"))))
     (build-system meson-build-system)
     (inputs
-     `(("librsvg" ,librsvg)
-       ("lv2" ,lv2)
-       ("ztoolkit-rsvg" ,ztoolkit-rsvg)))
+      `(("guile" ,guile-2.2)
+        ("libsndfile" ,libsndfile)
+        ("lv2" ,lv2)
+        ("ztoolkit-rsvg" ,ztoolkit-rsvg)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (synopsis "Low frequency oscillator plugin")
-    (description "ZLFO is a fully featured
-@dfn{low frequency oscillator} (LFO) for @dfn{control voltage} (CV)-based
-automation that comes as an LV2 plugin bundle with a custom UI.")
-    (home-page "https://git.zrythm.org/cgit/ZLFO/")
+      `(("pkg-config" ,pkg-config)))
+    (synopsis "Audio plugin collection")
+    (description "ZPlugins is a collection of audio DSP plugins intended
+to be bundled with the Zrythm @dfn{digital audio workstation} (DAW).")
+    (home-page "https://www.zrythm.org/en/plugins.html")
     (license license:agpl3+)))
 
+(define-public zlfo
+  ;; The "zlfo" package is now included in zplugins
+  (deprecated-package "zlfo" zplugins))
+
 (define-public remid-lv2
   (package
     (name "remid-lv2")