gnu: vamp: Use HTTPS home page.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
index 93e004f..6020063 100644 (file)
@@ -8,12 +8,12 @@
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
+;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
+;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -328,7 +332,7 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.3.2")
+    (version "2.3.3")
     (source
      (origin
        (method git-fetch)
@@ -338,7 +342,7 @@ engineers, musicians, soundtrack editors and composers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1"))
+         "0707fsnrl4vjalsi21w4blwgz024qhd0w8rdd5j5vpxf5lyk2rbk"))
        (patches (search-patches "audacity-build-with-system-portaudio.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -347,7 +351,7 @@ engineers, musicians, soundtrack editors and composers.")
            (for-each
             (lambda (dir)
               (delete-file-recursively (string-append "lib-src/" dir)))
-            '("expat" "ffmpeg" "libflac" "libid3tag" "libmad" "libogg"
+            '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
               "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
               "portaudio-v19" "portmidi" "soundtouch" "twolame"
               ;; FIXME: these libraries have not been packaged yet:
@@ -447,7 +451,8 @@ engineers, musicians, soundtrack editors and composers.")
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/NoteTrack.cpp"
                             "src/AudioIO.cpp"
-                            "src/AudioIO.h")
+                            "src/AudioIO.h"
+                            "src/AudioIOBase.cpp")
                (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
                (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
              (substitute* "src/prefs/MidiIOPrefs.cpp"
@@ -465,6 +470,54 @@ and editing digital audio.  It features digital effects and spectrum analysis
 tools.")
     (license license:gpl2+)))
 
+(define-public audiofile
+  (package
+    (name "audiofile")
+    (version "0.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://audiofile.68k.org/audiofile-" version ".tar.gz"))
+       (sha256
+        (base32 "0rb927zknk9kmhprd8rdr4azql4gn2dp75a36iazx2xhkbqhvind"))
+       (patches
+        ;; CVE references according to nixpgs
+        (search-patches
+         "audiofile-fix-datatypes-in-tests.patch"
+         "audiofile-fix-sign-conversion.patch"
+         "audiofile-hurd.patch"
+         "audiofile-CVE-2015-7747.patch"
+         ;; CVE-2017-6829:
+         "audiofile-Fix-index-overflow-in-IMA.cpp.patch"
+         ;; CVE-2017-6827, CVE-2017-6828, CVE-2017-6832, CVE-2017-6835,
+         ;; CVE-2017-6837:
+         "audiofile-Check-the-number-of-coefficients.patch"
+         ;; CVE-2017-6839:
+         "audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch"
+         ;; CVE-2017-6830, CVE-2017-6834, CVE-2017-6836, CVE-2017-6838:
+         "audiofile-Fix-multiply-overflow-sfconvert.patch"
+         "audiofile-signature-of-multiplyCheckOverflow.patch"
+         ;; CVE-2017-6831:
+         "audiofile-Fail-on-error-in-parseFormat.patch"
+         ;; CVE-2017-6833:
+         "audiofile-division-by-zero-BlockCodec-runPull.patch"
+         "audiofile-CVE-2018-13440.patch"
+         "audiofile-CVE-2018-17095.patch"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("alsa-lib" ,alsa-lib)))
+    (home-page "https://audiofile.68k.org/")
+    (synopsis "Library to handle various audio file formats")
+    (description "This is an open-source version of SGI's audiofile library.
+It provides a uniform programming interface for processing of audio data to
+and from audio files of many common formats.
+
+Currently supported file formats include AIFF/AIFF-C, WAVE, and NeXT/Sun
+.snd/.au, BICS, and raw data.  Supported compression formats are currently
+G.711 mu-law and A-law.")
+    (license license:lgpl2.1+)))
+
 (define-public autotalent
   (package
     (name "autotalent")
@@ -552,14 +605,14 @@ plugins are provided.")
 (define-public calf
   (package
     (name "calf")
-    (version "0.90.2")
+    (version "0.90.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://calf-studio-gear.org/files/calf-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0bn4j1klw2yfxz8clbmasaydifq25rdfsv0n6iisxrzcj1lx7sgh"))))
+                "17x4hylgq4dn9qycsdacfxy64f5cv57n2qgkvsdp524gnqzw4az3"))))
     (build-system gnu-build-system)
     (inputs
      `(("fluidsynth" ,fluidsynth)
@@ -670,6 +723,36 @@ performances.  The plugins include a cellular automaton synthesizer, an
 envelope follower, distortion effects, tape effects and more.")
     (license license:gpl2+)))
 
+(define-public swh-plugins
+  (package
+    (name "swh-plugins")
+    (version "0.4.17")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/swh/ladspa.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c98z2xxz9pgcb4dg99gz8qrylh5cnag0j18a52d88ifsy24isvq"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal) ;for autopoint
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (inputs
+     `(("fftwf" ,fftwf)
+       ("perl-xml-parser" ,perl-xml-parser)))
+    (build-system gnu-build-system)
+    (home-page "http://plugin.org.uk")
+    (synopsis "The SWH Plugins package for the LADSPA plugin system")
+    (description "This package provides Steve Harris's LADSPA plugins.")
+    (license license:gpl2+)))
+
 (define-public swh-plugins-lv2
   (package
     (name "swh-plugins-lv2")
@@ -1109,7 +1192,7 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.0.8")
+    (version "2.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1118,7 +1201,7 @@ follower.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1s32c0jxjica2agy0mp36vgvpgj2vl5i5zvacd6igmbam0x4gs7c"))))
+                "0jhla1641rx77va4b6n4shn8srj87rpwvp170byj1bg8z8g89ji1"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1964,15 +2047,15 @@ lv2-c++-tools.")
 (define-public openal
   (package
     (name "openal")
-    (version "1.19.1")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://openal-soft.org/openal-releases/openal-soft-"
+                    "https://openal-soft.org/openal-releases/openal-soft-"
                     version ".tar.bz2"))
               (sha256
                (base32
-                "1sdjhkz2gd6lbnwphi1b6aw3br4wv2lik5vnqh6mxfc8a7zqfbsw"))))
+                "03p6s5gap0lvig2fs0a8nib5rxsc24dbqjsydpwvlm5l49wlk2f0"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -1981,26 +2064,19 @@ lv2-c++-tools.")
          (add-after
           'unpack 'use-full-library-paths
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Alc/backends/pulseaudio.c"
+            (substitute* "alc/backends/pulseaudio.cpp"
               (("#define PALIB \"libpulse\\.so\\.0\"")
                (string-append "#define PALIB \""
                               (assoc-ref inputs "pulseaudio")
                               "/lib/libpulse.so.0"
                               "\"")))
-            (substitute* "Alc/backends/alsa.c"
+            (substitute* "alc/backends/alsa.cpp"
               (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
                (string-append "LoadLib(\""
                               (assoc-ref inputs "alsa-lib")
                               "/lib/libasound.so.2"
                               "\")")))
             #t)))))
-    (native-inputs
-     `(;; FIXME: On i686-linux, GCC 7 hits an internal compiler error
-       ;; upon building utils/makehrtf.c:3281:
-       ;; "internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:908"
-       ;; https://ci.guix.gnu.org/log/r2fjx9m75m9rifg2yjbnn853wqy2547n-openal-1.19.1
-       ;; Remove this when the default compiler is GCC 9 or later.
-       ("gcc" ,gcc-9)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("pulseaudio" ,pulseaudio)))
@@ -2012,7 +2088,7 @@ emitters are among the features handled by the API.  More advanced effects,
 including air absorption, occlusion, and environmental reverb, are available
 through the EFX extension.  It also facilitates streaming audio, multi-channel
 buffers, and audio capture.")
-    (home-page "http://openal-soft.org/")
+    (home-page "https://openal-soft.org/")
     (license license:lgpl2.0+)))
 
 (define-public freealut
@@ -2299,6 +2375,29 @@ aimed at audio/musical applications.")
                  (base32
                   "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
 
+(define-public resample
+  (package
+    (name "resample")
+    (version "1.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ccrma.stanford.edu/~jos/gz/resample-"
+                                  version
+                                  ".tar.gz"))
+              (sha256 (base32
+                       "074zj8ydp05yy1hjcglfv3hkvj4cm50f9nralka1992pm6yf8yvy"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)))
+    (synopsis "Real-time library for sampling rate conversion")
+    (description "The @command{resample} software package contains free
+sampling-rate conversion and filter design utilities.")
+    (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
+    (license license:lgpl2.1+)))
+
 (define-public rubberband
   (package
     (name "rubberband")
@@ -2341,33 +2440,22 @@ tempo and pitch of an audio recording independently of one another.")
 (define-public rtmidi
   (package
     (name "rtmidi")
-    (version "2.1.0")
+    (version "4.0.0")
     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/powertab/rtmidi.git")
-                    (commit version)))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
+                                  "/release/rtmidi-" version ".tar.gz"))
+              (file-name (string-append "rtmidi-" version ".tar.gz"))
               (sha256
                (base32
-                "106v177y3nrjv2l1yskch4phpqd8h97b67zj0jiq9pc3c69jr1ay"))))
+                "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-before 'build 'fix-makefile
-           (lambda _
-             (substitute* "Makefile"
-               (("/bin/ln") "ln")
-               (("RtMidi.h RtError.h") "RtMidi.h"))
-             #t))
-         (add-before 'install 'make-target-dirs
+         (add-before 'bootstrap 'noconfigure
            (lambda _
-             (let ((out (assoc-ref %outputs "out")))
-               (mkdir-p (string-append out "/bin"))
-               (mkdir (string-append out "/lib"))
-               (mkdir (string-append out "/include")))
+             (setenv "NOCONFIGURE" "yes")
              #t)))))
     (inputs
      `(("jack" ,jack-1)
@@ -2377,7 +2465,7 @@ tempo and pitch of an audio recording independently of one another.")
        ("automake" ,automake)
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
-    (home-page "https://github.com/powertab/rtmidi")
+    (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
     (synopsis "Cross-platform MIDI library for C++")
     (description
      "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
@@ -2487,6 +2575,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
        ("flac" ,flac)
        ("jack" ,jack-1)
        ("libogg" ,libogg)
+       ("libvorbis" ,libvorbis)
        ("speex" ,speex)
        ("ncurses" ,ncurses)
        ("freepats" ,freepats)))
@@ -2532,7 +2621,7 @@ disks as various audio file formats.")
      `(("libsndfile" ,libsndfile)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://vamp-plugins.org")
+    (home-page "https://vamp-plugins.org")
     (synopsis "Modular and extensible audio processing system")
     (description
      "Vamp is an audio processing plugin system for plugins that extract
@@ -2586,18 +2675,17 @@ stretching and pitch scaling of audio.  This package contains the library.")
 (define-public wavpack
   (package
     (name "wavpack")
-    (version "5.1.0")
+    (version "5.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.wavpack.com/"
-                                  name "-" version ".tar.bz2"))
-              (patches (search-patches "wavpack-CVE-2018-6767.patch"
-                                       "wavpack-CVE-2018-7253.patch"
-                                       "wavpack-CVE-2018-7254.patch"))
+                                  "wavpack-" version ".tar.xz"))
               (sha256
                (base32
-                "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
+                "1qvpvfx30kvrkw7y1g6r8xj109wszg1z0qmkfm17wf3flb7v3rbp"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (home-page "http://www.wavpack.com/")
     (synopsis "Hybrid lossless audio codec")
     (description
@@ -2676,7 +2764,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
 (define-public soundtouch
   (package
     (name "soundtouch")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method git-fetch)
@@ -2685,14 +2773,14 @@ Tracker 3 S3M and Impulse Tracker IT files.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
+        (base32 "174wgm3s0inmbnkrlnspxjwm2014qhjhkbdqa5r8rbfi0nzqxzsz"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
        ("file" ,file)))
-    (home-page "http://www.surina.net/soundtouch/")
+    (home-page "https://www.surina.net/soundtouch/")
     (synopsis
      "Audio processing library for changing tempo, pitch and playback rate")
     (description
@@ -2816,8 +2904,14 @@ portions of LAME.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (arguments
-     '(#:tests? #f                    ;no 'check' target
-       #:configure-flags '("--with-pic")
+     '(#:tests? #f                      ;no 'check' target
+       #:parallel-build? #f             ;fails on some systems
+       #:configure-flags '("--with-pic"
+                           "--enable-cxx"
+                           ;; XXX: The following prevents a build error
+                           ;; because of missing depcomp when C++ bindings are
+                           ;; requested.
+                           "--disable-dependency-tracking")
        #:phases
        (modify-phases %standard-phases
          ;; This is needed for linking the static libraries
@@ -3181,21 +3275,23 @@ with support for HD extensions.")
 (define-public bs1770gain
   (package
     (name "bs1770gain")
-    (version "0.6.0")
+    (version "0.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
                            version "/bs1770gain-" version ".tar.gz"))
        (sha256
-        (base32 "0nnqixvw3x7i22nsr54n4bgm35z9nh3d9qj5s75cfd3ajjsjndyh"))
+        (base32 "15nvlh9bg0a52cpg2mii17mlzmxszwivjjalbb4np1v5nj8l5fk6"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; XXX
+           (substitute* (find-files "." "\\.[ch]$")
+             (("^ \\* N..o.*") ""))
            (substitute* "libbg/bgx.c"
-             (("#define BS.* ") "#define BS ")
-             (("BS.*NO?.*N.*S.*E.*N.*SE?") "NO")
+             (("#define BG.* ") "#define BS ")
+             (("BG.*NO?.*N.*S.*E.*N.*SE?") "NO")
              (("\"( #|N).*\"") "\"\""))
            (substitute* (list "config.h"
                               "configure.ac"
@@ -3322,7 +3418,7 @@ mixers.")
 (define-public bluez-alsa
   (package
     (name "bluez-alsa")
-    (version "1.2.0")
+    (version "2.0.0")
     (source (origin
               ;; The tarballs are mere snapshots and don't contain a
               ;; bootstrapped build system.
@@ -3330,11 +3426,19 @@ mixers.")
               (uri (git-reference
                     (url "https://github.com/Arkq/bluez-alsa.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
+                "08mppgnjf1j2733bk9yf0cny6rfxxwiys0s62lz2zd2lpdl6d9lz"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-alsaplugindir="
+                            (assoc-ref %outputs "out")
+                            "/lib/alsa-lib")
+             (string-append "--with-dbusconfdir="
+                            (assoc-ref %outputs "out")
+                            "/etc/dbus-1/system.d"))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -3343,6 +3447,7 @@ mixers.")
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("bluez" ,bluez)
+       ("dbus" ,dbus)
        ("glib" ,glib)
        ("libbsd" ,libbsd)
        ("ncurses" ,ncurses)
@@ -3364,14 +3469,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "19.6")
+    (version "19.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76"))))
+                "13s8fahpsjygjdrcwmprcrz23ny3klaj2rh2xzdv3bfs69gxvhys"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -3488,7 +3593,8 @@ the following features:
      `(("which" ,which)))
     (inputs
      `(("fftw" ,fftw)
-       ("googletest" ,googletest)
+       ;; TODO: Try using the latest googletest for versions > 1.6.
+       ("googletest" ,googletest-1.8)
        ("ncurses" ,ncurses)
        ("pulseaudio" ,pulseaudio)))
     (arguments
@@ -3792,3 +3898,132 @@ stream to one or more IceCast and/or ShoutCast servers.")
 @dfn{Linear/Longitudinal Time Code} (LTC) data.")
     (home-page "https://x42.github.io/libltc/")
     (license license:lgpl3+)))
+
+(define-public redkite
+  (package
+    (name "redkite")
+    (version "0.6.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/geontime/redkite.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1i874izajbdhlfacwwj84qrsxf7g4y6nblzxalrkzaap9sa7d1r6"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no tests included
+    (inputs
+     `(("cairo" ,cairo)))
+    (native-inputs
+     `(("pkg-config", pkg-config)))
+    (synopsis "Small GUI toolkit")
+    (description "Redkite is a small GUI toolkit developed in C++17 and
+inspired from other well known GUI toolkits such as Qt and GTK.  It is
+minimal on purpose and is intended to be statically linked to applications,
+therefore satisfying any requirements they may have to be self contained,
+as is the case with audio plugins.")
+    (home-page "https://gitlab.com/geontime/redkite")
+    (license license:gpl3+)))
+
+(define-public carla
+  (package
+    (name "carla")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/falkTX/Carla.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fqgncqlr86n38yy7pa118mswfacmfczj7w9xx6c6k0jav3wk29k"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no "check" target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-CC-variable-and-show-features
+           (lambda _
+             (setenv "CC" "gcc")
+             (invoke "make" "features")))
+         (delete 'configure))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("ffmpeg" ,ffmpeg)
+       ("fluidsynth" ,fluidsynth)
+       ("file" ,file)
+       ("liblo" ,liblo)
+       ("libsndfile" ,libsndfile)
+       ("gtk+" ,gtk+)
+       ("python-pyliblo" ,python-pyliblo)
+       ("python-pyqt" ,python-pyqt)
+       ("python-rdflib" ,python-rdflib)
+       ;; python-pyqt shows the following error without python-wrapper:
+       ;; Error while finding module specification for 'PyQt5.uic.pyuic'
+       ;; (ModuleNotFoundError: No module named 'PyQt5')
+       ("python-wrapper" ,python-wrapper)
+       ("libx11" ,libx11)
+       ("qtbase" ,qtbase)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://kx.studio/Applications:Carla")
+    (synopsis "Audio plugin host")
+    (description "Carla is a modular audio plugin host, with features like
+transport control, automation of parameters via MIDI CC and remote control
+over OSC.  Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2,
+and VST3 plugin formats, plus SF2 and SFZ file support.  It uses JACK as the
+default and preferred audio driver but also supports native drivers like ALSA.")
+    (license license:gpl2+)))
+
+(define-public ecasound
+  (package
+    (name "ecasound")
+    (version "2.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://nosignal.fi/download/ecasound-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32 "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    ;; It would be nice to add mikmod to inputs if that gets packaged
+    ;; eventually.
+    (inputs `(("alsa-lib" ,alsa-lib)
+              ("jack" ,jack-1)
+              ("mpg123" ,mpg123)
+              ("lame" ,lame)
+              ("vorbis-tools" ,vorbis-tools)
+              ("faad2" ,faad2)
+              ("flac" ,flac)
+              ("timidity++" ,timidity++)
+              ("libsndfile" ,libsndfile)
+              ("libsamplerate" ,libsamplerate)
+              ("ncurses" ,ncurses)
+              ("ladspa" ,ladspa)
+              ("lilv" ,lilv)))
+    (home-page "https://nosignal.fi/ecasound/index.php")
+    (synopsis "Multitrack audio processing")
+    (description "Ecasound is a software package designed for multitrack audio
+processing. It can be used for simple tasks like audio playback, recording and
+format conversions, as well as for multitrack effect processing, mixing,
+recording and signal recycling. Ecasound supports a wide range of audio inputs,
+outputs and effect algorithms. Effects and audio objects can be combined in
+various ways, and their parameters can be controlled by operator objects like
+oscillators and MIDI-CCs. A versatile console mode user-interface is included
+in the package.")
+    ;; As an exception to the above, the C, C++ and python implementations
+    ;; of the Ecasound Control Interface (ECI) are licensed under the LGPL
+    ;; (see the file 'COPYING.LGPL'). This allows writing ECI applications
+    ;; that are not licensed under GPL.
+    (license (list license:gpl2 license:lgpl2.1))))