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