;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018 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 © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system trivial)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages libbsd)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages mp3) ;taglib
#:use-module (gnu packages python)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages vim) ;xxd
#: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))
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages music)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26))
(define-public alsa-modular-synth
(package
(define-public ardour
(package
(name "ardour")
- (version "5.8")
+ (version "5.12")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "git://git.ardour.org/ardour/ardour.git")
+ (url "https://git.ardour.org/ardour/ardour.git")
(commit version)))
(snippet
;; Ardour expects this file to exist at build time. The revision
namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
(sha256
(base32
- "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1"))
+ "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
(file-name (string-append name "-" version))))
(build-system waf-build-system)
(arguments
(modify-phases %standard-phases
(add-after
'unpack 'set-rpath-in-LDFLAGS
- ,(ardour-rpath-phase (version-prefix version 1))))
+ ,(ardour-rpath-phase (version-major version))))
#:test-target "test"
#:python ,python-2))
(inputs
(define-public audacity
(package
(name "audacity")
- (version "2.1.3")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/audacity/audacity/archive"
"/Audacity-" version ".tar.gz"))
(sha256
- (base32 "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b"))))
+ (base32 "09xpr4bjnainz1xmc35v3qg3dadjr9wv8bmn1p4y91aqyihnhjry"))
+ (patches (search-patches "audacity-build-with-system-portaudio.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled libraries.
+ '(begin
+ (for-each
+ (lambda (dir)
+ (delete-file-recursively (string-append "lib-src/" dir)))
+ '("expat" "ffmpeg" "libflac" "libid3tag" "libmad" "libogg"
+ "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
+ "portaudio-v19" "portmidi" "soundtouch" "twolame"
+ ;; FIXME: these libraries have not been packaged yet:
+ ;; "libnyquist"
+ ;; "libscorealign"
+ ;; "libwidgetextra"
+ ;; "portburn"
+ ;; "portsmf"
+ ;; "portmixer"
+
+ ;; FIXME: we have this library, but it differs in that the Slide
+ ;; class does not have a member "getInverseStretchedTime".
+ ;; "sbsms"
+ ))
+ #t))))
(build-system gnu-build-system)
(inputs
- ;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree
- ;; versions shipping with Audacity are used for now.
- `(("wxwidgets" ,wxwidgets-gtk2)
- ("gtk" ,gtk+-2)
+ `(("wxwidgets" ,wxwidgets)
+ ("gtk" ,gtk+)
("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("expat" ,expat)
("flac" ,flac)
("libid3tag" ,libid3tag)
("libmad" ,libmad)
- ("libsbsms" ,libsbsms)
+ ;;("libsbsms" ,libsbsms) ;bundled version is modified
("libsndfile" ,libsndfile)
("soundtouch" ,soundtouch)
("soxr" ,soxr) ;replaces libsamplerate
("vamp" ,vamp)
("libvorbis" ,libvorbis)
("lv2" ,lv2)
- ("lilv" ,lilv)
- ("portaudio" ,portaudio)))
+ ("lilv" ,lilv) ;for lv2
+ ("suil" ,suil) ;for lv2
+ ("portaudio" ,portaudio)
+ ("portmidi" ,portmidi)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("python" ,python-2)
("which" ,which)))
(arguments
- '(#:configure-flags
+ `(#:configure-flags
(let ((libid3tag (assoc-ref %build-inputs "libid3tag"))
- (libmad (assoc-ref %build-inputs "libmad")))
+ (libmad (assoc-ref %build-inputs "libmad"))
+ (portmidi (assoc-ref %build-inputs "portmidi")))
(list
;; Loading FFmpeg dynamically is problematic.
"--disable-dynamic-loading"
- ;; libid3tag and libmad provide no .pc files, so pkg-config fails to
- ;; find them. Force their inclusion.
+ ;; SSE instructions are available on Intel systems only.
+ ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+ (%current-system)))
+ '("x64_64" "i686"))
+ '()
+ '("--enable-sse=no"))
+ ;; portmidi, libid3tag and libmad provide no .pc files, so
+ ;; pkg-config fails to find them. Force their inclusion.
(string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
(string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")
(string-append "LIBMAD_CFLAGS=-I" libmad "/include")
- (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")))
+ (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")
+ (string-append "PORTMIDI_CFLAGS=-I" portmidi "/include")
+ (string-append "PORTMIDI_LIBS=-L" portmidi "/lib -lportmidi")
+ "EXPAT_USE_SYSTEM=yes"
+ "FFMPEG_USE_SYSTEM=yes"
+ "LAME_USE_SYSTEM=yes"
+ "LIBFLAC_USE_SYSTEM=yes"
+ "LIBID3TAG_USE_SYSTEM=yes"
+ "LIBMAD_USE_SYSTEM=yes"
+ "USE_LOCAL_LIBNYQUIST=" ;not packaged yet
+ ;;"LIBSBSMS_USE_SYSTEM=yes" ;bundled version is patched
+ "LIBSNDFILE_USE_SYSTEM=yes"
+ "LIBSOUNDTOUCH_USE_SYSTEM=yes"
+ "LIBSOXR_USE_SYSTEM=yes"
+ "LIBTWOLAME_USE_SYSTEM=yes"
+ "LIBVAMP_USE_SYSTEM=yes"
+ "LIBVORBIS_USE_SYSTEM=yes"
+ "LV2_USE_SYSTEM=yes"
+ "PORTAUDIO_USE_SYSTEM=yes"))
#:phases
(modify-phases %standard-phases
- ;; FFmpeg is only detected if autoreconf runs.
- (add-before 'configure 'autoreconf
+ (add-after 'unpack 'fix-sbsms-check
(lambda _
- (zero? (system* "autoreconf" "-vfi")))))
+ ;; This check is wrong: there is no 2.2.0 release; not even the
+ ;; bundled sources match this release string.
+ (substitute* '("m4/audacity_checklib_libsbsms.m4"
+ "configure")
+ (("sbsms >= 2.2.0") "sbsms >= 2.0.0"))
+ #t))
+ (add-after 'unpack 'use-upstream-headers
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("src/NoteTrack.cpp"
+ "src/AudioIO.cpp"
+ "src/AudioIO.h")
+ (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
+ (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
+ (substitute* "src/prefs/MidiIOPrefs.cpp"
+ (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))
+ #t)))
;; The test suite is not "well exercised" according to the developers,
;; and fails with various errors. See
;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
(define-public calf
(package
(name "calf")
- (version "0.0.60")
+ (version "0.90.0")
(source (origin
(method url-fetch)
(uri (string-append "http://calf-studio-gear.org/files/calf-"
version ".tar.gz"))
(sha256
(base32
- "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
+ "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib"))))
(build-system gnu-build-system)
(inputs
`(("fluidsynth" ,fluidsynth)
(define-public csound
(package
(name "csound")
- (version "6.05")
+ (version "6.09.1")
(source (origin
(method url-fetch)
(uri (string-append
- "mirror://sourceforge/csound/csound6/Csound"
- version "/Csound" version ".tar.gz"))
+ "https://github.com/csound/csound/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
- (patches (search-patches "csound-header-ordering.patch"))))
+ "0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4"))))
(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)
`(#: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"
- (("/sbin/ldconfig") "true")
- (("^LIBDIR =.*") "LIBDIR = lib\n"))
- (chdir "libs")
- #t)
- (alist-cons-after
- 'install
- 'install-symlink
- (lambda _
- (symlink "libclalsadrv.so"
- (string-append (assoc-ref %outputs "out")
- "/lib/libclalsadrv.so.2")))
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-makefile-and-enter-directory
+ (lambda _
+ (substitute* "libs/Makefile"
+ (("/sbin/ldconfig") "true")
+ (("^LIBDIR =.*") "LIBDIR = lib\n"))
+ (chdir "libs")
+ #t))
+ (add-after 'install 'install-symlink
+ (lambda _
+ (symlink "libclalsadrv.so"
+ (string-append (assoc-ref %outputs "out")
+ "/lib/libclalsadrv.so.2"))))
;; no configure script
- (alist-delete 'configure %standard-phases)))))
+ (delete 'configure))))
(inputs
`(("alsa-lib" ,alsa-lib)
("fftw" ,fftw)))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "C++ wrapper around the ALSA API")
(description
"clalsadrv is a C++ wrapper around the ALSA API simplifying access to
(("/usr/bin/install") (which "install"))
(("/bin/rm") "#"))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA ambisonics plugins")
(description
"The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "Chorus, phaser, and vintage high-pass and low-pass filters")
(description
"This package provides various LADSPA plugins. @code{cs_chorus} and
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA reverb plugin")
(description
"This package provides a stereo reverb LADSPA plugin based on the
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA four-band parametric equalizer plugin")
(description
"This package provides a LADSPA plugin for a four-band parametric
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA stereo width plugin")
(description
"This package provides a LADSPA plugin to manipulate the stereo width of
(("/usr") (assoc-ref outputs "out"))
(("/bin/cp") (which "cp")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA plugin for synthesizer oscillators")
(description
"The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA Autowah effect plugin")
(description
"This package provides a LADSPA plugin for a Wah effect with envelope
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "LADSPA stereo reverb plugin")
(description
"This package provides a LADSPA plugin for a stereo reverb effect.")
(define-public fluidsynth
(package
(name "fluidsynth")
- (version "1.1.6")
+ (version "1.1.9")
(source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/fluidsynth/fluidsynth-"
- version "/fluidsynth-" version ".tar.gz"))
+ (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"))
(sha256
(base32
- "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
- (build-system gnu-build-system)
+ "0krvmb1idnf95l2ydzfcb08ayyx3n4m71hf9fgwv3srzaikvpf3q"))))
+ (build-system cmake-build-system)
(arguments
- `(#:phases
- (alist-cons-after
- 'unpack
- 'remove-broken-symlinks
- (lambda _ (delete-file-recursively "m4") #t)
- %standard-phases)))
+ '(#:tests? #f ; no check phase
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-libdir
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("LIB_SUFFIX \\$\\{_init_lib_suffix\\}")
+ "LIB_SUFFIX \"\""))
+ #t)))))
(inputs
`(("libsndfile" ,libsndfile)
("alsa-lib" ,alsa-lib)
specifications. FluidSynth reads and handles MIDI events from the MIDI input
device. It is the software analogue of a MIDI synthesizer. FluidSynth can
also play midifiles using a Soundfont.")
- (license license:gpl2+)))
+ (license license:lgpl2.1+)))
(define-public faad2
(package
("unzip" ,unzip)))
(arguments
'(#:phases
- (alist-cons-after
- 'unpack 'bootstrap
- (lambda _
- (substitute* "bootstrap" (("\r\n") "\n"))
- (zero? (system* "sh" "bootstrap")))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ (substitute* "bootstrap" (("\r\n") "\n"))
+ (zero? (system* "sh" "bootstrap")))))))
(home-page "http://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description
(define-public faust
(package
(name "faust")
- (version "0.9.67")
+ (version "0.9.90")
(source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/faudiostream/faust-" version ".zip"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grame-cncm/faust.git")
+ (commit (string-append "v"
+ (string-map (lambda (c)
+ (if (char=? c #\.) #\- c))
+ version)))))
+ (file-name (string-append "faust-" version "-checkout"))
(sha256
(base32
- "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
- (snippet
- ;; Remove prebuilt library
- '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
+ "0qc6iwjd3i80jdyjc186c6ywipmjzl8wlsp4050pbr56q4rlkd4z"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
;; no "configure" script
- (delete 'configure))))
+ (delete 'configure)
+ ;; Files appear under $out/share/faust that are read-only. The
+ ;; install phase tries to overwrite them and fails, so we change
+ ;; the permissions first.
+ (add-before 'install 'fix-permissions
+ (lambda _
+ (for-each (lambda (file)
+ (chmod file #o644))
+ (find-files "architecture/max-msp" ".*"))
+ #t)))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://faust.grame.fr/")
(define-public faust-2
(package
(inherit faust)
- (version "2.0.a51")
+ (version "2.1.0")
(source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/faudiostream/faust-" version ".tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grame-cncm/faust.git")
+ (commit (string-append "v"
+ (string-map (lambda (c)
+ (if (char=? c #\.) #\- c))
+ version)))))
(sha256
(base32
- "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf"))))
+ "06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments faust)
(native-inputs
`(("llvm" ,llvm-with-rtti)
("which" ,which)
- ("xxd" ,vim)
+ ("xxd" ,xxd)
("ctags" ,emacs-minimal) ; for ctags
("pkg-config" ,pkg-config)))
(inputs
(define-public guitarix
(package
(name "guitarix")
- (version "0.35.3")
+ (version "0.36.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j"))))
+ "1g5949jwh2n755xjs3kcbdb8a1wxr5mn0m115wdnk27dxcdn93b0"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
(arguments
(substitute-keyword-arguments (package-arguments guitarix)
((#:configure-flags flags)
- `(cons "--lv2-only" ,flags))))
- (inputs
- (alist-delete "webkitgtk/gtk+-2" (package-inputs guitarix)))))
+ `(cons "--lv2-only" ,flags))))))
(define-public rakarrack
(package
(define-public jack-2
(package (inherit jack-1)
(name "jack2")
- (version "1.9.10")
+ (version "1.9.12")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://github.com/jackaudio/jack2/archive/v"
- version
- ".tar.gz"))
+ (uri (string-append "https://github.com/jackaudio/jack2/releases/"
+ "download/v" version "/jack2-"
+ version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
+ "0crf4y9a5j9miw8r5ji4l3w5w0y2frrf7xyfsfdgacnw6vwy5vyy"))))
(build-system waf-build-system)
(arguments
`(#:python ,python-2
"--alsa")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-fast_rand
- (lambda _
- (substitute* "common/memops.c"
- ;; Fixed in upstream commit d3c8e2d8d78899fba40a3e677ed4dbe388d82269
- (("^inline unsigned int fast_rand" line)
- (string-append "static " line))
- ;; Fixed in upstream commit 0279a2d65a36d1378f5bab56d95bf9e99cc8cefb
- ((" 96314165") " 196314165"))
- #t))
(add-before
'configure 'set-linkflags
(lambda _
(base32
"12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; lashd embeds an ancient version of sigsegv so we just skip it
+ (add-after 'unpack 'skip-lashd
+ (lambda _
+ (substitute* '("Makefile.am" "Makefile.in")
+ (("lashd ") ""))
+ #t)))
+ #:configure-flags '("--disable-static")))
(inputs
`(("bdb" ,bdb)
("gtk" ,gtk+-2)
implementation of the Open Sound Control (OSC) protocol.")
(license license:lgpl2.1+)))
+(define-public python-pyaudio
+ (package
+ (name "python-pyaudio")
+ (version "0.2.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://pypi.python.org/packages/ab/42/"
+ "b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b"
+ "/PyAudio-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
+ (build-system python-build-system)
+ (inputs
+ `(("portaudio" ,portaudio)))
+ (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
+ (synopsis "Bindings for PortAudio v19")
+ (description "This package provides bindings for PortAudio v19, the
+cross-platform audio input/output stream library.")
+ (license license:expat)))
+
+(define-public python2-pyaudio
+ (package-with-python2 python-pyaudio))
+
(define-public python-pyliblo
(package
(name "python-pyliblo")
software.")
(license license:isc)))
+(define-public lv2-devel
+ (let ((commit "39c7c726cd52b2863fcea356cafe1bcab2ba7f37")
+ (revision "1"))
+ (package (inherit lv2)
+ (name "lv2-devel")
+ (version (string-append "1.15.3-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://lv2plug.in/git/lv2.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r")))))))
+
(define-public lv2-mda-piano
(package
(name "lv2-mda-piano")
"TYPE=mdaPiano"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:tests? #f ; no check target
- #:phases (alist-delete 'configure %standard-phases)))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
(inputs
`(("lv2" ,lv2)
("lvtk" ,lvtk)))
"TYPE=mdaEPiano"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:tests? #f ; no check target
- #:phases (alist-delete 'configure %standard-phases)))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
(home-page "http://elephly.net/lv2/mdaepiano.html")
(synopsis "LV2 port of the mda EPiano plugin")
(description "An LV2 port of the mda EPiano VSTi.")))
(define-public qjackctl
(package
(name "qjackctl")
- (version "0.4.4")
+ (version "0.5.0")
(source (origin
(method url-fetch)
- (uri
- (string-append
- "mirror://sourceforge/qjackctl/qjackctl/"
- version "/qjackctl-" version ".tar.gz"))
+ (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
+ version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
- "19bbljb3iz5ss4s5fmra1dxabg2fnp61sa51d63zsm56xkvv47ak"))))
+ "0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f)) ; no check target
(inputs
- `(("jack-2" ,jack-2)
+ `(("jack" ,jack-1)
+ ("alsa-lib" ,alsa-lib)
("qtbase" ,qtbase)
("qtx11extras" ,qtx11extras)))
(native-inputs
into various outputs and to start, stop and configure jackd")
(license license:gpl2+)))
+(define-public qjackrcd
+ (package
+ (name "qjackrcd")
+ (version "1.2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/orouits/qjackrcd.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1l5iq2mkqd4gn9yr8xbh9qlpp1clcflazychl4vhdbz0bzq4c6al"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "qmake"
+ (string-append "PREFIX="
+ (assoc-ref outputs "out")))))))))
+ (native-inputs
+ `(("qtbase" ,qtbase))) ; for qmake
+ (inputs
+ `(("jack" ,jack-1)
+ ("libsndfile" ,libsndfile)
+ ("qtbase" ,qtbase)))
+ (home-page "https://sourceforge.net/projects/qjackrcd/")
+ (synopsis "Stereo audio recorder for JACK")
+ (description "QJackRcd is a simple graphical stereo recorder for JACK
+supporting silence processing for automatic pause, file splitting, and
+background file post-processing.")
+ (license license:gpl2+)))
(define-public raul
(package
(license license:gpl2+)))
(define-public raul-devel
- (let ((commit "f8bf77d3c3b77830aedafb9ebb5cdadfea7ed07a")
+ (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
(revision "1"))
(package (inherit raul)
(name "raul")
- (version (string-append "0.8.4-" revision "."
+ (version (string-append "0.8.9-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj")))))))
+ "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
(define-public rubberband
(package
(arguments
`(#:tests? #f ;no "check" target
#:phases (modify-phases %standard-phases
- (add-before
- 'configure 'autoconf
+ (add-after
+ 'unpack 'autoconf
(lambda _ (zero? (system* "autoreconf" "-vfi"))))
(add-before
'build 'fix-makefile
(define-public suil
(package
(name "suil")
- (version "0.8.4")
+ (version "0.10.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.drobilla.net/suil-"
version ".tar.bz2"))
(sha256
(base32
- "1kji3lhha26qr6xm9j8ic5c40zbrrb5qnwm2qxzmsfxgmrz29wkf"))))
+ "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"))))
(build-system waf-build-system)
- (arguments `(#:tests? #f)) ; no check target
+ (arguments
+ `(#:tests? #f ; no check target
+ #:configure-flags
+ '("CXXFLAGS=-std=gnu++11")))
(inputs
`(("lv2" ,lv2)
- ("gtk+-2" ,gtk+-2)
- ("qt-4" ,qt-4)))
+ ("gtk+" ,gtk+-2)
+ ("gtk+" ,gtk+)
+ ("qt" ,qtbase)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://drobilla.net/software/suil/")
support specific toolkits – if Suil supports a particular toolkit, then UIs in
that toolkit will work in all hosts that use Suil automatically.
-Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
+Suil currently supports every combination of Gtk, Qt, and X11.")
(license license:isc)))
(define-public timidity++
(string-append "--with-default-path="
(assoc-ref %outputs "out") "/etc/timidity"))
#:phases
- (alist-cons-after
- 'install 'install-config
- (lambda _
- (let ((out (string-append (assoc-ref %outputs "out")
- "/etc/timidity")))
- (mkdir-p out)
- (call-with-output-file
- (string-append out "/timidity.cfg")
- (lambda (port)
- (format port (string-append "source "
- (assoc-ref %build-inputs "freepats")
- "/share/freepats/freepats.cfg"))))))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-after 'install 'install-config
+ (lambda _
+ (let ((out (string-append (assoc-ref %outputs "out")
+ "/etc/timidity")))
+ (mkdir-p out)
+ (call-with-output-file
+ (string-append out "/timidity.cfg")
+ (lambda (port)
+ (format port (string-append "source "
+ (assoc-ref %build-inputs "freepats")
+ "/share/freepats/freepats.cfg")))))
+ #t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
("ao" ,ao)
(arguments
`(#:tests? #f ; no check target
#:phases
- (alist-cons-after
- 'install 'remove-libvamp-hostsdk.la
- (lambda* (#:key outputs #:allow-other-keys)
- ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
- (for-each delete-file
- (let ((out (assoc-ref outputs "out")))
- (list (string-append out "/lib/libvamp-sdk.la")
- (string-append out "/lib/libvamp-hostsdk.la"))))
- #t)
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-after 'install 'remove-libvamp-hostsdk.la
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
+ (for-each delete-file
+ (let ((out (assoc-ref outputs "out")))
+ (list (string-append out "/lib/libvamp-sdk.la")
+ (string-append out "/lib/libvamp-hostsdk.la"))))
+ #t)))))
(inputs
`(("libsndfile" ,libsndfile)))
(native-inputs
("file" ,file)))
(arguments
'(#:phases
- (alist-cons-after
- 'unpack 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap")))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ (zero? (system* "sh" "bootstrap")))))))
(home-page "http://www.surina.net/soundtouch/")
(synopsis
"Audio processing library for changing tempo, pitch and playback rate")
(define-public soxr
(package
(name "soxr")
- (version "0.1.1")
+ (version "0.1.2")
(source
(origin
(method url-fetch)
(string-append "mirror://sourceforge/soxr/soxr-" version
"-Source.tar.xz"))
(sha256
- (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
+ (base32 "0xf2w3piwz9gfr1xqyrj4k685q5dy53kq3igv663i4f4y4sg9rjl"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ;no 'check' target
(home-page "https://sourceforge.net/p/soxr/wiki/Home/")
(define-public portaudio
(package
(name "portaudio")
- (version "19.20140130")
+ (version "190600.20161030")
(source
(origin
(method url-fetch)
(string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
".tgz"))
(sha256
- (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
+ (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
(patches (search-patches "portaudio-audacity-compat.patch"))))
(build-system gnu-build-system)
(inputs
'(#:phases
;; Autoreconf is necessary because the audacity-compat patch modifies
;; .in files.
- (alist-cons-after
- 'unpack 'autoreconf
- (lambda _
- (zero? (system* "autoreconf" "-vif")))
- %standard-phases)
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vif")))))
#:tests? #f)) ;no 'check' target
(home-page "http://www.portaudio.com/")
(synopsis "Audio I/O library")
(define-public qsynth
(package
(name "qsynth")
- (version "0.4.3")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
"/qsynth-" version ".tar.gz"))
(sha256
- (base32 "1j5hm99fjrnaw8wbmlh4qixkv3rw5dl429mp1ag7js2ydrx0j9yy"))))
+ (base32
+ "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" phase
("pulseaudio" ,pulseaudio)))
(arguments
'(#:phases
- (alist-replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (setenv "CC" "gcc")
- (zero?
- (system* "./configure"
- (string-append "--prefix=" (assoc-ref outputs "out")))))
- %standard-phases)
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "CC" "gcc")
+ (zero?
+ (system* "./configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))))))
;; No 'check' target.
#:tests? #f))
(home-page "http://themaister.net/rsound.html")
`(#: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")))
+ (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-convolver.so"
+ (string-append (assoc-ref %outputs "out")
+ "/lib/libzita-convolver.so.3"))))
;; no configure script
- (alist-delete 'configure %standard-phases)))))
+ (delete 'configure))))
(inputs `(("fftwf" ,fftwf)))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "Fast, partitioned convolution engine library")
(description
"Zita convolver is a C++ library providing a real-time convolution
"/lib/libzita-resampler.so.1"))))
;; no configure script
(delete 'configure))))
- (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
+ (home-page "https://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
`(#: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-alsa-pcmi.so"
- (string-append (assoc-ref %outputs "out")
- "/lib/libzita-alsa-pcmi.so.0")))
- ;; no configure script
- (alist-delete 'configure %standard-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-alsa-pcmi.so"
+ (string-append (assoc-ref %outputs "out")
+ "/lib/libzita-alsa-pcmi.so.0"))))
+ ;; no configure script
+ (delete 'configure))))
(inputs
`(("alsa-lib" ,alsa-lib)
("fftw" ,fftw)))
- (home-page "http://kokkinizita.linuxaudio.org")
+ (home-page "https://kokkinizita.linuxaudio.org")
(synopsis "C++ wrapper around the ALSA API")
(description
"Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
(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.")
+module to handle that particular file type. It can also generate CUE files, and
+use them split WAVE data into multiple files.")
(home-page "http://etree.org/shnutils/shntool/")
;; 'install-sh' bears the x11 license
(license (list license:gpl2+ license:x11))))
(define-public gsm
(package
(name "gsm")
- (version "1.0.14")
+ (version "1.0.17")
(source
(origin
(method url-fetch)
"-" version ".tar.gz"))
(sha256
(base32
- "0b1mx69jq88wva3wk0hi6fcl5a52qhnq2f9p3f3jdh5k61ma252q"))))
+ "00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "tst"
06.10 RPE-LTP lossy speech compression algorithm.")
(home-page "http://quut.com/gsm/")
(license (license:non-copyleft "file://COPYRIGHT"))))
+
+(define-public python-pyalsaaudio
+ (package
+ (name "python-pyalsaaudio")
+ (version "0.8.4")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyalsaaudio" version))
+ (sha256
+ (base32
+ "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; tests require access to ALSA devices.
+ (inputs
+ `(("alsa-lib" ,alsa-lib)))
+ (home-page "http://larsimmisch.github.io/pyalsaaudio/")
+ (synopsis "ALSA wrappers for Python")
+ (description
+ "This package contains wrappers for accessing the ALSA API from Python.
+It is currently fairly complete for PCM devices, and has some support for
+mixers.")
+ (license license:psfl)))
+
+(define-public python2-pyalsaaudio
+ (package-with-python2 python-pyalsaaudio))
+
+(define-public bluez-alsa
+ (package
+ (name "bluez-alsa")
+ (version "1.2.0")
+ (source (origin
+ ;; The tarballs are mere snapshots and don't contain a
+ ;; bootstrapped build system.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Arkq/bluez-alsa.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ (zero? (system* "autoreconf" "-vif")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("bluez" ,bluez)
+ ("glib" ,glib)
+ ("libbsd" ,libbsd)
+ ("ncurses" ,ncurses)
+ ("ortp" ,ortp)
+ ("sbc" ,sbc)))
+ (home-page "https://github.com/Arkq/bluez-alsa")
+ (synopsis "Bluetooth ALSA backend")
+ (description "This project is a rebirth of a direct integration between
+Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
+in favor of 3rd party audio applications. From now on, Bluez acts as a
+middleware between an audio application, which implements Bluetooth audio
+profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
+audio profiles in Bluez, so in theory every Bluetooth device (with audio
+capabilities) can be connected. In order to access the audio stream, one has
+to connect to the ALSA PCM device called @code{bluealsa}. The device is based
+on the ALSA software PCM plugin.")
+ (license license:expat)))
+
+(define-public snd
+ (package
+ (name "snd")
+ (version "17.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
+ "snd-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
+ (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")))
+ (list "--with-alsa" "--with-jack" "--with-gmp"
+ (string-append "--with-doc-dir=" docdir)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (docdir (string-append out "/share/doc/snd")))
+ (mkdir-p docdir)
+ (for-each
+ (lambda (f)
+ (install-file f docdir))
+ (find-files "." "\\.html$|COPYING"))
+ (copy-recursively "pix" (string-append docdir "/pix"))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("fftw" ,fftw)
+ ("flac" ,flac)
+ ("gmp" ,gmp)
+ ("gsl" ,gsl)
+ ("gtk+" ,gtk+)
+ ("jack" ,jack-1)
+ ("libsamplerate" ,libsamplerate)
+ ("mpc" ,mpc)
+ ("mpfr" ,mpfr)
+ ("mpg123" ,mpg123)
+ ("speex" ,speex)
+ ("timidity++" ,timidity++)
+ ("vorbis-tools" ,vorbis-tools)
+ ("wavpack" ,wavpack)))
+ (synopsis "Sound editor")
+ (home-page "https://ccrma.stanford.edu/software/snd/")
+ (description
+ "Snd is a sound editor modelled loosely after Emacs. It can be
+customized and extended using either the s7 Scheme implementation (included in
+the Snd sources), Ruby, or Forth.")
+ (license (license:non-copyleft "file://COPYING"))))
+
+(define-public noise-repellent
+ (package
+ (name "noise-repellent")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lucianodato/noise-repellent.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; there are none
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("lv2" ,lv2)
+ ("fftwf" ,fftwf)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/lucianodato/noise-repellent")
+ (synopsis "LV2 plugin for broadband noise reduction")
+ (description "Noise Repellent is an LV2 plugin to reduce noise. It has
+the following features:
+
+@enumerate
+@item Spectral gating and spectral subtraction suppression rule
+@item Adaptive and manual noise thresholds estimation
+@item Adjustable noise floor
+@item Adjustable offset of thresholds to perform over-subtraction
+@item Time smoothing and a masking estimation to reduce artifacts
+@item Basic onset detector to avoid transients suppression
+@item Whitening of the noise floor to mask artifacts and to recover higher
+ frequencies
+@item Option to listen to the residual signal
+@item Soft bypass
+@item Noise profile saved with the session
+@end enumerate
+")
+ (license license:lgpl3+)))
+
+(define-public cli-visualizer
+ (package
+ (name "cli-visualizer")
+ (version "1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dpayne/cli-visualizer/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07zkm87f2fr8kc6531zrkya7q81sdanm6813y2f54mg13g41y6hi"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("googletest" ,googletest)
+ ("ncurses" ,ncurses)
+ ("pulseaudio" ,pulseaudio)))
+ (arguments
+ '(#:test-target "test"
+ #:make-flags
+ (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-sudo
+ (lambda _
+ (substitute* "install.sh" (("sudo") ""))
+ #t))
+ (add-before 'check 'set-check-environment
+ (lambda _
+ (setenv "CXX" "g++")
+ (setenv "CC" "gcc")
+ #t))
+ (add-before 'install 'make-prefix
+ (lambda _
+ (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
+ #t))
+ (add-after 'install 'data
+ (lambda _
+ (for-each (lambda (file)
+ (install-file file
+ (string-append (assoc-ref %outputs "out")
+ "/share/doc")))
+ (find-files "examples"))
+ #t)))))
+ (home-page "https://github.com/dpayne/cli-visualizer/")
+ (synopsis "Command-line audio visualizer")
+ (description "@code{cli-visualizer} displays fast-Fourier
+transforms (FFTs) of the sound being played, as well as other graphical
+representations.")
+ (license license:expat)))
+
+(define-public cava
+ (package
+ (name "cava")
+ (version "0.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/karlstav/cava/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1p24lz3h4d0h82ffylqr7mq8a8x1c66flm2r2bsv1liw51n1rma2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("ncurses" ,ncurses)
+ ("pulseaudio" ,pulseaudio)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "PREFIX=" %output)
+ (string-append "FONT_DIR=" %output "/usr/share/consolefonts"))
+ #:make-flags
+ (let ((lib (string-append %output "/lib")))
+ (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "HOME" (getcwd))
+ (invoke "sh" "autogen.sh")))
+ (add-before 'build 'make-cava-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))))
+ (add-after 'install 'data
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file file
+ (string-append (assoc-ref outputs "out")
+ "/share/doc/examples")))
+ (find-files "example_files")))))))
+ (home-page "https://karlstav.github.io/cava/")
+ (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
+ (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
+using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
+ (license license:expat)))