Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / music.scm
index 3b7fd54..c0b0163 100644 (file)
@@ -1,23 +1,25 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; 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 © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; 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 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -69,7 +71,6 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
-  #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -80,6 +81,7 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gettext)
@@ -87,6 +89,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gpodder)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages pulseaudio) ;libsndfile
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tex)
@@ -287,7 +292,7 @@ score, keyboard, guitar, drum and controller views.")
          ("sqlite" ,sqlite-with-column-metadata)
          ("sparsehash" ,sparsehash)
          ("taglib" ,taglib)))
-      (home-page "http://clementine-player.org")
+      (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
@@ -442,6 +447,51 @@ background while you work.")
     (home-page "http://www.denemo.org")
     (license license:gpl3+)))
 
+(define-public dumb
+  (package
+    (name "dumb")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kode54/dumb.git")
+             (commit version)))
+       (sha256
+        (base32 "1cnq6rb14d4yllr0yi32p9jmcig8avs3f43bvdjrx4r1mpawspi6"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f ; no check target
+       #:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             "-DBUILD_EXAMPLES=OFF")))
+    (home-page "https://github.com/kode54/dumb")
+    (synopsis "Module audio renderer library")
+    (description
+     "DUMB is a tracker library with support for IT, XM, S3M and MOD files.  It
+targets maximum accuracy to the original formats, with low-pass resonant filters
+for the IT files, accurate timing and pitching, and three resampling quality
+settings (aliasing, linear interpolation and cubic interpolation).")
+    ;; The DUMB license is a bit peculiar.
+    ;; Clause 8 states that clauses 4, 5 and 6 are null and void, leaving only
+    ;; the first three clauses for genuine consideration.
+    ;; Clauses 1, 2 and 3 are analogous to clauses 1, 2 and 3 of the zlib
+    ;; license, a known free software license.
+    ;; Therefore, the DUMB license may be considered a free software license.
+    (license (license:fsf-free "file://LICENSE"))))
+
+(define-public dumb-allegro4
+  (package
+    (inherit dumb)
+    (name "dumb-allegro4")
+    (arguments
+     (substitute-keyword-arguments (package-arguments dumb)
+       ((#:configure-flags flags)
+        `(cons "-DBUILD_ALLEGRO4=ON" ,flags))))
+    (inputs
+     `(("allegro" ,allegro-4)))))
+
 (define-public hydrogen
   (package
     (name "hydrogen")
@@ -716,7 +766,17 @@ audio and video).")
     (build-system scons-build-system)
     (arguments
      `(#:scons-flags (list (string-append "PREFIX=" %output))
-       #:tests? #f)) ;no "check" target
+       #:scons ,scons-python2
+       #:tests? #f ; no "check" target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'replace-removed-scons-syntax
+           (lambda _
+             (substitute* "SConstruct"
+               (("BoolOption") "BoolVariable")
+               (("PathOption") "PathVariable")
+               (("Options") "Variables"))
+             #t)))))
     (inputs
      `(("boost" ,boost)
        ("jack" ,jack-1)
@@ -886,9 +946,10 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
             #t))
          (add-after 'install 'install-info
            (lambda _
-             (zero? (system* "make"
-                             "-j" (number->string (parallel-job-count))
-                             "conf=www" "install-info")))))))
+             (invoke "make"
+                     "-j" (number->string (parallel-job-count))
+                     "conf=www" "install-info")
+             #t)))))
     (inputs
      `(("guile" ,guile-1.8)
        ("font-dejavu" ,font-dejavu)
@@ -1301,7 +1362,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.2")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri
@@ -1309,7 +1370,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1r60l286n8y4a4rrlnbc3h7xk4s2pvqykvskls89prxg0lkpz7kl"))))
+                "1hcngk7mxfrqf8v3r759x3wd0p02nc3q83j8m3k58p408y3mx7nr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1335,7 +1396,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.2")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri
@@ -1343,7 +1404,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1z9l43z91d01b9rzam2cj9qmmg6s5y65fjvb83ms4iaa1p0mnwrn"))))
+                "0d0kskr9pzdckw7sz4djjkkkgz1fa83zrq5my6qlxn68wqdj6800"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1370,7 +1431,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.2")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri
@@ -1378,7 +1439,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0rfcp4v971qfhw1hb43hw12wlxmg2q13l0m1h93pyfi5l4mfjkds"))))
+                "16a5xix9pn0gl3fr6bv6zl1l9vrzgvy1q7xd8yxzfr3vi5s8x4z9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1405,7 +1466,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.2")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri
@@ -1413,7 +1474,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1alfl0l5qdll0w5lwhrwzj5dina1big1zmjg5imi9h06dzhz51xl"))))
+                "0ddvlpjlg6zr9ckanqhisw0sgm8rxibvj1aj5dxzs9xb2wlwd8rr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1486,7 +1547,7 @@ reverb effects.")
 (define-public setbfree
   (package
     (name "setbfree")
-    (version "0.8.7")
+    (version "0.8.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1495,10 +1556,10 @@ reverb effects.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r2i8cp0gfzqp6scrxwwf7pn7lk2j9kmf8cx7bqjvgfyn251dw3j"))))
+                "15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "FONTFILE="
@@ -1514,7 +1575,7 @@ reverb effects.")
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'set-CC-variable
-                     (lambda _ (setenv "CC" "gcc") #t))
+           (lambda _ (setenv "CC" "gcc") #t))
          (delete 'configure))))
     (inputs
      `(("jack" ,jack-1)
@@ -1624,7 +1685,7 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
     (home-page "http://bristol.sourceforge.net/")
     (synopsis "Synthesizer emulator")
     (description
-     "Bristol is an emulation package for a number of different 'classic'
+     "Bristol is an emulation package for a number of different @code{classic}
 synthesizers including additive and subtractive and a few organs.  The
 application consists of the engine, which is called bristol, and its own GUI
 library called brighton that represents all the emulations.  There are
@@ -1950,14 +2011,14 @@ browser.")
 (define-public drumstick
   (package
     (name "drumstick")
-    (version "1.1.1")
+    (version "1.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/drumstick/"
                                   version "/drumstick-" version ".tar.bz2"))
               (sha256
                (base32
-                "0avwxr6n9ra7narxc5lmkhdqi8ix10gmif8rpd06wp4g9iv46xrn"))))
+                "0kljqyqj7s1i2z52i24x7ail1bywn6dcxxfbad5c59drm8wv94bp"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no test target
@@ -1996,7 +2057,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
 (define-public zynaddsubfx
   (package
     (name "zynaddsubfx")
-    (version "3.0.3")
+    (version "3.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2004,7 +2065,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
                     version "/zynaddsubfx-" version ".tar.bz2"))
               (sha256
                (base32
-                "1hfpiqdm337gl4ynkmmp2qss2m5z8mzqzjrbiyg6w1v4js7l9phi"))))
+                "18m4ax0x06y1hx4g2g3gf02v0bldkrrb5m7fsr5jlfp1kvjd2j1x"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -2042,7 +2103,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.5.9")
+    (version "1.5.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/yoshimi/"
@@ -2050,7 +2111,7 @@ capabilities, custom envelopes, effects, etc.")
                                   "/yoshimi-" version ".tar.bz2"))
               (sha256
                (base32
-                "1nqwxwq6814m860zrh33r85vdyi2bgkvjg5372h3ngcdmxnb7wr0"))))
+                "1rr99qkq80s8l2iv3x4ccxan07m15dvmd5s9b10386bfjbwbya01"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
@@ -2216,14 +2277,14 @@ computer's keyboard.")
 (define-public aj-snapshot
   (package
     (name "aj-snapshot")
-    (version "0.9.8")
+    (version "0.9.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/aj-snapshot/"
                                   "aj-snapshot-" version ".tar.bz2"))
               (sha256
                (base32
-                "0wilky1g2mb88v2z0520s7sw1dsn10iwanc8id5p6z1xsnhg7b6p"))))
+                "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil"))))
     (build-system gnu-build-system)
     (inputs
      `(("minixml" ,minixml)
@@ -2244,14 +2305,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.2")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "1j3rpvdkw9rw48j4zyfn6rprp01csy4rl6zckcjyx0vh7vaycchr"))))
+                "06sa4wl8zr0k8dnjiil0gjwnhrkq95h50xv56ih1y8jgyzxchaxp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -2283,47 +2344,52 @@ follows a traditional multi-track tape recorder control paradigm.")
     (license license:gpl2+)))
 
 (define-public ams-lv2
-  (package
-    (name "ams-lv2")
-    (version "1.2.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/blablack/ams-lv2.git")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1n1dnqnj24xhiy9323lj52nswr5120cj56fpckg802miss05sr6x"))))
-    (build-system waf-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-sse-flags
-           (lambda* (#:key system #:allow-other-keys)
-             (when (not (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
+  ;; 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
 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
@@ -2568,6 +2634,28 @@ MusicBrainz database.")
 (define-public python2-musicbrainzngs
   (package-with-python2 python-musicbrainzngs))
 
+(define-public python-isrcsubmit
+  (package
+    (name "python-isrcsubmit")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "isrcsubmit" version))
+       (sha256
+        (base32
+         "0jh4cni8qhri6dh83cmp0i0m0384vv0vznlygv49wj9xzh1d99qv"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-discid" ,python-discid)
+       ("python-musicbrainzngs" ,python-musicbrainzngs)))
+    (home-page "https://github.com/JonnyJD/musicbrainz-isrcsubmit")
+    (synopsis "Submit ISRCs from CDs to MusicBrainz")
+    (description "@code{isrcsubmit} is a tool to extract @dfn{International
+Standard Recording Code} (ISRCs) from audio CDs and submit them to
+@url{https://musicbrainz.org/, MusicBrainz}.")
+    (license license:gpl3+)))
+
 (define-public python2-pyechonest
   (package
     (name "python2-pyechonest")
@@ -2680,13 +2768,14 @@ 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.6")
+    (version "1.4.7")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "beets" version))
+              (patches (search-patches "beets-python-3.7-fix.patch"))
               (sha256
                (base32
-                "0l2vfrknwcsm6bn83m7476qrz45qwgxcb5k0h7kn96kr70irn1v2"))))
+                "0w3gz69s9gf5ih69d4sddgh7ndj7658m621bp742zldvjakdncrs"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2695,6 +2784,12 @@ 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"))))))
@@ -2754,9 +2849,12 @@ of tools for manipulating and accessing your music.")
        #:configure-flags '("-DCMAKE_CXX_FLAGS=-ljack")))
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("lhasa" ,lhasa)
        ("jack" ,jack-1)
+       ("rtmidi" ,rtmidi)
        ("sdl" ,sdl2)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("zziplib" ,zziplib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (synopsis "Music tracker for working with .MOD/.XM module files")
@@ -2771,7 +2869,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
 (define-public schismtracker
   (package
     (name "schismtracker")
-    (version "20180513")
+    (version "20181223")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2780,7 +2878,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0fayix1zbl96zhkfszgj71qr25dnddgy9hr6149nslww4gl7jk36"))
+                "18k5j10zq39y2q294avdmar87x93k57wqmq8bpz562hdqki2mz1l"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove use of __DATE__ and __TIME__ for reproducibility.
@@ -2793,8 +2891,6 @@ for improved Amiga ProTracker 2/3 compatibility.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'autoconf
-           (lambda _ (invoke "autoreconf" "-vfi")))
          (add-before 'configure 'link-libm
            (lambda _ (setenv "LIBS" "-lm") #t)))))
     (native-inputs
@@ -3237,6 +3333,36 @@ slow gear audio effect to produce volume swells."))))
       (description "This package provides the LV2 plugin \"GxSwitchlessWah\",
 a simulation of an analog Wah pedal with switchless activation."))))
 
+(define-public rkrlv2
+  (let ((commit "d8c17d3c976107e5c012970276d7cf0aa059f15b")
+        (revision "1"))
+    (package
+      (name "rkrlv2")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ssj71/rkrlv2.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "035z068rlafb7ibgqf34ck2lm4fab8yzlx41qh061x2xi4hxkvp0"))
+                (file-name (git-file-name name version))))
+      (build-system cmake-build-system)
+      (arguments '(#:tests? #f)) ; there are no tests
+      (inputs
+       `(("fftw" ,fftw)
+         ("libsamplerate" ,libsamplerate)
+         ("lv2" ,lv2)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (home-page "https://github.com/ssj71/rkrlv2")
+      (synopsis "Rakarrack effects ported to LV2 plugins")
+      (description "This package provides the Rakarrack effects as LV2
+plugins.  The ports are done such that hopefully when Rakarrack gets an active
+maintainer these will get merged into the original project.")
+      (license license:gpl2))))
+
 (define-public mod-utilities
   (let ((commit "80ea3ea9f52fab7f191671f4810bf90fc955a046")
         (revision "2"))
@@ -3292,7 +3418,8 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
            "1wg47vjw9djn99gbnsl2bcwj4xhdid61m4wrbn2nlp797flj91ic"))))
       (build-system waf-build-system)
       (arguments
-       `(#:tests? #f ; no "check" target
+       `(#:python ,python-2
+         #:tests? #f ; no "check" target
          #:configure-flags (list "--no-webkit")
          #:phases
          (modify-phases %standard-phases
@@ -3333,7 +3460,7 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
          ("python-rdflib" ,python-rdflib)
          ("python" ,python)
          ("jack" ,jack-1)
-         ("lv2" ,lv2-devel)
+         ("lv2" ,lv2)
          ("lilv" ,lilv)
          ("raul" ,raul-devel)
          ("ganv" ,ganv-devel)
@@ -3596,7 +3723,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "2.3.2")
+    (version "3.0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3605,7 +3732,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ncv0xfmq87plqa43cm0fpidlwzz1nq5s7h7139llrbc36yp3pr1"))
+                "1inf6zdyh6yspjv1i7g6rw9wn90vki1s2qgilkp0j4aphayj4mic"))
               (modules '((guix build utils)))
               (snippet
                ;; Un-bundle OpenSSL and remove unused libraries.
@@ -3620,27 +3747,22 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
                               "thirdparty/openssl"
                               "thirdparty/portmidi"))
                   #t))))
-    (build-system gnu-build-system)
+    (build-system cmake-build-system)
     (arguments
-     `(#:make-flags
-       `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
-         "USE_SYSTEM_FREETYPE=ON"
-         "DOWNLOAD_SOUNDFONT=OFF"
-         ;; The following is not supported since Qt 5.11.  May be removed in
-         ;; a future release.
-         "BUILD_WEBKIT=OFF")
-       ;; There are tests, but no simple target to run.  The command
-       ;; used to run them is:
+     `(#:configure-flags
+       `("-DBUILD_CRASH_REPORTER=OFF"
+         "-DBUILD_WEBENGINE=OFF"
+         "-DDOWNLOAD_SOUNDFONT=OFF"
+         "-DUSE_SYSTEM_FREETYPE=ON")
+       ;; There are tests, but no simple target to run.  The command used to
+       ;; run them is:
        ;;
        ;;   make debug && sudo make installdebug && cd \
        ;;   build.debug/mtest && make && ctest
        ;;
        ;; Basically, it requires to start a whole new build process.
        ;; So we simply skip them.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+       #:tests? #f))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("freetype" ,freetype)
@@ -3659,8 +3781,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
        ("qtsvg" ,qtsvg)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)
+     `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (synopsis "Music composition and notation software")
     (description "MuseScore is a music score typesetter.  Its main purpose is
@@ -3770,7 +3891,7 @@ specification and header.")
 (define-public rosegarden
   (package
     (name "rosegarden")
-    (version "18.06")
+    (version "18.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3778,10 +3899,10 @@ specification and header.")
                     version "/rosegarden-" version ".tar.bz2"))
               (sha256
                (base32
-                "04qc80sqb2ji42pq3mayhvqqn39hlxzymsywpbpzfpchr19chxx7"))))
+                "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DUSE_QT5=1") ; "-DCMAKE_BUILD_TYPE=Release"
+     `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-tests
@@ -3928,9 +4049,9 @@ OSC connections.")
            (lambda* (#:key inputs #:allow-other-keys)
              (with-directory-excursion "faust"
                (delete-file "main.cpp")
-               (zero? (system* "faust" "-i"
-                               "-a" "lv2synth.cpp"
-                               "-o" "main.cpp" "main.dsp"))))))))
+               (invoke "faust" "-i"
+                       "-a" "lv2synth.cpp"
+                       "-o" "main.cpp" "main.dsp")))))))
     (inputs
      `(("boost" ,boost)
        ("lv2" ,lv2)
@@ -3944,36 +4065,6 @@ OSC connections.")
 the electronic or dubstep genre.")
     (license license:gpl3+)))
 
-(define-public libmygpo-qt
-  (package
-    (name "libmygpo-qt")
-    (version "1.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://stefan.derkits.at/files/"
-                                  "libmygpo-qt/libmygpo-qt." version ".tar.gz"))
-              (sha256
-               (base32
-                "1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))
-              (patches (search-patches "libmygpo-qt-fix-qt-5.11.patch"
-                                       "libmygpo-qt-missing-qt5-modules.patch"))))
-    (build-system cmake-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("qt" ,qtbase)))
-    (arguments
-     `(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
-       ;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
-       ;; is fixed.
-       #:tests? #f))
-    (home-page "http://wiki.gpodder.org/wiki/Libmygpo-qt")
-    (synopsis "Qt/C++ library wrapping the gpodder web service")
-    (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the
-@url{https://gpodder.net} APIs.  It allows applications to discover, manage
-and track podcasts.")
-    (license license:lgpl2.1+)))
-
 (define-public sonivox-eas
   (package
     (name "sonivox-eas")
@@ -4066,6 +4157,42 @@ it provides a submission URL for adding the disc ID to the database and gathers
 ISRCs and the MCN (=UPC/EAN) from disc.")
     (license license:lgpl2.1+)))
 
+(define-public python-discid
+  (package
+    (name "python-discid")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "discid" version))
+       (sha256
+        (base32
+         "1fgp67nhqlbvhhwrcxq5avil7alpzw4s4579hlyvxzbphdnbz8vq"))))
+    (build-system python-build-system)
+    (inputs
+     `(("libdiscid" ,libdiscid)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-libdiscid
+           ;; Set path of libdiscid
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((discid (assoc-ref inputs "libdiscid")))
+               (substitute* "discid/libdiscid.py"
+                 (("lib_name = (.*)$" all name)
+                  (string-append "lib_name = \"" discid
+                                 "/lib/libdiscid.so.0\"\n")))
+               #t))))))
+    (home-page "https://python-discid.readthedocs.io/")
+    (synopsis "Python bindings for Libdiscid")
+    (description
+     "This package provides Python bindings for the Libdiscid library.  The
+main purpose is the calculation of @url{https://musicbrainz.org/doc/Disc%20ID,
+Disc IDs} for use with the MusicBrainz database.  Additionally the disc
+@dfn{Media Catalog Number} (MCN) and track @dfn{International Standard
+Recording Code} (ISRC) can be extracted.}")
+    (license license:lgpl3+)))
+
 (define-public libmusicbrainz
   (package
     (name "libmusicbrainz")
@@ -4126,7 +4253,7 @@ compact disc (CDDA) identifiers.")
 (define-public perl-webservice-musicbrainz
   (package
     (name "perl-webservice-musicbrainz")
-    (version "1.0.4")
+    (version "1.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4134,7 +4261,7 @@ compact disc (CDDA) identifiers.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "182z3xjajk6s7k5xm3kssjy3hqx2qbnq4f8864hma098ryy2ph3a"))))
+                "16chs1l58cf000d5kalkyph3p31ci73p1rlyx98mfv10d2cq6fsj"))))
     (build-system perl-build-system)
     (arguments
      ;; Tests try to connect to http://musicbrainz.org.
@@ -4153,7 +4280,7 @@ at @code{musicbrainz.org}.")
 (define-public clyrics
   (package
     (name "clyrics")
-    (version "0.10")
+    (version "0.11")
     (source
      (origin
        (method git-fetch)
@@ -4163,10 +4290,10 @@ at @code{musicbrainz.org}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1qvj4dyipkkdccx5hci4z0q23i54ldk6hh7x5m35a7f70rrj6fbk"))))
+         "0vfjy555achgi5zwa34x4q7r692nc6bq4jx518a5w4m7k5fvm71j"))))
     (build-system trivial-build-system)
     (inputs
-     `(("bash" ,bash)                             ;for the wrapped program
+     `(("bash" ,bash)                   for the wrapped program
        ("perl" ,perl)
        ("perl-www-mechanize" ,perl-www-mechanize)
        ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
@@ -4196,9 +4323,9 @@ at @code{musicbrainz.org}.")
                          ,(delete
                            ""
                            (map (match-lambda
-                                  (((?  (cut string-prefix? "perl-" <>) name) . dir)
-                                   (string-append dir "/lib/perl5/site_perl"))
-                                  (_ ""))
+                                 (((?  (cut string-prefix? "perl-" <>) name) . dir)
+                                  (string-append dir "/lib/perl5/site_perl"))
+                                 (_ ""))
                                 %build-inputs))))
                      (copy-recursively "plugins" (string-append output "/clyrics"))
                      #t))))
@@ -4260,7 +4387,7 @@ console music players.")
                                             dir "/sbin"))
                            (list ffmpeg chromaprint))))
                  #t)))
-           (add-after 'install-source 'install-scripts
+           (add-after 'install 'install-scripts
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (root (string-append out "/src/gitlab.com/ambrevar/demlo"))