X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/b1fb59d3ef8e54ec1188ec702fcc9b776201aac6..de67e922885baf68a746a0484ca0b45e45b0964b:/gnu/packages/audio.scm diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index f6881883bb..7bcc3c3337 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,7 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 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 ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,9 +31,11 @@ #: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 base) #:use-module (gnu packages bison) @@ -39,10 +44,14 @@ #:use-module (gnu packages databases) #: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 gperf) + #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages qt) #:use-module (gnu packages linux) @@ -53,23 +62,36 @@ #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages webkit) #: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.1") + (version "2.1.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/alsamodular/ams-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/alsamodular/alsamodular" + "/" version "/ams-" version ".tar.bz2")) (sha256 (base32 - "1nb7qzzqlqa2x8h797jbwi18ihnfkxqg9lyi0c4nvf8ybwzxkzd2")))) + "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-qt5") + #: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 @@ -79,7 +101,8 @@ ("jack" ,jack-1) ("ladspa" ,ladspa) ("liblo" ,liblo) - ("qt" ,qt-4))) + ("qtbase" ,qtbase) + ("qttools" ,qttools))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://alsamodular.sourceforge.net/") @@ -122,7 +145,7 @@ Filter) modules follow the convention of 1V / Octave.") (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://aubio.org/") - (synopsis "A library for audio labelling") + (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 @@ -146,33 +169,32 @@ streams from live audio.") libdir "/vamp" "\"]")))) #t)) -(define-public ardour-3 +(define-public ardour (package (name "ardour") - (version "3.5.403") + (version "4.7") (source (origin - ;; The project only provides tarballs upon individual request - ;; (or after payment) so we take the code from git. (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. It can be - ;; created from a git checkout with: - ;; ./waf create_stored_revision + ;; 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 "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) +namespace ARDOUR { const char* revision = \"4.7-219-g0e36f8e\" ; }")))) (sha256 (base32 - "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp")) + "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments - `(#:phases + `(#:configure-flags '("--cxx11") ; required by gtkmm + #:phases (modify-phases %standard-phases (add-after 'unpack 'set-rpath-in-LDFLAGS @@ -224,35 +246,6 @@ 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 ardour - (package (inherit ardour-3) - (name "ardour") - (version "4.0") - (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. It can be - ;; created from a git checkout with: - ;; ./waf create_stored_revision - '(call-with-output-file - "libs/ardour/revision.cc" - (lambda (port) - (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"4.0\" ; }")))) - (sha256 - (base32 - "0a8bydc24xv0cahdqfaxdmi1f43cyr9psiyshxpbrkdqw2c7a4xi")) - (file-name (string-append name "-" version)))) - (arguments - (substitute-keyword-arguments (package-arguments ardour-3) - ((#:phases phases) - `(modify-phases ,phases - (replace 'set-rpath-in-LDFLAGS - ,(ardour-rpath-phase (version-prefix version 1))))))))) - (define-public azr3 (package (name "azr3") @@ -295,9 +288,8 @@ plugins are provided.") (version "0.0.60") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/calf/calf/" - version "/calf-" version ".tar.gz")) + (uri (string-append "http://calf-studio-gear.org/files/calf-" + version ".tar.gz")) (sha256 (base32 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9")))) @@ -334,7 +326,7 @@ tools (analyzer, mono/stereo tools, crossovers).") (define-public csound (package (name "csound") - (version "6.04") + (version "6.05") (source (origin (method url-fetch) (uri (string-append @@ -342,8 +334,15 @@ tools (analyzer, mono/stereo tools, crossovers).") version "/Csound" version ".tar.gz")) (sha256 (base32 - "1030w38lxdwjz1irr32m9cl0paqmgr02lab2m7f7j1yihwxj1w0g")))) + "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) @@ -409,6 +408,319 @@ language and software synthesizer.") 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") @@ -444,7 +756,7 @@ ALSA PCM devices.") (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 +device. It is the software analogue of a MIDI synthesizer. FluidSynth can also play midifiles using a Soundfont.") (license license:gpl2+))) @@ -454,8 +766,8 @@ also play midifiles using a Soundfont.") (version "2.7") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/faac/faad2-" version ".zip")) + (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-" + version "/faad2-" version ".zip")) (sha256 (base32 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z")))) @@ -490,18 +802,17 @@ PS, and DAB+.") "mirror://sourceforge/faudiostream/faust-" version ".zip")) (sha256 (base32 - "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1")))) + "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 - (add-after - 'unpack 'remove-prebuilt-library - (lambda _ - (delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so") - #t)) + ;; no "configure" script (delete 'configure)))) (native-inputs `(("unzip" ,unzip))) @@ -550,6 +861,114 @@ 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.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/guitarix/guitarix/guitarix2-" + version ".tar.xz")) + (sha256 + (base32 + "10hijqrrl8xil46kgsac10ysfxysisxlibm2rz133zyig5n63jdw")))) + (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) + ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2) + ("fftwf" ,fftwf) + ("lrdf" ,lrdf) + ("zita-resampler" ,zita-resampler) + ("zita-convolver" ,zita-convolver))) + (native-inputs + `(("gperf" ,gperf) + ("faust" ,faust) + ("intltool" ,intltool) + ("gettext" ,gnu-gettext) + ("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 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