Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / audio.scm
index 83e09a7..49ec474 100644 (file)
@@ -21,6 +21,8 @@
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,6 +68,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
        ("qtbase" ,qtbase)
        ("qttools" ,qttools)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("gcc" ,gcc-5)))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -714,7 +718,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
 (define-public csound
   (package
     (name "csound")
-    (version "6.12.2")
+    (version "6.13.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -723,7 +727,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
+                "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh"))))
     (build-system cmake-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -1024,7 +1028,7 @@ audio signals.")
 @enumerate
 @item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
 @item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
-@item Rec-VCO, a square / rectange oscillator
+@item Rec-VCO, a square / rectangle oscillator
 @end enumerate\n
 
 All oscillators are low-pass filtered to provide waveforms similar to the
@@ -1105,16 +1109,16 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.0.5")
+    (version "2.0.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/FluidSynth/fluidsynth.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
+                "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1532,7 +1536,7 @@ synchronous execution of all clients, and low latency operation.")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
-    (version "1.9.12")
+    (version "1.9.13")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@@ -1541,40 +1545,38 @@ synchronous execution of all clients, and low latency operation.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "0crf4y9a5j9miw8r5ji4l3w5w0y2frrf7xyfsfdgacnw6vwy5vyy"))))
+               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
     (build-system waf-build-system)
     (arguments
-     `(#:python ,python-2
-       #:tests? #f  ; no check target
+     `(#:tests? #f  ; no check target
        #:configure-flags '("--dbus"
                            "--alsa")
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'set-linkflags
-          (lambda _
-            ;; Add $libdir to the RUNPATH of all the binaries.
-            (substitute* "wscript"
-              ((".*CFLAGS.*-Wall.*" m)
-               (string-append m
-                              "    conf.env.append_unique('LINKFLAGS',"
-                              "'-Wl,-rpath=" %output "/lib')\n")))
-            #t))
+         (add-before 'configure 'set-linkflags
+           (lambda _
+             ;; Add $libdir to the RUNPATH of all the binaries.
+             (substitute* "wscript"
+               ((".*CFLAGS.*-Wall.*" m)
+                (string-append m
+                               "    conf.env.append_unique('LINKFLAGS',"
+                               "'-Wl,-rpath=" %output "/lib')\n")))
+             #t))
          (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)))))
+           (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)
+       ("python-dbus" ,python-dbus)
        ("readline" ,readline)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1995,6 +1997,13 @@ lv2-c++-tools.")
                               "/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)))
@@ -2104,14 +2113,14 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.5.8")
+    (version "0.5.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"))))
+                "1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
@@ -2167,16 +2176,18 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.10.2")
+    (version "3.10.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/supercollider/supercollider"
                     "/releases/download/Version-" version
                     "/SuperCollider-" version "-Source-linux.tar.bz2"))
+              (patches
+               (search-patches "supercollider-boost-1.70-build-fix.patch"))
               (sha256
                (base32
-                "0ynz1ydcpsd5h57h1n4a7avm6p1cif5a8rkmz4qpr46pr8z9p6iq"))))
+                "0srm6wbazidkrd4ckjy4ypyhkdwcnx2i7k9msjyngalh0mrc9zz1"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
@@ -2188,12 +2199,6 @@ background file post-processing.")
                   (ice-9 ftw))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-build-with-boost-1.68
-           (lambda _
-             (substitute* "server/supernova/utilities/time_tag.hpp"
-               (("(time_duration offset = .+ microseconds\\().*" _ m)
-                (string-append m "static_cast<long>(get_nanoseconds()/1000));\n")))
-             #t))
          (add-after 'unpack 'rm-bundled-libs
            (lambda _
              ;; The build system doesn't allow us to unbundle the following
@@ -2853,19 +2858,17 @@ interface.")
 (define-public qsynth
   (package
     (name "qsynth")
-    (version "0.5.6")
+    (version "0.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
                            "/qsynth-" version ".tar.gz"))
        (sha256
-        (base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
+        (base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; no "check" phase
-       #:configure-flags
-       '("CXXFLAGS=-std=gnu++11")))
+     `(#:tests? #f))                    ; no "check" phase
     (native-inputs
      `(("qttools" ,qttools)
        ("pkg-config" ,pkg-config)))
@@ -2873,7 +2876,7 @@ interface.")
      `(("fluidsynth" ,fluidsynth)
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
-    (home-page "http://qsynth.sourceforge.net")
+    (home-page "https://qsynth.sourceforge.io")
     (synopsis "Graphical user interface for FluidSynth")
     (description
      "Qsynth is a GUI front-end application for the FluidSynth SoundFont
@@ -3188,24 +3191,28 @@ with support for HD extensions.")
 (define-public bs1770gain
   (package
     (name "bs1770gain")
-    (version "0.5.2")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
                            version "/bs1770gain-" version ".tar.gz"))
        (sha256
-        (base32
-         "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk"))
+        (base32 "0nnqixvw3x7i22nsr54n4bgm35z9nh3d9qj5s75cfd3ajjsjndyh"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; XXX
-           (substitute* "bs1770gain/bs1770gain.c"
-             (("\"N.*\"") "\"\""))
-           (substitute* "configure"
-             (("URL=.*$")
-              "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html\n"))))))
+           (substitute* "libbg/bgx.c"
+             (("#define BS.* ") "#define BS ")
+             (("BS.*NO?.*N.*S.*E.*N.*SE?") "NO")
+             (("\"( #|N).*\"") "\"\""))
+           (substitute* (list "config.h"
+                              "configure.ac"
+                              "configure")
+             (("https?://bs1770gain[^/]*/")
+              "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html"))
+           #t))))
     (build-system gnu-build-system)
     (inputs `(("ffmpeg" ,ffmpeg)
               ("sox" ,sox)))
@@ -3367,21 +3374,22 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "19.5")
+    (version "19.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "0sk6iyykwi2mm3f1g4r0iqbsrwk3zmyagp6jjqkh8njbq42cjr1y"))))
+                "0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
        #:out-of-source? #f              ; for the 'install-doc' phase
        #:configure-flags
        (let* ((out (assoc-ref %outputs "out"))
-              (docdir (string-append out "/share/doc/snd")))
+              (docdir (string-append out "/share/doc/"
+                                     ,name "-" ,version)))
          (list "--with-alsa" "--with-jack" "--with-gmp"
                (string-append "--with-doc-dir=" docdir)))
        #:phases
@@ -3394,7 +3402,7 @@ on the ALSA software PCM plugin.")
                (for-each
                 (lambda (f)
                   (install-file f doc))
-                (find-files "." "\\.html$|COPYING"))
+                (find-files "." "\\.html$"))
                (copy-recursively "pix" (string-append doc "/pix"))
                #t))))))
     (native-inputs
@@ -3685,7 +3693,7 @@ library.")
 (define-public faudio
   (package
     (name "faudio")
-    (version "19.07")
+    (version "19.09")
     (source
      (origin
        (method git-fetch)
@@ -3694,7 +3702,7 @@ library.")
              (commit version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "1wf6skc5agaikc9qgwk8bx56sad31fafs53lqqn4jmx8i76pl0lw"))))
+        (base32 "0fagik55jmy3qmb27nhg0zxash1ahfkxphx8m8gs0pimqqrdrd9d"))))
     (arguments
      '(#:tests? #f                      ; No tests.
        #:configure-flags '("-DFFMPEG=ON")))
@@ -3707,3 +3715,65 @@ library.")
     (description "FAudio is an XAudio reimplementation that focuses solely on
 developing fully accurate DirectX Audio runtime libraries.")
     (license license:zlib)))
+
+(define-public gnaural
+  (package
+    (name "gnaural")
+    (version "20110606")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/gnaural/Gnaural/gnaural_"
+                           version ".tar.xz"))
+       (sha256
+        (base32
+         "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("gtk+" ,gtk+-2)
+       ("libsndfile" ,libsndfile)
+       ("portaudio" ,portaudio)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://gnaural.sourceforge.net/")
+    (synopsis "Binaural beat synthesizer")
+    (description "Gnaural is a programmable auditory binaural beat synthesizer
+intended to be used for brainwave entrainment.  Gnaural supports creation of
+binaural beat tracks of different frequencies and exporting of tracks into
+different audio formats.  Gnaural can also be linked over the internet with
+other Gnaural instances, allowing synchronous sessions between many users.")
+    (license license:gpl2+)))
+
+(define-public darkice
+  (package
+    (name "darkice")
+    (version "1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/darkice/darkice/"
+                                  version "/darkice-" version ".tar.gz"))
+              (sha256
+               (base32 "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c"))
+              (patches
+               (search-patches "darkice-workaround-fpermissive-error.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("lame" ,lame)
+              ("libvorbis" ,libvorbis)
+              ("opus" ,opus)
+              ("twolame" ,twolame)
+              ("alsa-lib" ,alsa-lib)
+              ("pulseaudio" ,pulseaudio)
+              ("jack" ,jack-1)
+              ("libsamplerate" ,libsamplerate)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-lame-prefix="
+                            (assoc-ref %build-inputs "lame")))))
+    (home-page "http://www.darkice.org/")
+    (synopsis "Live audio streamer")
+    (description "DarkIce is a live audio streamer.  It takes audio input from
+a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio
+stream to one or more IceCast and/or ShoutCast servers.")
+    (license license:gpl3+)))