gnu: Fix typos in descriptions.
[jackhill/guix/guix.git] / gnu / packages / music.scm
index 59fd508..c434aa5 100644 (file)
@@ -1,13 +1,15 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 (define-public aria-maestosa
   (package
     (name "aria-maestosa")
-    (version "1.4.11")
+    (version "1.4.13")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/ariamaestosa/ariamaestosa/"
                                   version "/AriaSrc-" version ".tar.bz2"))
               (sha256
                (base32
-                "0gf9z96z83jiabxhpl856j15vl9flfgs6x1r0r6hc7g2xvwag0vy"))))
+                "1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f  ;no tests
@@ -234,14 +236,14 @@ many input formats and provides a customisable Vi-style user interface.")
 (define-public denemo
   (package
     (name "denemo")
-    (version "2.0.14")
+    (version "2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/denemo/denemo-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1a7g38695g7jjypx25qp0dx0asrh72xwdj0mdhmb9pfyzlppq0wh"))))
+                "0hggf8c4xcrjcxd5m00r788r7jg7g8ff54w2idfaqpj5j2ix3299"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -477,7 +479,7 @@ enable professional yet simple and intuitive pattern-based drum programming.")
        ("emacs" ,emacs-no-x)))
     ;; Extempore refuses to build on architectures other than x86_64
     (supported-systems '("x86_64-linux"))
-    (home-page "http://benswift.me/extempore-docs/index.html")
+    (home-page "http://digego.github.io/extempore/")
     (synopsis "Programming environment for live coding of multimedia")
     (description
      "Extempore is a programming language and runtime environment designed
@@ -583,7 +585,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
 (define-public lilypond
   (package
     (name "lilypond")
-    (version "2.19.51")
+    (version "2.19.58")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -592,7 +594,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
                     name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1b4jvc0fixbnp8x457fzk5wgb4zd03npwwivp60kc27fmv63w5l1"))))
+                "0wjapb3if6qqdmr57z20hidx7czhl023cjimr01i8yf7k41fakh7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; out-test/collated-files.html fails
@@ -668,8 +670,8 @@ Guile.")
 (define-public non-sequencer
   ;; The latest tagged release is three years old and uses a custom build
   ;; system, so we take the last commit.
-  (let ((commit "a22f33f486a5c6f75b60e36f66504c036c0f6f8c")
-        (revision "2"))
+  (let ((commit "10c31e57291b6e42be53371567a722b62b32d220")
+        (revision "3"))
     (package
       (name "non-sequencer")
       (version (string-append "1.9.5-" revision "." (string-take commit 7)))
@@ -680,7 +682,7 @@ Guile.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "09q5x8i4f8mqnl8w6xnsq5zriy4bzdl4x2vq9n34a433rfrk84bg"))
+                  "080rha4ffp7qycyg1mqcf4vj0s7z8qfvz6bxm0w29xgg2kkmb3fx"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system waf-build-system)
       (arguments
@@ -842,7 +844,7 @@ your own lessons.")
 (define-public powertabeditor
   (package
     (name "powertabeditor")
-    (version "2.0.0-alpha8")
+    (version "2.0.0-alpha9")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -851,27 +853,20 @@ your own lessons.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0gaa2x209v3azql8ak3r1n9a9qbxjx2ssirvwdxwklv2lmfqkm82"))
+                "1zjdz1qpkl83xr6dkap8airqcyjs3mxc5dzfyhrrvkyr7dics7ii"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; Remove bundled sources for external libraries
                   (delete-file-recursively "external")
+                  ;; Use only system libraries
                   (substitute* "CMakeLists.txt"
-                    (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")
-                    (("add_subdirectory\\(external\\)") ""))
-                  (substitute* "test/CMakeLists.txt"
-                    (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") ""))
-
-                  ;; Add install target
-                  (substitute* "source/CMakeLists.txt"
-                    (("qt5_use_modules")
-                     (string-append
-                      "install(TARGETS powertabeditor "
-                      "RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)\n"
-                      "install(FILES data/tunings.json DESTINATION "
-                      "${CMAKE_INSTALL_PREFIX}/share/powertabeditor/)\n"
-                      "qt5_use_modules")))
+                    (("include\\( PTE_ThirdParty \\)")
+                     "\
+include(third_party/Qt)
+include(third_party/boost)
+add_library( Catch INTERFACE IMPORTED )
+add_library( rapidjson INTERFACE IMPORTED )"))
                   #t))))
     (build-system cmake-build-system)
     (arguments
@@ -882,42 +877,47 @@ your own lessons.")
        ;; CMake appears to lose the RUNPATH for some reason, so it has to be
        ;; explicitly set with CMAKE_INSTALL_RPATH.
        (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
-             "-DCMAKE_ENABLE_PRECOMPILED_HEADERS=OFF" ; if ON pte_tests cannot be built
              (string-append "-DCMAKE_INSTALL_RPATH="
                             (string-join (map (match-lambda
                                                 ((name . directory)
                                                  (string-append directory "/lib")))
-                                              %build-inputs) ";")))
+                                              %build-inputs) ";"))
+             "-DPTE_DATA_DIR=share/powertabeditor")
        #:phases
        (modify-phases %standard-phases
-         (replace
-          'check
-          (lambda _
-            (zero? (system* "bin/pte_tests"
-                            ;; Exclude this failing test
-                            "~Formats/PowerTabOldImport/Directions"))))
-         (add-before
-          'configure 'fix-tests
-          (lambda _
-            ;; Tests cannot be built with precompiled headers
-            (substitute* "test/CMakeLists.txt"
-              (("cotire\\(pte_tests\\)") ""))
-            #t))
-         (add-before
-          'configure 'remove-third-party-libs
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; Link with required static libraries, because we're not
-            ;; using the bundled version of withershins.
-            (substitute* '("source/CMakeLists.txt"
-                           "test/CMakeLists.txt")
-              (("target_link_libraries\\((powertabeditor|pte_tests)" _ target)
-               (string-append "target_link_libraries(" target " "
-                              (assoc-ref inputs "binutils")
-                              "/lib/libbfd.a "
-                              (assoc-ref inputs "libiberty")
-                              "/lib/libiberty.a "
-                              "dl")))
-            #t)))))
+         (replace 'check
+           (lambda _
+             (zero? (system* "bin/pte_tests"
+                             ;; FIXME: one test fails.
+                             "exclude:Formats/PowerTabOldImport/Directions"))))
+         (add-after 'unpack 'set-target-directories
+           (lambda _
+             (substitute* "cmake/PTE_Executable.cmake"
+               (("set\\( install_dir.*")
+                "set( install_dir bin )\n"))
+             (substitute* "cmake/PTE_Paths.cmake"
+               (("set\\( PTE_DATA_DIR .*")
+                "set( PTE_DATA_DIR share/powertabeditor )\n"))
+             ;; Tests hardcode the data directory as "data"
+             (substitute* "test/CMakeLists.txt"
+               (("\\$\\{PTE_DATA_DIR\\}") "data"))
+             #t))
+         (add-before 'configure 'remove-third-party-libs
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Link with required static libraries, because we're not
+             ;; using the bundled version of withershins.
+             ;; Also add pthread for fixing a linker error.
+             (substitute* "source/build/CMakeLists.txt"
+               (("withershins" line)
+                (string-append line "\n"
+                               (assoc-ref inputs "binutils")
+                               "/lib/libbfd.a\n"
+                               (assoc-ref inputs "libiberty")
+                               "/lib/libiberty.a\n"
+                               "dl\n"
+                               "pthread\n"
+                               "z\n")))
+             #t)))))
     (inputs
      `(("boost" ,boost)
        ("alsa-lib" ,alsa-lib)
@@ -983,7 +983,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -991,7 +991,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "155pfyhr6d35ciw95pbxlqy7751cmij8j5d849rvblqbjzyzb5qx"))))
+                "0rzkr8mgy28j5kg56qqrdm05ml2wlm651yk27c2mn5ql7v92gdx3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; There are no tests.
@@ -1014,7 +1014,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -1022,7 +1022,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1n2kd468kn71yp2asmamprvblmdlvh0zd8lsh3598dwi4b7aa3ga"))))
+                "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; There are no tests.
@@ -1048,7 +1048,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -1056,7 +1056,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0j3hkmd9q0bw9b7nk9cssqywlrishkd1n790a9vq6gh3pdc5sf3r"))))
+                "15rp9d1jbb56idyrnn9cqi1i7a70z1a1qdyz7ryn0bla0ghjnich"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; There are no tests.
@@ -1082,7 +1082,7 @@ effects.")
 (define-public amsynth
   (package
     (name "amsynth")
-    (version "1.6.4")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
@@ -1091,7 +1091,7 @@ effects.")
                            "/amsynth-" version ".tar.bz2"))
        (sha256
         (base32
-         "07dp9dl38g9krjqxxh89l2z42z08yzrl57cx95b1l67xnxwjp5k3"))))
+         "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1105,11 +1105,13 @@ effects.")
      `(("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)
        ("lv2" ,lv2)
+       ("lash" ,lash)
        ("libsndfile" ,libsndfile)
        ("gtk+" ,gtk+-2)
        ("gtkmm" ,gtkmm-2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
     (home-page "http://amsynth.github.io")
     (synopsis "Analog modeling synthesizer")
     (description
@@ -1125,7 +1127,7 @@ reverb effects.")
 (define-public setbfree
   (package
     (name "setbfree")
-    (version "0.8.1")
+    (version "0.8.4")
     (source (origin
               (method url-fetch)
               (uri
@@ -1134,7 +1136,7 @@ reverb effects.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0hj0rqk5yd4fzs7bwy6a6nhqgrmcggkjcr4il76rxy92r7nwabf3"))))
+                "1g4s1920kb2q5gpp82l2vxia29qa8g8zvdjgrca8ypynvxpzn65f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -1239,6 +1241,13 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
                (substitute* "bristol/Makefile.in"
                  (("-msse -mfpmath=sse") "")))
              #t))
+         ;; alsa-lib 1.1.x no longer provides iatomic.h.  That's okay because
+         ;; bristol actually doesn't use it.
+         (add-after 'unpack 'do-not-use-alsa-iatomic
+           (lambda _
+             (substitute* "libbristolaudio/audioEngineJack.c"
+               (("#include <alsa/iatomic.h>") ""))
+             #t))
          ;; We know that Bristol has been linked with JACK and we don't have
          ;; ldd, so we can just skip this check.
          (add-after 'unpack 'do-not-grep-for-jack
@@ -1268,7 +1277,7 @@ is subjective.")
 (define-public tuxguitar
   (package
     (name "tuxguitar")
-    (version "1.3.2")
+    (version "1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1276,11 +1285,14 @@ is subjective.")
                     version "/tuxguitar-" version "-src.tar.gz"))
               (sha256
                (base32
-                "0ldml31zvywid1w28mfd65ramyiics55fdl0ch846vm7j7nwv58j"))
+                "041275vwfr82kass7wiq9g2y82w9qrbzfinzcvfij2f2q45njwmc"))
               (modules '((guix build utils)))
               (snippet
-               ;; Delete pre-built classes
-               '(delete-file-recursively "TuxGuitar-android/bin"))))
+               '(begin
+                  ;; Delete pre-built classes
+                  (delete-file-recursively "TuxGuitar-android-gdrive/bin")
+                  (delete-file-recursively "TuxGuitar-android-gdrive-gdaa/bin")
+                  #t))))
     (build-system ant-build-system)
     (arguments
      `(#:build-target "build"
@@ -1289,23 +1301,31 @@ is subjective.")
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
            (lambda _ (chdir "TuxGuitar-lib") #t))
-         (add-after 'build 'build-editor-utils
+         (add-after 'build 'build-libraries
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (chdir "..")
-             (let ((cwd (getcwd)))
-               (setenv "CLASSPATH"
-                       (string-append
-                        cwd "/TuxGuitar-lib/tuxguitar-lib.jar" ":"
-                        cwd "/TuxGuitar-editor-utils/build/jar/tuxguitar-editor-utils.jar" ":"
-                        (getenv "CLASSPATH"))))
-             (chdir "TuxGuitar-editor-utils")
-             ;; Generate default build.xml
-             ((@@ (guix build ant-build-system) default-build.xml)
-              "tuxguitar-editor-utils.jar"
-              (string-append (assoc-ref outputs "out")
-                             "/share/java"))
-             ((assoc-ref %standard-phases 'build))))
-         (add-after 'build-editor-utils 'build-application
+             (let* ((initial-classpath (getenv "CLASSPATH"))
+                    (build-dir (lambda (dir)
+                                 (chdir "..")
+                                 (setenv "CLASSPATH"
+                                         (string-join (cons initial-classpath
+                                                            (find-files (getcwd) "\\.jar$"))
+                                                      ":"))
+                                 (chdir dir)
+                                 (if (file-exists? "build.xml")
+                                     ((assoc-ref %standard-phases 'build)
+                                      #:build-target "build")
+                                     (begin
+                                       ;; Generate default build.xml
+                                       ((@@ (guix build ant-build-system) default-build.xml)
+                                        (string-append (string-downcase dir) ".jar")
+                                        (string-append (assoc-ref outputs "out")
+                                                       "/share/java"))
+                                       ((assoc-ref %standard-phases 'build)))))))
+               (map build-dir '("TuxGuitar-editor-utils"
+                                "TuxGuitar-ui-toolkit"
+                                "TuxGuitar-ui-toolkit-swt"
+                                "TuxGuitar-awt-graphics")))))
+         (add-after 'build-libraries 'build-application
            (lambda _
              (chdir "../TuxGuitar")
              ((assoc-ref %standard-phases 'build)
@@ -1322,10 +1342,10 @@ is subjective.")
                (for-each (lambda (file)
                            (install-file file lib))
                          (find-files ".." "\\.jar$"))
+
                ;; install all resources
-               (for-each (lambda (file)
-                           (install-file file share))
-                         (find-files "share" ".*"))
+               (copy-recursively "share" share)
+
                ;; create wrapper
                (call-with-output-file (string-append bin "/tuxguitar")
                  (lambda (port)
@@ -1346,7 +1366,7 @@ is subjective.")
                #t))))))
     (inputs
      `(("java-swt" ,java-swt)))
-    (home-page "http://tuxguitar.com.ar")
+    (home-page "http://tuxguitar.pw")
     (synopsis "Multitrack tablature editor and player")
     (description
      "TuxGuitar is a guitar tablature editor with player support through midi.
@@ -1360,33 +1380,29 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.45.4")
+    (version "0.47-1")
     (source (origin
               (method url-fetch)
               (uri
-               (string-append "mirror://sourceforge/pure-data/pure-data/"
-                              version "/pd-" (version-major+minor version)
-                              "-" (last (string-split version #\.))
-                              ".src.tar.gz"))
+               (string-append "http://msp.ucsd.edu/Software/pd-"
+                              version ".src.tar.gz"))
               (sha256
                (base32
-                "1ls2ap5yi2zxvmr247621g4jx0hhfds4j5704a050bn2n3l0va2p"))))
+                "0k5s949kqd7yw97h3m8z81bjz32bis9m4ih8df1z0ymipnafca67"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'fix-wish-path
-          (lambda _
-            (substitute* "src/s_inter.c"
-              (("  wish ") (string-append "  " (which "wish8.6") " ")))
-            (substitute* "tcl/pd-gui.tcl"
-              (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
-            #t))
-         (add-after
-          'unpack 'autoconf
-          (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+         (add-before 'configure 'fix-wish-path
+           (lambda _
+             (substitute* "src/s_inter.c"
+               (("  wish ") (string-append "  " (which "wish8.6") " ")))
+             (substitute* "tcl/pd-gui.tcl"
+               (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
+             #t))
+         (add-after 'unpack 'autoconf
+           (lambda _ (zero? (system* "bash" "./autogen.sh")))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1497,7 +1513,7 @@ using a system-independent interface.")
 (define-public frescobaldi
   (package
     (name "frescobaldi")
-    (version "2.19.0")
+    (version "3.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1505,17 +1521,17 @@ using a system-independent interface.")
                     version "/frescobaldi-" version ".tar.gz"))
               (sha256
                (base32
-                "1rnk8i8dlshzx16n2qxcsqcs7kywgyazzyzw2vy4vp2gsm9vs9ml"))))
+                "15cqhbjbjikr7ljgiq56bz2gxrr38j8p0f78p2vhyzydaviy9a2z"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; no tests included
     (inputs
      `(("lilypond" ,lilypond)
        ("portmidi" ,portmidi)
-       ("python-pyqt-4" ,python-pyqt-4)
+       ("python-pyqt" ,python-pyqt)
        ("python-ly" ,python-ly)
        ("python-pyportmidi" ,python-pyportmidi)
        ("poppler" ,poppler)
-       ("python-poppler-qt4" ,python-poppler-qt4)
+       ("python-poppler-qt5" ,python-poppler-qt5)
        ("python-sip" ,python-sip)))
     (home-page "http://www.frescobaldi.org/")
     (synopsis "LilyPond sheet music text editor")
@@ -1623,7 +1639,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.5.0")
+    (version "1.5.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/yoshimi/"
@@ -1631,7 +1647,7 @@ capabilities, custom envelopes, effects, etc.")
                                   "/yoshimi-" version ".tar.bz2"))
               (sha256
                (base32
-                "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5"))))
+                "1gjanmbn08x11iz4bjlkx3m66x0yk401ddkz8fqkj7y3p5ih1kna"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
@@ -1687,6 +1703,35 @@ synths, microtonal capabilities, custom envelopes, effects, etc.  Yoshimi
 improves on support for JACK features, such as JACK MIDI.")
     (license license:gpl2)))
 
+(define-public libgig
+  (package
+    (name "libgig")
+    (version "4.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.linuxsampler.org/packages/"
+                                  "libgig-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1wr8mwjmqpnyz6bx9757lspiii1zzn8zfbqsvn2ipzpgqkxv6kaz"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libuuid" ,util-linux)
+       ("libsndfile" ,libsndfile)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://linuxsampler.org/libgig/")
+    (synopsis "C++ library for working with Gigasampler (.gig) files")
+    (description
+     "Libgig is a C++ library for loading, modifying existing and creating new
+Gigasampler (.gig) files and DLS (Downloadable Sounds) Level 1/2 files, KORG
+sample based instruments (.KSF and .KMP files), SoundFont v2 (.sf2) files and
+AKAI sampler data.  The package includes a couple of command line tools based
+on the library.")
+    ;; The library and tools are released under the GPL, except the AKAI
+    ;; classes which are released under the LGPL.
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
 (define-public jack-keyboard
   (package
     (name "jack-keyboard")
@@ -1730,7 +1775,7 @@ allows you to send JACK MIDI events (i.e. play) using your PC keyboard.")
     ;; prevents us from using pulseaudio
     (inputs `(("ncurses" ,ncurses)
               ("alsa" ,alsa-lib)))
-    (home-page "http://www.gnu.org/software/cursynth")
+    (home-page "https://www.gnu.org/software/cursynth/")
     (synopsis "Polyphonic and MIDI subtractive music synthesizer using curses")
     (description "GNU cursynth is a polyphonic synthesizer that runs
 graphically in the terminal.  It is built on a full-featured subtractive
@@ -1741,14 +1786,14 @@ computer's keyboard.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "17v563liyqcvil204ry1qfp09d91944nqz2ig33f5c3pyg4z2427"))))
+                "1pvs9r5ykfaci900p0kz2xc5xsrswnwwbcl2chsvd98f1ns4vwds"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; no "check" target
     (inputs
@@ -1768,7 +1813,7 @@ computer's keyboard.")
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://qtractor.sourceforge.net/")
+    (home-page "http://qtractor.org/")
     (synopsis "Audio/MIDI multi-track sequencer")
     (description
      "Qtractor is an Audio/MIDI multi-track sequencer application.  It uses
@@ -1779,7 +1824,7 @@ follows a traditional multi-track tape recorder control paradigm.")
 (define-public ams-lv2
   (package
     (name "ams-lv2")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
@@ -1788,7 +1833,7 @@ follows a traditional multi-track tape recorder control paradigm.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1392spswkhfd38fggf584wb3m8aqpg7csfrs9zxnzyvhgmp0fgqk"))))
+         "1xacxyzqcj83g9c1gwfn36gg1c6yi15v7km4vidfidrjzb4x27fq"))))
     (build-system waf-build-system)
     (arguments
      `(#:phases
@@ -1857,8 +1902,8 @@ analogue-like user interface.")
 (define-public mod-host
   ;; The last release was in 2014 but since then more than 140 commits have
   ;; been made.
-  (let ((commit "72aca771e3a4e3889641b9bab84985586c9bb926")
-        (revision "1"))
+  (let ((commit "299a3977476e8eb0285837fbd7522cec506a11de")
+        (revision "2"))
     (package
       (name "mod-host")
       (version (string-append "0.10.6-" revision "." (string-take commit 9)))
@@ -1869,7 +1914,7 @@ analogue-like user interface.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "19szi8cy65jlchbrmbjbma03g6gxj9zyyp4dgw1k06r0cxbx82gq"))
+                  "128q7p5mph086v954rqnafalfbkyvhgwclaq6ks6swrhj45wnag6"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -1889,8 +1934,8 @@ analogue-like user interface.")
                #t)))))
       (inputs
        `(("lilv" ,lilv)
-         ("fftw" ,fftw-with-threads)
-         ("fftwf" ,fftwf-with-threads)
+         ("fftw" ,fftw)
+         ("fftwf" ,fftwf)
          ("lv2" ,lv2)
          ("jack" ,jack-1)
          ("readline" ,readline)))
@@ -1906,7 +1951,7 @@ socket or command line.")
 (define-public pianobar
   (package
     (name "pianobar")
-    (version "2015.11.22")
+    (version "2016.06.02")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/PromyLOPh/"
@@ -1914,7 +1959,7 @@ socket or command line.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv"))))
+                "1hi5rr6jcr0kwf4xfz007ndwkjkp287lhwlsgfz6iryqa5n6jzcp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no tests
@@ -1941,13 +1986,13 @@ event-based scripts for scrobbling, notifications, etc.")
 (define-public python-mutagen
   (package
     (name "python-mutagen")
-    (version "1.35.1")
+    (version "1.36")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "mutagen" version))
               (sha256
                (base32
-                "0klk68c1n3285vvm2xzk8ii7mlqp1dxii04askan0gi1wlpagka9"))))
+                "1kabb9b81hgvpd3wcznww549vss12b1xlvpnxg1r6n4c7gikgvnp"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -2035,6 +2080,8 @@ detailed track info including timbre, pitch, rhythm and loudness information.
                (base32
                 "0bml11gfkxqd3i2jxkn5k2xllc4rvxjcyhs8an05gcyy1zp2bwvb"))))
     (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; FIXME: Requires unpackaged python-flaky.
     (native-inputs
      `(("python-coverage" ,python-coverage)
        ("python-mock" ,python-mock)
@@ -2056,13 +2103,13 @@ websites such as Libre.fm.")
 (define-public beets
   (package
     (name "beets")
-    (version "1.4.2")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "beets" version))
               (sha256
                (base32
-                "0sna2hx8sdaa36jnvw5a7m31wzfm717lw2ixh906fsfp43i74k5m"))))
+                "0r743a2pv1iyw50jsdl01v2ml3pdkhdp920a5d1wsacak48vwgxr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2085,7 +2132,6 @@ websites such as Libre.fm.")
     ;; TODO: Install optional plugins and dependencies.
     (inputs
      `(("python-discogs-client" ,python-discogs-client)
-       ("python-enum34" ,python-enum34)
        ("python-jellyfish" ,python-jellyfish)
        ("python-munkres" ,python-munkres)
        ("python-musicbrainzngs" ,python-musicbrainzngs)
@@ -2103,21 +2149,29 @@ of tools for manipulating and accessing your music.")
 (define-public milkytracker
   (package
     (name "milkytracker")
-    (version "0.90.86")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://milkytracker.titandemo.org/files/"
-                                  name "-" version ".tar.bz2"))
+              (uri (string-append "https://github.com/milkytracker/"
+                                  "MilkyTracker/archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1v9vp8vi24lkagfpr92c128whvakwgrm9pq2zf6ijpl5sh7014zb"))))
-    (build-system gnu-build-system)
+                "1p1jd4h274jvcvl05l01v9bj19zhq4sjag92v1zawyi93ib85abz"))
+              (modules '((guix build utils)))
+              ;; Remove non-FSDG compliant sample songs.
+              (snippet
+               '(begin
+                  (delete-file-recursively "resources/music")
+                  (substitute* "CMakeLists.txt"
+                    (("add_subdirectory\\(resources/music\\)") ""))))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:make-flags '("CXXFLAGS=-lasound")))
+     '(#:tests? #f)) ; no check target
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)
-       ("sdl" ,sdl)
+       ("sdl" ,sdl2)
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2133,7 +2187,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
 (define-public schismtracker
   (package
     (name "schismtracker")
-    (version "20160521")
+    (version "20160913")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2142,12 +2196,12 @@ for improved Amiga ProTracker 2/3 compatibility.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0c6r24wm3rldm4j8cskl9xnixj3rwi3lnrhckw5gv43wpy6h4jcz"))
+                "1sc813qi4gl6mf7xp8rrarvyigzhxv3qdrryqsy42yxsb2jcwbrw"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove use of __DATE__ and __TIME__ for reproducibility.
                `(substitute* "schism/version.c"
-                  (("Schism Tracker build %s %s.*$")
+                  (("Schism Tracker built %s %s.*$")
                    (string-append "Schism Tracker version " ,version "\");"))))))
     (build-system gnu-build-system)
     (arguments
@@ -2179,7 +2233,7 @@ with a number of bugfixes and changes to improve IT playback.")
 (define-public moc
   (package
     (name "moc")
-    (version "2.5.1")
+    (version "2.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://ftp.daper.net/pub/soft/"
@@ -2187,7 +2241,13 @@ with a number of bugfixes and changes to improve IT playback.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1wn4za08z64bhsgfhr9c0crfyvy8c3b6a337wx7gz19am5srqh8v"))))
+                "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Remove use of __DATE__ and __TIME__ for reproducibility.
+               '(substitute* "main.c"
+                  (("printf \\(\"            Built : %s\", __DATE__\\);") "")
+                  (("printf \\(\" %s\", __TIME__\\);") "")))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -2201,6 +2261,8 @@ with a number of bugfixes and changes to improve IT playback.")
        ("libmodplug" ,libmodplug)
        ("libmpcdec" ,libmpcdec)
        ("libmad" ,libmad)
+       ("libogg" ,libogg)
+       ("libvorbis" ,libvorbis)
        ("ncurses" ,ncurses)
        ("openssl" ,openssl)
        ("sasl" ,cyrus-sasl)
@@ -2245,44 +2307,39 @@ standard MIDI file with the csvmidi program.")
     (license license:public-domain)))
 
 (define-public gx-guvnor-lv2
-  (let ((commit "9f528a7623a201383e119bb6a2df32b18396a9d5")
-        (revision "1"))
-    (package
-      (name "gx-guvnor-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxGuvnor.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "10zx84p2vd7i1yqc5ma9p17927265j4g0zfwv9rxladw0nm8y45k"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(;; The check target is used only to output a warning.
-         #:tests? #f
-         #:make-flags
-         (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'configure
-             (lambda _
-               (substitute* "Makefile"
-                 (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n")
-                 ;; Avoid rebuilding everything
-                 (("install : all") "install:"))
-               #t)))))
-      (inputs
-       `(("lv2" ,lv2)))
-      (home-page "https://github.com/brummer10/GxGuvnor.lv2")
-      (synopsis "Overdrive/distortion pedal simulation")
-      (description "This package provides the LV2 plugin \"GxGuvnor\", a
+  (package
+    (name "gx-guvnor-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/GxGuvnor.lv2/"
+                                  "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0rnfvrvs8qmmldyfmx4llyly33zp68448gx40ywdwj42x0mam92p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; The check target is used only to output a warning.
+       #:tests? #f
+       #:make-flags
+       (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* "Makefile"
+               (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n"))
+             #t)))))
+    (inputs
+     `(("lv2" ,lv2)))
+    (home-page "https://github.com/brummer10/GxGuvnor.lv2")
+    (synopsis "Overdrive/distortion pedal simulation")
+    (description "This package provides the LV2 plugin \"GxGuvnor\", a
 simulation of an overdrive or distortion pedal for guitars.")
-      ;; The LICENSE file says GPLv3 but the license headers in the files say
-      ;; GPLv2 or later.
-      (license license:gpl2+))))
+    ;; The LICENSE file says GPLv3 but the license headers in the files say
+    ;; GPLv2 or later.
+    (license license:gpl2+)))
 
 (define-public gx-vbass-preamp-lv2
   (let ((commit "0e599abab10c7669dd444e5d06f671c2fc1b9c6c")
@@ -2299,6 +2356,16 @@ simulation of an overdrive or distortion pedal for guitars.")
                  (base32
                   "1dzksdfrva666gpi62fd2ni9rhf18sl917f1894qr0b17pbdh9k1"))
                 (file-name (string-append name "-" version "-checkout"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (replace 'configure
+               (lambda _
+                 (substitute* "Makefile"
+                   (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n")
+                   (("install : all") "install :"))
+                 #t))))))
       (home-page "https://github.com/brummer10/GxVBassPreAmp.lv2")
       (synopsis "Simulation of the Vox Venue Bass 100 Pre Amp Section")
       (description "This package provides the LV2 plugin \"GxVBassPreAmp\", a
@@ -2308,7 +2375,7 @@ Section."))))
 (define-public gx-overdriver-lv2
   (let ((commit "ed71801987449414bf3adaa0dbfac68e8775f1ce")
         (revision "1"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-overdriver-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2328,7 +2395,7 @@ overdrive effect."))))
 (define-public gx-tone-mender-lv2
   (let ((commit "b6780b4a3e4782b3ed0e5882d6788f178aed138f")
         (revision "1"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-tone-mender-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2348,7 +2415,7 @@ clean boost effect with a 3-knob tonestack."))))
 (define-public gx-push-pull-lv2
   (let ((commit "7f76ae2068498643ac8671ee0930b13ee3fd8eb5")
         (revision "1"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-push-pull-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2366,30 +2433,28 @@ clean boost effect with a 3-knob tonestack."))))
 simulation of a push pull transistor fuzz effect with added high octave."))))
 
 (define-public gx-suppa-tone-bender-lv2
-  (let ((commit "4e6dc713ec24e7fcf5ea23b7e685af627c01b9c9")
-        (revision "1"))
-    (package (inherit gx-guvnor-lv2)
-      (name "gx-suppa-tone-bender-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxSuppaToneBender.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1i22xr252nkbazkwidll2zb3i96610gx65qn5djdkijlz7j77138"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (home-page "https://github.com/brummer10/GxSuppaToneBender.lv2")
-      (synopsis "Simulation of the Vox Suppa Tone Bender pedal")
-      (description "This package provides the LV2 plugin
+  (package (inherit gx-guvnor-lv2)
+    (name "gx-suppa-tone-bender-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/"
+                                  "GxSuppaToneBender.lv2/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1j90fns87035sfr6bxs4cvqxbyy3pqjhihx1nis8xajn202nl1hx"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (home-page "https://github.com/brummer10/GxSuppaToneBender.lv2")
+    (synopsis "Simulation of the Vox Suppa Tone Bender pedal")
+    (description "This package provides the LV2 plugin
 \"GxSuppaToneBender\", a simulation modelled after the Vox Suppa Tone Bender
-pedal."))))
+pedal.")))
 
 (define-public gx-saturator-lv2
   (let ((commit "0b581ac85c515325b9f16e51937cae6e1bf81a0a")
         (revision "2"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-saturator-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2407,93 +2472,85 @@ pedal."))))
 saturation effect."))))
 
 (define-public gx-hyperion-lv2
-  (let ((commit "6a096a664e553e551e179e85cf390bd1683410fb")
-        (revision "2"))
-    (package (inherit gx-guvnor-lv2)
-      (name "gx-hyperion-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxHyperion.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1ksv3wmylhwbf6kjl2lnhr14h9rfl291cfm21471gnb1r68yqfxh"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (home-page "https://github.com/brummer10/GxHyperion.lv2")
-      (synopsis "Simulation of the Hyperion Fuzz pedal")
-      (description "This package provides the LV2 plugin \"GxHyperion\", a
-simulation of the Hyperion Fuzz pedal."))))
+  (package (inherit gx-guvnor-lv2)
+    (name "gx-hyperion-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/"
+                                  "GxHyperion.lv2/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1pd7l33a14kq73wavgqq7csw4n3mwjz9d5rxaj0jgsyxd3llp3wh"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (home-page "https://github.com/brummer10/GxHyperion.lv2")
+    (synopsis "Simulation of the Hyperion Fuzz pedal")
+    (description "This package provides the LV2 plugin \"GxHyperion\", a
+simulation of the Hyperion Fuzz pedal.")))
 
 (define-public gx-voodoo-fuzz-lv2
-  (let ((commit "aec7889b489385e8add06126e7a36ae2e26254b1")
-        (revision "2"))
-    (package (inherit gx-guvnor-lv2)
-      (name "gx-voodoo-fuzz-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxVoodoFuzz.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0mc41ldlv89069iaysnfiqxy5h5sr8mdi5cxm3ij5q5v4jv3viwx"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (home-page "https://github.com/brummer10/GxVoodoFuzz.lv2")
-      (synopsis "Fuzz effect modelled after the Voodoo Lab SuperFuzz")
-      (description "This package provides the LV2 plugin \"GxVoodooFuzz\", a
+  (package (inherit gx-guvnor-lv2)
+    (name "gx-voodoo-fuzz-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/"
+                                  "GxVoodoFuzz.lv2/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0cc8sg7q493bs6pcq4ipqp6czpxv04nh9yvn8kq2x65ni2208n2f"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (home-page "https://github.com/brummer10/GxVoodoFuzz.lv2")
+    (synopsis "Fuzz effect modelled after the Voodoo Lab SuperFuzz")
+    (description "This package provides the LV2 plugin \"GxVoodooFuzz\", a
 simulation modelled after the Voodoo Lab SuperFuzz pedal.  It's basically a
 Bosstone circuit, followed by the tone control of the FoxToneMachine in
-parallel with a DarkBooster, followed by a volume control."))))
+parallel with a DarkBooster, followed by a volume control.")))
 
 (define-public gx-super-fuzz-lv2
-  (let ((commit "f40389575812c909007d140d327ce579930b71f7")
-        (revision "2"))
-    (package (inherit gx-guvnor-lv2)
-      (name "gx-super-fuzz-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxSuperFuzz.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "174bibj8qzm8zr6f5h8bcj94iry17zravk8flpdy84n6yg7cixji"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (home-page "https://github.com/brummer10/GxSuperFuzz.lv2")
-      (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
-      (description "This package provides the LV2 plugin \"GxVoodooFuzz\", an
+  (package (inherit gx-guvnor-lv2)
+    (name "gx-super-fuzz-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/"
+                                  "GxSuperFuzz.lv2/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0pnivq05f1kji8c5jxsqdzhdfk3xn422v2d1x20x3jfsxnaf115x"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (home-page "https://github.com/brummer10/GxSuperFuzz.lv2")
+    (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
+    (description "This package provides the LV2 plugin \"GxSuperFuzz\", an
 analog simulation of the UniVox SuperFuzz pedal.  In this simulation the trim
-pot, which is usualy in the housing, is exposed as a control parameter.  It
-adjusts the amount of harmonics."))))
+pot, which is usually in the housing, is exposed as a control parameter.  It
+adjusts the amount of harmonics.")))
 
 (define-public gx-vintage-fuzz-master-lv2
-  (let ((commit "0fec0bc1e8a8ba909a68e916e036138a3425d7db")
-        (revision "2"))
-    (package (inherit gx-guvnor-lv2)
-      (name "gx-vintage-fuzz-master-lv2")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "06szi6d2iwkygbw5azhwzhcl2as4lmk2gs9hanngsf46a1zbdcp7"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (home-page "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
-      (synopsis "Fuzz effect simulation of the vintage Fuzz Master")
-      (description "This package provides the LV2 plugin
-\"GxVintageFuzzMaster\", a simulation of the vintage Fuzz Master pedal."))))
+  (package (inherit gx-guvnor-lv2)
+    (name "gx-vintage-fuzz-master-lv2")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/"
+                                  "GxVintageFuzzMaster.lv2/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0bdkfj6xi2g4izfw3pmr4i0nqzg8jnkdwc23x9ifxwc6p1kbayzk"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (home-page "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
+    (synopsis "Fuzz effect simulation of the vintage Fuzz Master")
+    (description "This package provides the LV2 plugin
+\"GxVintageFuzzMaster\", a simulation of the vintage Fuzz Master pedal.")))
 
 (define-public gx-slow-gear-lv2
   (let ((commit "cb852e0426f4e6fe077e7f1ede73a4da335cfc5e")
         (revision "2"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-slow-gear-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2513,7 +2570,7 @@ slow gear audio effect to produce volume swells."))))
 (define-public gx-switchless-wah-lv2
   (let ((commit "7b08691203314612999f0ce2328cdc1161cd6665")
         (revision "2"))
-    (package (inherit gx-guvnor-lv2)
+    (package (inherit gx-vbass-preamp-lv2)
       (name "gx-switchless-wah-lv2")
       (version (string-append "0-" revision "." (string-take commit 9)))
       (source (origin
@@ -2738,3 +2795,103 @@ collections and wantlists, inventory, and orders.")
 
 (define-public python2-discogs-client
   (package-with-python2 python-discogs-client))
+
+(define-public libsmf
+  (package
+    (name "libsmf")
+    (version "1.3")
+    (source
+     (origin
+       (method url-fetch)
+       ;; SF download page says development moved, but the link it points to
+       ;; is gone (https://github.com/nilsgey/libsmf).  Someone else adopted
+       ;; it but made no release so far (https://github.com/stump/libsmf).
+       (uri (string-append "mirror://sourceforge/libsmf/libsmf/"
+                           version "/libsmf-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16c0n40h0r56gzbh5ypxa4dwp296dan3jminml2qkb4lvqarym6k"))))
+    (build-system gnu-build-system)
+    (outputs '("out"
+               "static")) ; 88KiB of .a files
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-static-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Move static libraries to the "static" output.
+             (let* ((out    (assoc-ref outputs "out"))
+                    (lib    (string-append out "/lib"))
+                    (static (assoc-ref outputs "static"))
+                    (slib   (string-append static "/lib")))
+               (mkdir-p slib)
+               (for-each (lambda (file)
+                           (install-file file slib)
+                           (delete-file file))
+                         (find-files lib "\\.a$"))
+               #t))))))
+    (inputs
+     `(("readline" ,readline)
+       ("glib" ,glib)))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://libsmf.sourceforge.net/")
+    (synopsis "Standard MIDI File format library")
+    (description
+     "LibSMF is a C library for handling SMF (\"*.mid\") files.  It transparently handles
+conversions between time and pulses, tempo map handling and more.  The only dependencies
+are a C compiler and glib.  Full API documentation and examples are included.")
+    (license license:bsd-2)))
+
+(define-public lmms
+  (package
+    (name "lmms")
+    (version "1.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/LMMS/lmms/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1g76z7ha3hd53vbqaq9n1qg6s3lw8zzaw51iny6y2bz0j1xqwcsr"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+          'configure 'set-ldflags
+          (lambda* (#:key outputs #:allow-other-keys)
+            (setenv "LDFLAGS"
+                    (string-append
+                     "-Wl,-rpath=\""
+                     (assoc-ref outputs "out") "/lib/lmms"
+                     ":"
+                     (assoc-ref outputs "out") "/lib/lmms/ladspa"
+                     "\"")))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("sdl" ,sdl)
+       ("qt" ,qt-4)
+       ("fltk" ,fltk)
+       ("libogg" ,libogg)
+       ("libsamplerate" ,libsamplerate)
+       ("fluidsynth" ,fluidsynth)
+       ("libvorbis" ,libvorbis)
+       ("alsa-lib" ,alsa-lib)
+       ("portaudio" ,portaudio)
+       ("ladspa" ,ladspa)
+       ("libsndfile1" ,libsndfile)
+       ("libxft" ,libxft)
+       ("freetype2" ,freetype)
+       ("fftw3f" ,fftwf)))
+    (home-page "https://lmms.io/")
+    (synopsis "Music composition tool")
+    (description "LMMS is a digital audio workstation.  It includes tools for sequencing
+melodies and beats and for mixing and arranging songs.  LMMS includes instruments based on
+audio samples and various soft sythesizers.  It can receive input from a MIDI keyboard.")
+    (license license:gpl2+)))