gnu: freecad: Update to 0.18.4.
[jackhill/guix/guix.git] / gnu / packages / music.scm
index 08130d3..3373b4c 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
 ;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 raingloom <raingloom@protonmail.com>
+;;; Copyright © 2019 David Wilson <david@daviwil.com>
+;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -352,6 +355,7 @@ playing your music.")
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("ao" ,ao)
+       ("faad2" ,faad2)
        ("ffmpeg" ,ffmpeg)
        ("flac" ,flac)
        ("jack" ,jack-1)
@@ -591,12 +595,17 @@ enable professional yet simple and intuitive pattern-based drum programming.")
                      "prefix=~@*~a~@
                       libdir=${prefix}/lib~@
                       includedir=${prefix}/include~@
+
+                      Name: libid3tag~@
+                      Description:~@
+                      Version:~@
                       Libs: -L${libdir} -lid3tag -lz~@
                       Cflags: -I${includedir}~%"
                      libid3tag)))
                (setenv "PKG_CONFIG_PATH"
                  (string-append (getenv "PKG_CONFIG_PATH")
-                   ":" (getcwd) "/pkgconfig")))))
+                   ":" (getcwd) "/pkgconfig"))
+               #t)))
          (add-after 'unpack 'patch-makefile
            (lambda _
              (substitute* "Makefile.in"
@@ -604,7 +613,8 @@ enable professional yet simple and intuitive pattern-based drum programming.")
                ;; script with /bin/sh hard-coded.
                (("/bin/sh") (which "sh"))
                ;; Don't create 'icon-theme.cache'.
-               (("gtk-update-icon-cache") "true")))))))
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
     (home-page "https://wiki.gnome.org/Apps/EasyTAG")
     (synopsis "Simple application for viewing and editing tags in audio files")
     (description
@@ -775,6 +785,11 @@ audio and video).")
        #:tests? #f ; no "check" target
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'be-permissive
+           (lambda _
+             (substitute* "SConstruct"
+               (("'-Wall'") "'-Wall', '-fpermissive'"))
+             #t))
          (add-after 'unpack 'replace-removed-scons-syntax
            (lambda _
              (substitute* "SConstruct"
@@ -1357,7 +1372,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.8")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri
@@ -1365,7 +1380,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "15kabmxp38wqvavs5hr1dqasjjf1j977kzqggxfmzyi3y5fan3hj"))))
+                "116k2vca9dygvsd684wvxm61p0l1xrrgdph4qrrprlsr6vj0llgm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1389,7 +1404,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.8")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri
@@ -1397,7 +1412,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "010p8nwnmqgj5mw324psig3hxi1g2gylxrigd6sj6sgcpy3kdm23"))))
+                "1wnjn175l0mz51k9pjf3pdzv54c4jlh63saavld9lm6zfgfs13d7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1422,7 +1437,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.8")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri
@@ -1430,7 +1445,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "138kd9szgn3b97s7crhsyj8pgwb0bn4l9knd4zliqjgj2f1bs9x0"))))
+                "17zs8kvvwqv00bm4lxpn09a5hxjlbz7k5mkl3k7jspw7rqn3djf2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1455,7 +1470,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.8")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri
@@ -1463,7 +1478,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1k4p2ir12qjcs62knvw2s6qyvb46203yx22fnwp341cjk171cxji"))))
+                "02yfwyirjqxa075yqdnci9b9k57kdmkjvn9gnpdbnjp887pds76g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1500,14 +1515,6 @@ special variant of additive synthesis.")
         (base32
          "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'set-flags
-           (lambda _
-             ;; Compile with C++11, required by gtkmm.
-             (setenv "CXXFLAGS" "-std=c++11")
-             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)
@@ -1534,7 +1541,7 @@ reverb effects.")
 (define-public setbfree
   (package
     (name "setbfree")
-    (version "0.8.8")
+    (version "0.8.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1543,7 +1550,7 @@ reverb effects.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382"))))
+                "1lpsa64xvwa9xbbp8zcwxy5w0daffc7fziny2pizabqh7m9xqjl2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -1781,7 +1788,7 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.49-0")
+    (version "0.50-0")
     (source (origin
               (method url-fetch)
               (uri
@@ -1789,10 +1796,10 @@ export.")
                               version ".src.tar.gz"))
               (sha256
                (base32
-                "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j"))))
+                "0hg4n5b55f650qsc0mjx559072dp7vfza7w0pvk6rk2l831cvsps"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:configure-flags
        (list
         "--enable-jack"
@@ -1998,14 +2005,14 @@ browser.")
 (define-public drumstick
   (package
     (name "drumstick")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/drumstick/"
                                   version "/drumstick-" version ".tar.bz2"))
               (sha256
                (base32
-                "0kljqyqj7s1i2z52i24x7ail1bywn6dcxxfbad5c59drm8wv94bp"))))
+                "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no test target
@@ -2041,6 +2048,52 @@ multiplatform realtime MIDI I/O library is also provided with various output
 backends, including ALSA, OSS, Network and FluidSynth.")
     (license license:gpl2+)))
 
+(define-public vmpk
+  (package
+    (name "vmpk")
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/vmpk/vmpk/"
+                                  version "/vmpk-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1i3hnvdgz46n4k5v0q4jhgh7nkh0s390ix4nqr69z0q3026yp0p6"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f  ; no test target
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "cmake_admin/CreateManpages.cmake"
+               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/manpages/docbook.xsl")))
+             #t)))))
+    (inputs
+     `(("drumstick" ,drumstick)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qttools" ,qttools)
+       ("qtx11extras" ,qtx11extras)))
+    (native-inputs
+     `(("libxslt" ,libxslt) ;for xsltproc
+       ("docbook-xsl" ,docbook-xsl)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://vmpk.sourceforge.net")
+    (synopsis "Virtual MIDI piano keyboard")
+    (description
+     "Virtual MIDI Piano Keyboard is a MIDI events generator and receiver.  It
+doesn't produce any sound by itself, but can be used to drive a MIDI
+synthesizer (either hardware or software, internal or external).  You can use
+the computer's keyboard to play MIDI notes, and also the mouse.  You can use
+the Virtual MIDI Piano Keyboard to display the played MIDI notes from another
+instrument or MIDI file player.")
+    (license license:gpl3+)))
+
 (define-public zynaddsubfx
   (package
     (name "zynaddsubfx")
@@ -2090,7 +2143,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.5.10.2")
+    (version "1.6.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/yoshimi/"
@@ -2098,10 +2151,10 @@ capabilities, custom envelopes, effects, etc.")
                                   "/yoshimi-" version ".tar.bz2"))
               (sha256
                (base32
-                "1rr99qkq80s8l2iv3x4ccxan07m15dvmd5s9b10386bfjbwbya01"))))
+                "1z2mnmm299ng6jcwa61dzr1ilwa5fjgsggxl2wa5smji6b4npmx7"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; there are no tests
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
                             (assoc-ref %outputs "out") "/share"))
@@ -2292,14 +2345,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.6")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "06sa4wl8zr0k8dnjiil0gjwnhrkq95h50xv56ih1y8jgyzxchaxp"))))
+                "1482da0lr77i57jby80cnn4bb9ws3v1i1j6m2hbwdnvqab9csvnx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -2331,52 +2384,46 @@ follows a traditional multi-track tape recorder control paradigm.")
     (license license:gpl2+)))
 
 (define-public ams-lv2
-  ;; Version 1.2.1 built with Python 3.7 raises an error in the waf-script.
-  ;; Therefore, we take two more commmits than 1.2.1 that introduce an updated
-  ;; waf-script and fix one error.
-  (let ((commit "377d166db54a787b48979171c5652d2eb4f1bbb5")
-        (revision "1"))
-    (package
-      (name "ams-lv2")
-      (version (git-version "1.2.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/blablack/ams-lv2.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1ndgxcxjxwidg7436k0nb5clxkyi878k1j999sbbd1gk2fm0kcqm"))))
-      (build-system waf-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'remove-sse-flags
-             (lambda* (#:key system #:allow-other-keys)
-               (unless (or (string-prefix? "x86_64" system)
-                              (string-prefix? "i686" system))
-                     (substitute* "wscript"
-                       (("'-msse', '-mfpmath=sse', ") "")))
-               #t)))
-         #:tests? #f)) ; no tests
-      (inputs
-       `(("lv2" ,lv2)
-         ("lvtk" ,lvtk)
-         ("gtkmm" ,gtkmm-2)
-         ("gtk" ,gtk+-2)
-         ("cairo" ,cairo)
-         ("fftw" ,fftw)))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (home-page "https://objectivewave.wordpress.com/ams-lv2/")
-      (synopsis "Port of Alsa Modular Synth internal modules into LV2")
-      (description "This set of LV2 plugins is a port of the internal modules
+  (package
+    (name "ams-lv2")
+    (version "1.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/blablack/ams-lv2.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-sse-flags
+           (lambda* (#:key system #:allow-other-keys)
+             (unless (or (string-prefix? "x86_64" system)
+                         (string-prefix? "i686" system))
+               (substitute* "wscript"
+                 (("'-msse', '-mfpmath=sse', ") "")))
+             #t)))
+       #:tests? #f))                    ; no tests
+    (inputs
+     `(("cairo" ,cairo)
+       ("fftw" ,fftw)
+       ("gtk" ,gtk+-2)
+       ("gtkmm" ,gtkmm-2)
+       ("lv2" ,lv2)
+       ("lvtk" ,lvtk)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/blablack/ams-lv2")
+    (synopsis "Port of Alsa Modular Synth internal modules into LV2")
+    (description "This set of LV2 plugins is a port of the internal modules
 found in Alsa Modular Synth.  These plugins are used to create modular
 synthesizers and contain: VCO, VCF, VCA, LFO, slew limiter, envelopes, sample
 and hold, etc.")
-      (license license:gpl2))))
+    (license license:gpl2)))
 
 (define-public gxtuner
   (package
@@ -2741,7 +2788,7 @@ websites such as Libre.fm.")
                   (add-before 'build 'change-directory
                     (lambda _
                       (chdir "instantmusic-0.1") #t))
-                  (add-before 'check 'fix-file-permissions
+                  (add-before 'install 'fix-file-permissions
                     (lambda _
                       ;; Fix some read-only files that would cause a build failure
                       (for-each (cut chmod <> #o644)
@@ -2757,14 +2804,13 @@ Songs can be searched by artist, name or even by a part of the song text.")
 (define-public beets
   (package
     (name "beets")
-    (version "1.4.7")
+    (version "1.4.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "beets" version))
-              (patches (search-patches "beets-python-3.7-fix.patch"))
               (sha256
                (base32
-                "0w3gz69s9gf5ih69d4sddgh7ndj7658m621bp742zldvjakdncrs"))))
+                "0m40rjimvfgy1dv04p8f8d5dvi2855v4ix99a9xr900cmcn476yj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2773,12 +2819,6 @@ Songs can be searched by artist, name or even by a part of the song text.")
            (lambda _
              (setenv "HOME" (string-append (getcwd) "/tmp"))
              #t))
-         (add-after 'unpack 'make-python3.7-compatible
-           (lambda _
-             ;; See <https://github.com/beetbox/beets/issues/2978>.
-             (substitute* "beets/autotag/hooks.py"
-              (("re\\._pattern_type") "re.Pattern"))
-             #t))
          (replace 'check
            (lambda _
              (invoke "nosetests" "-v"))))))
@@ -2802,7 +2842,7 @@ Songs can be searched by artist, name or even by a part of the song text.")
        ("python-mutagen" ,python-mutagen)
        ("python-pyyaml" ,python-pyyaml)
        ("python-unidecode" ,python-unidecode)))
-    (home-page "http://beets.io")
+    (home-page "https://beets.io")
     (synopsis "Music organizer")
     (description "The purpose of beets is to get your music collection right
 once and for all.  It catalogs your collection, automatically improving its
@@ -2942,8 +2982,7 @@ with a number of bugfixes and changes to improve IT playback.")
               (patches (search-patches "sooperlooper-build-with-wx-30.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "CXXFLAGS=-std=gnu++11")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-sigc++-includes
            (lambda* (#:key inputs #:allow-other-keys)
@@ -2955,7 +2994,8 @@ with a number of bugfixes and changes to improve IT playback.")
                                       sig "/lib/sigc++-2.0/include:"
                                       xml "/include/libxml2/:"
                                       cwd "/libs/pbd:"
-                                      cwd "/libs/midi++")))
+                                      cwd "/libs/midi++:"
+                                      (or (getenv "CPATH") ""))))
              (substitute* '("src/control_osc.hpp"
                             "src/gui/app_frame.hpp"
                             "src/gui/config_panel.hpp"
@@ -3350,8 +3390,9 @@ slow gear audio effect to produce volume swells."))))
 a simulation of an analog Wah pedal with switchless activation."))))
 
 (define-public rkrlv2
-  (let ((commit "d8c17d3c976107e5c012970276d7cf0aa059f15b")
-        (revision "1"))
+  ;; This commit corresponds to the beta_3 tag
+  (let ((commit "7edcb4e29a358623bfd57fa2c27e5da60adfcec3")
+        (revision "2"))
     (package
       (name "rkrlv2")
       (version (git-version "0" revision commit))
@@ -3362,7 +3403,7 @@ a simulation of an analog Wah pedal with switchless activation."))))
                       (commit commit)))
                 (sha256
                  (base32
-                  "035z068rlafb7ibgqf34ck2lm4fab8yzlx41qh061x2xi4hxkvp0"))
+                  "16i4ajrib7kb0abdcn4901g8a4lkwkp2fyqyms38dhqq84slyfjs"))
                 (file-name (git-file-name name version))))
       (build-system cmake-build-system)
       (arguments '(#:tests? #f)) ; there are no tests
@@ -3515,8 +3556,7 @@ develop custom plugins for use in other applications without programming.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list "--enable-qt5"
-             "CXXFLAGS=-std=gnu++11")))
+       (list "--enable-qt5")))
     (inputs
      `(("qtbase" ,qtbase)
        ("alsa-lib" ,alsa-lib)
@@ -3547,8 +3587,7 @@ modules running in parallel.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list "--enable-qt5"
-             "CXXFLAGS=-std=gnu++11")))
+       (list "--enable-qt5")))
     (inputs
      `(("qtbase" ,qtbase)
        ("alsa-lib" ,alsa-lib)))
@@ -3577,9 +3616,6 @@ defined as tabs in the main control surface.")
                 "12dphdhnvfk1k0vmagi1v2lhyxjyj1j3cz6ksjw0ydcvid1x8ap2"))
               (patches (search-patches "seq24-rename-mutex.patch"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       (list "CXXFLAGS=-std=gnu++11")))
     (inputs
      `(("gtkmm" ,gtkmm-2)
        ("alsa-lib" ,alsa-lib)
@@ -3672,7 +3708,7 @@ are a C compiler and glib.  Full API documentation and examples are included.")
 (define-public lmms
   (package
     (name "lmms")
-    (version "1.1.3")
+    (version "1.2.1")
     (source
      (origin
        (method git-fetch)
@@ -3682,12 +3718,23 @@ are a C compiler and glib.  Full API documentation and examples are included.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03hhymc6d73fa3wbcqb7rm1l03zkw605k5i9kvkvjmv488bqh3pd"))))
+         "1gx730z361xx30iqbsm99aam1k2c8yf561gcay6sryyjksb4w1wy"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no tests
+       ;; Qt 5 support must be explicitly enabled in the 1.2 stable versions of
+       ;; LMMS, so try removing "-DWANT_QT5=ON" in later versions.
+       ;; Also, explicitly disabling VST support gets rid of the in-tree
+       ;; dependency on qt5-x11embed.
+       #:configure-flags '("-DWANT_QT5=ON"
+                           "-DWANT_VST=OFF")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-rpmalloc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "rpmalloc")
+                               "src/3rdparty/rpmalloc/rpmalloc")
+             #t))
          (add-before 'configure 'set-ldflags
            (lambda* (#:key outputs #:allow-other-keys)
              (setenv "LDFLAGS"
@@ -3698,12 +3745,6 @@ are a C compiler and glib.  Full API documentation and examples are included.")
                       (assoc-ref outputs "out") "/lib/lmms/ladspa"
                       "\""))
              #t))
-         (add-before 'configure 'remove-Werror
-           (lambda _
-             (substitute* "CMakeLists.txt"
-               (("SET\\(WERROR_FLAGS \"\\$\\{WERROR_FLAGS\\} -Werror")
-                "SET(WERROR_FLAGS \"${WERROR_FLAGS}"))
-             #t))
          (add-before 'reset-gzip-timestamps 'make-manpages-writable
            (lambda* (#:key outputs #:allow-other-keys)
              (map (lambda (file)
@@ -3713,14 +3754,30 @@ are a C compiler and glib.  Full API documentation and examples are included.")
                               ".*\\.gz$"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
+       ;; rpmalloc is a public domain memory allocator. This version specified
+       ;; below is the version required by LMMS.
+       ;; To get the new commit of rpmalloc to use here, run
+       ;;   `git submodule--helper list | grep rpmalloc | cut -f2 -d' '`
+       ;; in the cloned LMMS repository.
+       ("rpmalloc"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/mjansson/rpmalloc.git")
+                 (commit "b5bdc18051bb74a22f0bde4bcc90b01cf590b496")))
+           (sha256
+            (base32
+             "0g9pls46iggg7rdm65vzfj8nyr3v2n5xkp54c4qbh9hhalpsw4ay"))))))
     (inputs
      `(("sdl" ,sdl)
-       ("qt" ,qt-4)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
        ("fltk" ,fltk)
        ("libogg" ,libogg)
        ("libsamplerate" ,libsamplerate)
-       ("fluidsynth" ,fluidsynth-1)         ;XXX: try using 2.x when updating
+       ("fluidsynth" ,fluidsynth)
        ("libvorbis" ,libvorbis)
        ("alsa-lib" ,alsa-lib)
        ("portaudio" ,portaudio)
@@ -3739,7 +3796,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.2")
+    (version "3.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3748,7 +3805,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0719p4hjlq7skga8q4hvnd5w33vhrd1a1aygvqm9pn4na02zazy6"))
+                "15ckjwvp3xigjkzmp1ddzvlm4d0vlk9i1axyfxg3hr2sia84yxvi"))
               (modules '((guix build utils)))
               (snippet
                ;; Un-bundle OpenSSL and remove unused libraries.
@@ -3766,8 +3823,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       `("-DBUILD_CRASH_REPORTER=OFF"
-         "-DBUILD_WEBENGINE=OFF"
+       `("-DBUILD_WEBENGINE=OFF"
          "-DDOWNLOAD_SOUNDFONT=OFF"
          "-DUSE_SYSTEM_FREETYPE=ON")
        ;; There are tests, but no simple target to run.  The command used to
@@ -4000,43 +4056,32 @@ notation and includes basic support for digital audio.")
     (license license:gpl2)))
 
 (define-public patchmatrix
-  ;; There have been no releases for more than a year.
-  (let ((commit "a0b0b1e791f4574d5abd059cfe1819c71e8b18d5")
-        (revision "1"))
-    (package
-      (name "patchmatrix")
-      (version (git-version "0.12.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/OpenMusicKontrollers/patchmatrix.git")
-                      (commit commit)))
-                (file-name (string-append "patchmatrix-" version "-checkout"))
-                (sha256
-                 (base32
-                  "0pph4ra7aci3rbpqvvr564pi16vxrk448bmvp8985cd9lbjlrp3m"))))
-      (build-system meson-build-system)
-      (arguments
-       '(#:tests? #f          ; no test target
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map make-file-writable
-                    (find-files (assoc-ref outputs "out") ".*\\.gz$"))
-               #t)))))
-      (inputs
-       `(("jack" ,jack-1)
-         ("lv2" ,lv2)
-         ("mesa" ,mesa)))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (home-page "https://github.com/OpenMusicKontrollers/patchmatrix")
-      (synopsis "Simple JACK patch bay")
-      (description "PatchMatrix is a patch bay for the JACK audio connection
+  (package
+    (name "patchmatrix")
+    (version "0.16.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/OpenMusicKontrollers/patchmatrix.git")
+                    (commit version)))
+              (file-name (git-file-name "patchmatrix" version))
+              (sha256
+               (base32
+                "020vp7zzxxzzjfic57vkpg68dm8hi98ilr1bj88xjsv6i47xmjbn"))))
+    (build-system meson-build-system)
+    (arguments '(#:tests? #f))          ; no test target
+    (inputs
+     `(("jack" ,jack-1)
+       ("lv2" ,lv2)
+       ("mesa" ,mesa)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/OpenMusicKontrollers/patchmatrix")
+    (synopsis "Simple JACK patch bay")
+    (description "PatchMatrix is a patch bay for the JACK audio connection
 kit.  It provides a patch bay in flow matrix style for audio, MIDI, CV, and
 OSC connections.")
-      (license license:artistic2.0))))
+    (license license:artistic2.0)))
 
 (define-public sorcer
   (package
@@ -4442,7 +4487,7 @@ discard bad quality ones.
 (define-public lpd8editor
   (package
     (name "lpd8editor")
-    (version "0.0.12")
+    (version "0.0.13")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4451,7 +4496,7 @@ discard bad quality ones.
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v3fz8h1zs7kkl80faah79pp6yqwz0j7bkv3dbmh2hp42zbfiz1q"))))
+                "0lsz3v493ilq2zr016m7kvymrplxd0n3pqv1pjglpq1h7sjw9764"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -4474,3 +4519,489 @@ discard bad quality ones.
 controller.")
     (home-page "https://github.com/charlesfleche/lpd8editor")
     (license license:expat)))
+
+(define-public fmit
+  (package
+    (name "fmit")
+    (version "1.2.13")
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/gillesdegottex/fmit/")
+                   (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+             (sha256
+               (base32
+                "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+        (delete 'configure)
+        (add-before 'build 'qmake
+          (lambda _
+            (let ((out (assoc-ref %outputs "out")))
+               (invoke "qmake"
+                       "fmit.pro"
+                       (string-append "PREFIX=" out)
+                       (string-append "PREFIXSHORTCUT=" out)
+                       "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio"))))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/fmit")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins"))
+                         '("qtbase" "qtmultimedia" "qtsvg")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/qml"))
+                         '("qtmultimedia"))))
+               #t))))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("fftw" ,fftw)
+       ("jack" ,jack-1)
+       ("portaudio" ,portaudio)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)))
+    (native-inputs
+     `(("gettext" ,gnu-gettext)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("itstool" ,itstool)
+       ("qttools" ,qttools)))
+    (synopsis "Musical instrument tuner")
+    (description "FMIT is a graphical utility for tuning musical instruments,
+with error and volume history, and advanced features.")
+    (home-page "https://gillesdegottex.github.io/fmit/")
+    ;; Most of the code is under GPL2+, but some abstract or helper classes
+    ;; are under LGPL2.1.
+    (license (list license:gpl2+ license:lgpl2.1))))
+
+(define-public mloop
+  (let ((commit "adebff98b0b4dc5872a03acb82e89c77cb29c127")
+        (revision "0"))
+    (package
+      (name "mloop")
+      (version (git-version "0.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "http://git.fuzzle.org/mloop")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "175gxvg5slq0bllcx1c381rjlq3xpxww8c3kpiw5i2kfr4m52myz"))))
+      (build-system waf-build-system)
+      (arguments
+       `(#:python ,python-2
+         #:tests? #f))                     ; no "check" target
+      (inputs
+       `(("jack" ,jack-1)
+         ("ncurses" ,ncurses)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (home-page "https://fuzzle.org/~petern/mloop.html")
+      (synopsis "Live MIDI looper")
+      (description "mloop is a live MIDI looping system, using jack-midi.
+Loops are recorded, optionally with beat quantization, and can then be played
+back, either once or looping.  A 'note cache' system is implemented to
+remember which notes are pressed and their velocities.  This allows for a loop
+to start off with the currently pressed notes, making seamless loops much
+easier to perform.  Features include:
+
+@itemize
+@item Quantisation; end a loop on a beat exactly.
+@item Delayed recording; wait for a MIDI event before starting a loop record.
+@item Adjust tempo; Playback speed of loops can be adjusted on the fly.
+@end itemize\n")
+      (license license:gpl2))))
+
+(define-public pragha
+  (package
+    (name "pragha")
+    (version "1.3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/pragha-music-player/pragha/"
+                                  "releases/download/v" version "/pragha-" version
+                                  ".tar.bz2"))
+              (sha256
+               (base32
+                "19kbhq99bkimx3aqrdzln0vlr4slkpx6kq66j731jvqyq76nlkp5"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("grilo" ,grilo)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gtk+" ,gtk+)
+       ("libcddb" ,libcddb)
+       ("libcdio" ,libcdio)
+       ("libcdio-paranoia" ,libcdio-paranoia)
+       ("libgudev" ,libgudev)
+       ("libnotify" ,libnotify)
+       ("libpeas" ,libpeas)
+       ("libsoup" ,libsoup)
+       ("sqlite" ,sqlite)
+       ("taglib" ,taglib)))
+    (arguments
+     `(#: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/pragha")
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))
+               #t))))))
+    (home-page "https://pragha-music-player.github.io")
+    (synopsis "Music player")
+    (description "Pragha is a lightweight music player based on Gtk and
+sqlite.  It is constructed to be fast, light, and simultaneously tries to be
+complete without obstructing your daily work.")
+    (license license:gpl3+)))
+
+(define-public playerctl
+  (package
+    (name "playerctl")
+    (version "2.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/altdesktop/playerctl.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1f3njnpd52djx3dmhh9a8p5a67f0jmr1gbk98icflr2q91149gjz"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags '("-Dintrospection=false" "-Dgtk-doc=false")))
+    (inputs `(("python-pygobject" ,python-pygobject)))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Control MPRIS-supporting media player applications")
+    (description
+     "Playerctl is a command-line utility and library for controlling media
+players that implement the MPRIS D-Bus Interface Specification.  Playerctl
+makes it easy to bind player actions, such as play and pause, to media keys.
+You can also get metadata about the playing track such as the artist and title
+for integration into status line generators or other command-line tools.")
+    (home-page "https://github.com/altdesktop/playerctl")
+    (license license:lgpl3+)))
+
+(define-public artyfx
+  (package
+    (name "artyfx")
+    (version "1.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://github.com/openAVproductions/openAV-ArtyFX.git")
+                    (commit (string-append "release-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                                ; no tests included
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-architecture-specific-flags
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("-msse2 -mfpmath=sse") ""))
+             #t)))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("libsndfile" ,libsndfile)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("lv2" ,lv2)))
+    (home-page "http://openavproductions.com/artyfx/")
+    (synopsis "Audio effect LV2 plugin bundle")
+    (description "ArtyFX is an LV2 plugin bundle of artistic real-time audio
+effects.  It contains a bitcrusher, delay, distortion, equalizer, compressor,
+and reverb.")
+    (license license:gpl2+)))
+
+(define-public sherlock-lv2
+  (package
+    (name "sherlock-lv2")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://git.open-music-kontrollers.ch/lv2/"
+             "sherlock.lv2/snapshot/sherlock.lv2-"
+             version ".tar.xz"))
+       (sha256
+        (base32
+         "1c5xajpss9h8lbyx160bbzg8va50n2d74qwnxig9sf468rzmha1y"))))
+    (build-system meson-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("mesa" ,mesa)
+       ("sratom" ,sratom)))
+    (native-inputs
+     `(("flex" ,flex)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Investigative LV2 plugin bundle")
+    (description "The Sherlock plugin bundle contains LV2 plugins for
+visualizing LV2 atom, MIDI and OSC events.  They can be used for monitoring
+and debugging of event signal flows inside plugin graphs.")
+    (home-page "https://open-music-kontrollers.ch/lv2/sherlock/")
+    (license license:artistic2.0)))
+
+(define-public x42-plugins
+  (package
+    (name "x42-plugins")
+    (version "20191013")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://gareus.org/misc/x42-plugins/x42-plugins-"
+                       version ".tar.xz"))
+       (sha256
+        (base32
+         "18kn1bmc0s6dp834kc51ibifzzn3bxwya4p8s8yq9f4mpmkghi24"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no "check" target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "LIBZITACONVOLVER=-lzita-convolver"
+             (string-append "FONTFILE="
+                            (assoc-ref %build-inputs "font-dejavu")
+                            "/share/fonts/truetype/DejaVuSans-Bold.ttf"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-CC-variable
+           (lambda _
+             (setenv "CC" "gcc")
+             #t))
+         (delete 'configure))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("fftwf" ,fftwf)
+       ("ftgl" ,ftgl)
+       ("glib" ,glib)
+       ("glu" ,glu)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("jack" ,jack-1)
+       ("libltc" ,libltc)
+       ("libsamplerate" ,libsamplerate)
+       ("libx11" ,libx11)
+       ("pango" ,pango)
+       ("zita-convolver" ,zita-convolver)))
+    (native-inputs
+     `(("help2man" ,help2man)
+       ("liblo" ,liblo)
+       ("lv2" ,lv2)
+       ("font-dejavu" ,font-dejavu)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Collection of LV2/JACK audio/MIDI processing plugins")
+    (description "x42-plugins is a collection of over 80 cross-platform LV2
+audio and MIDI plugins that can also run as standalone JACK applications.")
+    (home-page "https://x42-plugins.com/x42/")
+    (license license:gpl2+)))
+
+(define-public zam-plugins
+  (package
+    (name "zam-plugins")
+    (version "3.11")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/zamaudio/zam-plugins.git")
+         (commit version)
+         ;; Recursive to fetch the DISTRHO plugin framework. This
+         ;; framework is intended to be included in the sources
+         ;; and not to be used as a library.
+         (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0jlbxm0g93plgd3g4r9rsr0c7868ms49bs0ljpqb6kw6132hsapp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no "check" target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "HAVE_ZITA_CONVOLVER=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-CC-variable
+           (lambda _
+             (setenv "CC" "gcc") #t))
+         (delete 'configure))))
+    (inputs
+     `(("fftwf" ,fftwf)
+       ("jack" ,jack-1)                 ;for the standalone JACK application
+       ("liblo" ,liblo)
+       ("libsamplerate" ,libsamplerate)
+       ("mesa" ,mesa)
+       ("zita-convolver" ,zita-convolver)))
+    (native-inputs
+     `(("ladspa" ,ladspa)
+       ("lv2" ,lv2)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Collection of audio processing plugins")
+    (description
+     "Zam plugins is a collection of audio processing plugins in the LADSPA,
+LV2 and VST2 formats, as well as standalone JACK versions.  The collection
+includes ZaMaximX2, ZamAutoSat, ZamComp, ZamCompX2, ZamEQ2, ZamGEQ31,
+ZamHeadX2, ZamPhono, ZamGate, ZamGateX2, ZamTube, ZamDelay, ZamDynamicEQ,
+ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
+    (home-page "http://www.zamaudio.com/?p=976")
+    (license license:gpl2+)))
+
+(define-public geonkick
+  (package
+    (name "geonkick")
+    (version "1.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/geontime/geonkick.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17mwxnmxszdm2wjbigciwh8qx0487q9qhf4sl92y6nqdb0dlghnl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests included
+       #:configure-flags
+       (list (string-append "-DGKICK_REDKITE_SDK_PATH="
+                            (assoc-ref %build-inputs "redkite"))
+             (string-append "-DCMAKE_INSTALL_PREFIX="
+                            (assoc-ref %outputs "out")))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("jack" ,jack-1)                 ;for the standalone JACK application
+       ("libsndfile" ,libsndfile)
+       ("libx11" ,libx11)
+       ("redkite" ,redkite)
+       ("rapidjson" ,rapidjson)))
+    (native-inputs
+     `(("lv2" ,lv2)
+       ("pkg-config" ,pkg-config)
+       ("sord" ,sord)))
+    (synopsis "Percussion synthesizer")
+    (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")
+    (license license:gpl3+)))
+
+(define-public dpf-plugins
+  (package
+    (name "dpf-plugins")
+    (version "1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/DISTRHO/DPF-Plugins.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1hsfmpv3kvpiwk8nfw9xpaipzy0n27i83y2v1yr93lznwm5rqrbs"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no "check" target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-CC-variable
+           (lambda _ (setenv "CC" "gcc") #t))
+         (delete 'configure))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("liblo" ,liblo)                 ; for dssi plugins
+       ("jack" ,jack-1)                 ; for standalone applications
+       ("mesa" ,mesa)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("dssi" ,dssi)
+       ("lv2" ,lv2)))
+    (home-page "https://github.com/DISTRHO/DPF-Plugins")
+    (synopsis "Audio plugin collection")
+    (description "Collection of audio plugins built with the DISTRHO Plugin
+Framework (DPF) available in LADSPA, DSSI, LV2 and VST2 formats.  This
+package includes the following plugins: glBars, Kars, Max-Gen examples
+(MaBitcrush, MaFreeverb, MaGigaverb, MaPitchshift), Mini-Series (3BandEQ,
+3BandSplitter, PingPongPan), ndc-Plugs (Amplitude Imposer, Cycle Shifter,
+Soul Force), MVerb, Nekobi, and ProM.")
+    ;; This package consists of several plugins refactored to use the
+    ;; DISTHRO Plugin Framework (DPF). Different copyrights and licenses
+    ;; apply to different plugins. The root LICENSE file has a table with
+    ;; license information for each plugin and paths to each license
+    (license (list license:isc license:gpl3 license:lgpl3 license:expat license:gpl2))))
+
+(define-public avldrums-lv2
+  (package
+    (name "avldrums-lv2")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/x42/avldrums.lv2.git")
+             (commit (string-append "v" version))
+             ;; This plugin expects the robtk submodule's source files to be
+             ;; there in order to build.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1z70rcq6z3gkb4fm8dm9hs31bslwr97zdh2n012fzki9b9rdj5qv"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no "check" target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-CC-variable
+           (lambda _
+             (setenv "CC" "gcc") #t))
+         (delete 'configure))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dssi" ,dssi)
+       ("glu" ,glu)
+       ("mesa" ,mesa)
+       ("pango" ,pango)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("lv2" ,lv2)))
+    (home-page "https://x42-plugins.com/x42/x42-avldrums")
+    (synopsis "Drum sample player LV2 plugin dedicated to the AVLinux Drumkits")
+    (description "AVLdrums is a drum sample player LV2 plugin dedicated to Glen
+MacArthur's AVLdrums.  This plugin provides a convenient way to sequence and mix
+MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
+    (license license:gpl2+)))