;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 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 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; ;;; 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 (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 image) #:use-module (gnu packages ncurses) #:use-module (gnu packages qt) #: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 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 zip) #:use-module (srfi srfi-1)) (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.1") (source (origin (method url-fetch) (uri (string-append "http://aubio.org/pub/aubio-" version ".tar.bz2")) (sha256 (base32 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target #:configure-flags '("--enable-fftw3f" "--enable-jack" "--enable-sndfile" "--enable-samplerate" ;; 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.8") (source (origin (method git-fetch) (uri (git-reference (url "git://git.ardour.org/ardour/ardour.git") (commit version))) (snippet ;; Ardour expects this file to exist at build time. 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 "\" ; }"))))) (sha256 (base32 "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1")) (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-prefix version 1)))) #: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.1.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/audacity/audacity/archive" "/Audacity-" version ".tar.gz")) (sha256 (base32 "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b")))) (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) ("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("expat" ,expat) ("ffmpeg" ,ffmpeg) ("lame" ,lame) ("flac" ,flac) ("libid3tag" ,libid3tag) ("libmad" ,libmad) ("libsbsms" ,libsbsms) ("libsndfile" ,libsndfile) ("soundtouch" ,soundtouch) ("soxr" ,soxr) ;replaces libsamplerate ("twolame" ,twolame) ("vamp" ,vamp) ("libvorbis" ,libvorbis) ("lv2" ,lv2) ("lilv" ,lilv) ("portaudio" ,portaudio))) (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"))) (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. (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"))) #:phases (modify-phases %standard-phases ;; FFmpeg is only detected if autoreconf runs. (add-before 'configure 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))) ;; 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.0.60") (source (origin (method url-fetch) (uri (string-append "http://calf-studio-gear.org/files/calf-" version ".tar.gz")) (sha256 (base32 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9")))) (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 '(delete-file-recursively "linux_32bit")))) (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.02") (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 "0qm3ak07vc1l3f5c3c2lq9gkfknlxwn8ks03cysw1pk8hj7dwnv6")))) (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* '("src/casynth/CMakeLists.txt" "src/cheapdist/CMakeLists.txt" "src/duffer/CMakeLists.txt" "src/envfollower/CMakeLists.txt" "src/ewham/CMakeLists.txt" "src/hip2b/CMakeLists.txt" "src/lushlife/CMakeLists.txt" "src/powercut/CMakeLists.txt" "src/powerup/CMakeLists.txt" "src/stuck/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 "http://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.05") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/csound/csound6/Csound" version "/Csound" version ".tar.gz")) (sha256 (base32 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")) (patches (search-patches "csound-header-ordering.patch")))) (build-system cmake-build-system) (arguments ;; Work around this error on x86_64 with libc 2.22+: ;; libmvec.so.1: error adding symbols: DSO missing from command line (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec")) '())) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) ("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 (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"))) ;; no configure script (alist-delete 'configure %standard-phases))))) (inputs `(("alsa-lib" ,alsa-lib) ("fftw" ,fftw))) (home-page "http://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 "http://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 "http://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 "http://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 "http://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 "http://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 "http://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 "http://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 "http://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.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/fluidsynth/fluidsynth-" version "/fluidsynth-" version ".tar.gz")) (sha256 (base32 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-after 'unpack 'remove-broken-symlinks (lambda _ (delete-file-recursively "m4") #t) %standard-phases))) (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:gpl2+))) (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 (alist-cons-after 'unpack 'bootstrap (lambda _ (substitute* "bootstrap" (("\r\n") "\n")) (zero? (system* "sh" "bootstrap"))) %standard-phases))) (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.67") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/faudiostream/faust-" version ".zip")) (sha256 (base32 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1")) (snippet ;; Remove prebuilt library '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) #:tests? #f #:phases (modify-phases %standard-phases ;; no "configure" script (delete 'configure)))) (native-inputs `(("unzip" ,unzip))) (home-page "http://faust.grame.fr/") (synopsis "Signal processing language") (description "Faust is a programming language for realtime audio signal processing.") (license license:gpl2+))) (define-public faust-2 (package (inherit faust) (version "2.0.a51") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/faudiostream/faust-" version ".tgz")) (sha256 (base32 "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf")))) (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" ,vim) ("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")) (system* "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))))) (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.35.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/guitarix/guitarix/guitarix2-" version ".tar.xz")) (sha256 (base32 "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j")))) (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)))) (inputs (alist-delete "webkitgtk/gtk+-2" (package-inputs guitarix))))) (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