gnu: python-pandas: Fix build on 32-bit.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
3 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
5 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
7 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
8 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
9 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
10 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
11 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
12 ;;;
13 ;;; This file is part of GNU Guix.
14 ;;;
15 ;;; GNU Guix is free software; you can redistribute it and/or modify it
16 ;;; under the terms of the GNU General Public License as published by
17 ;;; the Free Software Foundation; either version 3 of the License, or (at
18 ;;; your option) any later version.
19 ;;;
20 ;;; GNU Guix is distributed in the hope that it will be useful, but
21 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;; GNU General Public License for more details.
24 ;;;
25 ;;; You should have received a copy of the GNU General Public License
26 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28 (define-module (gnu packages audio)
29 #:use-module (guix packages)
30 #:use-module (guix download)
31 #:use-module (guix git-download)
32 #:use-module (guix utils)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix build-system gnu)
35 #:use-module (guix build-system waf)
36 #:use-module (guix build-system trivial)
37 #:use-module (guix build-system cmake)
38 #:use-module (guix build-system python)
39 #:use-module (gnu packages)
40 #:use-module (gnu packages algebra)
41 #:use-module (gnu packages autotools)
42 #:use-module (gnu packages avahi)
43 #:use-module (gnu packages boost)
44 #:use-module (gnu packages backup)
45 #:use-module (gnu packages base)
46 #:use-module (gnu packages bison)
47 #:use-module (gnu packages check)
48 #:use-module (gnu packages compression)
49 #:use-module (gnu packages curl)
50 #:use-module (gnu packages databases)
51 #:use-module (gnu packages emacs)
52 #:use-module (gnu packages file)
53 #:use-module (gnu packages flex)
54 #:use-module (gnu packages fltk)
55 #:use-module (gnu packages fontutils)
56 #:use-module (gnu packages gettext)
57 #:use-module (gnu packages glib)
58 #:use-module (gnu packages gtk)
59 #:use-module (gnu packages gnome)
60 #:use-module (gnu packages gnunet) ; libmicrohttpd
61 #:use-module (gnu packages gperf)
62 #:use-module (gnu packages image)
63 #:use-module (gnu packages ncurses)
64 #:use-module (gnu packages qt)
65 #:use-module (gnu packages linux)
66 #:use-module (gnu packages llvm)
67 #:use-module (gnu packages mp3) ;taglib
68 #:use-module (gnu packages perl)
69 #:use-module (gnu packages pkg-config)
70 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
71 #:use-module (gnu packages python)
72 #:use-module (gnu packages rdf)
73 #:use-module (gnu packages readline)
74 #:use-module (gnu packages tls)
75 #:use-module (gnu packages video)
76 #:use-module (gnu packages vim) ;xxd
77 #:use-module (gnu packages webkit)
78 #:use-module (gnu packages xiph)
79 #:use-module (gnu packages xml)
80 #:use-module (gnu packages xorg)
81 #:use-module (gnu packages zip)
82 #:use-module (srfi srfi-1))
83
84 (define-public alsa-modular-synth
85 (package
86 (name "alsa-modular-synth")
87 (version "2.1.2")
88 (source (origin
89 (method url-fetch)
90 (uri (string-append "mirror://sourceforge/alsamodular/alsamodular"
91 "/" version "/ams-" version ".tar.bz2"))
92 (sha256
93 (base32
94 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
95 (build-system gnu-build-system)
96 (arguments
97 `(#:configure-flags
98 '("--enable-qt5"
99 "CXXFLAGS=-std=gnu++11")
100 #:phases
101 (modify-phases %standard-phases
102 ;; Insert an extra space between linker flags.
103 (add-before 'configure 'add-missing-space
104 (lambda _
105 (substitute* "configure"
106 (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
107 (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
108 #t)))))
109 (inputs
110 `(("alsa-lib" ,alsa-lib)
111 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
112 ;; license incompatibility.
113 ("clalsadrv" ,clalsadrv)
114 ("fftw" ,fftw)
115 ("jack" ,jack-1)
116 ("ladspa" ,ladspa)
117 ("liblo" ,liblo)
118 ("qtbase" ,qtbase)
119 ("qttools" ,qttools)))
120 (native-inputs
121 `(("pkg-config" ,pkg-config)))
122 (home-page "http://alsamodular.sourceforge.net/")
123 (synopsis "Realtime modular synthesizer and effect processor")
124 (description
125 "AlsaModularSynth is a digital implementation of a classical analog
126 modular synthesizer system. It uses virtual control voltages to control the
127 parameters of the modules. The control voltages which control the frequency
128 e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
129 Filter) modules follow the convention of 1V / Octave.")
130 (license license:gpl2)))
131
132 (define-public aubio
133 (package
134 (name "aubio")
135 (version "0.4.1")
136 (source (origin
137 (method url-fetch)
138 (uri (string-append
139 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
140 (sha256
141 (base32
142 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
143 (build-system waf-build-system)
144 (arguments
145 `(#:tests? #f ; no check target
146 #:configure-flags
147 '("--enable-fftw3f"
148 "--enable-jack"
149 "--enable-sndfile"
150 "--enable-samplerate"
151 ;; enable compilation with avcodec once available
152 "--disable-avcodec")
153 #:python ,python-2))
154 (inputs
155 `(("jack" ,jack-1)
156 ("libsndfile" ,libsndfile)
157 ("libsamplerate" ,libsamplerate)
158 ("fftwf" ,fftwf)))
159 (native-inputs
160 `(("pkg-config" ,pkg-config)))
161 (home-page "http://aubio.org/")
162 (synopsis "Library for audio labelling")
163 (description
164 "aubio is a tool designed for the extraction of annotations from audio
165 signals. Its features include segmenting a sound file before each of its
166 attacks, performing pitch detection, tapping the beat and producing MIDI
167 streams from live audio.")
168 (license license:gpl3+)))
169
170 (define (ardour-rpath-phase major-version)
171 `(lambda* (#:key outputs #:allow-other-keys)
172 (let ((libdir (string-append (assoc-ref outputs "out")
173 "/lib/ardour" ,major-version)))
174 (substitute* "wscript"
175 (("linker_flags = \\[\\]")
176 (string-append "linker_flags = [\""
177 "-Wl,-rpath="
178 libdir ":"
179 libdir "/backends" ":"
180 libdir "/engines" ":"
181 libdir "/panners" ":"
182 libdir "/surfaces" ":"
183 libdir "/vamp" "\"]"))))
184 #t))
185
186 (define-public ardour
187 (package
188 (name "ardour")
189 (version "5.8")
190 (source (origin
191 (method git-fetch)
192 (uri (git-reference
193 (url "git://git.ardour.org/ardour/ardour.git")
194 (commit version)))
195 (snippet
196 ;; Ardour expects this file to exist at build time. The revision
197 ;; is the output of
198 ;; git describe HEAD | sed 's/^[A-Za-z]*+//'
199 `(call-with-output-file
200 "libs/ardour/revision.cc"
201 (lambda (port)
202 (format port ,(string-append "#include \"ardour/revision.h\"
203 namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
204 (sha256
205 (base32
206 "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1"))
207 (file-name (string-append name "-" version))))
208 (build-system waf-build-system)
209 (arguments
210 `(#:configure-flags '("--cxx11" ; required by gtkmm
211 "--no-phone-home" ; don't contact ardour.org
212 "--freedesktop" ; install .desktop file
213 "--test") ; build unit tests
214 #:phases
215 (modify-phases %standard-phases
216 (add-after
217 'unpack 'set-rpath-in-LDFLAGS
218 ,(ardour-rpath-phase (version-prefix version 1))))
219 #:test-target "test"
220 #:python ,python-2))
221 (inputs
222 `(("alsa-lib" ,alsa-lib)
223 ("aubio" ,aubio)
224 ("lrdf" ,lrdf)
225 ("boost" ,boost)
226 ("atkmm" ,atkmm)
227 ("cairomm" ,cairomm)
228 ("eudev" ,eudev)
229 ("gtkmm" ,gtkmm-2)
230 ("glibmm" ,glibmm)
231 ("libart-lgpl" ,libart-lgpl)
232 ("libgnomecanvasmm" ,libgnomecanvasmm)
233 ("pangomm" ,pangomm)
234 ("liblo" ,liblo)
235 ("libsndfile" ,libsndfile)
236 ("libsamplerate" ,libsamplerate)
237 ("libxml2" ,libxml2)
238 ("libogg" ,libogg)
239 ("libvorbis" ,libvorbis)
240 ("flac" ,flac)
241 ("lv2" ,lv2)
242 ("vamp" ,vamp)
243 ("curl" ,curl)
244 ("fftw" ,fftw)
245 ("fftwf" ,fftwf)
246 ("jack" ,jack-1)
247 ("serd" ,serd)
248 ("sord" ,sord)
249 ("sratom" ,sratom)
250 ("suil" ,suil)
251 ("lilv" ,lilv)
252 ("readline" ,readline)
253 ("redland" ,redland)
254 ("rubberband" ,rubberband)
255 ("libarchive" ,libarchive)
256 ("taglib" ,taglib)
257 ("python-rdflib" ,python-rdflib)))
258 (native-inputs
259 `(("perl" ,perl)
260 ("cppunit" ,cppunit)
261 ("itstool" ,itstool)
262 ("gettext" ,gettext-minimal)
263 ("pkg-config" ,pkg-config)))
264 (home-page "http://ardour.org")
265 (synopsis "Digital audio workstation")
266 (description
267 "Ardour is a multi-channel digital audio workstation, allowing users to
268 record, edit, mix and master audio and MIDI projects. It is targeted at audio
269 engineers, musicians, soundtrack editors and composers.")
270 (license license:gpl2+)))
271
272 (define-public azr3
273 (package
274 (name "azr3")
275 (version "1.2.3")
276 (source (origin
277 (method url-fetch)
278 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
279 version
280 ".tar.bz2"))
281 (sha256
282 (base32
283 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))
284 (patches (search-patches "azr3.patch"))))
285 (build-system gnu-build-system)
286 (arguments
287 `(#:tests? #f ; no check target
288 #:make-flags
289 (list "LV2PEG=ttl2c"
290 "CXXFLAGS=-std=gnu++11"
291 "CFLAGS=-std=gnu++11"
292 (string-append "prefix=" %output)
293 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
294 (inputs
295 `(("gtkmm" ,gtkmm-2)
296 ("lvtk" ,lvtk)
297 ("jack" ,jack-1)
298 ("lash" ,lash)))
299 (native-inputs
300 `(("pkg-config" ,pkg-config)))
301 (home-page "http://ll-plugins.nongnu.org/azr3/")
302 (synopsis "Tonewheel organ synthesizer")
303 (description
304 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
305 with drawbars, distortion and rotating speakers. The organ has three
306 sections, two polyphonic sections with nine drawbars each and one monophonic
307 bass section with five drawbars. A standalone JACK application and LV2
308 plugins are provided.")
309 (license license:gpl2)))
310
311 (define-public calf
312 (package
313 (name "calf")
314 (version "0.0.60")
315 (source (origin
316 (method url-fetch)
317 (uri (string-append "http://calf-studio-gear.org/files/calf-"
318 version ".tar.gz"))
319 (sha256
320 (base32
321 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
322 (build-system gnu-build-system)
323 (inputs
324 `(("fluidsynth" ,fluidsynth)
325 ("expat" ,expat)
326 ("glib" ,glib)
327 ("gtk" ,gtk+-2)
328 ("cairo" ,cairo)
329 ("lash" ,lash)
330 ("jack" ,jack-1)
331 ("lv2" ,lv2)
332 ("ladspa" ,ladspa)
333 ("fftw" ,fftw)))
334 (native-inputs
335 `(("pkg-config" ,pkg-config)))
336 (native-search-paths
337 (list (search-path-specification
338 (variable "LV2_PATH")
339 (files '("lib/lv2")))))
340 (home-page "http://calf.sourceforge.net/")
341 (synopsis "Audio plug-in pack for LV2 and JACK environments")
342 (description
343 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
344 The suite contains lots of effects (delay, modulation, signal processing,
345 filters, equalizers, dynamics, distortion and mastering effects),
346 instruments (SF2 player, organ simulator and a monophonic synthesizer) and
347 tools (analyzer, mono/stereo tools, crossovers).")
348 ;; calfjackhost is released under GPLv2+
349 ;; The plugins are released under LGPLv2.1+
350 (license (list license:lgpl2.1+ license:gpl2+))))
351
352 (define-public espeak
353 (package
354 (name "espeak")
355 (version "1.48.04")
356 (source (origin
357 (method url-fetch)
358 (uri (string-append "mirror://sourceforge/espeak/espeak/"
359 "espeak-" (version-major+minor version)
360 "/espeak-" version "-source.zip"))
361 (sha256
362 (base32
363 "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz"))
364 (modules '((guix build utils)))
365 (snippet
366 ;; remove prebuilt binaries
367 '(delete-file-recursively "linux_32bit"))))
368 (build-system gnu-build-system)
369 (arguments
370 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
371 (string-append "DATADIR="
372 (assoc-ref %outputs "out")
373 "/share/espeak-data")
374 (string-append "LDFLAGS=-Wl,-rpath="
375 (assoc-ref %outputs "out")
376 "/lib")
377 "AUDIO=pulseaudio")
378 #:tests? #f ; no check target
379 #:phases
380 (modify-phases %standard-phases
381 (replace 'configure
382 (lambda _
383 (chdir "src")
384 ;; We use version 19 of the PortAudio library, so we must copy the
385 ;; corresponding file to be sure that espeak compiles correctly.
386 (copy-file "portaudio19.h" "portaudio.h")
387 (substitute* "Makefile"
388 (("/bin/ln") "ln"))
389 #t)))))
390 (inputs
391 `(("portaudio" ,portaudio)
392 ("pulseaudio" ,pulseaudio)))
393 (native-inputs `(("unzip" ,unzip)))
394 (home-page "http://espeak.sourceforge.net/")
395 (synopsis "Software speech synthesizer")
396 (description "eSpeak is a software speech synthesizer for English and
397 other languages. eSpeak uses a \"formant synthesis\" method. This allows many
398 languages to be provided in a small size. The speech is clear, and can be used
399 at high speeds, but is not as natural or smooth as larger synthesizers which are
400 based on human speech recordings.")
401 (license license:gpl3+)))
402
403 (define-public infamous-plugins
404 (package
405 (name "infamous-plugins")
406 (version "0.2.02")
407 (source (origin
408 (method url-fetch)
409 (uri (string-append "https://github.com/ssj71/infamousPlugins/"
410 "archive/v" version ".tar.gz"))
411 (file-name (string-append name "-" version ".tar.gz"))
412 (sha256
413 (base32
414 "0qm3ak07vc1l3f5c3c2lq9gkfknlxwn8ks03cysw1pk8hj7dwnv6"))))
415 (build-system cmake-build-system)
416 (arguments
417 `(#:tests? #f ; There are no tests
418 #:phases
419 (modify-phases %standard-phases
420 (add-after 'unpack 'remove-compiler-flags
421 (lambda _
422 (substitute* '("src/casynth/CMakeLists.txt"
423 "src/cheapdist/CMakeLists.txt"
424 "src/duffer/CMakeLists.txt"
425 "src/envfollower/CMakeLists.txt"
426 "src/ewham/CMakeLists.txt"
427 "src/hip2b/CMakeLists.txt"
428 "src/lushlife/CMakeLists.txt"
429 "src/powercut/CMakeLists.txt"
430 "src/powerup/CMakeLists.txt"
431 "src/stuck/CMakeLists.txt")
432 (("-msse2 -mfpmath=sse") ""))
433 #t)))))
434 (inputs
435 `(("cairo" ,cairo)
436 ("fftwf" ,fftwf)
437 ("lv2" ,lv2)
438 ("ntk" ,ntk)
439 ("zita-resampler" ,zita-resampler)))
440 (native-inputs
441 `(("pkg-config" ,pkg-config)))
442 (home-page "http://ssj71.github.io/infamousPlugins")
443 (synopsis "LV2 plugins for live use")
444 (description
445 "The infamous plugins are a collection of LV2 audio plugins for live
446 performances. The plugins include a cellular automaton synthesizer, an
447 envelope follower, distortion effects, tape effects and more.")
448 (license license:gpl2+)))
449
450 (define-public swh-plugins-lv2
451 (package
452 (name "swh-plugins-lv2")
453 (version "1.0.16")
454 (source (origin
455 (method url-fetch)
456 (uri (string-append "https://github.com/swh/"
457 "lv2/archive/v" version ".tar.gz"))
458 (file-name (string-append name "-" version ".tar.gz"))
459 (sha256
460 (base32
461 "0j1mih0lp4fds07knp5i32in515sh0df1qi6694pmyz2wqnm295w"))))
462 (build-system gnu-build-system)
463 (arguments
464 `(#:tests? #f ; no check target
465 #:make-flags (list "CC=gcc"
466 (string-append "PREFIX="
467 (assoc-ref %outputs "out")))
468 #:phases
469 (modify-phases %standard-phases
470 ;; no configure script
471 (delete 'configure)
472 (add-after 'unpack 'patch-makefile-and-enter-directory
473 ;; The default install target doesn't install, but the
474 ;; "install-system" target does.
475 (lambda _
476 (substitute* "Makefile"
477 (("install:") "install: install-system"))
478 #t)))))
479 (inputs
480 `(("lv2" ,lv2)
481 ("fftwf" ,fftwf)))
482 (native-inputs
483 `(("libxslt" ,libxslt)
484 ("pkg-config" ,pkg-config)))
485 (home-page "http://plugin.org.uk")
486 (synopsis "SWH plugins in LV2 format")
487 (description
488 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format. Plugin
489 classes include: dynamics (compressor, limiter), time (delay, chorus,
490 flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
491 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
492 (license license:gpl3+)))
493
494 (define-public csound
495 (package
496 (name "csound")
497 (version "6.05")
498 (source (origin
499 (method url-fetch)
500 (uri (string-append
501 "mirror://sourceforge/csound/csound6/Csound"
502 version "/Csound" version ".tar.gz"))
503 (sha256
504 (base32
505 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
506 (patches (search-patches "csound-header-ordering.patch"))))
507 (build-system cmake-build-system)
508 (arguments
509 ;; Work around this error on x86_64 with libc 2.22+:
510 ;; libmvec.so.1: error adding symbols: DSO missing from command line
511 (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
512 '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
513 '()))
514 (inputs
515 `(("alsa-lib" ,alsa-lib)
516 ("boost" ,boost)
517 ("pulseaudio" ,pulseaudio)
518 ("libsndfile" ,libsndfile)
519 ("liblo" ,liblo)
520 ("ladspa" ,ladspa)
521 ("jack" ,jack-1)
522 ("gettext" ,gettext-minimal)))
523 (native-inputs
524 `(("bison" ,bison)
525 ("flex" ,flex)
526 ("zlib" ,zlib)))
527 (home-page "http://csound.github.io/")
528 (synopsis "Sound and music computing system")
529 (description
530 "Csound is a user-programmable and user-extensible sound processing
531 language and software synthesizer.")
532 (license license:lgpl2.1+)))
533
534 (define-public clalsadrv
535 (package
536 (name "clalsadrv")
537 (version "2.0.0")
538 (source (origin
539 (method url-fetch)
540 (uri (string-append
541 "http://kokkinizita.linuxaudio.org"
542 "/linuxaudio/downloads/clalsadrv-"
543 version ".tar.bz2"))
544 (sha256
545 (base32
546 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
547 (build-system gnu-build-system)
548 (arguments
549 `(#:tests? #f ; no "check" target
550 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
551 #:phases
552 (alist-cons-after
553 'unpack 'patch-makefile-and-enter-directory
554 (lambda _
555 (substitute* "libs/Makefile"
556 (("/sbin/ldconfig") "true")
557 (("^LIBDIR =.*") "LIBDIR = lib\n"))
558 (chdir "libs")
559 #t)
560 (alist-cons-after
561 'install
562 'install-symlink
563 (lambda _
564 (symlink "libclalsadrv.so"
565 (string-append (assoc-ref %outputs "out")
566 "/lib/libclalsadrv.so.2")))
567 ;; no configure script
568 (alist-delete 'configure %standard-phases)))))
569 (inputs
570 `(("alsa-lib" ,alsa-lib)
571 ("fftw" ,fftw)))
572 (home-page "http://kokkinizita.linuxaudio.org")
573 (synopsis "C++ wrapper around the ALSA API")
574 (description
575 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
576 ALSA PCM devices.")
577 (license license:gpl2+)))
578
579 (define-public amb-plugins
580 (package
581 (name "amb-plugins")
582 (version "0.8.1")
583 (source (origin
584 (method url-fetch)
585 (uri (string-append
586 "http://kokkinizita.linuxaudio.org"
587 "/linuxaudio/downloads/AMB-plugins-"
588 version ".tar.bz2"))
589 (sha256
590 (base32
591 "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl"))))
592 (build-system gnu-build-system)
593 (arguments
594 `(#:tests? #f ; no "check" target
595 #:phases
596 (modify-phases %standard-phases
597 ;; no configure script
598 (delete 'configure)
599 (add-before 'install 'prepare-target-directory
600 (lambda* (#:key outputs #:allow-other-keys)
601 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
602 #t))
603 (add-after 'unpack 'override-target-directory-and-tool-paths
604 (lambda* (#:key outputs #:allow-other-keys)
605 (substitute* "Makefile"
606 (("/usr/lib/ladspa")
607 (string-append (assoc-ref outputs "out") "/lib/ladspa"))
608 (("/usr/bin/install") (which "install"))
609 (("/bin/rm") "#"))
610 #t)))))
611 (home-page "http://kokkinizita.linuxaudio.org")
612 (synopsis "LADSPA ambisonics plugins")
613 (description
614 "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be
615 used within Ardour. Features include: mono and stereo to B-format panning,
616 horizontal rotator, square, hexagon and cube decoders.")
617 (license license:gpl2+)))
618
619 (define-public mcp-plugins
620 (package
621 (name "mcp-plugins")
622 (version "0.4.0")
623 (source (origin
624 (method url-fetch)
625 (uri (string-append
626 "http://kokkinizita.linuxaudio.org"
627 "/linuxaudio/downloads/MCP-plugins-"
628 version ".tar.bz2"))
629 (sha256
630 (base32
631 "06a9r1l85jmg7l1cvc3788mk8ra0xagjfy1rmhw3b80y4n0vlnvc"))))
632 (build-system gnu-build-system)
633 (arguments
634 `(#:tests? #f ; no "check" target
635 #:phases
636 (modify-phases %standard-phases
637 ;; no configure script
638 (delete 'configure)
639 (add-before 'install 'prepare-target-directory
640 (lambda* (#:key outputs #:allow-other-keys)
641 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
642 #t))
643 (add-after 'unpack 'override-target-directory
644 (lambda* (#:key outputs #:allow-other-keys)
645 (substitute* "Makefile"
646 (("/usr") (assoc-ref outputs "out")))
647 #t)))))
648 (home-page "http://kokkinizita.linuxaudio.org")
649 (synopsis "Chorus, phaser, and vintage high-pass and low-pass filters")
650 (description
651 "This package provides various LADSPA plugins. @code{cs_chorus} and
652 @code{cs_phaser} provide chorus and phaser effects, respectively;
653 @code{mvclpf24} provides four implementations of the low-pass filter used in
654 vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled
655 high-pass filter by Robert Moog. The filters attempt to accurately emulate
656 the non-linear circuit elements of their original analog counterparts.")
657 (license license:gpl2+)))
658
659 (define-public rev-plugins
660 (package
661 (name "rev-plugins")
662 (version "0.7.1")
663 (source (origin
664 (method url-fetch)
665 (uri (string-append
666 "http://kokkinizita.linuxaudio.org"
667 "/linuxaudio/downloads/REV-plugins-"
668 version ".tar.bz2"))
669 (sha256
670 (base32
671 "1ikpinxm00pkfi259bnkzhsy3miagrjgdihaaf5x4v7zac29j3g7"))))
672 (build-system gnu-build-system)
673 (arguments
674 `(#:tests? #f ; no "check" target
675 #:phases
676 (modify-phases %standard-phases
677 ;; no configure script
678 (delete 'configure)
679 (add-before 'install 'prepare-target-directory
680 (lambda* (#:key outputs #:allow-other-keys)
681 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
682 #t))
683 (add-after 'unpack 'override-target-directory
684 (lambda* (#:key outputs #:allow-other-keys)
685 (substitute* "Makefile"
686 (("/usr") (assoc-ref outputs "out")))
687 #t)))))
688 (home-page "http://kokkinizita.linuxaudio.org")
689 (synopsis "LADSPA reverb plugin")
690 (description
691 "This package provides a stereo reverb LADSPA plugin based on the
692 well-known greverb.")
693 (license license:gpl2+)))
694
695 (define-public fil-plugins
696 (package
697 (name "fil-plugins")
698 (version "0.3.0")
699 (source (origin
700 (method url-fetch)
701 (uri (string-append
702 "http://kokkinizita.linuxaudio.org"
703 "/linuxaudio/downloads/FIL-plugins-"
704 version ".tar.bz2"))
705 (sha256
706 (base32
707 "1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw"))))
708 (build-system gnu-build-system)
709 (arguments
710 `(#:tests? #f ; no "check" target
711 #:phases
712 (modify-phases %standard-phases
713 ;; no configure script
714 (delete 'configure)
715 (add-before 'install 'prepare-target-directory
716 (lambda* (#:key outputs #:allow-other-keys)
717 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
718 #t))
719 (add-after 'unpack 'override-target-directory
720 (lambda* (#:key outputs #:allow-other-keys)
721 (substitute* "Makefile"
722 (("/usr") (assoc-ref outputs "out")))
723 #t)))))
724 (home-page "http://kokkinizita.linuxaudio.org")
725 (synopsis "LADSPA four-band parametric equalizer plugin")
726 (description
727 "This package provides a LADSPA plugin for a four-band parametric
728 equalizer. Each section has an active/bypass switch, frequency, bandwidth and
729 gain controls. There is also a global bypass switch and gain control.
730
731 The 2nd order resonant filters are implemented using a Mitra-Regalia style
732 lattice filter, which is stable even while parameters are being changed.
733
734 All switches and controls are internally smoothed, so they can be used 'live'
735 without any clicks or zipper noises. This makes this plugin suitable for use
736 in systems that allow automation of plugin control ports, such as Ardour, or
737 for stage use.")
738 (license license:gpl2+)))
739
740 (define-public ste-plugins
741 (package
742 (name "ste-plugins")
743 (version "0.0.2")
744 (source (origin
745 (method url-fetch)
746 (uri (string-append
747 "http://kokkinizita.linuxaudio.org"
748 "/linuxaudio/downloads/STE-plugins-"
749 version ".tar.bz2"))
750 (sha256
751 (base32
752 "0s3c9w5xihs87cnd1lh9xgj3maabjdyh6bl766qp5lhkg3ax8zy6"))))
753 (build-system gnu-build-system)
754 (arguments
755 `(#:tests? #f ; no "check" target
756 #:phases
757 (modify-phases %standard-phases
758 ;; no configure script
759 (delete 'configure)
760 (add-before 'install 'prepare-target-directory
761 (lambda* (#:key outputs #:allow-other-keys)
762 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
763 #t))
764 (add-after 'unpack 'override-target-directory
765 (lambda* (#:key outputs #:allow-other-keys)
766 (substitute* "Makefile"
767 (("/usr") (assoc-ref outputs "out")))
768 #t)))))
769 (home-page "http://kokkinizita.linuxaudio.org")
770 (synopsis "LADSPA stereo width plugin")
771 (description
772 "This package provides a LADSPA plugin to manipulate the stereo width of
773 audio signals.")
774 (license license:gpl2+)))
775
776 (define-public vco-plugins
777 (package
778 (name "vco-plugins")
779 (version "0.3.0")
780 (source (origin
781 (method url-fetch)
782 (uri (string-append
783 "http://kokkinizita.linuxaudio.org"
784 "/linuxaudio/downloads/VCO-plugins-"
785 version ".tar.bz2"))
786 (sha256
787 (base32
788 "1xzqdg3b07r7zww05y9bb737l9dxvfkv28m3fyak1aazaci3rsgl"))))
789 (build-system gnu-build-system)
790 (arguments
791 `(#:tests? #f ; no "check" target
792 #:phases
793 (modify-phases %standard-phases
794 ;; no configure script
795 (delete 'configure)
796 (add-before 'install 'prepare-target-directory
797 (lambda* (#:key outputs #:allow-other-keys)
798 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
799 #t))
800 (add-after 'unpack 'override-target-directory
801 (lambda* (#:key outputs #:allow-other-keys)
802 (substitute* "Makefile"
803 (("/usr") (assoc-ref outputs "out"))
804 (("/bin/cp") (which "cp")))
805 #t)))))
806 (home-page "http://kokkinizita.linuxaudio.org")
807 (synopsis "LADSPA plugin for synthesizer oscillators")
808 (description
809 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:
810
811 @enumerate
812 @item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
813 @item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
814 @item Rec-VCO, a square / rectange oscillator
815 @end enumerate\n
816
817 All oscillators are low-pass filtered to provide waveforms similar to the
818 output of analog synthesizers such as the Moog Voyager.")
819 (license license:gpl2+)))
820
821 (define-public wah-plugins
822 (package
823 (name "wah-plugins")
824 (version "0.1.0")
825 (source (origin
826 (method url-fetch)
827 (uri (string-append
828 "http://kokkinizita.linuxaudio.org"
829 "/linuxaudio/downloads/WAH-plugins-"
830 version ".tar.bz2"))
831 (sha256
832 (base32
833 "1wkbjarxdhjixkh7d5abralj11dj2xxg644fz3ycd7qyfgfvjfgd"))))
834 (build-system gnu-build-system)
835 (arguments
836 `(#:tests? #f ; no "check" target
837 #:phases
838 (modify-phases %standard-phases
839 ;; no configure script
840 (delete 'configure)
841 (add-before 'install 'prepare-target-directory
842 (lambda* (#:key outputs #:allow-other-keys)
843 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
844 #t))
845 (add-after 'unpack 'override-target-directory
846 (lambda* (#:key outputs #:allow-other-keys)
847 (substitute* "Makefile"
848 (("/usr") (assoc-ref outputs "out")))
849 #t)))))
850 (home-page "http://kokkinizita.linuxaudio.org")
851 (synopsis "LADSPA Autowah effect plugin")
852 (description
853 "This package provides a LADSPA plugin for a Wah effect with envelope
854 follower.")
855 (license license:gpl2+)))
856
857 (define-public g2reverb
858 (package
859 (name "g2reverb")
860 (version "0.7.1")
861 (source (origin
862 (method url-fetch)
863 (uri (string-append
864 "http://kokkinizita.linuxaudio.org"
865 "/linuxaudio/downloads/g2reverb-"
866 version ".tar.bz2"))
867 (sha256
868 (base32
869 "18wb8vj1kky5glr76s34awbi8qzplsmf3wjbd7a12hfv4j0bkwrj"))))
870 (build-system gnu-build-system)
871 (arguments
872 `(#:tests? #f ; no "check" target
873 #:phases
874 (modify-phases %standard-phases
875 ;; no configure script
876 (delete 'configure)
877 (add-before 'install 'prepare-target-directory
878 (lambda* (#:key outputs #:allow-other-keys)
879 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
880 #t))
881 (add-after 'unpack 'override-target-directory
882 (lambda* (#:key outputs #:allow-other-keys)
883 (substitute* "Makefile"
884 (("/usr") (assoc-ref outputs "out")))
885 #t)))))
886 (home-page "http://kokkinizita.linuxaudio.org")
887 (synopsis "LADSPA stereo reverb plugin")
888 (description
889 "This package provides a LADSPA plugin for a stereo reverb effect.")
890 (license license:gpl2+)))
891
892 (define-public fluidsynth
893 (package
894 (name "fluidsynth")
895 (version "1.1.6")
896 (source (origin
897 (method url-fetch)
898 (uri (string-append
899 "mirror://sourceforge/fluidsynth/fluidsynth-"
900 version "/fluidsynth-" version ".tar.gz"))
901 (sha256
902 (base32
903 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
904 (build-system gnu-build-system)
905 (arguments
906 `(#:phases
907 (alist-cons-after
908 'unpack
909 'remove-broken-symlinks
910 (lambda _ (delete-file-recursively "m4") #t)
911 %standard-phases)))
912 (inputs
913 `(("libsndfile" ,libsndfile)
914 ("alsa-lib" ,alsa-lib)
915 ("jack" ,jack-1)
916 ("ladspa" ,ladspa)
917 ("lash" ,lash)
918 ("readline" ,readline)
919 ("glib" ,glib)))
920 (native-inputs
921 `(("pkg-config" ,pkg-config)))
922 (home-page "http://www.fluidsynth.org/")
923 (synopsis "SoundFont synthesizer")
924 (description
925 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
926 specifications. FluidSynth reads and handles MIDI events from the MIDI input
927 device. It is the software analogue of a MIDI synthesizer. FluidSynth can
928 also play midifiles using a Soundfont.")
929 (license license:gpl2+)))
930
931 (define-public faad2
932 (package
933 (name "faad2")
934 (version "2.7")
935 (source (origin
936 (method url-fetch)
937 (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
938 version "/faad2-" version ".zip"))
939 (sha256
940 (base32
941 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
942 (build-system gnu-build-system)
943 (native-inputs
944 `(("autoconf" ,autoconf)
945 ("automake" ,automake)
946 ("libtool" ,libtool)
947 ("unzip" ,unzip)))
948 (arguments
949 '(#:phases
950 (alist-cons-after
951 'unpack 'bootstrap
952 (lambda _
953 (substitute* "bootstrap" (("\r\n") "\n"))
954 (zero? (system* "sh" "bootstrap")))
955 %standard-phases)))
956 (home-page "http://www.audiocoding.com/faad2.html")
957 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
958 (description
959 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
960 PS, and DAB+.")
961 (license license:gpl2)))
962
963 (define-public faust
964 (package
965 (name "faust")
966 (version "0.9.67")
967 (source (origin
968 (method url-fetch)
969 (uri (string-append
970 "mirror://sourceforge/faudiostream/faust-" version ".zip"))
971 (sha256
972 (base32
973 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
974 (snippet
975 ;; Remove prebuilt library
976 '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
977 (build-system gnu-build-system)
978 (arguments
979 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
980 #:tests? #f
981 #:phases
982 (modify-phases %standard-phases
983 ;; no "configure" script
984 (delete 'configure))))
985 (native-inputs
986 `(("unzip" ,unzip)))
987 (home-page "http://faust.grame.fr/")
988 (synopsis "Signal processing language")
989 (description
990 "Faust is a programming language for realtime audio signal processing.")
991 (license license:gpl2+)))
992
993 (define-public faust-2
994 (package
995 (inherit faust)
996 (version "2.0.a51")
997 (source (origin
998 (method url-fetch)
999 (uri (string-append
1000 "mirror://sourceforge/faudiostream/faust-" version ".tgz"))
1001 (sha256
1002 (base32
1003 "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf"))))
1004 (build-system gnu-build-system)
1005 (arguments
1006 (substitute-keyword-arguments (package-arguments faust)
1007 ((#:make-flags flags)
1008 `(list (string-append "prefix=" (assoc-ref %outputs "out"))
1009 "world"))))
1010 (native-inputs
1011 `(("llvm" ,llvm-with-rtti)
1012 ("which" ,which)
1013 ("xxd" ,vim)
1014 ("ctags" ,emacs-minimal) ; for ctags
1015 ("pkg-config" ,pkg-config)))
1016 (inputs
1017 `(("libsndfile" ,libsndfile)
1018 ("libmicrohttpd" ,libmicrohttpd)
1019 ("ncurses" ,ncurses)
1020 ("openssl" ,openssl)
1021 ("zlib" ,zlib)))))
1022
1023 (define-public freepats
1024 (package
1025 (name "freepats")
1026 (version "20060219")
1027 (source (origin
1028 (method url-fetch)
1029 (uri (string-append "http://freepats.zenvoid.org/freepats-"
1030 version ".tar.bz2"))
1031 (sha256
1032 (base32
1033 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
1034 (build-system trivial-build-system)
1035 (arguments
1036 `(#:modules ((guix build utils))
1037 #:builder (begin
1038 (use-modules (guix build utils))
1039 (let ((out (string-append %output "/share/freepats")))
1040 (setenv "PATH" (string-append
1041 (assoc-ref %build-inputs "bzip2") "/bin:"
1042 (assoc-ref %build-inputs "tar") "/bin"))
1043 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
1044 (chdir "freepats")
1045 ;; Use absolute pattern references
1046 (substitute* "freepats.cfg"
1047 (("Tone_000") (string-append out "/Tone_000"))
1048 (("Drum_000") (string-append out "/Drum_000")))
1049 (mkdir-p out)
1050 (copy-recursively "." out)))))
1051 (native-inputs
1052 `(("tar" ,tar)
1053 ("bzip2" ,bzip2)))
1054 (home-page "http://freepats.zenvoid.org")
1055 (synopsis "GUS compatible patches for MIDI players")
1056 (description
1057 "FreePats is a project to create a free and open set of GUS compatible
1058 patches that can be used with softsynths such as Timidity and WildMidi.")
1059 ;; GPLv2+ with exception for compositions using these patches.
1060 (license license:gpl2+)))
1061
1062 (define-public guitarix
1063 (package
1064 (name "guitarix")
1065 (version "0.35.2")
1066 (source (origin
1067 (method url-fetch)
1068 (uri (string-append
1069 "mirror://sourceforge/guitarix/guitarix/guitarix2-"
1070 version ".tar.xz"))
1071 (sha256
1072 (base32
1073 "1qj3adjhg511jygbjkl9k5v0gcjmg6ifc479rspfyf45m383pp3p"))))
1074 (build-system waf-build-system)
1075 (arguments
1076 `(#:tests? #f ; no "check" target
1077 #:python ,python-2
1078 #:configure-flags
1079 (list
1080 ;; Add the output lib directory to the RUNPATH.
1081 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
1082 "--cxxflags=-std=c++11")))
1083 (inputs
1084 `(("libsndfile" ,libsndfile)
1085 ("boost" ,boost)
1086 ("avahi" ,avahi)
1087 ("eigen" ,eigen)
1088 ("lv2" ,lv2)
1089 ("lilv" ,lilv)
1090 ("ladspa" ,ladspa)
1091 ("jack" ,jack-1)
1092 ("gtkmm" ,gtkmm-2)
1093 ("gtk+" ,gtk+-2)
1094 ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2)
1095 ("fftwf" ,fftwf)
1096 ("lrdf" ,lrdf)
1097 ("zita-resampler" ,zita-resampler)
1098 ("zita-convolver" ,zita-convolver)))
1099 (native-inputs
1100 `(("gperf" ,gperf)
1101 ("faust" ,faust)
1102 ("intltool" ,intltool)
1103 ("gettext" ,gettext-minimal)
1104 ("pkg-config" ,pkg-config)))
1105 (native-search-paths
1106 (list (search-path-specification
1107 (variable "LV2_PATH")
1108 (files '("lib/lv2")))))
1109 (home-page "http://guitarix.org/")
1110 (synopsis "Virtual guitar amplifier")
1111 (description "Guitarix is a virtual guitar amplifier running JACK.
1112 Guitarix takes the signal from your guitar as a mono-signal from your sound
1113 card. The input is processed by a main amp and a rack-section. Both can be
1114 routed separately and deliver a processed stereo-signal via JACK. You may
1115 fill the rack with effects from more than 25 built-in modules including stuff
1116 from a simple noise gate to modulation effects like flanger, phaser or
1117 auto-wah.")
1118 (license license:gpl2+)))
1119
1120 (define-public guitarix-lv2
1121 (package (inherit guitarix)
1122 (name "guitarix-lv2")
1123 (arguments
1124 (substitute-keyword-arguments (package-arguments guitarix)
1125 ((#:configure-flags flags)
1126 `(cons "--lv2-only" ,flags))))
1127 (inputs
1128 (alist-delete "webkitgtk/gtk+-2" (package-inputs guitarix)))))
1129
1130 (define-public rakarrack
1131 (package
1132 (name "rakarrack")
1133 (version "0.6.1")
1134 (source (origin
1135 (method url-fetch)
1136 (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
1137 "rakarrack-" version "/rakarrack-"
1138 version ".tar.bz2"))
1139 (sha256
1140 (base32
1141 "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
1142 (modules '((guix build utils)))
1143 (snippet
1144 '(begin
1145 (substitute* '("src/process.C"
1146 "src/global.h")
1147 (("#include <Fl/") "#include <FL/"))
1148 #t))))
1149 (build-system gnu-build-system)
1150 (inputs
1151 `(("alsa-utils" ,alsa-utils)
1152 ("fltk" ,fltk)
1153 ("libx11" ,libx11)
1154 ("libxext" ,libxext)
1155 ("libxfixes" ,libxfixes)
1156 ("libxft" ,libxft)
1157 ("libxrender" ,libxrender)
1158 ("libxpm" ,libxpm)
1159 ("fontconfig" ,fontconfig)
1160 ("freetype" ,freetype)
1161 ("jack" ,jack-1)
1162 ("alsa-lib" ,alsa-lib)
1163 ("libsndfile" ,libsndfile)
1164 ("libsamplerate" ,libsamplerate)
1165 ("zlib" ,zlib)))
1166 (home-page "http://rakarrack.sourceforge.net/")
1167 (synopsis "Audio effects processor")
1168 (description
1169 "Rakarrack is a richly featured multi-effects processor emulating a
1170 guitar effects pedalboard. Effects include compressor, expander, noise gate,
1171 equalizers, exciter, flangers, chorus, various delay and reverb effects,
1172 distortion modules and many more. Most of the effects engine is built from
1173 modules found in the excellent software synthesizer ZynAddSubFX. Presets and
1174 user interface are optimized for guitar, but Rakarrack processes signals in
1175 stereo while it does not apply internal band-limiting filtering, and thus is
1176 well suited to all musical instruments and vocals.")
1177 ;; The code is explicitly licensed under the GPL version 2 only.
1178 (license license:gpl2)))
1179
1180 (define-public ir
1181 (package
1182 (name "ir")
1183 (version "1.3.2")
1184 (source (origin
1185 (method url-fetch)
1186 ;; The original home-page is gone. Download the tarball from an
1187 ;; archive mirror instead.
1188 (uri (list (string-append
1189 "https://web.archive.org/web/20150803095032/"
1190 "http://factorial.hu/system/files/ir.lv2-"
1191 version ".tar.gz")
1192 (string-append
1193 "https://mirrors.kernel.org/gentoo/distfiles/ir.lv2-"
1194 version ".tar.gz")))
1195 (sha256
1196 (base32
1197 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
1198 (build-system gnu-build-system)
1199 (arguments
1200 `(#:tests? #f ; no tests
1201 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1202 #:phases (modify-phases %standard-phases
1203 (delete 'configure)))) ; no configure script
1204 (inputs
1205 `(("libsndfile" ,libsndfile)
1206 ("libsamplerate" ,libsamplerate)
1207 ("lv2" ,lv2)
1208 ("glib" ,glib)
1209 ("gtk+" ,gtk+-2)
1210 ("zita-convolver" ,zita-convolver)))
1211 (native-inputs
1212 `(("pkg-config" ,pkg-config)))
1213 (native-search-paths
1214 (list (search-path-specification
1215 (variable "LV2_PATH")
1216 (files '("lib/lv2")))))
1217 ;; Link to an archived copy of the home-page since the original is gone.
1218 (home-page (string-append "https://web.archive.org/web/20150803095032/"
1219 "http://factorial.hu/plugins/lv2/ir"))
1220 (synopsis "LV2 convolution reverb")
1221 (description
1222 "IR is a low-latency, real-time, high performance signal convolver
1223 especially for creating reverb effects. It supports impulse responses with 1,
1224 2 or 4 channels, in any soundfile format supported by libsndfile.")
1225 (license license:gpl2+)))
1226
1227 (define-public jack-1
1228 (package
1229 (name "jack")
1230 (version "0.124.1")
1231 (source (origin
1232 (method url-fetch)
1233 (uri (string-append
1234 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
1235 version
1236 ".tar.gz"))
1237 (sha256
1238 (base32
1239 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
1240 (build-system gnu-build-system)
1241 (inputs
1242 `(("alsa-lib" ,alsa-lib)
1243 ("readline" ,readline)))
1244 ;; uuid.h is included in the JACK type headers
1245 ;; db.h is included in the libjack metadata headers
1246 (propagated-inputs
1247 `(("libuuid" ,util-linux)
1248 ("bdb" ,bdb)))
1249 (native-inputs
1250 `(("pkg-config" ,pkg-config)))
1251 (home-page "http://jackaudio.org/")
1252 (synopsis "JACK audio connection kit")
1253 (description
1254 "JACK is a low-latency audio server. It can connect a number of
1255 different applications to an audio device, as well as allowing them to share
1256 audio between themselves. JACK is different from other audio server efforts
1257 in that it has been designed from the ground up to be suitable for
1258 professional audio work. This means that it focuses on two key areas:
1259 synchronous execution of all clients, and low latency operation.")
1260 ;; Most files are licensed under the GPL. However, the libjack/ tree is
1261 ;; licensed under the LGPL in order to allow for proprietary usage.
1262 (license (list license:gpl2+ license:lgpl2.1+))))
1263
1264 ;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
1265 ;; jack-2 implement the same API. JACK2 is provided primarily as a client
1266 ;; program for users who might benefit from the D-BUS features.
1267 (define-public jack-2
1268 (package (inherit jack-1)
1269 (name "jack2")
1270 (version "1.9.10")
1271 (source (origin
1272 (method url-fetch)
1273 (uri (string-append
1274 "https://github.com/jackaudio/jack2/archive/v"
1275 version
1276 ".tar.gz"))
1277 (file-name (string-append name "-" version ".tar.gz"))
1278 (sha256
1279 (base32
1280 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
1281 (build-system waf-build-system)
1282 (arguments
1283 `(#:python ,python-2
1284 #:tests? #f ; no check target
1285 #:configure-flags '("--dbus"
1286 "--alsa")
1287 #:phases
1288 (modify-phases %standard-phases
1289 (add-before
1290 'configure 'set-linkflags
1291 (lambda _
1292 ;; Add $libdir to the RUNPATH of all the binaries.
1293 (substitute* "wscript"
1294 ((".*CFLAGS.*-Wall.*" m)
1295 (string-append m
1296 " conf.env.append_unique('LINKFLAGS',"
1297 "'-Wl,-rpath=" %output "/lib')\n")))))
1298 (add-after 'install 'wrap-python-scripts
1299 (lambda* (#:key inputs outputs #:allow-other-keys)
1300 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
1301 (let* ((out (assoc-ref outputs "out"))
1302 (path (getenv "PYTHONPATH")))
1303 (wrap-program (string-append out "/bin/jack_control")
1304 `("PYTHONPATH" ":" prefix (,path))))
1305 #t)))))
1306 (inputs
1307 `(("alsa-lib" ,alsa-lib)
1308 ("dbus" ,dbus)
1309 ("expat" ,expat)
1310 ("libsamplerate" ,libsamplerate)
1311 ("opus" ,opus)
1312 ("python2-dbus" ,python2-dbus)
1313 ("readline" ,readline)))
1314 (native-inputs
1315 `(("pkg-config" ,pkg-config)))
1316 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
1317 (license (list license:gpl2+ license:lgpl2.1+))))
1318
1319 (define-public jalv
1320 (package
1321 (name "jalv")
1322 (version "1.4.6")
1323 (source (origin
1324 (method url-fetch)
1325 (uri (string-append "http://download.drobilla.net/jalv-"
1326 version ".tar.bz2"))
1327 (sha256
1328 (base32
1329 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
1330 (build-system waf-build-system)
1331 (arguments
1332 `(#:tests? #f ; no check target
1333 #:phases
1334 (modify-phases %standard-phases
1335 (add-before
1336 'configure 'set-flags
1337 (lambda _
1338 ;; Compile with C++11, required by gtkmm.
1339 (setenv "CXXFLAGS" "-std=c++11")
1340 #t)))))
1341 (inputs
1342 `(("lv2" ,lv2)
1343 ("lilv" ,lilv)
1344 ("suil" ,suil)
1345 ("gtk" ,gtk+-2)
1346 ("gtkmm" ,gtkmm-2)
1347 ("jack" ,jack-1)))
1348 (native-inputs
1349 `(("pkg-config" ,pkg-config)))
1350 (home-page "http://drobilla.net/software/jalv/")
1351 (synopsis "Simple LV2 host for JACK")
1352 (description
1353 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
1354 plugins and exposes their ports as JACK ports, essentially making any LV2
1355 plugin function as a JACK application.")
1356 (license license:isc)))
1357
1358 (define-public ladspa
1359 (package
1360 (name "ladspa")
1361 (version "1.13")
1362 (source
1363 (origin
1364 (method url-fetch)
1365 ;; Since the official link is dead,
1366 ;; we download the tarball from Debian or Internet Archive.
1367 (uri (list (string-append "http://http.debian.net"
1368 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
1369 version ".orig.tar.gz")
1370 (string-append "https://web.archive.org/web/20140717172251/"
1371 "http://www.ladspa.org/download/ladspa_sdk_"
1372 version ".tgz")))
1373 (sha256
1374 (base32
1375 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
1376 (build-system gnu-build-system)
1377 (arguments
1378 `(#:tests? #f ; the "test" target is a listening test only
1379 #:phases
1380 (alist-replace
1381 'configure
1382 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
1383 (chdir "src")
1384 (let ((out (assoc-ref outputs "out")))
1385 (substitute* "makefile"
1386 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
1387 (("/usr/include/") (string-append out "/include/"))
1388 (("/usr/bin/") (string-append out "/bin/"))
1389 (("-mkdirhier") "mkdir -p")
1390 (("^CC.*") "CC = gcc\n")
1391 (("^CPP.*") "CPP = g++\n"))))
1392 (alist-delete 'build %standard-phases))))
1393 ;; Since the home page is gone, we provide a link to the archived version.
1394 (home-page
1395 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
1396 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
1397 (description
1398 "LADSPA is a standard that allows software audio processors and effects
1399 to be plugged into a wide range of audio synthesis and recording packages.")
1400 (license license:lgpl2.1+)))
1401
1402 (define-public lash
1403 (package
1404 (name "lash")
1405 (version "0.6.0-rc2")
1406 (source (origin
1407 (method url-fetch)
1408 ;; The tilde is not permitted in the builder name, but is used
1409 ;; in the tarball.
1410 (uri (string-append
1411 "mirror://savannah/lash/lash-"
1412 (string-join (string-split version #\-) "~")
1413 ".tar.bz2"))
1414 (file-name (string-append name "-" version ".tar.bz2"))
1415 (sha256
1416 (base32
1417 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
1418 (build-system gnu-build-system)
1419 (inputs
1420 `(("bdb" ,bdb)
1421 ("gtk" ,gtk+-2)
1422 ("jack" ,jack-1)
1423 ("readline" ,readline)
1424 ("python" ,python-2)))
1425 ;; According to pkg-config, packages depending on lash also need to have
1426 ;; at least the following packages declared as inputs.
1427 (propagated-inputs
1428 `(("alsa-lib" ,alsa-lib)
1429 ("dbus" ,dbus)
1430 ("libxml2" ,libxml2)))
1431 (native-inputs
1432 `(("pkg-config" ,pkg-config)))
1433 (home-page "http://www.nongnu.org/lash/")
1434 (synopsis "Audio application session manager")
1435 (description
1436 "LASH is a session management system for audio applications. It allows
1437 you to save and restore audio sessions consisting of multiple interconneced
1438 applications, restoring program state (i.e. loaded patches) and the
1439 connections between them.")
1440 (license license:gpl2+)))
1441
1442 (define-public libbs2b
1443 (package
1444 (name "libbs2b")
1445 (version "3.1.0")
1446 (source (origin
1447 (method url-fetch)
1448 (uri (string-append "mirror://sourceforge/bs2b/libbs2b/" version
1449 "/libbs2b-" version ".tar.lzma"))
1450 (sha256
1451 (base32
1452 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
1453 (build-system gnu-build-system)
1454 (native-inputs `(("pkg-config" ,pkg-config)))
1455 (inputs `(("libsndfile" ,libsndfile)))
1456 (home-page "https://sourceforge.net/projects/bs2b/")
1457 (synopsis "Bauer stereophonic-to-binaural DSP")
1458 (description
1459 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
1460 designed to improve headphone listening of stereo audio records. Recommended
1461 for headphone prolonged listening to disable superstereo fatigue without
1462 essential distortions.")
1463 (license license:expat)))
1464
1465 (define-public liblo
1466 (package
1467 (name "liblo")
1468 (version "0.28")
1469 (source (origin
1470 (method url-fetch)
1471 (uri (string-append "mirror://sourceforge/liblo/liblo/" version
1472 "/liblo-" version ".tar.gz"))
1473 (sha256
1474 (base32
1475 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
1476 (build-system gnu-build-system)
1477 (arguments
1478 `(;; liblo test FAILED
1479 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
1480 #:tests? #f))
1481 (home-page "http://liblo.sourceforge.net")
1482 (synopsis "Implementation of the Open Sound Control protocol")
1483 (description
1484 "liblo is a lightweight library that provides an easy to use
1485 implementation of the Open Sound Control (OSC) protocol.")
1486 (license license:lgpl2.1+)))
1487
1488 (define-public python-pyliblo
1489 (package
1490 (name "python-pyliblo")
1491 (version "0.10.0")
1492 (source (origin
1493 (method url-fetch)
1494 (uri (string-append "http://das.nasophon.de/download/pyliblo-"
1495 version ".tar.gz"))
1496 (sha256
1497 (base32
1498 "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
1499 (build-system python-build-system)
1500 (arguments `(#:tests? #f)) ;no tests
1501 (native-inputs
1502 `(("python-cython" ,python-cython)))
1503 (inputs
1504 `(("liblo" ,liblo)))
1505 (home-page "http://das.nasophon.de/pyliblo/")
1506 (synopsis "Python bindings for liblo")
1507 (description
1508 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)
1509 library. It supports almost the complete functionality of liblo, allowing you
1510 to send and receive OSC messages using a nice and simple Python API. Also
1511 included are the command line utilities @code{send_osc} and @code{dump_osc}.")
1512 (license license:lgpl2.1+)))
1513
1514 (define-public python2-pyliblo
1515 (package-with-python2 python-pyliblo))
1516
1517 (define-public lilv
1518 (package
1519 (name "lilv")
1520 (version "0.22.0")
1521 (source (origin
1522 (method url-fetch)
1523 (uri (string-append "http://download.drobilla.net/lilv-"
1524 version
1525 ".tar.bz2"))
1526 (sha256
1527 (base32
1528 "1d3ss7vv8drf1c5340lyd0gv736n2qy7sxji2nh1rw9y48hr69yd"))))
1529 (build-system waf-build-system)
1530 (arguments
1531 `(#:tests? #f ; no check target
1532 #:phases
1533 (modify-phases %standard-phases
1534 (add-before
1535 'configure 'set-ldflags
1536 (lambda* (#:key outputs #:allow-other-keys)
1537 (setenv "LDFLAGS"
1538 (string-append "-Wl,-rpath="
1539 (assoc-ref outputs "out") "/lib")))))))
1540 ;; required by lilv-0.pc
1541 (propagated-inputs
1542 `(("serd" ,serd)
1543 ("sord" ,sord)
1544 ("sratom" ,sratom)))
1545 (inputs
1546 `(("lv2" ,lv2)))
1547 (native-inputs
1548 `(("pkg-config" ,pkg-config)))
1549 (home-page "http://drobilla.net/software/lilv/")
1550 (synopsis "Library to simplify use of LV2 plugins in applications")
1551 (description
1552 "Lilv is a C library to make the use of LV2 plugins as simple as possible
1553 for applications. Lilv is the successor to SLV2, rewritten to be
1554 significantly faster and have minimal dependencies.")
1555 (license license:isc)))
1556
1557 (define-public lv2
1558 (package
1559 (name "lv2")
1560 (version "1.14.0")
1561 (source (origin
1562 (method url-fetch)
1563 (uri (string-append "http://lv2plug.in/spec/lv2-"
1564 version ".tar.bz2"))
1565 (sha256
1566 (base32
1567 "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq"))))
1568 (build-system waf-build-system)
1569 (arguments
1570 `(#:tests? #f ; no check target
1571 #:configure-flags '("--no-plugins")))
1572 (inputs
1573 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
1574 `(("libsndfile" ,libsndfile)))
1575 (native-inputs
1576 `(("pkg-config" ,pkg-config)))
1577 (home-page "http://lv2plug.in/")
1578 (synopsis "LV2 audio plugin specification")
1579 (description
1580 "LV2 is an open specification for audio plugins and host applications.
1581 At its core, LV2 is a simple stable interface, accompanied by extensions which
1582 add functionality to support the needs of increasingly powerful audio
1583 software.")
1584 (license license:isc)))
1585
1586 (define-public lv2-mda-piano
1587 (package
1588 (name "lv2-mda-piano")
1589 (version "0.0.2")
1590 (source (origin
1591 (method git-fetch)
1592 (uri (git-reference
1593 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
1594 (commit version)))
1595 (sha256
1596 (base32
1597 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
1598 (build-system gnu-build-system)
1599 (arguments
1600 `(#:make-flags (list
1601 "TYPE=mdaPiano"
1602 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1603 #:tests? #f ; no check target
1604 #:phases (alist-delete 'configure %standard-phases)))
1605 (inputs
1606 `(("lv2" ,lv2)
1607 ("lvtk" ,lvtk)))
1608 (native-inputs
1609 `(("pkg-config" ,pkg-config)))
1610 (native-search-paths
1611 (list (search-path-specification
1612 (variable "LV2_PATH")
1613 (files '("lib/lv2")))))
1614 (home-page "http://elephly.net/lv2/mdapiano.html")
1615 (synopsis "LV2 port of the mda Piano plugin")
1616 (description "An LV2 port of the mda Piano VSTi.")
1617 (license license:gpl3+)))
1618
1619 (define-public lv2-mda-epiano
1620 (package (inherit lv2-mda-piano)
1621 (name "lv2-mda-epiano")
1622 (arguments
1623 `(#:make-flags (list
1624 "TYPE=mdaEPiano"
1625 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1626 #:tests? #f ; no check target
1627 #:phases (alist-delete 'configure %standard-phases)))
1628 (home-page "http://elephly.net/lv2/mdaepiano.html")
1629 (synopsis "LV2 port of the mda EPiano plugin")
1630 (description "An LV2 port of the mda EPiano VSTi.")))
1631
1632 (define-public lvtk
1633 (package
1634 (name "lvtk")
1635 (version "1.2.0")
1636 (source (origin
1637 (method url-fetch)
1638 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1639 version
1640 ".tar.gz"))
1641 (file-name (string-append name "-" version ".tar.gz"))
1642 (sha256
1643 (base32
1644 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1645 (build-system waf-build-system)
1646 (arguments
1647 `(#:tests? #f ; no check target
1648 #:python ,python-2
1649 #:configure-flags
1650 (list (string-append "--boost-includes="
1651 (assoc-ref %build-inputs "boost")
1652 "/include"))
1653 #:phases (modify-phases %standard-phases
1654 (add-before
1655 'configure 'set-flags
1656 (lambda* (#:key inputs #:allow-other-keys)
1657 ;; See e.g. https://github.com/lvtk/lvtk/issues/21
1658 (setenv "LDFLAGS"
1659 (string-append
1660 "-L" (assoc-ref inputs "boost") "/lib "
1661 "-lboost_system"))
1662 ;; Needed for gtkmm
1663 (substitute* '("src/wscript_build"
1664 "examples/wscript_build")
1665 (("cxxflags.*= \\[" line)
1666 (string-append line "\"-std=c++11\", ")))
1667 #t)))))
1668 (inputs
1669 `(("boost" ,boost)
1670 ("gtkmm" ,gtkmm-2)
1671 ("lv2" ,lv2)))
1672 (native-inputs
1673 `(("pkg-config" ,pkg-config)))
1674 (home-page "https://github.com/lvtk/lvtk")
1675 (synopsis "C++ libraries for LV2 plugins")
1676 (description
1677 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1678 extensions into easy to use C++ classes. It is the successor of
1679 lv2-c++-tools.")
1680 (license license:gpl3+)))
1681
1682 (define-public openal
1683 (package
1684 (name "openal")
1685 (version "1.17.2")
1686 (source (origin
1687 (method url-fetch)
1688 (uri (string-append
1689 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1690 version ".tar.bz2"))
1691 (sha256
1692 (base32
1693 "051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3"))))
1694 (build-system cmake-build-system)
1695 (arguments
1696 `(#:tests? #f ; no check target
1697 #:phases
1698 (modify-phases %standard-phases
1699 (add-after
1700 'unpack 'use-full-library-paths
1701 (lambda* (#:key inputs #:allow-other-keys)
1702 (substitute* "Alc/backends/pulseaudio.c"
1703 (("#define PALIB \"libpulse\\.so\\.0\"")
1704 (string-append "#define PALIB \""
1705 (assoc-ref inputs "pulseaudio")
1706 "/lib/libpulse.so.0"
1707 "\"")))
1708 (substitute* "Alc/backends/alsa.c"
1709 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1710 (string-append "LoadLib(\""
1711 (assoc-ref inputs "alsa-lib")
1712 "/lib/libasound.so.2"
1713 "\")")))
1714 #t)))))
1715 (inputs
1716 `(("alsa-lib" ,alsa-lib)
1717 ("pulseaudio" ,pulseaudio)))
1718 (synopsis "3D audio API")
1719 (description
1720 "OpenAL provides capabilities for playing audio in a virtual 3D
1721 environment. Distance attenuation, doppler shift, and directional sound
1722 emitters are among the features handled by the API. More advanced effects,
1723 including air absorption, occlusion, and environmental reverb, are available
1724 through the EFX extension. It also facilitates streaming audio, multi-channel
1725 buffers, and audio capture.")
1726 (home-page "http://kcat.strangesoft.net/openal.html")
1727 (license license:lgpl2.0+)))
1728
1729 (define-public freealut
1730 (package
1731 (name "freealut")
1732 (version "1.1.0")
1733 (source (origin
1734 (method url-fetch)
1735 ;; Upstream url is unclear, many systems use Fedora, there is also
1736 ;; https://github.com/vancegroup/freealut though the status of it
1737 ;; (official? unofficial?) is not clear.
1738 (uri (string-append
1739 "https://pkgs.fedoraproject.org/repo/pkgs/" name "/" name "-"
1740 version ".tar.gz" "/e089b28a0267faabdb6c079ee173664a/" name
1741 "-" version ".tar.gz"))
1742 (sha256
1743 (base32
1744 "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0"))))
1745 (build-system cmake-build-system)
1746 (arguments
1747 `(#:tests? #f)) ; no check target
1748 (inputs
1749 `(("openal" ,openal)))
1750 (synopsis "Free implementation of OpenAL's ALUT standard")
1751 (description "freealut is the OpenAL Utility Toolkit.")
1752 (home-page "http://kcat.strangesoft.net/openal.html")
1753 (license license:lgpl2.0)))
1754
1755 (define-public patchage
1756 (package
1757 (name "patchage")
1758 (version "1.0.0")
1759 (source (origin
1760 (method url-fetch)
1761 (uri (string-append "http://download.drobilla.net/patchage-"
1762 version
1763 ".tar.bz2"))
1764 (sha256
1765 (base32
1766 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1767 (build-system waf-build-system)
1768 (arguments `(#:tests? #f)) ; no check target
1769 (inputs
1770 `(("alsa-lib" ,alsa-lib)
1771 ("boost" ,boost)
1772 ("jack" ,jack-1)
1773 ("ganv" ,ganv)
1774 ("glibmm" ,glibmm)
1775 ("gtkmm" ,gtkmm-2)
1776 ("dbus-glib" ,dbus-glib)))
1777 (native-inputs
1778 `(("pkg-config" ,pkg-config)))
1779 (home-page "http://drobilla.net/software/patchage/")
1780 (synopsis "Modular patch bay for audio and MIDI systems")
1781 (description
1782 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1783 and ALSA.")
1784 (license license:gpl3+)))
1785
1786 (define-public raul
1787 (package
1788 (name "raul")
1789 (version "0.8.0")
1790 (source (origin
1791 (method url-fetch)
1792 (uri (string-append "http://download.drobilla.net/raul-"
1793 version ".tar.bz2"))
1794 (sha256
1795 (base32
1796 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
1797 (build-system waf-build-system)
1798 (arguments
1799 `(#:python ,python-2
1800 #:tests? #f)) ; no check target
1801 (inputs
1802 `(("glib" ,glib)
1803 ("boost" ,boost)))
1804 (native-inputs
1805 `(("pkg-config" ,pkg-config)))
1806 (home-page "http://drobilla.net/software/raul/")
1807 (synopsis "Real-time audio utility library")
1808 (description
1809 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
1810 aimed at audio/musical applications.")
1811 (license license:gpl2+)))
1812
1813 (define-public raul-devel
1814 (let ((commit "f8bf77d3c3b77830aedafb9ebb5cdadfea7ed07a")
1815 (revision "1"))
1816 (package (inherit raul)
1817 (name "raul")
1818 (version (string-append "0.8.4-" revision "."
1819 (string-take commit 9)))
1820 (source (origin
1821 (method git-fetch)
1822 (uri (git-reference
1823 (url "http://git.drobilla.net/raul.git")
1824 (commit commit)))
1825 (file-name (string-append name "-" version "-checkout"))
1826 (sha256
1827 (base32
1828 "1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj")))))))
1829
1830 (define-public rubberband
1831 (package
1832 (name "rubberband")
1833 (version "1.8.1")
1834 (source (origin
1835 (method url-fetch)
1836 (uri
1837 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
1838 version
1839 ".tar.bz2"))
1840 (sha256
1841 (base32
1842 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
1843 (build-system gnu-build-system)
1844 (arguments `(#:tests? #f)) ; no check target
1845 (inputs
1846 `(("ladspa" ,ladspa)
1847 ("libsamplerate" ,libsamplerate)
1848 ("vamp" ,vamp)))
1849 (native-inputs
1850 `(("pkg-config" ,pkg-config)))
1851 (home-page "http://breakfastquay.com/rubberband/")
1852 (synopsis "Audio time-stretching and pitch-shifting library")
1853 (description
1854 "Rubber Band is a library and utility program that permits changing the
1855 tempo and pitch of an audio recording independently of one another.")
1856 (license license:gpl2+)))
1857
1858 (define-public rtmidi
1859 (package
1860 (name "rtmidi")
1861 (version "2.1.0")
1862 (source (origin
1863 (method url-fetch)
1864 (uri
1865 (string-append "https://github.com/powertab/rtmidi/archive/"
1866 version ".tar.gz"))
1867 (file-name (string-append name "-" version ".tar.gz"))
1868 (sha256
1869 (base32
1870 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
1871 (build-system gnu-build-system)
1872 (arguments
1873 `(#:tests? #f ;no "check" target
1874 #:phases (modify-phases %standard-phases
1875 (add-before
1876 'configure 'autoconf
1877 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
1878 (add-before
1879 'build 'fix-makefile
1880 (lambda _
1881 (substitute* "Makefile"
1882 (("/bin/ln") "ln")
1883 (("RtMidi.h RtError.h") "RtMidi.h"))
1884 #t))
1885 (add-before
1886 'install 'make-target-dirs
1887 (lambda _
1888 (let ((out (assoc-ref %outputs "out")))
1889 (mkdir-p (string-append out "/bin"))
1890 (mkdir (string-append out "/lib"))
1891 (mkdir (string-append out "/include")))
1892 #t)))))
1893 (inputs
1894 `(("jack" ,jack-1)
1895 ("alsa-lib" ,alsa-lib)))
1896 (native-inputs
1897 `(("autoconf" ,autoconf)
1898 ("automake" ,automake)
1899 ("libtool" ,libtool)
1900 ("pkg-config" ,pkg-config)))
1901 (home-page "https://github.com/powertab/rtmidi")
1902 (synopsis "Cross-platform MIDI library for C++")
1903 (description
1904 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
1905 classes) that provide a common cross-platform API for realtime MIDI
1906 input/output.")
1907 (license license:expat)))
1908
1909 (define-public sratom
1910 (package
1911 (name "sratom")
1912 (version "0.4.6")
1913 (source (origin
1914 (method url-fetch)
1915 (uri (string-append "http://download.drobilla.net/sratom-"
1916 version
1917 ".tar.bz2"))
1918 (sha256
1919 (base32
1920 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
1921 (build-system waf-build-system)
1922 (arguments `(#:tests? #f)) ; no check target
1923 (inputs
1924 `(("lv2" ,lv2)
1925 ("serd" ,serd)
1926 ("sord" ,sord)))
1927 (native-inputs
1928 `(("pkg-config" ,pkg-config)))
1929 (home-page "http://drobilla.net/software/sratom/")
1930 (synopsis "Library for serialising LV2 atoms to/from RDF")
1931 (description
1932 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
1933 the Turtle syntax.")
1934 (license license:isc)))
1935
1936 (define-public suil
1937 (package
1938 (name "suil")
1939 (version "0.8.2")
1940 (source (origin
1941 (method url-fetch)
1942 (uri (string-append "http://download.drobilla.net/suil-"
1943 version
1944 ".tar.bz2"))
1945 (sha256
1946 (base32
1947 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
1948 (build-system waf-build-system)
1949 (arguments `(#:tests? #f)) ; no check target
1950 (inputs
1951 `(("lv2" ,lv2)
1952 ("gtk+-2" ,gtk+-2)
1953 ("qt-4" ,qt-4)))
1954 (native-inputs
1955 `(("pkg-config" ,pkg-config)))
1956 (home-page "http://drobilla.net/software/suil/")
1957 (synopsis "Library for loading and wrapping LV2 plugin UIs")
1958 (description
1959 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
1960
1961 Suil makes it possible to load a UI of a toolkit in a host using another
1962 toolkit. The API is designed such that hosts do not need to explicitly
1963 support specific toolkits – if Suil supports a particular toolkit, then UIs in
1964 that toolkit will work in all hosts that use Suil automatically.
1965
1966 Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
1967 (license license:isc)))
1968
1969 (define-public timidity++
1970 (package
1971 (name "timidity++")
1972 (version "2.14.0")
1973 (source (origin
1974 (method url-fetch)
1975 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
1976 "/TiMidity++-" version
1977 "/TiMidity++-" version ".tar.bz2"))
1978 (sha256
1979 (base32
1980 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
1981 (build-system gnu-build-system)
1982 (arguments
1983 '(#:configure-flags
1984 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
1985 "--enable-ncurses"
1986 "--enable-server"
1987 "--enable-alsaseq"
1988 (string-append "--with-default-path="
1989 (assoc-ref %outputs "out") "/etc/timidity"))
1990 #:phases
1991 (alist-cons-after
1992 'install 'install-config
1993 (lambda _
1994 (let ((out (string-append (assoc-ref %outputs "out")
1995 "/etc/timidity")))
1996 (mkdir-p out)
1997 (call-with-output-file
1998 (string-append out "/timidity.cfg")
1999 (lambda (port)
2000 (format port (string-append "source "
2001 (assoc-ref %build-inputs "freepats")
2002 "/share/freepats/freepats.cfg"))))))
2003 %standard-phases)))
2004 (inputs
2005 `(("alsa-lib" ,alsa-lib)
2006 ("ao" ,ao)
2007 ("flac" ,flac)
2008 ("jack" ,jack-1)
2009 ("libogg" ,libogg)
2010 ("speex" ,speex)
2011 ("ncurses" ,ncurses)
2012 ("freepats" ,freepats)))
2013 (native-inputs
2014 `(("pkg-config" ,pkg-config)))
2015 (home-page "http://timidity.sourceforge.net/")
2016 (synopsis "Software synthesizer for playing MIDI files")
2017 (description
2018 "TiMidity++ is a software synthesizer. It can play MIDI files by
2019 converting them into PCM waveform data; give it a MIDI data along with digital
2020 instrument data files, then it synthesizes them in real-time, and plays. It
2021 can not only play sounds, but also can save the generated waveforms into hard
2022 disks as various audio file formats.")
2023 (license license:gpl2+)))
2024
2025 (define-public vamp
2026 (package
2027 (name "vamp")
2028 (version "2.6")
2029 (source (origin
2030 (method url-fetch)
2031 (uri (string-append
2032 "https://code.soundsoftware.ac.uk"
2033 "/attachments/download/1520/vamp-plugin-sdk-"
2034 version ".tar.gz"))
2035 (sha256
2036 (base32
2037 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
2038 (build-system gnu-build-system)
2039 (arguments
2040 `(#:tests? #f ; no check target
2041 #:phases
2042 (alist-cons-after
2043 'install 'remove-libvamp-hostsdk.la
2044 (lambda* (#:key outputs #:allow-other-keys)
2045 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
2046 (for-each delete-file
2047 (let ((out (assoc-ref outputs "out")))
2048 (list (string-append out "/lib/libvamp-sdk.la")
2049 (string-append out "/lib/libvamp-hostsdk.la"))))
2050 #t)
2051 %standard-phases)))
2052 (inputs
2053 `(("libsndfile" ,libsndfile)))
2054 (native-inputs
2055 `(("pkg-config" ,pkg-config)))
2056 (home-page "http://vamp-plugins.org")
2057 (synopsis "Modular and extensible audio processing system")
2058 (description
2059 "Vamp is an audio processing plugin system for plugins that extract
2060 descriptive information from audio data — typically referred to as audio
2061 analysis plugins or audio feature extraction plugins.")
2062 (license
2063 (license:x11-style
2064 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
2065
2066 (define-public libsbsms
2067 (package
2068 (name "libsbsms")
2069 (version "2.0.2")
2070 (source
2071 (origin
2072 (method url-fetch)
2073 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
2074 "/libsbsms-" version ".tar.gz"))
2075 (sha256
2076 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
2077 (build-system gnu-build-system)
2078 (native-inputs `(("automake" ,automake)))
2079 (arguments
2080 `(#:configure-flags
2081 ;; Disable the use of SSE unless on x86_64.
2082 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
2083 (%current-system))))
2084 ''("--disable-sse")
2085 ''())
2086 #:phases
2087 (modify-phases %standard-phases
2088 (add-after
2089 'unpack 'fix-ar-lib-path
2090 (lambda* (#:key inputs #:allow-other-keys)
2091 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
2092 (delete-file "ar-lib")
2093 (symlink
2094 (string-append (assoc-ref inputs "automake") "/share/automake-"
2095 ,(package-version automake) "/ar-lib")
2096 "ar-lib"))))))
2097 (home-page "http://sbsms.sourceforge.net/")
2098 (synopsis "Library for time stretching and pitch scaling of audio")
2099 (description
2100 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
2101 stretching and pitch scaling of audio. This package contains the library.")
2102 ;; There is no explicit declaration of a license, but a COPYING file
2103 ;; containing gpl2.
2104 (license license:gpl2)))
2105
2106 (define-public wavpack
2107 (package
2108 (name "wavpack")
2109 (version "5.1.0")
2110 (source (origin
2111 (method url-fetch)
2112 (uri (string-append "http://www.wavpack.com/"
2113 name "-" version ".tar.bz2"))
2114 (sha256
2115 (base32
2116 "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
2117 (build-system gnu-build-system)
2118 (home-page "http://www.wavpack.com/")
2119 (synopsis "Hybrid lossless audio codec")
2120 (description
2121 "WavPack is an audio compression format with lossless, lossy and hybrid
2122 compression modes. This package contains command-line programs and library to
2123 encode and decode wavpack files.")
2124 (license license:bsd-3)))
2125
2126 (define-public libmodplug
2127 (package
2128 (name "libmodplug")
2129 (version "0.8.8.5")
2130 (source (origin
2131 (method url-fetch)
2132 (uri (string-append
2133 "mirror://sourceforge/modplug-xmms/"
2134 name "/" version "/" name "-" version ".tar.gz"))
2135 (sha256
2136 (base32
2137 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
2138 (build-system gnu-build-system)
2139 (home-page "http://modplug-xmms.sourceforge.net/")
2140 (synopsis "Mod file playing library")
2141 (description
2142 "Libmodplug renders mod music files as raw audio data, for playing or
2143 conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
2144 supported. Optional features include high-quality resampling, bass expansion,
2145 surround and reverb.")
2146 (license license:public-domain)))
2147
2148 (define-public libxmp
2149 (package
2150 (name "libxmp")
2151 (version "4.4.1")
2152 (source (origin
2153 (method url-fetch)
2154 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
2155 name "-" version ".tar.gz"))
2156 (sha256
2157 (base32
2158 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
2159 (build-system gnu-build-system)
2160 (home-page "http://xmp.sourceforge.net/")
2161 (synopsis "Module player library")
2162 (description
2163 "Libxmp is a library that renders module files to PCM data. It supports
2164 over 90 mainstream and obscure module formats including Protracker (MOD),
2165 Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
2166 (license license:lgpl2.1+)))
2167
2168 (define-public xmp
2169 (package
2170 (name "xmp")
2171 (version "4.1.0")
2172 (source (origin
2173 (method url-fetch)
2174 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
2175 name "-" version ".tar.gz"))
2176 (sha256
2177 (base32
2178 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
2179 (build-system gnu-build-system)
2180 (native-inputs
2181 `(("pkg-config" ,pkg-config)))
2182 (inputs
2183 `(("libxmp" ,libxmp)
2184 ("pulseaudio" ,pulseaudio)))
2185 (home-page "http://xmp.sourceforge.net/")
2186 (synopsis "Extended module player")
2187 (description
2188 "Xmp is a portable module player that plays over 90 mainstream and
2189 obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
2190 Tracker 3 S3M and Impulse Tracker IT files.")
2191 (license license:gpl2+)))
2192
2193 (define-public soundtouch
2194 (package
2195 (name "soundtouch")
2196 (version "1.8.0")
2197 (source
2198 (origin
2199 (method url-fetch)
2200 (uri
2201 (string-append
2202 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
2203 (sha256
2204 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
2205 (build-system gnu-build-system)
2206 (native-inputs
2207 `(("autoconf" ,autoconf)
2208 ("automake" ,automake)
2209 ("libtool" ,libtool)
2210 ("file" ,file)))
2211 (arguments
2212 '(#:phases
2213 (alist-cons-after
2214 'unpack 'bootstrap
2215 (lambda _
2216 (zero? (system* "sh" "bootstrap")))
2217 %standard-phases)))
2218 (home-page "http://www.surina.net/soundtouch/")
2219 (synopsis
2220 "Audio processing library for changing tempo, pitch and playback rate")
2221 (description
2222 "SoundTouch is an audio processing library for changing the tempo, pitch
2223 and playback rates of audio streams or audio files. It is intended for
2224 application developers writing sound processing tools that require tempo/pitch
2225 control functionality, or just for playing around with the sound effects.")
2226 (license license:lgpl2.1+)))
2227
2228 (define-public sox
2229 (package
2230 (name "sox")
2231 (version "14.4.2")
2232 (source (origin
2233 (method url-fetch)
2234 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2235 name "-" version ".tar.bz2"))
2236 (sha256
2237 (base32
2238 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2239 (build-system gnu-build-system)
2240 (arguments
2241 '(#:configure-flags
2242 ;; The upstream asks to identify the distribution to diagnose SoX
2243 ;; bug reports.
2244 '("--with-distro=Guix System Distribution")))
2245 (native-inputs
2246 `(("pkg-config" ,pkg-config)))
2247 (inputs
2248 `(("alsa-lib" ,alsa-lib)
2249 ("ao" ,ao)
2250 ("flac" ,flac)
2251 ("lame" ,lame)
2252 ("libid3tag" ,libid3tag)
2253 ("libltdl" ,libltdl)
2254 ("libmad" ,libmad)
2255 ("libpng" ,libpng)
2256 ("libvorbis" ,libvorbis)
2257 ("pulseaudio" ,pulseaudio)))
2258 (home-page "http://sox.sourceforge.net")
2259 (synopsis "Sound processing utility")
2260 (description
2261 "SoX (Sound eXchange) is a command line utility that can convert
2262 various formats of computer audio files to other formats. It can also
2263 apply various effects to these sound files, and, as an added bonus, SoX
2264 can play and record audio files.")
2265 ;; sox.c is distributed under GPL, while the files that make up
2266 ;; libsox are licensed under LGPL.
2267 (license (list license:gpl2+ license:lgpl2.1+))))
2268
2269 (define-public soxr
2270 (package
2271 (name "soxr")
2272 (version "0.1.1")
2273 (source
2274 (origin
2275 (method url-fetch)
2276 (uri
2277 (string-append "mirror://sourceforge/soxr/soxr-" version
2278 "-Source.tar.xz"))
2279 (sha256
2280 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
2281 (build-system cmake-build-system)
2282 (arguments '(#:tests? #f)) ;no 'check' target
2283 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
2284 (synopsis "One-dimensional sample-rate conversion library")
2285 (description
2286 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2287 conversion. It may be used, for example, to resample PCM-encoded audio.")
2288 (license license:lgpl2.1+)))
2289
2290 (define-public twolame
2291 (package
2292 (name "twolame")
2293 (version "0.3.13")
2294 (source
2295 (origin
2296 (method url-fetch)
2297 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2298 "/twolame-" version ".tar.gz"))
2299 (sha256
2300 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))
2301 (modules '((guix build utils)))
2302 ;; The tests break with Perl 5.24:
2303 ;; https://github.com/njh/twolame/issues/21
2304 ;; TODO: Remove this snippet when upgrading twolame.
2305 (snippet
2306 '(begin
2307 (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])"))
2308 #t))))
2309 (build-system gnu-build-system)
2310 (inputs
2311 `(("libsndfile" ,libsndfile)))
2312 (native-inputs
2313 `(("perl" ,perl)
2314 ("which" ,which))) ;used in tests/test.pl
2315 (home-page "http://www.twolame.org/")
2316 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2317 (description
2318 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2319 tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2320 portions of LAME.")
2321 (license license:lgpl2.1+)))
2322
2323 (define-public portaudio
2324 (package
2325 (name "portaudio")
2326 (version "19.20140130")
2327 (source
2328 (origin
2329 (method url-fetch)
2330 (uri (string-append
2331 "http://www.portaudio.com/archives/pa_stable_v"
2332 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2333 ".tgz"))
2334 (sha256
2335 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
2336 (patches (search-patches "portaudio-audacity-compat.patch"))))
2337 (build-system gnu-build-system)
2338 (inputs
2339 ;; TODO: Add ASIHPI.
2340 `(("alsa-lib" ,alsa-lib)
2341 ("jack" ,jack-1)))
2342 (native-inputs
2343 `(("autoconf" ,autoconf)
2344 ("automake" ,automake)
2345 ("libtool" ,libtool)
2346 ("pkg-config" ,pkg-config)))
2347 (arguments
2348 '(#:phases
2349 ;; Autoreconf is necessary because the audacity-compat patch modifies
2350 ;; .in files.
2351 (alist-cons-after
2352 'unpack 'autoreconf
2353 (lambda _
2354 (zero? (system* "autoreconf" "-vif")))
2355 %standard-phases)
2356 #:tests? #f)) ;no 'check' target
2357 (home-page "http://www.portaudio.com/")
2358 (synopsis "Audio I/O library")
2359 (description
2360 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2361 to record and/or play sound using a callback function or a blocking read/write
2362 interface.")
2363 (license license:expat)))
2364
2365 (define-public qsynth
2366 (package
2367 (name "qsynth")
2368 (version "0.4.3")
2369 (source
2370 (origin
2371 (method url-fetch)
2372 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2373 "/qsynth-" version ".tar.gz"))
2374 (sha256
2375 (base32 "1j5hm99fjrnaw8wbmlh4qixkv3rw5dl429mp1ag7js2ydrx0j9yy"))))
2376 (build-system gnu-build-system)
2377 (arguments
2378 `(#:tests? #f ; no "check" phase
2379 #:configure-flags
2380 '("CXXFLAGS=-std=gnu++11")))
2381 (native-inputs
2382 `(("qttools" ,qttools)
2383 ("pkg-config" ,pkg-config)))
2384 (inputs
2385 `(("fluidsynth" ,fluidsynth)
2386 ("qtbase" ,qtbase)
2387 ("qtx11extras" ,qtx11extras)))
2388 (home-page "http://qsynth.sourceforge.net")
2389 (synopsis "Graphical user interface for FluidSynth")
2390 (description
2391 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2392 synthesizer written in C++.")
2393 (license license:gpl2+)))
2394
2395 (define-public rsound
2396 (package
2397 (name "rsound")
2398 (version "1.1")
2399 (source
2400 (origin
2401 (method url-fetch)
2402 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
2403 version ".tar.gz"))
2404 (file-name (string-append name "-" version))
2405 (sha256
2406 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
2407 (build-system gnu-build-system)
2408 (inputs
2409 `(("alsa-lib" ,alsa-lib)
2410 ("jack" ,jack-1)
2411 ("ao" ,ao)
2412 ("libsamplerate" ,libsamplerate)
2413 ("openal" ,openal)
2414 ("portaudio" ,portaudio)
2415 ("pulseaudio" ,pulseaudio)))
2416 (arguments
2417 '(#:phases
2418 (alist-replace
2419 'configure
2420 (lambda* (#:key outputs #:allow-other-keys)
2421 (setenv "CC" "gcc")
2422 (zero?
2423 (system* "./configure"
2424 (string-append "--prefix=" (assoc-ref outputs "out")))))
2425 %standard-phases)
2426 ;; No 'check' target.
2427 #:tests? #f))
2428 (home-page "http://themaister.net/rsound.html")
2429 (synopsis "Networked audio system")
2430 (description
2431 "RSound allows you to send audio from an application and transfer it
2432 directly to a different computer on your LAN network. It is an audio daemon
2433 with a much different focus than most other audio daemons.")
2434 (license license:gpl3+)))
2435
2436 (define-public xjackfreak
2437 (package
2438 (name "xjackfreak")
2439 (version "1.0")
2440 (source (origin
2441 (method url-fetch)
2442 (uri (string-append
2443 "https://github.com/johnhldavis/xjackfreak/archive/v"
2444 version ".tar.gz"))
2445 (file-name (string-append name "-" version ".tar.gz"))
2446 (sha256
2447 (base32
2448 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
2449 (build-system gnu-build-system)
2450 (arguments
2451 `(#:make-flags
2452 (list (string-append "docdir=" (assoc-ref %outputs "out")
2453 "/share/doc/xjackfreak"))))
2454 (inputs
2455 `(("jack" ,jack-1)
2456 ("libx11" ,libx11)
2457 ("libxt" ,libxt)
2458 ("libxext" ,libxext)))
2459 (native-inputs
2460 `(("pkg-config" ,pkg-config)))
2461 (home-page "https://github.com/johnhldavis/xjackfreak")
2462 (synopsis "JACK audio frequency analyzer and display")
2463 (description
2464 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2465 Connection Kit. It can display the FFT of any input, modify it and output the
2466 result.")
2467 (license license:gpl3+)))
2468
2469 (define-public zita-convolver
2470 (package
2471 (name "zita-convolver")
2472 (version "3.1.0")
2473 (source (origin
2474 (method url-fetch)
2475 (uri (string-append
2476 "http://kokkinizita.linuxaudio.org"
2477 "/linuxaudio/downloads/zita-convolver-"
2478 version ".tar.bz2"))
2479 (snippet
2480 ;; Don't optimize for a specific processor architecture.
2481 '(substitute* "libs/Makefile"
2482 (("^CXXFLAGS \\+= -march=native") "")))
2483 (modules '((guix build utils)))
2484 (sha256
2485 (base32
2486 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2487 (build-system gnu-build-system)
2488 (arguments
2489 `(#:tests? #f ; no "check" target
2490 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2491 #:phases
2492 (alist-cons-after
2493 'unpack 'patch-makefile-and-enter-directory
2494 (lambda _
2495 (substitute* "libs/Makefile"
2496 (("ldconfig") "true")
2497 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2498 (chdir "libs") #t)
2499 (alist-cons-after
2500 'install
2501 'install-symlink
2502 (lambda _
2503 (symlink "libzita-convolver.so"
2504 (string-append (assoc-ref %outputs "out")
2505 "/lib/libzita-convolver.so.3")))
2506 ;; no configure script
2507 (alist-delete 'configure %standard-phases)))))
2508 (inputs `(("fftwf" ,fftwf)))
2509 (home-page "http://kokkinizita.linuxaudio.org")
2510 (synopsis "Fast, partitioned convolution engine library")
2511 (description
2512 "Zita convolver is a C++ library providing a real-time convolution
2513 engine.")
2514 (license license:gpl3+)))
2515
2516 (define-public zita-resampler
2517 (package
2518 (name "zita-resampler")
2519 (version "1.3.0")
2520 (source (origin
2521 (method url-fetch)
2522 (uri (string-append
2523 "http://kokkinizita.linuxaudio.org"
2524 "/linuxaudio/downloads/zita-resampler-"
2525 version ".tar.bz2"))
2526 (snippet
2527 ;; Don't optimize for a specific processor architecture.
2528 '(substitute* '("apps/Makefile" "libs/Makefile")
2529 (("^CXXFLAGS \\+= -march=native") "")))
2530 (modules '((guix build utils)))
2531 (sha256
2532 (base32
2533 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
2534 (build-system gnu-build-system)
2535 (arguments
2536 `(#:tests? #f ; no "check" target
2537 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2538 #:phases
2539 (modify-phases %standard-phases
2540 (add-after
2541 'unpack 'patch-makefile-and-enter-directory
2542 (lambda _
2543 (substitute* "libs/Makefile"
2544 (("ldconfig") "true")
2545 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2546 (chdir "libs")
2547 #t))
2548 (add-after
2549 'install 'install-symlink
2550 (lambda _
2551 (symlink "libzita-resampler.so"
2552 (string-append (assoc-ref %outputs "out")
2553 "/lib/libzita-resampler.so.1"))))
2554 ;; no configure script
2555 (delete 'configure))))
2556 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
2557 (synopsis "C++ library for resampling audio signals")
2558 (description
2559 "Libzita-resampler is a C++ library for resampling audio signals. It is
2560 designed to be used within a real-time processing context, to be fast, and to
2561 provide high-quality sample rate conversion.")
2562 (license license:gpl3+)))
2563
2564 (define-public zita-alsa-pcmi
2565 (package
2566 (name "zita-alsa-pcmi")
2567 (version "0.2.0")
2568 (source (origin
2569 (method url-fetch)
2570 (uri (string-append
2571 "http://kokkinizita.linuxaudio.org"
2572 "/linuxaudio/downloads/zita-alsa-pcmi-"
2573 version ".tar.bz2"))
2574 (sha256
2575 (base32
2576 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
2577 (build-system gnu-build-system)
2578 (arguments
2579 `(#:tests? #f ; no "check" target
2580 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2581 #:phases
2582 (alist-cons-after
2583 'unpack 'patch-makefile-and-enter-directory
2584 (lambda _
2585 (substitute* "libs/Makefile"
2586 (("ldconfig") "true")
2587 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2588 (chdir "libs")
2589 #t)
2590 (alist-cons-after
2591 'install
2592 'install-symlink
2593 (lambda _
2594 (symlink "libzita-alsa-pcmi.so"
2595 (string-append (assoc-ref %outputs "out")
2596 "/lib/libzita-alsa-pcmi.so.0")))
2597 ;; no configure script
2598 (alist-delete 'configure %standard-phases)))))
2599 (inputs
2600 `(("alsa-lib" ,alsa-lib)
2601 ("fftw" ,fftw)))
2602 (home-page "http://kokkinizita.linuxaudio.org")
2603 (synopsis "C++ wrapper around the ALSA API")
2604 (description
2605 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
2606 access to ALSA PCM devices, taking care of the many functions required to
2607 open, initialise and use a hw: device in mmap mode, and providing floating
2608 point audio data.")
2609 (license license:gpl3+)))
2610
2611 (define-public cuetools
2612 (package
2613 (name "cuetools")
2614 (version "1.4.1")
2615 (source (origin
2616 (method url-fetch)
2617 (uri (string-append "https://github.com/svend/cuetools/archive/"
2618 version ".tar.gz"))
2619 (file-name (string-append name "-" version ".tar.gz"))
2620 (sha256
2621 (base32
2622 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
2623 (build-system gnu-build-system)
2624 ;; The source tarball is not bootstrapped.
2625 (arguments
2626 `(#:phases
2627 (modify-phases %standard-phases
2628 (add-after 'unpack 'bootstrap
2629 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
2630 ;; Bootstrapping tools
2631 (native-inputs
2632 `(("autoconf" ,autoconf)
2633 ("automake" ,automake)
2634 ("flex" ,flex)
2635 ("bison" ,bison)))
2636 (synopsis "Cue and toc file parsers and utilities")
2637 (description "Cuetools is a set of programs that are useful for manipulating
2638 and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
2639 files are a way to represent the layout of a data or audio CD in a
2640 machine-readable ASCII format.")
2641 (home-page "https://github.com/svend/cuetools")
2642 (license license:gpl2+)))
2643
2644 (define-public shntool
2645 (package
2646 (name "shntool")
2647 (version "3.0.10")
2648 (source (origin
2649 (method url-fetch)
2650 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
2651 "shntool-" version ".tar.gz"))
2652 (sha256
2653 (base32
2654 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
2655 (build-system gnu-build-system)
2656 (synopsis "WAVE audio data processing tool")
2657 (description "shntool is a multi-purpose WAVE data processing and reporting
2658 utility. File formats are abstracted from its core, so it can process any file
2659 that contains WAVE data, compressed or not---provided there exists a format
2660 module to handle that particular file type.")
2661 (home-page "http://etree.org/shnutils/shntool/")
2662 ;; 'install-sh' bears the x11 license
2663 (license (list license:gpl2+ license:x11))))
2664
2665 (define-public dcadec
2666 (package
2667 (name "dcadec")
2668 (version "0.2.0")
2669 (source (origin
2670 (method url-fetch)
2671 (uri (string-append "https://github.com/foo86/dcadec/archive/v"
2672 version ".tar.gz"))
2673 (file-name (string-append name "-" version ".tar.gz"))
2674 (sha256
2675 (base32
2676 "0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
2677 (build-system gnu-build-system)
2678 (arguments
2679 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
2680 '(#:tests? #f
2681 #:make-flags
2682 (list "CC=gcc"
2683 ;; Build shared library.
2684 "CONFIG_SHARED=1"
2685 (string-append "PREFIX=" (assoc-ref %outputs "out"))
2686 ;; Set proper runpath.
2687 (string-append "LDFLAGS=-Wl,-rpath="
2688 (assoc-ref %outputs "out")
2689 "/lib"))
2690 #:phases
2691 (modify-phases %standard-phases
2692 ;; No configure script, just a hand-written Makefile.
2693 (delete 'configure))))
2694 (synopsis "DTS Coherent Acoustics decoder")
2695 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
2696 with support for HD extensions.")
2697 (home-page "https://github.com/foo86/dcadec")
2698 (license license:lgpl2.1+)))
2699
2700 (define-public bs1770gain
2701 (package
2702 (name "bs1770gain")
2703 (version "0.4.12")
2704 (source
2705 (origin
2706 (method url-fetch)
2707 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
2708 version "/bs1770gain-" version ".tar.gz"))
2709 (sha256
2710 (base32
2711 "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a"))))
2712 (build-system gnu-build-system)
2713 (inputs `(("ffmpeg" ,ffmpeg)
2714 ("sox" ,sox)))
2715 (home-page "http://bs1770gain.sourceforge.net/")
2716 (synopsis "Tool to adjust loudness of media files")
2717 (description
2718 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
2719 flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
2720 loudness of audio and video files to the same level.")
2721 (license license:gpl2+)))
2722
2723 (define-public filteraudio
2724 (let ((revision "1")
2725 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
2726 (package
2727 (name "filteraudio")
2728 (version (string-append "0.0.0-" revision "."
2729 (string-take commit 7)))
2730 (source
2731 (origin
2732 (method git-fetch)
2733 (uri (git-reference
2734 (url "https://github.com/irungentoo/filter_audio.git")
2735 (commit commit)))
2736 (file-name (string-append name "-" version "-checkout"))
2737 (sha256
2738 (base32
2739 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
2740 (build-system gnu-build-system)
2741 (arguments
2742 '(#:make-flags (list (string-append "PREFIX=" %output)
2743 "CC=gcc")
2744 #:tests? #f ; No tests
2745 #:phases
2746 (modify-phases %standard-phases
2747 ;; No configure script
2748 (delete 'configure))))
2749 (synopsis "Lightweight audio filtering library")
2750 (description "An easy to use audio filtering library made from webrtc
2751 code, used in @code{libtoxcore}.")
2752 (home-page "https://github.com/irungentoo/filter_audio")
2753 (license license:bsd-3))))
2754
2755 (define-public gsm
2756 (package
2757 (name "gsm")
2758 (version "1.0.14")
2759 (source
2760 (origin
2761 (method url-fetch)
2762 (uri
2763 (string-append "http://www.quut.com/" name "/" name
2764 "-" version ".tar.gz"))
2765 (sha256
2766 (base32
2767 "0b1mx69jq88wva3wk0hi6fcl5a52qhnq2f9p3f3jdh5k61ma252q"))))
2768 (build-system gnu-build-system)
2769 (arguments
2770 `(#:test-target "tst"
2771 #:phases
2772 (modify-phases %standard-phases
2773 (add-before 'install 'pre-install
2774 (lambda _
2775 (let ((out (assoc-ref %outputs "out")))
2776 (substitute* "Makefile"
2777 (("INSTALL_ROOT\t=")
2778 (string-append "INSTALL_ROOT\t=\t" out)))
2779 (mkdir-p (string-append out "/inc"))
2780 (mkdir-p (string-append out "/man"))
2781 (mkdir-p (string-append out "/man/man1"))
2782 (mkdir-p (string-append out "/man/man3"))
2783 (mkdir-p (string-append out "/bin"))
2784 (mkdir-p (string-append out "/lib")))))
2785 (add-after 'install 'post-install
2786 (lambda _
2787 (let ((out (assoc-ref %outputs "out")))
2788 (rename-file (string-append out "/inc")
2789 (string-append out "/include"))
2790 (mkdir-p (string-append out "/include/gsm"))
2791 (copy-recursively "inc"
2792 (string-append out "/include/gsm")))))
2793 (delete 'configure))))
2794 (synopsis "GSM 06.10 lossy speech compression library")
2795 (description "This C library provides an encoder and a decoder for the GSM
2796 06.10 RPE-LTP lossy speech compression algorithm.")
2797 (home-page "http://quut.com/gsm/")
2798 (license (license:non-copyleft "file://COPYRIGHT"))))