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