gnu: Add qjackctl.
[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.3")
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 "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j"))))
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-after 'unpack 'patch-fast_rand
1290 (lambda _
1291 (substitute* "common/memops.c"
1292 ;; Fixed in upstream commit d3c8e2d8d78899fba40a3e677ed4dbe388d82269
1293 (("^inline unsigned int fast_rand" line)
1294 (string-append "static " line))
1295 ;; Fixed in upstream commit 0279a2d65a36d1378f5bab56d95bf9e99cc8cefb
1296 ((" 96314165") " 196314165"))
1297 #t))
1298 (add-before
1299 'configure 'set-linkflags
1300 (lambda _
1301 ;; Add $libdir to the RUNPATH of all the binaries.
1302 (substitute* "wscript"
1303 ((".*CFLAGS.*-Wall.*" m)
1304 (string-append m
1305 " conf.env.append_unique('LINKFLAGS',"
1306 "'-Wl,-rpath=" %output "/lib')\n")))))
1307 (add-after 'install 'wrap-python-scripts
1308 (lambda* (#:key inputs outputs #:allow-other-keys)
1309 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
1310 (let* ((out (assoc-ref outputs "out"))
1311 (path (getenv "PYTHONPATH")))
1312 (wrap-program (string-append out "/bin/jack_control")
1313 `("PYTHONPATH" ":" prefix (,path))))
1314 #t)))))
1315 (inputs
1316 `(("alsa-lib" ,alsa-lib)
1317 ("dbus" ,dbus)
1318 ("expat" ,expat)
1319 ("libsamplerate" ,libsamplerate)
1320 ("opus" ,opus)
1321 ("python2-dbus" ,python2-dbus)
1322 ("readline" ,readline)))
1323 (native-inputs
1324 `(("pkg-config" ,pkg-config)))
1325 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
1326 (license (list license:gpl2+ license:lgpl2.1+))))
1327
1328 (define-public jalv
1329 (package
1330 (name "jalv")
1331 (version "1.4.6")
1332 (source (origin
1333 (method url-fetch)
1334 (uri (string-append "http://download.drobilla.net/jalv-"
1335 version ".tar.bz2"))
1336 (sha256
1337 (base32
1338 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
1339 (build-system waf-build-system)
1340 (arguments
1341 `(#:tests? #f ; no check target
1342 #:phases
1343 (modify-phases %standard-phases
1344 (add-before
1345 'configure 'set-flags
1346 (lambda _
1347 ;; Compile with C++11, required by gtkmm.
1348 (setenv "CXXFLAGS" "-std=c++11")
1349 #t)))))
1350 (inputs
1351 `(("lv2" ,lv2)
1352 ("lilv" ,lilv)
1353 ("suil" ,suil)
1354 ("gtk" ,gtk+-2)
1355 ("gtkmm" ,gtkmm-2)
1356 ("jack" ,jack-1)))
1357 (native-inputs
1358 `(("pkg-config" ,pkg-config)))
1359 (home-page "http://drobilla.net/software/jalv/")
1360 (synopsis "Simple LV2 host for JACK")
1361 (description
1362 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
1363 plugins and exposes their ports as JACK ports, essentially making any LV2
1364 plugin function as a JACK application.")
1365 (license license:isc)))
1366
1367 (define-public ladspa
1368 (package
1369 (name "ladspa")
1370 (version "1.13")
1371 (source
1372 (origin
1373 (method url-fetch)
1374 ;; Since the official link is dead,
1375 ;; we download the tarball from Debian or Internet Archive.
1376 (uri (list (string-append "http://http.debian.net"
1377 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
1378 version ".orig.tar.gz")
1379 (string-append "https://web.archive.org/web/20140717172251/"
1380 "http://www.ladspa.org/download/ladspa_sdk_"
1381 version ".tgz")))
1382 (sha256
1383 (base32
1384 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
1385 (build-system gnu-build-system)
1386 (arguments
1387 `(#:tests? #f ; the "test" target is a listening test only
1388 #:phases
1389 (alist-replace
1390 'configure
1391 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
1392 (chdir "src")
1393 (let ((out (assoc-ref outputs "out")))
1394 (substitute* "makefile"
1395 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
1396 (("/usr/include/") (string-append out "/include/"))
1397 (("/usr/bin/") (string-append out "/bin/"))
1398 (("-mkdirhier") "mkdir -p")
1399 (("^CC.*") "CC = gcc\n")
1400 (("^CPP.*") "CPP = g++\n"))))
1401 (alist-delete 'build %standard-phases))))
1402 ;; Since the home page is gone, we provide a link to the archived version.
1403 (home-page
1404 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
1405 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
1406 (description
1407 "LADSPA is a standard that allows software audio processors and effects
1408 to be plugged into a wide range of audio synthesis and recording packages.")
1409 (license license:lgpl2.1+)))
1410
1411 (define-public lash
1412 (package
1413 (name "lash")
1414 (version "0.6.0-rc2")
1415 (source (origin
1416 (method url-fetch)
1417 ;; The tilde is not permitted in the builder name, but is used
1418 ;; in the tarball.
1419 (uri (string-append
1420 "mirror://savannah/lash/lash-"
1421 (string-join (string-split version #\-) "~")
1422 ".tar.bz2"))
1423 (file-name (string-append name "-" version ".tar.bz2"))
1424 (sha256
1425 (base32
1426 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
1427 (build-system gnu-build-system)
1428 (inputs
1429 `(("bdb" ,bdb)
1430 ("gtk" ,gtk+-2)
1431 ("jack" ,jack-1)
1432 ("readline" ,readline)
1433 ("python" ,python-2)))
1434 ;; According to pkg-config, packages depending on lash also need to have
1435 ;; at least the following packages declared as inputs.
1436 (propagated-inputs
1437 `(("alsa-lib" ,alsa-lib)
1438 ("dbus" ,dbus)
1439 ("libxml2" ,libxml2)))
1440 (native-inputs
1441 `(("pkg-config" ,pkg-config)))
1442 (home-page "http://www.nongnu.org/lash/")
1443 (synopsis "Audio application session manager")
1444 (description
1445 "LASH is a session management system for audio applications. It allows
1446 you to save and restore audio sessions consisting of multiple interconneced
1447 applications, restoring program state (i.e. loaded patches) and the
1448 connections between them.")
1449 (license license:gpl2+)))
1450
1451 (define-public libbs2b
1452 (package
1453 (name "libbs2b")
1454 (version "3.1.0")
1455 (source (origin
1456 (method url-fetch)
1457 (uri (string-append "mirror://sourceforge/bs2b/libbs2b/" version
1458 "/libbs2b-" version ".tar.lzma"))
1459 (sha256
1460 (base32
1461 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
1462 (build-system gnu-build-system)
1463 (native-inputs `(("pkg-config" ,pkg-config)))
1464 (inputs `(("libsndfile" ,libsndfile)))
1465 (home-page "https://sourceforge.net/projects/bs2b/")
1466 (synopsis "Bauer stereophonic-to-binaural DSP")
1467 (description
1468 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
1469 designed to improve headphone listening of stereo audio records. Recommended
1470 for headphone prolonged listening to disable superstereo fatigue without
1471 essential distortions.")
1472 (license license:expat)))
1473
1474 (define-public liblo
1475 (package
1476 (name "liblo")
1477 (version "0.28")
1478 (source (origin
1479 (method url-fetch)
1480 (uri (string-append "mirror://sourceforge/liblo/liblo/" version
1481 "/liblo-" version ".tar.gz"))
1482 (sha256
1483 (base32
1484 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
1485 (build-system gnu-build-system)
1486 (arguments
1487 `(;; liblo test FAILED
1488 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
1489 #:tests? #f))
1490 (home-page "http://liblo.sourceforge.net")
1491 (synopsis "Implementation of the Open Sound Control protocol")
1492 (description
1493 "liblo is a lightweight library that provides an easy to use
1494 implementation of the Open Sound Control (OSC) protocol.")
1495 (license license:lgpl2.1+)))
1496
1497 (define-public python-pyliblo
1498 (package
1499 (name "python-pyliblo")
1500 (version "0.10.0")
1501 (source (origin
1502 (method url-fetch)
1503 (uri (string-append "http://das.nasophon.de/download/pyliblo-"
1504 version ".tar.gz"))
1505 (sha256
1506 (base32
1507 "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
1508 (build-system python-build-system)
1509 (arguments `(#:tests? #f)) ;no tests
1510 (native-inputs
1511 `(("python-cython" ,python-cython)))
1512 (inputs
1513 `(("liblo" ,liblo)))
1514 (home-page "http://das.nasophon.de/pyliblo/")
1515 (synopsis "Python bindings for liblo")
1516 (description
1517 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)
1518 library. It supports almost the complete functionality of liblo, allowing you
1519 to send and receive OSC messages using a nice and simple Python API. Also
1520 included are the command line utilities @code{send_osc} and @code{dump_osc}.")
1521 (license license:lgpl2.1+)))
1522
1523 (define-public python2-pyliblo
1524 (package-with-python2 python-pyliblo))
1525
1526 (define-public lilv
1527 (package
1528 (name "lilv")
1529 (version "0.22.0")
1530 (source (origin
1531 (method url-fetch)
1532 (uri (string-append "http://download.drobilla.net/lilv-"
1533 version
1534 ".tar.bz2"))
1535 (sha256
1536 (base32
1537 "1d3ss7vv8drf1c5340lyd0gv736n2qy7sxji2nh1rw9y48hr69yd"))))
1538 (build-system waf-build-system)
1539 (arguments
1540 `(#:tests? #f ; no check target
1541 #:phases
1542 (modify-phases %standard-phases
1543 (add-before
1544 'configure 'set-ldflags
1545 (lambda* (#:key outputs #:allow-other-keys)
1546 (setenv "LDFLAGS"
1547 (string-append "-Wl,-rpath="
1548 (assoc-ref outputs "out") "/lib")))))))
1549 ;; required by lilv-0.pc
1550 (propagated-inputs
1551 `(("serd" ,serd)
1552 ("sord" ,sord)
1553 ("sratom" ,sratom)))
1554 (inputs
1555 `(("lv2" ,lv2)))
1556 (native-inputs
1557 `(("pkg-config" ,pkg-config)))
1558 (home-page "http://drobilla.net/software/lilv/")
1559 (synopsis "Library to simplify use of LV2 plugins in applications")
1560 (description
1561 "Lilv is a C library to make the use of LV2 plugins as simple as possible
1562 for applications. Lilv is the successor to SLV2, rewritten to be
1563 significantly faster and have minimal dependencies.")
1564 (license license:isc)))
1565
1566 (define-public lv2
1567 (package
1568 (name "lv2")
1569 (version "1.14.0")
1570 (source (origin
1571 (method url-fetch)
1572 (uri (string-append "http://lv2plug.in/spec/lv2-"
1573 version ".tar.bz2"))
1574 (sha256
1575 (base32
1576 "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq"))))
1577 (build-system waf-build-system)
1578 (arguments
1579 `(#:tests? #f ; no check target
1580 #:configure-flags '("--no-plugins")))
1581 (inputs
1582 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
1583 `(("libsndfile" ,libsndfile)))
1584 (native-inputs
1585 `(("pkg-config" ,pkg-config)))
1586 (home-page "http://lv2plug.in/")
1587 (synopsis "LV2 audio plugin specification")
1588 (description
1589 "LV2 is an open specification for audio plugins and host applications.
1590 At its core, LV2 is a simple stable interface, accompanied by extensions which
1591 add functionality to support the needs of increasingly powerful audio
1592 software.")
1593 (license license:isc)))
1594
1595 (define-public lv2-mda-piano
1596 (package
1597 (name "lv2-mda-piano")
1598 (version "0.0.2")
1599 (source (origin
1600 (method git-fetch)
1601 (uri (git-reference
1602 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
1603 (commit version)))
1604 (sha256
1605 (base32
1606 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
1607 (build-system gnu-build-system)
1608 (arguments
1609 `(#:make-flags (list
1610 "TYPE=mdaPiano"
1611 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1612 #:tests? #f ; no check target
1613 #:phases (alist-delete 'configure %standard-phases)))
1614 (inputs
1615 `(("lv2" ,lv2)
1616 ("lvtk" ,lvtk)))
1617 (native-inputs
1618 `(("pkg-config" ,pkg-config)))
1619 (native-search-paths
1620 (list (search-path-specification
1621 (variable "LV2_PATH")
1622 (files '("lib/lv2")))))
1623 (home-page "http://elephly.net/lv2/mdapiano.html")
1624 (synopsis "LV2 port of the mda Piano plugin")
1625 (description "An LV2 port of the mda Piano VSTi.")
1626 (license license:gpl3+)))
1627
1628 (define-public lv2-mda-epiano
1629 (package (inherit lv2-mda-piano)
1630 (name "lv2-mda-epiano")
1631 (arguments
1632 `(#:make-flags (list
1633 "TYPE=mdaEPiano"
1634 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1635 #:tests? #f ; no check target
1636 #:phases (alist-delete 'configure %standard-phases)))
1637 (home-page "http://elephly.net/lv2/mdaepiano.html")
1638 (synopsis "LV2 port of the mda EPiano plugin")
1639 (description "An LV2 port of the mda EPiano VSTi.")))
1640
1641 (define-public lvtk
1642 (package
1643 (name "lvtk")
1644 (version "1.2.0")
1645 (source (origin
1646 (method url-fetch)
1647 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1648 version
1649 ".tar.gz"))
1650 (file-name (string-append name "-" version ".tar.gz"))
1651 (sha256
1652 (base32
1653 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1654 (build-system waf-build-system)
1655 (arguments
1656 `(#:tests? #f ; no check target
1657 #:python ,python-2
1658 #:configure-flags
1659 (list (string-append "--boost-includes="
1660 (assoc-ref %build-inputs "boost")
1661 "/include"))
1662 #:phases (modify-phases %standard-phases
1663 (add-before
1664 'configure 'set-flags
1665 (lambda* (#:key inputs #:allow-other-keys)
1666 ;; See e.g. https://github.com/lvtk/lvtk/issues/21
1667 (setenv "LDFLAGS"
1668 (string-append
1669 "-L" (assoc-ref inputs "boost") "/lib "
1670 "-lboost_system"))
1671 ;; Needed for gtkmm
1672 (substitute* '("src/wscript_build"
1673 "examples/wscript_build")
1674 (("cxxflags.*= \\[" line)
1675 (string-append line "\"-std=c++11\", ")))
1676 #t)))))
1677 (inputs
1678 `(("boost" ,boost)
1679 ("gtkmm" ,gtkmm-2)
1680 ("lv2" ,lv2)))
1681 (native-inputs
1682 `(("pkg-config" ,pkg-config)))
1683 (home-page "https://github.com/lvtk/lvtk")
1684 (synopsis "C++ libraries for LV2 plugins")
1685 (description
1686 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1687 extensions into easy to use C++ classes. It is the successor of
1688 lv2-c++-tools.")
1689 (license license:gpl3+)))
1690
1691 (define-public openal
1692 (package
1693 (name "openal")
1694 (version "1.17.2")
1695 (source (origin
1696 (method url-fetch)
1697 (uri (string-append
1698 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1699 version ".tar.bz2"))
1700 (sha256
1701 (base32
1702 "051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3"))))
1703 (build-system cmake-build-system)
1704 (arguments
1705 `(#:tests? #f ; no check target
1706 #:phases
1707 (modify-phases %standard-phases
1708 (add-after
1709 'unpack 'use-full-library-paths
1710 (lambda* (#:key inputs #:allow-other-keys)
1711 (substitute* "Alc/backends/pulseaudio.c"
1712 (("#define PALIB \"libpulse\\.so\\.0\"")
1713 (string-append "#define PALIB \""
1714 (assoc-ref inputs "pulseaudio")
1715 "/lib/libpulse.so.0"
1716 "\"")))
1717 (substitute* "Alc/backends/alsa.c"
1718 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1719 (string-append "LoadLib(\""
1720 (assoc-ref inputs "alsa-lib")
1721 "/lib/libasound.so.2"
1722 "\")")))
1723 #t)))))
1724 (inputs
1725 `(("alsa-lib" ,alsa-lib)
1726 ("pulseaudio" ,pulseaudio)))
1727 (synopsis "3D audio API")
1728 (description
1729 "OpenAL provides capabilities for playing audio in a virtual 3D
1730 environment. Distance attenuation, doppler shift, and directional sound
1731 emitters are among the features handled by the API. More advanced effects,
1732 including air absorption, occlusion, and environmental reverb, are available
1733 through the EFX extension. It also facilitates streaming audio, multi-channel
1734 buffers, and audio capture.")
1735 (home-page "http://kcat.strangesoft.net/openal.html")
1736 (license license:lgpl2.0+)))
1737
1738 (define-public freealut
1739 (package
1740 (name "freealut")
1741 (version "1.1.0")
1742 (source (origin
1743 (method url-fetch)
1744 ;; Upstream url is unclear, many systems use Fedora, there is also
1745 ;; https://github.com/vancegroup/freealut though the status of it
1746 ;; (official? unofficial?) is not clear.
1747 (uri (string-append
1748 "https://pkgs.fedoraproject.org/repo/pkgs/" name "/" name "-"
1749 version ".tar.gz" "/e089b28a0267faabdb6c079ee173664a/" name
1750 "-" version ".tar.gz"))
1751 (sha256
1752 (base32
1753 "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0"))))
1754 (build-system cmake-build-system)
1755 (arguments
1756 `(#:tests? #f)) ; no check target
1757 (inputs
1758 `(("openal" ,openal)))
1759 (synopsis "Free implementation of OpenAL's ALUT standard")
1760 (description "freealut is the OpenAL Utility Toolkit.")
1761 (home-page "http://kcat.strangesoft.net/openal.html")
1762 (license license:lgpl2.0)))
1763
1764 (define-public patchage
1765 (package
1766 (name "patchage")
1767 (version "1.0.0")
1768 (source (origin
1769 (method url-fetch)
1770 (uri (string-append "http://download.drobilla.net/patchage-"
1771 version
1772 ".tar.bz2"))
1773 (sha256
1774 (base32
1775 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1776 (build-system waf-build-system)
1777 (arguments `(#:tests? #f)) ; no check target
1778 (inputs
1779 `(("alsa-lib" ,alsa-lib)
1780 ("boost" ,boost)
1781 ("jack" ,jack-1)
1782 ("ganv" ,ganv)
1783 ("glibmm" ,glibmm)
1784 ("gtkmm" ,gtkmm-2)
1785 ("dbus-glib" ,dbus-glib)))
1786 (native-inputs
1787 `(("pkg-config" ,pkg-config)))
1788 (home-page "http://drobilla.net/software/patchage/")
1789 (synopsis "Modular patch bay for audio and MIDI systems")
1790 (description
1791 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1792 and ALSA.")
1793 (license license:gpl3+)))
1794
1795 (define-public qjackctl
1796 (package
1797 (name "qjackctl")
1798 (version "0.4.4")
1799 (source (origin
1800 (method url-fetch)
1801 (uri
1802 (string-append
1803 "https://downloads.sourceforge.net/project/qjackctl/qjackctl/"
1804 version "/qjackctl-" version ".tar.gz"))
1805 (sha256
1806 (base32
1807 "19bbljb3iz5ss4s5fmra1dxabg2fnp61sa51d63zsm56xkvv47ak"))))
1808 (build-system gnu-build-system)
1809 (arguments
1810 `(#:tests? #f)) ; no check target
1811
1812 (inputs
1813 `(("jack-2" ,jack-2)
1814 ("qt" ,qt)))
1815 (native-inputs
1816 `(("pkg-config" ,pkg-config)
1817 ("qttools" ,qttools)))
1818 (home-page "https://qjackctl.sourceforge.io/")
1819 (synopsis "Jack server control application")
1820 (description "Control a Jack server. Allows you to plug various sources
1821 into various outputs and to start, stop and configure jackd")
1822 (license license:gpl2+)))
1823
1824
1825 (define-public raul
1826 (package
1827 (name "raul")
1828 (version "0.8.0")
1829 (source (origin
1830 (method url-fetch)
1831 (uri (string-append "http://download.drobilla.net/raul-"
1832 version ".tar.bz2"))
1833 (sha256
1834 (base32
1835 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
1836 (build-system waf-build-system)
1837 (arguments
1838 `(#:python ,python-2
1839 #:tests? #f)) ; no check target
1840 (inputs
1841 `(("glib" ,glib)
1842 ("boost" ,boost)))
1843 (native-inputs
1844 `(("pkg-config" ,pkg-config)))
1845 (home-page "http://drobilla.net/software/raul/")
1846 (synopsis "Real-time audio utility library")
1847 (description
1848 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
1849 aimed at audio/musical applications.")
1850 (license license:gpl2+)))
1851
1852 (define-public raul-devel
1853 (let ((commit "f8bf77d3c3b77830aedafb9ebb5cdadfea7ed07a")
1854 (revision "1"))
1855 (package (inherit raul)
1856 (name "raul")
1857 (version (string-append "0.8.4-" revision "."
1858 (string-take commit 9)))
1859 (source (origin
1860 (method git-fetch)
1861 (uri (git-reference
1862 (url "http://git.drobilla.net/raul.git")
1863 (commit commit)))
1864 (file-name (string-append name "-" version "-checkout"))
1865 (sha256
1866 (base32
1867 "1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj")))))))
1868
1869 (define-public rubberband
1870 (package
1871 (name "rubberband")
1872 (version "1.8.1")
1873 (source (origin
1874 (method url-fetch)
1875 (uri
1876 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
1877 version
1878 ".tar.bz2"))
1879 (sha256
1880 (base32
1881 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
1882 (build-system gnu-build-system)
1883 (arguments `(#:tests? #f)) ; no check target
1884 (inputs
1885 `(("ladspa" ,ladspa)
1886 ("libsamplerate" ,libsamplerate)
1887 ("vamp" ,vamp)))
1888 (native-inputs
1889 `(("pkg-config" ,pkg-config)))
1890 (home-page "http://breakfastquay.com/rubberband/")
1891 (synopsis "Audio time-stretching and pitch-shifting library")
1892 (description
1893 "Rubber Band is a library and utility program that permits changing the
1894 tempo and pitch of an audio recording independently of one another.")
1895 (license license:gpl2+)))
1896
1897 (define-public rtmidi
1898 (package
1899 (name "rtmidi")
1900 (version "2.1.0")
1901 (source (origin
1902 (method url-fetch)
1903 (uri
1904 (string-append "https://github.com/powertab/rtmidi/archive/"
1905 version ".tar.gz"))
1906 (file-name (string-append name "-" version ".tar.gz"))
1907 (sha256
1908 (base32
1909 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
1910 (build-system gnu-build-system)
1911 (arguments
1912 `(#:tests? #f ;no "check" target
1913 #:phases (modify-phases %standard-phases
1914 (add-before
1915 'configure 'autoconf
1916 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
1917 (add-before
1918 'build 'fix-makefile
1919 (lambda _
1920 (substitute* "Makefile"
1921 (("/bin/ln") "ln")
1922 (("RtMidi.h RtError.h") "RtMidi.h"))
1923 #t))
1924 (add-before
1925 'install 'make-target-dirs
1926 (lambda _
1927 (let ((out (assoc-ref %outputs "out")))
1928 (mkdir-p (string-append out "/bin"))
1929 (mkdir (string-append out "/lib"))
1930 (mkdir (string-append out "/include")))
1931 #t)))))
1932 (inputs
1933 `(("jack" ,jack-1)
1934 ("alsa-lib" ,alsa-lib)))
1935 (native-inputs
1936 `(("autoconf" ,autoconf)
1937 ("automake" ,automake)
1938 ("libtool" ,libtool)
1939 ("pkg-config" ,pkg-config)))
1940 (home-page "https://github.com/powertab/rtmidi")
1941 (synopsis "Cross-platform MIDI library for C++")
1942 (description
1943 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
1944 classes) that provide a common cross-platform API for realtime MIDI
1945 input/output.")
1946 (license license:expat)))
1947
1948 (define-public sratom
1949 (package
1950 (name "sratom")
1951 (version "0.4.6")
1952 (source (origin
1953 (method url-fetch)
1954 (uri (string-append "http://download.drobilla.net/sratom-"
1955 version
1956 ".tar.bz2"))
1957 (sha256
1958 (base32
1959 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
1960 (build-system waf-build-system)
1961 (arguments `(#:tests? #f)) ; no check target
1962 (inputs
1963 `(("lv2" ,lv2)
1964 ("serd" ,serd)
1965 ("sord" ,sord)))
1966 (native-inputs
1967 `(("pkg-config" ,pkg-config)))
1968 (home-page "http://drobilla.net/software/sratom/")
1969 (synopsis "Library for serialising LV2 atoms to/from RDF")
1970 (description
1971 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
1972 the Turtle syntax.")
1973 (license license:isc)))
1974
1975 (define-public suil
1976 (package
1977 (name "suil")
1978 (version "0.8.2")
1979 (source (origin
1980 (method url-fetch)
1981 (uri (string-append "http://download.drobilla.net/suil-"
1982 version
1983 ".tar.bz2"))
1984 (sha256
1985 (base32
1986 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
1987 (build-system waf-build-system)
1988 (arguments `(#:tests? #f)) ; no check target
1989 (inputs
1990 `(("lv2" ,lv2)
1991 ("gtk+-2" ,gtk+-2)
1992 ("qt-4" ,qt-4)))
1993 (native-inputs
1994 `(("pkg-config" ,pkg-config)))
1995 (home-page "http://drobilla.net/software/suil/")
1996 (synopsis "Library for loading and wrapping LV2 plugin UIs")
1997 (description
1998 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
1999
2000 Suil makes it possible to load a UI of a toolkit in a host using another
2001 toolkit. The API is designed such that hosts do not need to explicitly
2002 support specific toolkits – if Suil supports a particular toolkit, then UIs in
2003 that toolkit will work in all hosts that use Suil automatically.
2004
2005 Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
2006 (license license:isc)))
2007
2008 (define-public timidity++
2009 (package
2010 (name "timidity++")
2011 (version "2.14.0")
2012 (source (origin
2013 (method url-fetch)
2014 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
2015 "/TiMidity++-" version
2016 "/TiMidity++-" version ".tar.bz2"))
2017 (sha256
2018 (base32
2019 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
2020 (build-system gnu-build-system)
2021 (arguments
2022 '(#:configure-flags
2023 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
2024 "--enable-ncurses"
2025 "--enable-server"
2026 "--enable-alsaseq"
2027 (string-append "--with-default-path="
2028 (assoc-ref %outputs "out") "/etc/timidity"))
2029 #:phases
2030 (alist-cons-after
2031 'install 'install-config
2032 (lambda _
2033 (let ((out (string-append (assoc-ref %outputs "out")
2034 "/etc/timidity")))
2035 (mkdir-p out)
2036 (call-with-output-file
2037 (string-append out "/timidity.cfg")
2038 (lambda (port)
2039 (format port (string-append "source "
2040 (assoc-ref %build-inputs "freepats")
2041 "/share/freepats/freepats.cfg"))))))
2042 %standard-phases)))
2043 (inputs
2044 `(("alsa-lib" ,alsa-lib)
2045 ("ao" ,ao)
2046 ("flac" ,flac)
2047 ("jack" ,jack-1)
2048 ("libogg" ,libogg)
2049 ("speex" ,speex)
2050 ("ncurses" ,ncurses)
2051 ("freepats" ,freepats)))
2052 (native-inputs
2053 `(("pkg-config" ,pkg-config)))
2054 (home-page "http://timidity.sourceforge.net/")
2055 (synopsis "Software synthesizer for playing MIDI files")
2056 (description
2057 "TiMidity++ is a software synthesizer. It can play MIDI files by
2058 converting them into PCM waveform data; give it a MIDI data along with digital
2059 instrument data files, then it synthesizes them in real-time, and plays. It
2060 can not only play sounds, but also can save the generated waveforms into hard
2061 disks as various audio file formats.")
2062 (license license:gpl2+)))
2063
2064 (define-public vamp
2065 (package
2066 (name "vamp")
2067 (version "2.6")
2068 (source (origin
2069 (method url-fetch)
2070 (uri (string-append
2071 "https://code.soundsoftware.ac.uk"
2072 "/attachments/download/1520/vamp-plugin-sdk-"
2073 version ".tar.gz"))
2074 (sha256
2075 (base32
2076 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
2077 (build-system gnu-build-system)
2078 (arguments
2079 `(#:tests? #f ; no check target
2080 #:phases
2081 (alist-cons-after
2082 'install 'remove-libvamp-hostsdk.la
2083 (lambda* (#:key outputs #:allow-other-keys)
2084 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
2085 (for-each delete-file
2086 (let ((out (assoc-ref outputs "out")))
2087 (list (string-append out "/lib/libvamp-sdk.la")
2088 (string-append out "/lib/libvamp-hostsdk.la"))))
2089 #t)
2090 %standard-phases)))
2091 (inputs
2092 `(("libsndfile" ,libsndfile)))
2093 (native-inputs
2094 `(("pkg-config" ,pkg-config)))
2095 (home-page "http://vamp-plugins.org")
2096 (synopsis "Modular and extensible audio processing system")
2097 (description
2098 "Vamp is an audio processing plugin system for plugins that extract
2099 descriptive information from audio data — typically referred to as audio
2100 analysis plugins or audio feature extraction plugins.")
2101 (license
2102 (license:x11-style
2103 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
2104
2105 (define-public libsbsms
2106 (package
2107 (name "libsbsms")
2108 (version "2.0.2")
2109 (source
2110 (origin
2111 (method url-fetch)
2112 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
2113 "/libsbsms-" version ".tar.gz"))
2114 (sha256
2115 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
2116 (build-system gnu-build-system)
2117 (native-inputs `(("automake" ,automake)))
2118 (arguments
2119 `(#:configure-flags
2120 ;; Disable the use of SSE unless on x86_64.
2121 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
2122 (%current-system))))
2123 ''("--disable-sse")
2124 ''())
2125 #:phases
2126 (modify-phases %standard-phases
2127 (add-after
2128 'unpack 'fix-ar-lib-path
2129 (lambda* (#:key inputs #:allow-other-keys)
2130 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
2131 (delete-file "ar-lib")
2132 (symlink
2133 (string-append (assoc-ref inputs "automake") "/share/automake-"
2134 ,(package-version automake) "/ar-lib")
2135 "ar-lib"))))))
2136 (home-page "http://sbsms.sourceforge.net/")
2137 (synopsis "Library for time stretching and pitch scaling of audio")
2138 (description
2139 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
2140 stretching and pitch scaling of audio. This package contains the library.")
2141 ;; There is no explicit declaration of a license, but a COPYING file
2142 ;; containing gpl2.
2143 (license license:gpl2)))
2144
2145 (define-public wavpack
2146 (package
2147 (name "wavpack")
2148 (version "5.1.0")
2149 (source (origin
2150 (method url-fetch)
2151 (uri (string-append "http://www.wavpack.com/"
2152 name "-" version ".tar.bz2"))
2153 (sha256
2154 (base32
2155 "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
2156 (build-system gnu-build-system)
2157 (home-page "http://www.wavpack.com/")
2158 (synopsis "Hybrid lossless audio codec")
2159 (description
2160 "WavPack is an audio compression format with lossless, lossy and hybrid
2161 compression modes. This package contains command-line programs and library to
2162 encode and decode wavpack files.")
2163 (license license:bsd-3)))
2164
2165 (define-public libmodplug
2166 (package
2167 (name "libmodplug")
2168 (version "0.8.8.5")
2169 (source (origin
2170 (method url-fetch)
2171 (uri (string-append
2172 "mirror://sourceforge/modplug-xmms/"
2173 name "/" version "/" name "-" version ".tar.gz"))
2174 (sha256
2175 (base32
2176 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
2177 (build-system gnu-build-system)
2178 (home-page "http://modplug-xmms.sourceforge.net/")
2179 (synopsis "Mod file playing library")
2180 (description
2181 "Libmodplug renders mod music files as raw audio data, for playing or
2182 conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
2183 supported. Optional features include high-quality resampling, bass expansion,
2184 surround and reverb.")
2185 (license license:public-domain)))
2186
2187 (define-public libxmp
2188 (package
2189 (name "libxmp")
2190 (version "4.4.1")
2191 (source (origin
2192 (method url-fetch)
2193 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
2194 name "-" version ".tar.gz"))
2195 (sha256
2196 (base32
2197 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
2198 (build-system gnu-build-system)
2199 (home-page "http://xmp.sourceforge.net/")
2200 (synopsis "Module player library")
2201 (description
2202 "Libxmp is a library that renders module files to PCM data. It supports
2203 over 90 mainstream and obscure module formats including Protracker (MOD),
2204 Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
2205 (license license:lgpl2.1+)))
2206
2207 (define-public xmp
2208 (package
2209 (name "xmp")
2210 (version "4.1.0")
2211 (source (origin
2212 (method url-fetch)
2213 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
2214 name "-" version ".tar.gz"))
2215 (sha256
2216 (base32
2217 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
2218 (build-system gnu-build-system)
2219 (native-inputs
2220 `(("pkg-config" ,pkg-config)))
2221 (inputs
2222 `(("libxmp" ,libxmp)
2223 ("pulseaudio" ,pulseaudio)))
2224 (home-page "http://xmp.sourceforge.net/")
2225 (synopsis "Extended module player")
2226 (description
2227 "Xmp is a portable module player that plays over 90 mainstream and
2228 obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
2229 Tracker 3 S3M and Impulse Tracker IT files.")
2230 (license license:gpl2+)))
2231
2232 (define-public soundtouch
2233 (package
2234 (name "soundtouch")
2235 (version "1.8.0")
2236 (source
2237 (origin
2238 (method url-fetch)
2239 (uri
2240 (string-append
2241 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
2242 (sha256
2243 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
2244 (build-system gnu-build-system)
2245 (native-inputs
2246 `(("autoconf" ,autoconf)
2247 ("automake" ,automake)
2248 ("libtool" ,libtool)
2249 ("file" ,file)))
2250 (arguments
2251 '(#:phases
2252 (alist-cons-after
2253 'unpack 'bootstrap
2254 (lambda _
2255 (zero? (system* "sh" "bootstrap")))
2256 %standard-phases)))
2257 (home-page "http://www.surina.net/soundtouch/")
2258 (synopsis
2259 "Audio processing library for changing tempo, pitch and playback rate")
2260 (description
2261 "SoundTouch is an audio processing library for changing the tempo, pitch
2262 and playback rates of audio streams or audio files. It is intended for
2263 application developers writing sound processing tools that require tempo/pitch
2264 control functionality, or just for playing around with the sound effects.")
2265 (license license:lgpl2.1+)))
2266
2267 (define-public sox
2268 (package
2269 (name "sox")
2270 (version "14.4.2")
2271 (source (origin
2272 (method url-fetch)
2273 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2274 name "-" version ".tar.bz2"))
2275 (sha256
2276 (base32
2277 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2278 (build-system gnu-build-system)
2279 (arguments
2280 '(#:configure-flags
2281 ;; The upstream asks to identify the distribution to diagnose SoX
2282 ;; bug reports.
2283 '("--with-distro=Guix System Distribution")))
2284 (native-inputs
2285 `(("pkg-config" ,pkg-config)))
2286 (inputs
2287 `(("alsa-lib" ,alsa-lib)
2288 ("ao" ,ao)
2289 ("flac" ,flac)
2290 ("lame" ,lame)
2291 ("libid3tag" ,libid3tag)
2292 ("libltdl" ,libltdl)
2293 ("libmad" ,libmad)
2294 ("libpng" ,libpng)
2295 ("libvorbis" ,libvorbis)
2296 ("pulseaudio" ,pulseaudio)))
2297 (home-page "http://sox.sourceforge.net")
2298 (synopsis "Sound processing utility")
2299 (description
2300 "SoX (Sound eXchange) is a command line utility that can convert
2301 various formats of computer audio files to other formats. It can also
2302 apply various effects to these sound files, and, as an added bonus, SoX
2303 can play and record audio files.")
2304 ;; sox.c is distributed under GPL, while the files that make up
2305 ;; libsox are licensed under LGPL.
2306 (license (list license:gpl2+ license:lgpl2.1+))))
2307
2308 (define-public soxr
2309 (package
2310 (name "soxr")
2311 (version "0.1.1")
2312 (source
2313 (origin
2314 (method url-fetch)
2315 (uri
2316 (string-append "mirror://sourceforge/soxr/soxr-" version
2317 "-Source.tar.xz"))
2318 (sha256
2319 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
2320 (build-system cmake-build-system)
2321 (arguments '(#:tests? #f)) ;no 'check' target
2322 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
2323 (synopsis "One-dimensional sample-rate conversion library")
2324 (description
2325 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2326 conversion. It may be used, for example, to resample PCM-encoded audio.")
2327 (license license:lgpl2.1+)))
2328
2329 (define-public twolame
2330 (package
2331 (name "twolame")
2332 (version "0.3.13")
2333 (source
2334 (origin
2335 (method url-fetch)
2336 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2337 "/twolame-" version ".tar.gz"))
2338 (sha256
2339 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))
2340 (modules '((guix build utils)))
2341 ;; The tests break with Perl 5.24:
2342 ;; https://github.com/njh/twolame/issues/21
2343 ;; TODO: Remove this snippet when upgrading twolame.
2344 (snippet
2345 '(begin
2346 (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])"))
2347 #t))))
2348 (build-system gnu-build-system)
2349 (inputs
2350 `(("libsndfile" ,libsndfile)))
2351 (native-inputs
2352 `(("perl" ,perl)
2353 ("which" ,which))) ;used in tests/test.pl
2354 (home-page "http://www.twolame.org/")
2355 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2356 (description
2357 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2358 tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2359 portions of LAME.")
2360 (license license:lgpl2.1+)))
2361
2362 (define-public portaudio
2363 (package
2364 (name "portaudio")
2365 (version "19.20140130")
2366 (source
2367 (origin
2368 (method url-fetch)
2369 (uri (string-append
2370 "http://www.portaudio.com/archives/pa_stable_v"
2371 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2372 ".tgz"))
2373 (sha256
2374 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
2375 (patches (search-patches "portaudio-audacity-compat.patch"))))
2376 (build-system gnu-build-system)
2377 (inputs
2378 ;; TODO: Add ASIHPI.
2379 `(("alsa-lib" ,alsa-lib)
2380 ("jack" ,jack-1)))
2381 (native-inputs
2382 `(("autoconf" ,autoconf)
2383 ("automake" ,automake)
2384 ("libtool" ,libtool)
2385 ("pkg-config" ,pkg-config)))
2386 (arguments
2387 '(#:phases
2388 ;; Autoreconf is necessary because the audacity-compat patch modifies
2389 ;; .in files.
2390 (alist-cons-after
2391 'unpack 'autoreconf
2392 (lambda _
2393 (zero? (system* "autoreconf" "-vif")))
2394 %standard-phases)
2395 #:tests? #f)) ;no 'check' target
2396 (home-page "http://www.portaudio.com/")
2397 (synopsis "Audio I/O library")
2398 (description
2399 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2400 to record and/or play sound using a callback function or a blocking read/write
2401 interface.")
2402 (license license:expat)))
2403
2404 (define-public qsynth
2405 (package
2406 (name "qsynth")
2407 (version "0.4.3")
2408 (source
2409 (origin
2410 (method url-fetch)
2411 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2412 "/qsynth-" version ".tar.gz"))
2413 (sha256
2414 (base32 "1j5hm99fjrnaw8wbmlh4qixkv3rw5dl429mp1ag7js2ydrx0j9yy"))))
2415 (build-system gnu-build-system)
2416 (arguments
2417 `(#:tests? #f ; no "check" phase
2418 #:configure-flags
2419 '("CXXFLAGS=-std=gnu++11")))
2420 (native-inputs
2421 `(("qttools" ,qttools)
2422 ("pkg-config" ,pkg-config)))
2423 (inputs
2424 `(("fluidsynth" ,fluidsynth)
2425 ("qtbase" ,qtbase)
2426 ("qtx11extras" ,qtx11extras)))
2427 (home-page "http://qsynth.sourceforge.net")
2428 (synopsis "Graphical user interface for FluidSynth")
2429 (description
2430 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2431 synthesizer written in C++.")
2432 (license license:gpl2+)))
2433
2434 (define-public rsound
2435 (package
2436 (name "rsound")
2437 (version "1.1")
2438 (source
2439 (origin
2440 (method url-fetch)
2441 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
2442 version ".tar.gz"))
2443 (file-name (string-append name "-" version))
2444 (sha256
2445 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
2446 (build-system gnu-build-system)
2447 (inputs
2448 `(("alsa-lib" ,alsa-lib)
2449 ("jack" ,jack-1)
2450 ("ao" ,ao)
2451 ("libsamplerate" ,libsamplerate)
2452 ("openal" ,openal)
2453 ("portaudio" ,portaudio)
2454 ("pulseaudio" ,pulseaudio)))
2455 (arguments
2456 '(#:phases
2457 (alist-replace
2458 'configure
2459 (lambda* (#:key outputs #:allow-other-keys)
2460 (setenv "CC" "gcc")
2461 (zero?
2462 (system* "./configure"
2463 (string-append "--prefix=" (assoc-ref outputs "out")))))
2464 %standard-phases)
2465 ;; No 'check' target.
2466 #:tests? #f))
2467 (home-page "http://themaister.net/rsound.html")
2468 (synopsis "Networked audio system")
2469 (description
2470 "RSound allows you to send audio from an application and transfer it
2471 directly to a different computer on your LAN network. It is an audio daemon
2472 with a much different focus than most other audio daemons.")
2473 (license license:gpl3+)))
2474
2475 (define-public xjackfreak
2476 (package
2477 (name "xjackfreak")
2478 (version "1.0")
2479 (source (origin
2480 (method url-fetch)
2481 (uri (string-append
2482 "https://github.com/johnhldavis/xjackfreak/archive/v"
2483 version ".tar.gz"))
2484 (file-name (string-append name "-" version ".tar.gz"))
2485 (sha256
2486 (base32
2487 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
2488 (build-system gnu-build-system)
2489 (arguments
2490 `(#:make-flags
2491 (list (string-append "docdir=" (assoc-ref %outputs "out")
2492 "/share/doc/xjackfreak"))))
2493 (inputs
2494 `(("jack" ,jack-1)
2495 ("libx11" ,libx11)
2496 ("libxt" ,libxt)
2497 ("libxext" ,libxext)))
2498 (native-inputs
2499 `(("pkg-config" ,pkg-config)))
2500 (home-page "https://github.com/johnhldavis/xjackfreak")
2501 (synopsis "JACK audio frequency analyzer and display")
2502 (description
2503 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2504 Connection Kit. It can display the FFT of any input, modify it and output the
2505 result.")
2506 (license license:gpl3+)))
2507
2508 (define-public zita-convolver
2509 (package
2510 (name "zita-convolver")
2511 (version "3.1.0")
2512 (source (origin
2513 (method url-fetch)
2514 (uri (string-append
2515 "http://kokkinizita.linuxaudio.org"
2516 "/linuxaudio/downloads/zita-convolver-"
2517 version ".tar.bz2"))
2518 (snippet
2519 ;; Don't optimize for a specific processor architecture.
2520 '(substitute* "libs/Makefile"
2521 (("^CXXFLAGS \\+= -march=native") "")))
2522 (modules '((guix build utils)))
2523 (sha256
2524 (base32
2525 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2526 (build-system gnu-build-system)
2527 (arguments
2528 `(#:tests? #f ; no "check" target
2529 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2530 #:phases
2531 (alist-cons-after
2532 'unpack 'patch-makefile-and-enter-directory
2533 (lambda _
2534 (substitute* "libs/Makefile"
2535 (("ldconfig") "true")
2536 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2537 (chdir "libs") #t)
2538 (alist-cons-after
2539 'install
2540 'install-symlink
2541 (lambda _
2542 (symlink "libzita-convolver.so"
2543 (string-append (assoc-ref %outputs "out")
2544 "/lib/libzita-convolver.so.3")))
2545 ;; no configure script
2546 (alist-delete 'configure %standard-phases)))))
2547 (inputs `(("fftwf" ,fftwf)))
2548 (home-page "http://kokkinizita.linuxaudio.org")
2549 (synopsis "Fast, partitioned convolution engine library")
2550 (description
2551 "Zita convolver is a C++ library providing a real-time convolution
2552 engine.")
2553 (license license:gpl3+)))
2554
2555 (define-public zita-resampler
2556 (package
2557 (name "zita-resampler")
2558 (version "1.3.0")
2559 (source (origin
2560 (method url-fetch)
2561 (uri (string-append
2562 "http://kokkinizita.linuxaudio.org"
2563 "/linuxaudio/downloads/zita-resampler-"
2564 version ".tar.bz2"))
2565 (snippet
2566 ;; Don't optimize for a specific processor architecture.
2567 '(substitute* '("apps/Makefile" "libs/Makefile")
2568 (("^CXXFLAGS \\+= -march=native") "")))
2569 (modules '((guix build utils)))
2570 (sha256
2571 (base32
2572 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
2573 (build-system gnu-build-system)
2574 (arguments
2575 `(#:tests? #f ; no "check" target
2576 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2577 #:phases
2578 (modify-phases %standard-phases
2579 (add-after
2580 'unpack 'patch-makefile-and-enter-directory
2581 (lambda _
2582 (substitute* "libs/Makefile"
2583 (("ldconfig") "true")
2584 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2585 (chdir "libs")
2586 #t))
2587 (add-after
2588 'install 'install-symlink
2589 (lambda _
2590 (symlink "libzita-resampler.so"
2591 (string-append (assoc-ref %outputs "out")
2592 "/lib/libzita-resampler.so.1"))))
2593 ;; no configure script
2594 (delete 'configure))))
2595 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
2596 (synopsis "C++ library for resampling audio signals")
2597 (description
2598 "Libzita-resampler is a C++ library for resampling audio signals. It is
2599 designed to be used within a real-time processing context, to be fast, and to
2600 provide high-quality sample rate conversion.")
2601 (license license:gpl3+)))
2602
2603 (define-public zita-alsa-pcmi
2604 (package
2605 (name "zita-alsa-pcmi")
2606 (version "0.2.0")
2607 (source (origin
2608 (method url-fetch)
2609 (uri (string-append
2610 "http://kokkinizita.linuxaudio.org"
2611 "/linuxaudio/downloads/zita-alsa-pcmi-"
2612 version ".tar.bz2"))
2613 (sha256
2614 (base32
2615 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
2616 (build-system gnu-build-system)
2617 (arguments
2618 `(#:tests? #f ; no "check" target
2619 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2620 #:phases
2621 (alist-cons-after
2622 'unpack 'patch-makefile-and-enter-directory
2623 (lambda _
2624 (substitute* "libs/Makefile"
2625 (("ldconfig") "true")
2626 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2627 (chdir "libs")
2628 #t)
2629 (alist-cons-after
2630 'install
2631 'install-symlink
2632 (lambda _
2633 (symlink "libzita-alsa-pcmi.so"
2634 (string-append (assoc-ref %outputs "out")
2635 "/lib/libzita-alsa-pcmi.so.0")))
2636 ;; no configure script
2637 (alist-delete 'configure %standard-phases)))))
2638 (inputs
2639 `(("alsa-lib" ,alsa-lib)
2640 ("fftw" ,fftw)))
2641 (home-page "http://kokkinizita.linuxaudio.org")
2642 (synopsis "C++ wrapper around the ALSA API")
2643 (description
2644 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
2645 access to ALSA PCM devices, taking care of the many functions required to
2646 open, initialise and use a hw: device in mmap mode, and providing floating
2647 point audio data.")
2648 (license license:gpl3+)))
2649
2650 (define-public cuetools
2651 (package
2652 (name "cuetools")
2653 (version "1.4.1")
2654 (source (origin
2655 (method url-fetch)
2656 (uri (string-append "https://github.com/svend/cuetools/archive/"
2657 version ".tar.gz"))
2658 (file-name (string-append name "-" version ".tar.gz"))
2659 (sha256
2660 (base32
2661 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
2662 (build-system gnu-build-system)
2663 ;; The source tarball is not bootstrapped.
2664 (arguments
2665 `(#:phases
2666 (modify-phases %standard-phases
2667 (add-after 'unpack 'bootstrap
2668 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
2669 ;; Bootstrapping tools
2670 (native-inputs
2671 `(("autoconf" ,autoconf)
2672 ("automake" ,automake)
2673 ("flex" ,flex)
2674 ("bison" ,bison)))
2675 (synopsis "Cue and toc file parsers and utilities")
2676 (description "Cuetools is a set of programs that are useful for manipulating
2677 and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
2678 files are a way to represent the layout of a data or audio CD in a
2679 machine-readable ASCII format.")
2680 (home-page "https://github.com/svend/cuetools")
2681 (license license:gpl2+)))
2682
2683 (define-public shntool
2684 (package
2685 (name "shntool")
2686 (version "3.0.10")
2687 (source (origin
2688 (method url-fetch)
2689 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
2690 "shntool-" version ".tar.gz"))
2691 (sha256
2692 (base32
2693 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
2694 (build-system gnu-build-system)
2695 (synopsis "WAVE audio data processing tool")
2696 (description "shntool is a multi-purpose WAVE data processing and reporting
2697 utility. File formats are abstracted from its core, so it can process any file
2698 that contains WAVE data, compressed or not---provided there exists a format
2699 module to handle that particular file type.")
2700 (home-page "http://etree.org/shnutils/shntool/")
2701 ;; 'install-sh' bears the x11 license
2702 (license (list license:gpl2+ license:x11))))
2703
2704 (define-public dcadec
2705 (package
2706 (name "dcadec")
2707 (version "0.2.0")
2708 (source (origin
2709 (method url-fetch)
2710 (uri (string-append "https://github.com/foo86/dcadec/archive/v"
2711 version ".tar.gz"))
2712 (file-name (string-append name "-" version ".tar.gz"))
2713 (sha256
2714 (base32
2715 "0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
2716 (build-system gnu-build-system)
2717 (arguments
2718 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
2719 '(#:tests? #f
2720 #:make-flags
2721 (list "CC=gcc"
2722 ;; Build shared library.
2723 "CONFIG_SHARED=1"
2724 (string-append "PREFIX=" (assoc-ref %outputs "out"))
2725 ;; Set proper runpath.
2726 (string-append "LDFLAGS=-Wl,-rpath="
2727 (assoc-ref %outputs "out")
2728 "/lib"))
2729 #:phases
2730 (modify-phases %standard-phases
2731 ;; No configure script, just a hand-written Makefile.
2732 (delete 'configure))))
2733 (synopsis "DTS Coherent Acoustics decoder")
2734 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
2735 with support for HD extensions.")
2736 (home-page "https://github.com/foo86/dcadec")
2737 (license license:lgpl2.1+)))
2738
2739 (define-public bs1770gain
2740 (package
2741 (name "bs1770gain")
2742 (version "0.4.12")
2743 (source
2744 (origin
2745 (method url-fetch)
2746 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
2747 version "/bs1770gain-" version ".tar.gz"))
2748 (sha256
2749 (base32
2750 "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a"))))
2751 (build-system gnu-build-system)
2752 (inputs `(("ffmpeg" ,ffmpeg)
2753 ("sox" ,sox)))
2754 (home-page "http://bs1770gain.sourceforge.net/")
2755 (synopsis "Tool to adjust loudness of media files")
2756 (description
2757 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
2758 flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
2759 loudness of audio and video files to the same level.")
2760 (license license:gpl2+)))
2761
2762 (define-public filteraudio
2763 (let ((revision "1")
2764 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
2765 (package
2766 (name "filteraudio")
2767 (version (string-append "0.0.0-" revision "."
2768 (string-take commit 7)))
2769 (source
2770 (origin
2771 (method git-fetch)
2772 (uri (git-reference
2773 (url "https://github.com/irungentoo/filter_audio.git")
2774 (commit commit)))
2775 (file-name (string-append name "-" version "-checkout"))
2776 (sha256
2777 (base32
2778 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
2779 (build-system gnu-build-system)
2780 (arguments
2781 '(#:make-flags (list (string-append "PREFIX=" %output)
2782 "CC=gcc")
2783 #:tests? #f ; No tests
2784 #:phases
2785 (modify-phases %standard-phases
2786 ;; No configure script
2787 (delete 'configure))))
2788 (synopsis "Lightweight audio filtering library")
2789 (description "An easy to use audio filtering library made from webrtc
2790 code, used in @code{libtoxcore}.")
2791 (home-page "https://github.com/irungentoo/filter_audio")
2792 (license license:bsd-3))))
2793
2794 (define-public gsm
2795 (package
2796 (name "gsm")
2797 (version "1.0.14")
2798 (source
2799 (origin
2800 (method url-fetch)
2801 (uri
2802 (string-append "http://www.quut.com/" name "/" name
2803 "-" version ".tar.gz"))
2804 (sha256
2805 (base32
2806 "0b1mx69jq88wva3wk0hi6fcl5a52qhnq2f9p3f3jdh5k61ma252q"))))
2807 (build-system gnu-build-system)
2808 (arguments
2809 `(#:test-target "tst"
2810 #:phases
2811 (modify-phases %standard-phases
2812 (add-before 'install 'pre-install
2813 (lambda _
2814 (let ((out (assoc-ref %outputs "out")))
2815 (substitute* "Makefile"
2816 (("INSTALL_ROOT\t=")
2817 (string-append "INSTALL_ROOT\t=\t" out)))
2818 (mkdir-p (string-append out "/inc"))
2819 (mkdir-p (string-append out "/man"))
2820 (mkdir-p (string-append out "/man/man1"))
2821 (mkdir-p (string-append out "/man/man3"))
2822 (mkdir-p (string-append out "/bin"))
2823 (mkdir-p (string-append out "/lib")))))
2824 (add-after 'install 'post-install
2825 (lambda _
2826 (let ((out (assoc-ref %outputs "out")))
2827 (rename-file (string-append out "/inc")
2828 (string-append out "/include"))
2829 (mkdir-p (string-append out "/include/gsm"))
2830 (copy-recursively "inc"
2831 (string-append out "/include/gsm")))))
2832 (delete 'configure))))
2833 (synopsis "GSM 06.10 lossy speech compression library")
2834 (description "This C library provides an encoder and a decoder for the GSM
2835 06.10 RPE-LTP lossy speech compression algorithm.")
2836 (home-page "http://quut.com/gsm/")
2837 (license (license:non-copyleft "file://COPYRIGHT"))))