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