gnu: shntool: Fix license.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
index af7533b..10f16dd 100644 (file)
@@ -1,6 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +24,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system waf)
@@ -29,6 +33,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fltk)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages python)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages zip)
   #:use-module (srfi srfi-1))
 
 (define-public alsa-modular-synth
   (package
     (name "alsa-modular-synth")
-    (version "2.1.1")
+    (version "2.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/alsamodular/ams-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1nb7qzzqlqa2x8h797jbwi18ihnfkxqg9lyi0c4nvf8ybwzxkzd2"))))
+                "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -120,7 +131,7 @@ Filter) modules follow the convention of 1V / Octave.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://aubio.org/")
-    (synopsis "A library for audio labelling")
+    (synopsis "Library for audio labelling")
     (description
      "aubio is a tool designed for the extraction of annotations from audio
 signals.  Its features include segmenting a sound file before each of its
@@ -128,51 +139,52 @@ attacks, performing pitch detection, tapping the beat and producing MIDI
 streams from live audio.")
     (license license:gpl3+)))
 
+(define (ardour-rpath-phase major-version)
+  `(lambda* (#:key outputs #:allow-other-keys)
+     (let ((libdir (string-append (assoc-ref outputs "out")
+                                  "/lib/ardour" ,major-version)))
+       (substitute* "wscript"
+         (("linker_flags = \\[\\]")
+          (string-append "linker_flags = [\""
+                         "-Wl,-rpath="
+                         libdir ":"
+                         libdir "/backends" ":"
+                         libdir "/engines" ":"
+                         libdir "/panners" ":"
+                         libdir "/surfaces" ":"
+                         libdir "/vamp" "\"]"))))
+     #t))
+
 (define-public ardour
   (package
     (name "ardour")
-    (version "3.5.403")
+    (version "4.4")
     (source (origin
-              ;; The project only provides tarballs upon individual request
-              ;; (or after payment) so we take the code from git.
               (method git-fetch)
               (uri (git-reference
                     (url "git://git.ardour.org/ardour/ardour.git")
                     (commit version)))
               (snippet
+               ;; Ardour expects this file to exist at build time.  It can be
+               ;; created from a git checkout with:
+               ;;   ./waf create_stored_revision
                '(call-with-output-file
                     "libs/ardour/revision.cc"
                   (lambda (port)
                     (format port "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
+namespace ARDOUR { const char* revision = \"4.4-210-ga4daf93\" ; }"))))
               (sha256
                (base32
-                "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
+                "1gnrcnq2ksnh7fsa301v1c4p5dqrbqpjylf02rg3za3ab58wxi7l"))
               (file-name (string-append name "-" version))))
     (build-system waf-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("--cxx11") ; required by gtkmm
+       #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'set-rpath-in-LDFLAGS
-          (lambda _
-            (substitute* "wscript"
-              (("linker_flags = \\[\\]")
-               (string-append "linker_flags = [\""
-                              "-Wl,-rpath="
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/backends" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/engines" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/panners" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/surfaces" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/vamp" "\"]")))
-            #t)))
+          ,(ardour-rpath-phase (version-prefix version 1))))
        #:tests? #f ; no check target
        #:python ,python-2))
     (inputs
@@ -205,8 +217,6 @@ namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
        ("sratom" ,sratom)
        ("suil" ,suil)
        ("lilv" ,lilv)
-       ("rasqal" ,rasqal)
-       ("raptor2" ,raptor2)
        ("redland" ,redland)
        ("rubberband" ,rubberband)
        ("taglib" ,taglib)
@@ -264,9 +274,8 @@ plugins are provided.")
     (version "0.0.60")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/calf/calf/"
-                    version "/calf-" version ".tar.gz"))
+              (uri (string-append "http://calf-studio-gear.org/files/calf-"
+                                  version ".tar.gz"))
               (sha256
                (base32
                 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
@@ -303,7 +312,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
 (define-public csound
   (package
     (name "csound")
-    (version "6.04")
+    (version "6.05")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -311,8 +320,15 @@ tools (analyzer, mono/stereo tools, crossovers).")
                     version "/Csound" version ".tar.gz"))
               (sha256
                (base32
-                "1030w38lxdwjz1irr32m9cl0paqmgr02lab2m7f7j1yihwxj1w0g"))))
+                "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
+              (patches (list (search-patch "csound-header-ordering.patch")))))
     (build-system cmake-build-system)
+    (arguments
+     ;; Work around this error on x86_64 with libc 2.22+:
+     ;;    libmvec.so.1: error adding symbols: DSO missing from command line
+     (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
+         '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
+         '()))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("boost" ,boost)
@@ -413,7 +429,7 @@ ALSA PCM devices.")
     (description
      "FluidSynth is a real-time software synthesizer based on the SoundFont 2
 specifications.  FluidSynth reads and handles MIDI events from the MIDI input
-device.  It is the software analogue of a MIDI synthesizer. FluidSynth can
+device.  It is the software analogue of a MIDI synthesizer.  FluidSynth can
 also play midifiles using a Soundfont.")
     (license license:gpl2+)))
 
@@ -449,6 +465,36 @@ also play midifiles using a Soundfont.")
 PS, and DAB+.")
     (license license:gpl2)))
 
+(define-public faust
+  (package
+    (name "faust")
+    (version "0.9.67")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/faudiostream/faust-" version ".zip"))
+              (sha256
+               (base32
+                "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
+              (snippet
+               ;; Remove prebuilt library
+               '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; no "configure" script
+         (delete 'configure))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "http://faust.grame.fr/")
+    (synopsis "Signal processing language")
+    (description
+     "Faust is a programming language for realtime audio signal processing.")
+    (license license:gpl2+)))
+
 (define-public freepats
   (package
     (name "freepats")
@@ -488,6 +534,154 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
     ;; GPLv2+ with exception for compositions using these patches.
     (license license:gpl2+)))
 
+(define-public guitarix
+  (package
+    (name "guitarix")
+    (version "0.34.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://sourceforge/guitarix/guitarix2-"
+                   version ".tar.bz2"))
+             (sha256
+              (base32
+               "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:tests? #f ; no "check" target
+       #:python ,python-2
+       #:configure-flags
+       (list
+        ;; Add the output lib directory to the RUNPATH.
+        (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
+        "--cxxflags=-std=c++11")))
+    (inputs
+     `(("libsndfile" ,libsndfile)
+       ("boost" ,boost)
+       ("avahi" ,avahi)
+       ("eigen" ,eigen)
+       ("lv2" ,lv2)
+       ("lilv" ,lilv)
+       ("ladspa" ,ladspa)
+       ("jack" ,jack-1)
+       ("gtkmm" ,gtkmm-2)
+       ("gtk+" ,gtk+-2)
+       ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2)
+       ("fftwf" ,fftwf)
+       ("lrdf" ,lrdf)
+       ("zita-resampler" ,zita-resampler)
+       ("zita-convolver" ,zita-convolver)))
+    (native-inputs
+     `(("gperf" ,gperf)
+       ("faust" ,faust)
+       ("intltool" ,intltool)
+       ("gettext" ,gnu-gettext)
+       ("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LV2_PATH")
+            (files '("lib/lv2")))))
+    (home-page "http://guitarix.org/")
+    (synopsis "Virtual guitar amplifier")
+    (description "Guitarix is a virtual guitar amplifier running JACK.
+Guitarix takes the signal from your guitar as a mono-signal from your sound
+card.  The input is processed by a main amp and a rack-section.  Both can be
+routed separately and deliver a processed stereo-signal via JACK.  You may
+fill the rack with effects from more than 25 built-in modules including stuff
+from a simple noise gate to modulation effects like flanger, phaser or
+auto-wah.")
+    (license license:gpl2+)))
+
+(define-public rakarrack
+  (package
+    (name "rakarrack")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
+                                  "rakarrack-" version "/rakarrack-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* '("src/process.C"
+                                 "src/global.h")
+                    (("#include <Fl/") "#include <FL/"))
+                  #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("alsa-utils" ,alsa-utils)
+       ("fltk" ,fltk)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxft" ,libxft)
+       ("libxrender" ,libxrender)
+       ("libxpm" ,libxpm)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("jack" ,jack-1)
+       ("alsa-lib" ,alsa-lib)
+       ("libsndfile" ,libsndfile)
+       ("libsamplerate" ,libsamplerate)
+       ("zlib" ,zlib)))
+    (home-page "http://rakarrack.sourceforge.net/")
+    (synopsis "Audio effects processor")
+    (description
+     "Rakarrack is a richly featured multi-effects processor emulating a
+guitar effects pedalboard.  Effects include compressor, expander, noise gate,
+equalizers, exciter, flangers, chorus, various delay and reverb effects,
+distortion modules and many more.  Most of the effects engine is built from
+modules found in the excellent software synthesizer ZynAddSubFX.  Presets and
+user interface are optimized for guitar, but Rakarrack processes signals in
+stereo while it does not apply internal band-limiting filtering, and thus is
+well suited to all musical instruments and vocals.")
+    ;; The code is explicitly licensed under the GPL version 2 only.
+    (license license:gpl2)))
+
+(define-public ir
+  (package
+    (name "ir")
+    (version "1.3.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://factorial.hu/system/files/ir.lv2-"
+                   version ".tar.gz"))
+             (sha256
+              (base32
+               "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;no "check" target
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       ;; no configure script
+       (alist-delete 'configure %standard-phases)))
+    (inputs
+     `(("libsndfile" ,libsndfile)
+       ("libsamplerate" ,libsamplerate)
+       ("lv2" ,lv2)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+-2)
+       ("zita-convolver" ,zita-convolver)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LV2_PATH")
+            (files '("lib/lv2")))))
+    (home-page "http://factorial.hu/plugins/lv2/ir")
+    (synopsis "LV2 convolution reverb")
+    (description
+     "IR is a low-latency, real-time, high performance signal convolver
+especially for creating reverb effects.  It supports impulse responses with 1,
+2 or 4 channels, in any soundfile format supported by libsndfile.")
+    (license license:gpl2+)))
+
 (define-public jack-1
   (package
     (name "jack")
@@ -504,11 +698,12 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("bdb" ,bdb)
        ("readline" ,readline)))
     ;; uuid.h is included in the JACK type headers
+    ;; db.h is included in the libjack metadata headers
     (propagated-inputs
-     `(("libuuid" ,util-linux)))
+     `(("libuuid" ,util-linux)
+       ("bdb" ,bdb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://jackaudio.org/")
@@ -524,6 +719,9 @@ synchronous execution of all clients, and low latency operation.")
     ;; licensed under the LGPL in order to allow for proprietary usage.
     (license (list license:gpl2+ license:lgpl2.1+))))
 
+;; Packages depending on JACK should always prefer jack-1.  Both jack-1 and
+;; jack-2 implement the same API.  JACK2 is provided primarily as a client
+;; program for users who might benefit from the D-BUS features.
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
@@ -540,7 +738,8 @@ synchronous execution of all clients, and low latency operation.")
                "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f  ; no check target
+     `(#:python ,python-2
+       #:tests? #f  ; no check target
        #:configure-flags '("--dbus"
                            "--alsa")
        #:phases
@@ -553,13 +752,22 @@ synchronous execution of all clients, and low latency operation.")
               ((".*CFLAGS.*-Wall.*" m)
                (string-append m
                               "    conf.env.append_unique('LINKFLAGS',"
-                              "'-Wl,-rpath=" %output "/lib')\n"))))))))
+                              "'-Wl,-rpath=" %output "/lib')\n")))))
+         (add-after 'install 'wrap-python-scripts
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
+            (let* ((out (assoc-ref outputs "out"))
+                   (path (getenv "PYTHONPATH")))
+              (wrap-program (string-append out "/bin/jack_control")
+                `("PYTHONPATH" ":" prefix (,path))))
+            #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
        ("expat" ,expat)
        ("libsamplerate" ,libsamplerate)
        ("opus" ,opus)
+       ("python2-dbus" ,python2-dbus)
        ("readline" ,readline)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -578,7 +786,16 @@ synchronous execution of all clients, and low latency operation.")
                (base32
                 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
     (build-system waf-build-system)
-    (arguments `(#:tests? #f)) ; no check target
+    (arguments
+     `(#:tests? #f ; no check target
+       #: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
      `(("lv2" ,lv2)
        ("lilv" ,lilv)
@@ -601,15 +818,20 @@ plugin function as a JACK application.")
   (package
     (name "ladspa")
     (version "1.13")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://www.ladspa.org/download/ladspa_sdk_"
-                   version
-                   ".tgz"))
-             (sha256
-              (base32
-               "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
+    (source
+     (origin
+       (method url-fetch)
+       ;; Since the official link is dead,
+       ;; we download the tarball from Debian or Internet Archive.
+       (uri (list (string-append "http://http.debian.net"
+                                 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
+                                 version ".orig.tar.gz")
+                  (string-append "https://web.archive.org/web/20140717172251/"
+                                 "http://www.ladspa.org/download/ladspa_sdk_"
+                                 version ".tgz")))
+       (sha256
+        (base32
+         "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f  ; the "test" target is a listening test only
@@ -627,7 +849,9 @@ plugin function as a JACK application.")
               (("^CC.*")            "CC = gcc\n")
               (("^CPP.*")           "CPP = g++\n"))))
         (alist-delete 'build %standard-phases))))
-    (home-page "http://ladspa.org")
+    ;; Since the home page is gone, we provide a link to the archived version.
+    (home-page
+     "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
     (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
     (description
      "LADSPA is a standard that allows software audio processors and effects
@@ -765,7 +989,7 @@ significantly faster and have minimal dependencies.")
 (define-public lv2
   (package
     (name "lv2")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://lv2plug.in/spec/lv2-"
@@ -773,11 +997,11 @@ significantly faster and have minimal dependencies.")
                                  ".tar.bz2"))
              (sha256
               (base32
-               "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"))))
+               "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
-       #:configure-flags '("--lv2-system")))
+       #:configure-flags '("--no-plugins")))
     (inputs
      ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
      `(("libsndfile" ,libsndfile)))
@@ -858,7 +1082,16 @@ software.")
        #:configure-flags
        (list (string-append "--boost-includes="
                             (assoc-ref %build-inputs "boost")
-                            "/include"))))
+                            "/include"))
+       #:phases (modify-phases %standard-phases
+                  (add-before
+                   'configure 'set-flags
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     ;; See e.g. https://github.com/lvtk/lvtk/issues/21
+                     (setenv "LDFLAGS"
+                             (string-append
+                              "-L" (assoc-ref inputs "boost") "/lib "
+                              "-lboost_system")))))))
     (inputs
      `(("boost" ,boost)
        ("lv2" ,lv2)))
@@ -886,7 +1119,25 @@ lv2-c++-tools.")
                 "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f)) ; no check target
+     `(#:tests? #f  ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after
+          'unpack 'use-full-library-paths
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "Alc/backends/pulseaudio.c"
+              (("#define PALIB \"libpulse\\.so\\.0\"")
+               (string-append "#define PALIB \""
+                              (assoc-ref inputs "pulseaudio")
+                              "/lib/libpulse.so.0"
+                              "\"")))
+            (substitute* "Alc/backends/alsa.c"
+              (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
+               (string-append "LoadLib(\""
+                              (assoc-ref inputs "alsa-lib")
+                              "/lib/libasound.so.2"
+                              "\")")))
+            #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("pulseaudio" ,pulseaudio)))
@@ -920,10 +1171,8 @@ buffers, and audio capture.")
        ("boost" ,boost)
        ("jack" ,jack-1)
        ("ganv" ,ganv)
-       ("glib" ,glib)
        ("glibmm" ,glibmm)
        ("gtkmm" ,gtkmm-2)
-       ("dbus" ,dbus)
        ("dbus-glib" ,dbus-glib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -934,6 +1183,33 @@ buffers, and audio capture.")
 and ALSA.")
     (license license:gpl3+)))
 
+(define-public raul
+  (package
+    (name "raul")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.drobilla.net/raul-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f)) ; no check target
+    (inputs
+     `(("glib" ,glib)
+       ("boost" ,boost)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://drobilla.net/software/raul/")
+    (synopsis "Real-time audio utility library")
+    (description
+     "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
+aimed at audio/musical applications.")
+    (license license:gpl2+)))
+
 (define-public rubberband
   (package
     (name "rubberband")
@@ -962,6 +1238,57 @@ and ALSA.")
 tempo and pitch of an audio recording independently of one another.")
     (license license:gpl2+)))
 
+(define-public rtmidi
+  (package
+    (name "rtmidi")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://github.com/powertab/rtmidi/archive/"
+                              version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;no "check" target
+       #:phases (modify-phases %standard-phases
+                  (add-before
+                   'configure 'autoconf
+                   (lambda _ (zero? (system* "autoreconf" "-vfi"))))
+                  (add-before
+                   'build 'fix-makefile
+                   (lambda _
+                     (substitute* "Makefile"
+                       (("/bin/ln") "ln")
+                       (("RtMidi.h RtError.h") "RtMidi.h"))
+                     #t))
+                  (add-before
+                   'install 'make-target-dirs
+                   (lambda _
+                     (let ((out (assoc-ref %outputs "out")))
+                       (mkdir-p (string-append out "/bin"))
+                       (mkdir (string-append out "/lib"))
+                       (mkdir (string-append out "/include")))
+                     #t)))))
+    (inputs
+     `(("jack" ,jack-1)
+       ("alsa-lib" ,alsa-lib)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/powertab/rtmidi")
+    (synopsis "Cross-platform MIDI library for C++")
+    (description
+     "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
+classes) that provide a common cross-platform API for realtime MIDI
+input/output.")
+    (license license:expat)))
+
 (define-public sratom
   (package
     (name "sratom")
@@ -1081,17 +1408,16 @@ disks as various audio file formats.")
 (define-public vamp
   (package
     (name "vamp")
-    (version "2.5")
+    (version "2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://code.soundsoftware.ac.uk"
-                    "/attachments/download/690/vamp-plugin-sdk-"
-                    version
-                    ".tar.gz"))
+                    "/attachments/download/1520/vamp-plugin-sdk-"
+                    version ".tar.gz"))
               (sha256
                (base32
-                "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
+                "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -1134,17 +1460,23 @@ analysis plugins or audio feature extraction plugins.")
     (build-system gnu-build-system)
     (native-inputs `(("automake" ,automake)))
     (arguments
-     `(#:phases
-       (alist-cons-after
-        'unpack 'fix-ar-lib-path
-        (lambda* (#:key inputs #:allow-other-keys)
-          ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
-          (delete-file "ar-lib")
-          (symlink
-           (string-append (assoc-ref inputs "automake") "/share/automake-"
-                          ,(package-version automake) "/ar-lib")
-           "ar-lib"))
-        %standard-phases)))
+     `(#:configure-flags
+       ;; Disable the use of SSE unless on x86_64.
+       ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
+                                              (%current-system))))
+            ''("--disable-sse")
+            ''())
+       #:phases
+       (modify-phases %standard-phases
+         (add-after
+          'unpack 'fix-ar-lib-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
+            (delete-file "ar-lib")
+            (symlink
+             (string-append (assoc-ref inputs "automake") "/share/automake-"
+                            ,(package-version automake) "/ar-lib")
+             "ar-lib"))))))
     (home-page "http://sbsms.sourceforge.net/")
     (synopsis "Library for time stretching and pitch scaling of audio")
     (description
@@ -1203,14 +1535,14 @@ surround and reverb.")
 (define-public libxmp
   (package
     (name "libxmp")
-    (version "4.3.8")
+    (version "4.3.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/xmp/libxmp/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0h06091hlpgc6ds4pjmfq8sx4snw7av3nhny180q4pwfyasjb6ny"))))
+                "1gm5xa0ca7ypcbj3bkmj3k1vvzl7nkch8gjyrm8p1a9vgzr0n761"))))
     (build-system gnu-build-system)
     (home-page "http://xmp.sourceforge.net/")
     (synopsis "Module player library")
@@ -1280,6 +1612,47 @@ application developers writing sound processing tools that require tempo/pitch
 control functionality, or just for playing around with the sound effects.")
     (license license:lgpl2.1+)))
 
+(define-public sox
+  (package
+    (name "sox")
+    (version "14.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/sox/sox-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       ;; The upstream asks to identify the distribution to diagnose SoX
+       ;; bug reports.
+       '("--with-distro=Guix System Distribution")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("ao" ,ao)
+       ("flac" ,flac)
+       ("lame" ,lame)
+       ("libid3tag" ,libid3tag)
+       ("libltdl" ,libltdl)
+       ("libmad" ,libmad)
+       ("libpng" ,libpng)
+       ("libvorbis" ,libvorbis)
+       ("pulseaudio" ,pulseaudio)))
+    (home-page "http://sox.sourceforge.net")
+    (synopsis "Sound processing utility")
+    (description
+     "SoX (Sound eXchange) is a command line utility that can convert
+various formats of computer audio files to other formats.  It can also
+apply various effects to these sound files, and, as an added bonus, SoX
+can play and record audio files.")
+    ;; sox.c is distributed under GPL, while the files that make up
+    ;; libsox are licensed under LGPL.
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
 (define-public soxr
   (package
     (name "soxr")
@@ -1344,7 +1717,7 @@ portions of LAME.")
     (inputs
      ;; TODO: Add ASIHPI.
      `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-2)))
+       ("jack" ,jack-1)))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1368,6 +1741,30 @@ to record and/or play sound using a callback function or a blocking read/write
 interface.")
     (license license:expat)))
 
+(define-public qsynth
+  (package
+    (name "qsynth")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
+       (sha256
+        (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f)) ; no "check" phase
+    (inputs
+     `(("qt" ,qt)
+       ("fluidsynth" ,fluidsynth)))
+    (home-page "http://qsynth.sourceforge.net")
+    (synopsis "Graphical user interface for FluidSynth")
+    (description
+     "Qsynth is a GUI front-end application for the FluidSynth SoundFont
+synthesizer written in C++.")
+    (license license:gpl2+)))
+
 (define-public rsound
   (package
     (name "rsound")
@@ -1377,12 +1774,13 @@ interface.")
        (method url-fetch)
        (uri (string-append "https://github.com/Themaister/RSound/archive/v"
                            version ".tar.gz"))
+       (file-name (string-append name "-" version))
        (sha256
         (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-2)
+       ("jack" ,jack-1)
        ("ao" ,ao)
        ("libsamplerate" ,libsamplerate)
        ("openal" ,openal)
@@ -1408,6 +1806,134 @@ directly to a different computer on your LAN network.  It is an audio daemon
 with a much different focus than most other audio daemons.")
     (license license:gpl3+)))
 
+(define-public xjackfreak
+  (package
+    (name "xjackfreak")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/johnhldavis/xjackfreak/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "docdir=" (assoc-ref %outputs "out")
+                            "/share/doc/xjackfreak"))))
+    (inputs
+     `(("jack" ,jack-1)
+       ("libx11" ,libx11)
+       ("libxt" ,libxt)
+       ("libxext" ,libxext)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/johnhldavis/xjackfreak")
+    (synopsis "JACK audio frequency analyzer and display")
+    (description
+     "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
+Connection Kit.  It can display the FFT of any input, modify it and output the
+result.")
+    (license license:gpl3+)))
+
+(define-public zita-convolver
+  (package
+    (name "zita-convolver")
+    (version "3.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://kokkinizita.linuxaudio.org"
+                    "/linuxaudio/downloads/zita-convolver-"
+                    version ".tar.bz2"))
+              (snippet
+               ;; Don't optimize for a specific processor architecture.
+               '(substitute* "libs/Makefile"
+                  (("^CXXFLAGS \\+= -march=native") "")))
+              (modules '((guix build utils)))
+              (sha256
+               (base32
+                "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no "check" target
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (alist-cons-after
+        'unpack 'patch-makefile-and-enter-directory
+        (lambda _
+          (substitute* "libs/Makefile"
+            (("ldconfig") "true")
+            (("^LIBDIR =.*") "LIBDIR = lib\n"))
+          (chdir "libs") #t)
+        (alist-cons-after
+         'install
+         'install-symlink
+         (lambda _
+           (symlink "libzita-convolver.so"
+                    (string-append (assoc-ref %outputs "out")
+                                   "/lib/libzita-convolver.so.3")))
+         ;; no configure script
+         (alist-delete 'configure %standard-phases)))))
+    (inputs `(("fftwf" ,fftwf)))
+    (home-page "http://kokkinizita.linuxaudio.org")
+    (synopsis "Fast, partitioned convolution engine library")
+    (description
+     "Zita convolver is a C++ library providing a real-time convolution
+engine.")
+    (license license:gpl3+)))
+
+(define-public zita-resampler
+  (package
+    (name "zita-resampler")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://kokkinizita.linuxaudio.org"
+                    "/linuxaudio/downloads/zita-resampler-"
+                    version ".tar.bz2"))
+              (snippet
+               ;; Don't optimize for a specific processor architecture.
+               '(substitute* '("apps/Makefile" "libs/Makefile")
+                  (("^CXXFLAGS \\+= -march=native") "")))
+              (modules '((guix build utils)))
+              (sha256
+               (base32
+                "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
+    (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-after
+          'unpack 'patch-makefile-and-enter-directory
+          (lambda _
+            (substitute* "libs/Makefile"
+              (("ldconfig") "true")
+              (("^LIBDIR =.*") "LIBDIR = lib\n"))
+            (chdir "libs")
+            #t))
+         (add-after
+          'install 'install-symlink
+          (lambda _
+            (symlink "libzita-resampler.so"
+                     (string-append (assoc-ref %outputs "out")
+                                    "/lib/libzita-resampler.so.1"))))
+         ;; no configure script
+         (delete 'configure))))
+    (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
+    (synopsis "C++ library for resampling audio signals")
+    (description
+     "Libzita-resampler is a C++ library for resampling audio signals.  It is
+designed to be used within a real-time processing context, to be fast, and to
+provide high-quality sample rate conversion.")
+    (license license:gpl3+)))
+
 (define-public zita-alsa-pcmi
   (package
     (name "zita-alsa-pcmi")
@@ -1454,3 +1980,57 @@ access to ALSA PCM devices, taking care of the many functions required to
 open, initialise and use a hw: device in mmap mode, and providing floating
 point audio data.")
     (license license:gpl3+)))
+
+(define-public cuetools
+  (package
+    (name "cuetools")
+    (version "1.4.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://github.com/svend/cuetools/archive/"
+                                 version ".tar.gz"))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
+    (build-system gnu-build-system)
+    ;; The source tarball is not bootstrapped.
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'bootstrap
+            (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+    ;; Bootstrapping tools
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (synopsis "Cue and toc file parsers and utilities")
+    (description "Cuetools is a set of programs that are useful for manipulating
+and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC
+files are a way to represent the layout of a data or audio CD in a
+machine-readable ASCII format.")
+    (home-page "https://github.com/svend/cuetools")
+    (license license:gpl2+)))
+
+(define-public shntool
+  (package
+    (name "shntool")
+    (version "3.0.10")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
+                                 "shntool-" version ".tar.gz"))
+             (sha256
+              (base32
+               "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
+    (build-system gnu-build-system)
+    (synopsis "WAVE audio data processing tool")
+    (description "shntool is a multi-purpose WAVE data processing and reporting
+utility.  File formats are abstracted from its core, so it can process any file
+that contains WAVE data, compressed or not---provided there exists a format
+module to handle that particular file type.")
+    (home-page "http://etree.org/shnutils/shntool/")
+    ;; 'install-sh' bears the x11 license
+    (license (list license:gpl2+ license:x11))))