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