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