;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018 okapi ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages audio) #: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) #: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 avahi) #:use-module (gnu packages boost) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages emacs) #: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 gnunet) ; libmicrohttpd #:use-module (gnu packages gperf) #:use-module (gnu packages icu4c) #: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 perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages serialization) #: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 webkit) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #: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 (name "alsa-modular-synth") (version "2.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/alsamodular/alsamodular" "/" version "/ams-" version ".tar.bz2")) (sha256 (base32 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-qt5" "CXXFLAGS=-std=gnu++11") #:phases (modify-phases %standard-phases ;; Insert an extra space between linker flags. (add-before 'configure 'add-missing-space (lambda _ (substitute* "configure" (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"") (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\"")) #t))))) (inputs `(("alsa-lib" ,alsa-lib) ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to ;; license incompatibility. ("clalsadrv" ,clalsadrv) ("fftw" ,fftw) ("jack" ,jack-1) ("ladspa" ,ladspa) ("liblo" ,liblo) ("qtbase" ,qtbase) ("qttools" ,qttools))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://alsamodular.sourceforge.net/") (synopsis "Realtime modular synthesizer and effect processor") (description "AlsaModularSynth is a digital implementation of a classical analog modular synthesizer system. It uses virtual control voltages to control the parameters of the modules. The control voltages which control the frequency e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled Filter) modules follow the convention of 1V / Octave.") (license license:gpl2))) (define-public aubio (package (name "aubio") (version "0.4.6") (source (origin (method url-fetch) (uri (string-append "http://aubio.org/pub/aubio-" version ".tar.bz2")) (sha256 (base32 "1yvwskahx1bf3x2fvi6cwah1ay11iarh79fjlqz8s887y3hkpixx")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") "--enable-fftw3f" "--enable-jack" "--enable-sndfile" "--enable-samplerate" ;; TODO: enable compilation with avcodec once available. "--disable-avcodec") #:python ,python-2)) (inputs `(("jack" ,jack-1) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) ("fftwf" ,fftwf))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://aubio.org/") (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 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 "5.12") (source (origin (method git-fetch) (uri (git-reference (url "https://git.ardour.org/ardour/ardour.git") (commit version))) (snippet ;; Ardour expects this file to exist at build time. The revision ;; is the output of ;; git describe HEAD | sed 's/^[A-Za-z]*+//' `(call-with-output-file "libs/ardour/revision.cc" (lambda (port) (format port ,(string-append "#include \"ardour/revision.h\" namespace ARDOUR { const char* revision = \"" version "\" ; }")) #t))) (sha256 (base32 "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments `(#:configure-flags '("--cxx11" ; required by gtkmm "--no-phone-home" ; don't contact ardour.org "--freedesktop" ; install .desktop file "--test") ; build unit tests #:phases (modify-phases %standard-phases (add-after 'unpack 'set-rpath-in-LDFLAGS ,(ardour-rpath-phase (version-major version)))) #:test-target "test" #:python ,python-2)) (inputs `(("alsa-lib" ,alsa-lib) ("aubio" ,aubio) ("lrdf" ,lrdf) ("boost" ,boost) ("atkmm" ,atkmm) ("cairomm" ,cairomm) ("eudev" ,eudev) ("gtkmm" ,gtkmm-2) ("glibmm" ,glibmm) ("libart-lgpl" ,libart-lgpl) ("libgnomecanvasmm" ,libgnomecanvasmm) ("pangomm" ,pangomm) ("liblo" ,liblo) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) ("libxml2" ,libxml2) ("libogg" ,libogg) ("libvorbis" ,libvorbis) ("flac" ,flac) ("lv2" ,lv2) ("vamp" ,vamp) ("curl" ,curl) ("fftw" ,fftw) ("fftwf" ,fftwf) ("jack" ,jack-1) ("serd" ,serd) ("sord" ,sord) ("sratom" ,sratom) ("suil" ,suil) ("lilv" ,lilv) ("readline" ,readline) ("redland" ,redland) ("rubberband" ,rubberband) ("libarchive" ,libarchive) ("taglib" ,taglib) ("python-rdflib" ,python-rdflib))) (native-inputs `(("perl" ,perl) ("cppunit" ,cppunit) ("itstool" ,itstool) ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (home-page "http://ardour.org") (synopsis "Digital audio workstation") (description "Ardour is a multi-channel digital audio workstation, allowing users to record, edit, mix and master audio and MIDI projects. It is targeted at audio engineers, musicians, soundtrack editors and composers.") (license license:gpl2+))) (define-public audacity (package (name "audacity") (version "2.2.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/audacity/audacity/archive" "/Audacity-" version ".tar.gz")) (sha256 (base32 "18q7i77ynihx7xp45lz2lv0k0wrh6736pcrivlpwrxjgbvyqx7km")) (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 `(("wxwidgets" ,wxwidgets) ("gtk" ,gtk+) ("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("expat" ,expat) ("ffmpeg" ,ffmpeg) ("lame" ,lame) ("flac" ,flac) ("libid3tag" ,libid3tag) ("libmad" ,libmad) ;;("libsbsms" ,libsbsms) ;bundled version is modified ("libsndfile" ,libsndfile) ("soundtouch" ,soundtouch) ("soxr" ,soxr) ;replaces libsamplerate ("twolame" ,twolame) ("vamp" ,vamp) ("libvorbis" ,libvorbis) ("lv2" ,lv2) ("lilv" ,lilv) ;for lv2 ("suil" ,suil) ;for lv2 ("portaudio" ,portaudio) ("portmidi" ,portmidi))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext" ,gettext-minimal) ;for msgfmt ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("python" ,python-2) ("which" ,which))) (arguments `(#:configure-flags (let ((libid3tag (assoc-ref %build-inputs "libid3tag")) (libmad (assoc-ref %build-inputs "libmad")) (portmidi (assoc-ref %build-inputs "portmidi"))) (list ;; Loading FFmpeg dynamically is problematic. "--disable-dynamic-loading" ;; 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 "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 (add-after 'unpack 'fix-sbsms-check (lambda _ ;; 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 ;; . #:tests? #f)) (home-page "http://audacity.sourceforge.net/") (synopsis "Software for recording and editing sounds") (description "Audacity is a multi-track audio editor designed for recording, playing and editing digital audio. It features digital effects and spectrum analysis tools.") (license license:gpl2+))) (define-public azr3 (package (name "azr3") (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-" version ".tar.bz2")) (sha256 (base32 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc")) (patches (search-patches "azr3.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target #:make-flags (list "LV2PEG=ttl2c" "CXXFLAGS=-std=gnu++11" "CFLAGS=-std=gnu++11" (string-append "prefix=" %output) (string-append "pkgdatadir=" %output "/share/azr3-jack")))) (inputs `(("gtkmm" ,gtkmm-2) ("lvtk" ,lvtk) ("jack" ,jack-1) ("lash" ,lash))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://ll-plugins.nongnu.org/azr3/") (synopsis "Tonewheel organ synthesizer") (description "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ with drawbars, distortion and rotating speakers. The organ has three sections, two polyphonic sections with nine drawbars each and one monophonic bass section with five drawbars. A standalone JACK application and LV2 plugins are provided.") (license license:gpl2))) (define-public calf (package (name "calf") (version "0.90.1") (source (origin (method url-fetch) (uri (string-append "https://calf-studio-gear.org/files/calf-" version ".tar.gz")) (sha256 (base32 "0znwx5gidr5n503gya9n8gagr8cfym6cwlbiv2r6iksji7jc4fpb")))) (build-system gnu-build-system) (inputs `(("fluidsynth" ,fluidsynth) ("expat" ,expat) ("glib" ,glib) ("gtk" ,gtk+-2) ("cairo" ,cairo) ("lash" ,lash) ("jack" ,jack-1) ("lv2" ,lv2) ("ladspa" ,ladspa) ("fftw" ,fftw))) (native-inputs `(("pkg-config" ,pkg-config))) (native-search-paths (list (search-path-specification (variable "LV2_PATH") (files '("lib/lv2"))))) (home-page "http://calf.sourceforge.net/") (synopsis "Audio plug-in pack for LV2 and JACK environments") (description "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments. The suite contains lots of effects (delay, modulation, signal processing, filters, equalizers, dynamics, distortion and mastering effects), instruments (SF2 player, organ simulator and a monophonic synthesizer) and tools (analyzer, mono/stereo tools, crossovers).") ;; calfjackhost is released under GPLv2+ ;; The plugins are released under LGPLv2.1+ (license (list license:lgpl2.1+ license:gpl2+)))) (define-public espeak (package (name "espeak") (version "1.48.04") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/espeak/espeak/" "espeak-" (version-major+minor version) "/espeak-" version "-source.zip")) (sha256 (base32 "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz")) (modules '((guix build utils))) (snippet ;; remove prebuilt binaries '(begin (delete-file-recursively "linux_32bit") #t)))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "DATADIR=" (assoc-ref %outputs "out") "/share/espeak-data") (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") "AUDIO=pulseaudio") #:tests? #f ; no check target #:phases (modify-phases %standard-phases (replace 'configure (lambda _ (chdir "src") ;; We use version 19 of the PortAudio library, so we must copy the ;; corresponding file to be sure that espeak compiles correctly. (copy-file "portaudio19.h" "portaudio.h") (substitute* "Makefile" (("/bin/ln") "ln")) #t))))) (inputs `(("portaudio" ,portaudio) ("pulseaudio" ,pulseaudio))) (native-inputs `(("unzip" ,unzip))) (home-page "http://espeak.sourceforge.net/") (synopsis "Software speech synthesizer") (description "eSpeak is a software speech synthesizer for English and other languages. eSpeak uses a \"formant synthesis\" method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, but is not as natural or smooth as larger synthesizers which are based on human speech recordings.") (license license:gpl3+))) (define-public infamous-plugins (package (name "infamous-plugins") (version "0.2.04") (source (origin (method url-fetch) (uri (string-append "https://github.com/ssj71/infamousPlugins/" "archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1n6rhqsmvad7692w2h01niw5gqg5yk7a09wxl5ivs77zyp93vf7z")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-compiler-flags (lambda _ (substitute* (find-files "." "CMakeLists.txt") (("-msse2 -mfpmath=sse") "")) #t))))) (inputs `(("cairo" ,cairo) ("fftwf" ,fftwf) ("lv2" ,lv2) ("ntk" ,ntk) ("zita-resampler" ,zita-resampler))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://ssj71.github.io/infamousPlugins") (synopsis "LV2 plugins for live use") (description "The infamous plugins are a collection of LV2 audio plugins for live performances. The plugins include a cellular automaton synthesizer, an envelope follower, distortion effects, tape effects and more.") (license license:gpl2+))) (define-public swh-plugins-lv2 (package (name "swh-plugins-lv2") (version "1.0.16") (source (origin (method url-fetch) (uri (string-append "https://github.com/swh/" "lv2/archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0j1mih0lp4fds07knp5i32in515sh0df1qi6694pmyz2wqnm295w")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-after 'unpack 'patch-makefile-and-enter-directory ;; The default install target doesn't install, but the ;; "install-system" target does. (lambda _ (substitute* "Makefile" (("install:") "install: install-system")) #t))))) (inputs `(("lv2" ,lv2) ("fftwf" ,fftwf))) (native-inputs `(("libxslt" ,libxslt) ("pkg-config" ,pkg-config))) (home-page "http://plugin.org.uk") (synopsis "SWH plugins in LV2 format") (description "Swh-plugins-lv2 is a collection of audio plugins in LV2 format. Plugin classes include: dynamics (compressor, limiter), time (delay, chorus, flanger), ringmodulator, distortion, filters, pitchshift, oscillators, emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (license license:gpl3+))) (define-public csound (package (name "csound") (version "6.09.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/csound/csound/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4")))) (build-system cmake-build-system) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) ("pulseaudio" ,pulseaudio) ("libsndfile" ,libsndfile) ("liblo" ,liblo) ("ladspa" ,ladspa) ("jack" ,jack-1) ("gettext" ,gettext-minimal))) (native-inputs `(("bison" ,bison) ("flex" ,flex) ("zlib" ,zlib))) (home-page "http://csound.github.io/") (synopsis "Sound and music computing system") (description "Csound is a user-programmable and user-extensible sound processing language and software synthesizer.") (license license:lgpl2.1+))) (define-public clalsadrv (package (name "clalsadrv") (version "2.0.0") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/clalsadrv-" version ".tar.bz2")) (sha256 (base32 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq")))) (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" (("/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 (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) ("fftw" ,fftw))) (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 ALSA PCM devices.") (license license:gpl2+))) (define-public amb-plugins (package (name "amb-plugins") (version "0.8.1") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/AMB-plugins-" version ".tar.bz2")) (sha256 (base32 "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory-and-tool-paths (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr/lib/ladspa") (string-append (assoc-ref outputs "out") "/lib/ladspa")) (("/usr/bin/install") (which "install")) (("/bin/rm") "#")) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA ambisonics plugins") (description "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be used within Ardour. Features include: mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.") (license license:gpl2+))) (define-public mcp-plugins (package (name "mcp-plugins") (version "0.4.0") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/MCP-plugins-" version ".tar.bz2")) (sha256 (base32 "06a9r1l85jmg7l1cvc3788mk8ra0xagjfy1rmhw3b80y4n0vlnvc")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (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 @code{cs_phaser} provide chorus and phaser effects, respectively; @code{mvclpf24} provides four implementations of the low-pass filter used in vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled high-pass filter by Robert Moog. The filters attempt to accurately emulate the non-linear circuit elements of their original analog counterparts.") (license license:gpl2+))) (define-public rev-plugins (package (name "rev-plugins") (version "0.7.1") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/REV-plugins-" version ".tar.bz2")) (sha256 (base32 "1ikpinxm00pkfi259bnkzhsy3miagrjgdihaaf5x4v7zac29j3g7")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA reverb plugin") (description "This package provides a stereo reverb LADSPA plugin based on the well-known greverb.") (license license:gpl2+))) (define-public fil-plugins (package (name "fil-plugins") (version "0.3.0") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/FIL-plugins-" version ".tar.bz2")) (sha256 (base32 "1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (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 equalizer. Each section has an active/bypass switch, frequency, bandwidth and gain controls. There is also a global bypass switch and gain control. The 2nd order resonant filters are implemented using a Mitra-Regalia style lattice filter, which is stable even while parameters are being changed. All switches and controls are internally smoothed, so they can be used 'live' without any clicks or zipper noises. This makes this plugin suitable for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.") (license license:gpl2+))) (define-public ste-plugins (package (name "ste-plugins") (version "0.0.2") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/STE-plugins-" version ".tar.bz2")) (sha256 (base32 "0s3c9w5xihs87cnd1lh9xgj3maabjdyh6bl766qp5lhkg3ax8zy6")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA stereo width plugin") (description "This package provides a LADSPA plugin to manipulate the stereo width of audio signals.") (license license:gpl2+))) (define-public vco-plugins (package (name "vco-plugins") (version "0.3.0") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/VCO-plugins-" version ".tar.bz2")) (sha256 (base32 "1xzqdg3b07r7zww05y9bb737l9dxvfkv28m3fyak1aazaci3rsgl")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out")) (("/bin/cp") (which "cp"))) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA plugin for synthesizer oscillators") (description "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators: @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 @end enumerate\n All oscillators are low-pass filtered to provide waveforms similar to the output of analog synthesizers such as the Moog Voyager.") (license license:gpl2+))) (define-public wah-plugins (package (name "wah-plugins") (version "0.1.0") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/WAH-plugins-" version ".tar.bz2")) (sha256 (base32 "1wkbjarxdhjixkh7d5abralj11dj2xxg644fz3ycd7qyfgfvjfgd")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA Autowah effect plugin") (description "This package provides a LADSPA plugin for a Wah effect with envelope follower.") (license license:gpl2+))) (define-public g2reverb (package (name "g2reverb") (version "0.7.1") (source (origin (method url-fetch) (uri (string-append "http://kokkinizita.linuxaudio.org" "/linuxaudio/downloads/g2reverb-" version ".tar.bz2")) (sha256 (base32 "18wb8vj1kky5glr76s34awbi8qzplsmf3wjbd7a12hfv4j0bkwrj")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases ;; no configure script (delete 'configure) (add-before 'install 'prepare-target-directory (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa")) #t)) (add-after 'unpack 'override-target-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t))))) (home-page "https://kokkinizita.linuxaudio.org") (synopsis "LADSPA stereo reverb plugin") (description "This package provides a LADSPA plugin for a stereo reverb effect.") (license license:gpl2+))) (define-public fluidsynth (package (name "fluidsynth") (version "1.1.11") (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")) (sha256 (base32 "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-libdir (lambda _ ;; Install libraries to /lib, not /lib64. (substitute* "CMakeLists.txt" (("LIB_SUFFIX \\$\\{_init_lib_suffix\\}") "LIB_SUFFIX \"\"")) #t))))) (inputs `(("libsndfile" ,libsndfile) ("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("ladspa" ,ladspa) ("lash" ,lash) ("readline" ,readline) ("glib" ,glib))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.fluidsynth.org/") (synopsis "SoundFont synthesizer") (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 also play midifiles using a Soundfont.") (license license:lgpl2.1+))) (define-public faad2 (package (name "faad2") (version "2.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-" version "/faad2-" version ".zip")) (sha256 (base32 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) ("unzip" ,unzip))) (arguments '(#:phases (modify-phases %standard-phases (replace 'bootstrap (lambda _ (substitute* "bootstrap" (("\r\n") "\n")) (invoke "sh" "bootstrap")))))) (home-page "http://www.audiocoding.com/faad2.html") (synopsis "MPEG-4 and MPEG-2 AAC decoder") (description "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, PS, and DAB+.") (license license:gpl2))) (define-public faust (package (name "faust") (version "0.9.90") (source (origin (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 "0qc6iwjd3i80jdyjc186c6ywipmjzl8wlsp4050pbr56q4rlkd4z")))) (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) ;; 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/") (synopsis "Signal processing language") (description "Faust is a programming language for realtime audio signal processing.") (license license:gpl2+))) (define-public faust-2 (package (inherit faust) (version "2.1.0") (source (origin (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 "06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments faust) ((#:make-flags flags) `(list (string-append "prefix=" (assoc-ref %outputs "out")) "world")))) (native-inputs `(("llvm" ,llvm-with-rtti) ("which" ,which) ("xxd" ,xxd) ("ctags" ,emacs-minimal) ; for ctags ("pkg-config" ,pkg-config))) (inputs `(("libsndfile" ,libsndfile) ("libmicrohttpd" ,libmicrohttpd) ("ncurses" ,ncurses) ("openssl" ,openssl) ("zlib" ,zlib))))) (define-public freepats (package (name "freepats") (version "20060219") (source (origin (method url-fetch) (uri (string-append "http://freepats.zenvoid.org/freepats-" version ".tar.bz2")) (sha256 (base32 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils)) (let ((out (string-append %output "/share/freepats"))) (setenv "PATH" (string-append (assoc-ref %build-inputs "bzip2") "/bin:" (assoc-ref %build-inputs "tar") "/bin")) (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir "freepats") ;; Use absolute pattern references (substitute* "freepats.cfg" (("Tone_000") (string-append out "/Tone_000")) (("Drum_000") (string-append out "/Drum_000"))) (mkdir-p out) (copy-recursively "." out) #t)))) (native-inputs `(("tar" ,tar) ("bzip2" ,bzip2))) (home-page "http://freepats.zenvoid.org") (synopsis "GUS compatible patches for MIDI players") (description "FreePats is a project to create a free and open set of GUS compatible 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.37.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/guitarix/guitarix/guitarix2-" version ".tar.xz")) (sha256 (base32 "064k0jzxqgx9gwf8za6jziansabzrwzjaim3qx1743ify5g3gaai")))) (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) ("fftwf" ,fftwf) ("lrdf" ,lrdf) ("zita-resampler" ,zita-resampler) ("zita-convolver" ,zita-convolver))) (native-inputs `(("gperf" ,gperf) ("faust" ,faust) ("intltool" ,intltool) ("gettext" ,gettext-minimal) ("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 guitarix-lv2 (package (inherit guitarix) (name "guitarix-lv2") (arguments (substitute-keyword-arguments (package-arguments guitarix) ((#:configure-flags flags) `(cons "--lv2-only" ,flags)))))) (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 = 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")) (doc (string-append out "/share/doc/" ,name "-" ,version))) (for-each (lambda (f) (install-file f doc)) (find-files "." "\\.html$|COPYING")) (copy-recursively "pix" (string-append doc "/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.1") (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 "13d72swnjs894llf0paandmhf1lf90dz6ygkcdw4bv84wzkq1f4q")))) (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 (replace '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))) (define-public fluid-3 (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951")) (package (name "fluid-3") (version "2.1") (source (origin (method url-fetch) ;; Only one file is required, but the release bundles the whole ;; software which is 50MiB as tar and 200MiB unpacked. The website ;; directly links the soundfont release to the github file download. (uri (string-append "https://github.com/musescore/MuseScore/raw/" commit "/share/sound/FluidR3Mono_GM.sf3")) (file-name (string-append name "-" version ".sf3")) (sha256 (base32 "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils)) (let ((file (assoc-ref %build-inputs "source")) (out (string-append %output "/share/soundfonts"))) (mkdir-p out) (copy-file file (string-append out "/FluidR3Mono_GM.sf3")) #t)))) (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound") (synopsis "Pro-quality GM soundfont") (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.") (license license:expat))))