gnu: Adjust formatting as recommended by 'guix lint'.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
3 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
5 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
7 ;;;
8 ;;; This file is part of GNU Guix.
9 ;;;
10 ;;; GNU Guix is free software; you can redistribute it and/or modify it
11 ;;; under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 3 of the License, or (at
13 ;;; your option) any later version.
14 ;;;
15 ;;; GNU Guix is distributed in the hope that it will be useful, but
16 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23 (define-module (gnu packages audio)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix utils)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system gnu)
30 #:use-module (guix build-system waf)
31 #:use-module (guix build-system trivial)
32 #:use-module (guix build-system cmake)
33 #:use-module (gnu packages)
34 #:use-module (gnu packages algebra)
35 #:use-module (gnu packages autotools)
36 #:use-module (gnu packages avahi)
37 #:use-module (gnu packages boost)
38 #:use-module (gnu packages base)
39 #:use-module (gnu packages bison)
40 #:use-module (gnu packages compression)
41 #:use-module (gnu packages curl)
42 #:use-module (gnu packages databases)
43 #:use-module (gnu packages file)
44 #:use-module (gnu packages flex)
45 #:use-module (gnu packages gettext)
46 #:use-module (gnu packages glib)
47 #:use-module (gnu packages gtk)
48 #:use-module (gnu packages gnome)
49 #:use-module (gnu packages gperf)
50 #:use-module (gnu packages image)
51 #:use-module (gnu packages ncurses)
52 #:use-module (gnu packages qt)
53 #:use-module (gnu packages linux)
54 #:use-module (gnu packages mp3) ;taglib
55 #:use-module (gnu packages perl)
56 #:use-module (gnu packages pkg-config)
57 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
58 #:use-module (gnu packages python)
59 #:use-module (gnu packages rdf)
60 #:use-module (gnu packages readline)
61 #:use-module (gnu packages xiph)
62 #:use-module (gnu packages xml)
63 #:use-module (gnu packages xorg)
64 #:use-module (gnu packages zip)
65 #:use-module (srfi srfi-1))
66
67 (define-public alsa-modular-synth
68 (package
69 (name "alsa-modular-synth")
70 (version "2.1.1")
71 (source (origin
72 (method url-fetch)
73 (uri (string-append "mirror://sourceforge/alsamodular/ams-"
74 version ".tar.bz2"))
75 (sha256
76 (base32
77 "1nb7qzzqlqa2x8h797jbwi18ihnfkxqg9lyi0c4nvf8ybwzxkzd2"))))
78 (build-system gnu-build-system)
79 (inputs
80 `(("alsa-lib" ,alsa-lib)
81 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
82 ;; license incompatibility.
83 ("clalsadrv" ,clalsadrv)
84 ("fftw" ,fftw)
85 ("jack" ,jack-1)
86 ("ladspa" ,ladspa)
87 ("liblo" ,liblo)
88 ("qt" ,qt-4)))
89 (native-inputs
90 `(("pkg-config" ,pkg-config)))
91 (home-page "http://alsamodular.sourceforge.net/")
92 (synopsis "Realtime modular synthesizer and effect processor")
93 (description
94 "AlsaModularSynth is a digital implementation of a classical analog
95 modular synthesizer system. It uses virtual control voltages to control the
96 parameters of the modules. The control voltages which control the frequency
97 e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
98 Filter) modules follow the convention of 1V / Octave.")
99 (license license:gpl2)))
100
101 (define-public aubio
102 (package
103 (name "aubio")
104 (version "0.4.1")
105 (source (origin
106 (method url-fetch)
107 (uri (string-append
108 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
109 (sha256
110 (base32
111 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
112 (build-system waf-build-system)
113 (arguments
114 `(#:tests? #f ; no check target
115 #:configure-flags
116 '("--enable-fftw3f"
117 "--enable-jack"
118 "--enable-sndfile"
119 "--enable-samplerate"
120 ;; enable compilation with avcodec once available
121 "--disable-avcodec")
122 #:python ,python-2))
123 (inputs
124 `(("jack" ,jack-1)
125 ("libsndfile" ,libsndfile)
126 ("libsamplerate" ,libsamplerate)
127 ("fftwf" ,fftwf)))
128 (native-inputs
129 `(("pkg-config" ,pkg-config)))
130 (home-page "http://aubio.org/")
131 (synopsis "Library for audio labelling")
132 (description
133 "aubio is a tool designed for the extraction of annotations from audio
134 signals. Its features include segmenting a sound file before each of its
135 attacks, performing pitch detection, tapping the beat and producing MIDI
136 streams from live audio.")
137 (license license:gpl3+)))
138
139 (define (ardour-rpath-phase major-version)
140 `(lambda* (#:key outputs #:allow-other-keys)
141 (let ((libdir (string-append (assoc-ref outputs "out")
142 "/lib/ardour" ,major-version)))
143 (substitute* "wscript"
144 (("linker_flags = \\[\\]")
145 (string-append "linker_flags = [\""
146 "-Wl,-rpath="
147 libdir ":"
148 libdir "/backends" ":"
149 libdir "/engines" ":"
150 libdir "/panners" ":"
151 libdir "/surfaces" ":"
152 libdir "/vamp" "\"]"))))
153 #t))
154
155 (define-public ardour
156 (package
157 (name "ardour")
158 (version "4.4")
159 (source (origin
160 (method git-fetch)
161 (uri (git-reference
162 (url "git://git.ardour.org/ardour/ardour.git")
163 (commit version)))
164 (snippet
165 ;; Ardour expects this file to exist at build time. It can be
166 ;; created from a git checkout with:
167 ;; ./waf create_stored_revision
168 '(call-with-output-file
169 "libs/ardour/revision.cc"
170 (lambda (port)
171 (format port "#include \"ardour/revision.h\"
172 namespace ARDOUR { const char* revision = \"4.4-210-ga4daf93\" ; }"))))
173 (sha256
174 (base32
175 "1gnrcnq2ksnh7fsa301v1c4p5dqrbqpjylf02rg3za3ab58wxi7l"))
176 (file-name (string-append name "-" version))))
177 (build-system waf-build-system)
178 (arguments
179 `(#:configure-flags '("--cxx11") ; required by gtkmm
180 #:phases
181 (modify-phases %standard-phases
182 (add-after
183 'unpack 'set-rpath-in-LDFLAGS
184 ,(ardour-rpath-phase (version-prefix version 1))))
185 #:tests? #f ; no check target
186 #:python ,python-2))
187 (inputs
188 `(("alsa-lib" ,alsa-lib)
189 ("aubio" ,aubio)
190 ("lrdf" ,lrdf)
191 ("boost" ,boost)
192 ("atkmm" ,atkmm)
193 ("cairomm" ,cairomm)
194 ("gtkmm" ,gtkmm-2)
195 ("glibmm" ,glibmm)
196 ("libart-lgpl" ,libart-lgpl)
197 ("libgnomecanvasmm" ,libgnomecanvasmm)
198 ("pangomm" ,pangomm)
199 ("liblo" ,liblo)
200 ("libsndfile" ,libsndfile)
201 ("libsamplerate" ,libsamplerate)
202 ("libxml2" ,libxml2)
203 ("libogg" ,libogg)
204 ("libvorbis" ,libvorbis)
205 ("flac" ,flac)
206 ("lv2" ,lv2)
207 ("vamp" ,vamp)
208 ("curl" ,curl)
209 ("fftw" ,fftw)
210 ("fftwf" ,fftwf)
211 ("jack" ,jack-1)
212 ("serd" ,serd)
213 ("sord" ,sord)
214 ("sratom" ,sratom)
215 ("suil" ,suil)
216 ("lilv" ,lilv)
217 ("redland" ,redland)
218 ("rubberband" ,rubberband)
219 ("taglib" ,taglib)
220 ("python-rdflib" ,python-rdflib)))
221 (native-inputs
222 `(("perl" ,perl)
223 ("pkg-config" ,pkg-config)))
224 (home-page "http://ardour.org")
225 (synopsis "Digital audio workstation")
226 (description
227 "Ardour is a multi-channel digital audio workstation, allowing users to
228 record, edit, mix and master audio and MIDI projects. It is targeted at audio
229 engineers, musicians, soundtrack editors and composers.")
230 (license license:gpl2+)))
231
232 (define-public azr3
233 (package
234 (name "azr3")
235 (version "1.2.3")
236 (source (origin
237 (method url-fetch)
238 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
239 version
240 ".tar.bz2"))
241 (sha256
242 (base32
243 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
244 (build-system gnu-build-system)
245 (arguments
246 `(#:tests? #f ; no check target
247 #:make-flags
248 (list "LV2PEG=ttl2c"
249 (string-append "prefix=" %output)
250 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
251 (inputs
252 `(("gtkmm" ,gtkmm-2)
253 ("lvtk" ,lvtk)
254 ("jack" ,jack-1)
255 ("lash" ,lash)))
256 (native-inputs
257 `(("pkg-config" ,pkg-config)))
258 (home-page "http://ll-plugins.nongnu.org/azr3/")
259 (synopsis "Tonewheel organ synthesizer")
260 (description
261 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
262 with drawbars, distortion and rotating speakers. The organ has three
263 sections, two polyphonic sections with nine drawbars each and one monophonic
264 bass section with five drawbars. A standalone JACK application and LV2
265 plugins are provided.")
266 (license license:gpl2)))
267
268 (define-public calf
269 (package
270 (name "calf")
271 (version "0.0.60")
272 (source (origin
273 (method url-fetch)
274 (uri (string-append
275 "mirror://sourceforge/calf/calf/"
276 version "/calf-" version ".tar.gz"))
277 (sha256
278 (base32
279 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
280 (build-system gnu-build-system)
281 (inputs
282 `(("fluidsynth" ,fluidsynth)
283 ("expat" ,expat)
284 ("glib" ,glib)
285 ("gtk" ,gtk+-2)
286 ("cairo" ,cairo)
287 ("lash" ,lash)
288 ("jack" ,jack-1)
289 ("lv2" ,lv2)
290 ("ladspa" ,ladspa)
291 ("fftw" ,fftw)))
292 (native-inputs
293 `(("pkg-config" ,pkg-config)))
294 (native-search-paths
295 (list (search-path-specification
296 (variable "LV2_PATH")
297 (files '("lib/lv2")))))
298 (home-page "http://calf.sourceforge.net/")
299 (synopsis "Audio plug-in pack for LV2 and JACK environments")
300 (description
301 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
302 The suite contains lots of effects (delay, modulation, signal processing,
303 filters, equalizers, dynamics, distortion and mastering effects),
304 instruments (SF2 player, organ simulator and a monophonic synthesizer) and
305 tools (analyzer, mono/stereo tools, crossovers).")
306 ;; calfjackhost is released under GPLv2+
307 ;; The plugins are released under LGPLv2.1+
308 (license (list license:lgpl2.1+ license:gpl2+))))
309
310 (define-public csound
311 (package
312 (name "csound")
313 (version "6.05")
314 (source (origin
315 (method url-fetch)
316 (uri (string-append
317 "mirror://sourceforge/csound/csound6/Csound"
318 version "/Csound" version ".tar.gz"))
319 (sha256
320 (base32
321 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))))
322 (build-system cmake-build-system)
323 (arguments
324 ;; Work around this error on x86_64 with libc 2.22+:
325 ;; libmvec.so.1: error adding symbols: DSO missing from command line
326 (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
327 '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
328 '()))
329 (inputs
330 `(("alsa-lib" ,alsa-lib)
331 ("boost" ,boost)
332 ("pulseaudio" ,pulseaudio)
333 ("libsndfile" ,libsndfile)
334 ("liblo" ,liblo)
335 ("ladspa" ,ladspa)
336 ("jack" ,jack-1)
337 ("gettext" ,gnu-gettext)))
338 (native-inputs
339 `(("bison" ,bison)
340 ("flex" ,flex)
341 ("zlib" ,zlib)))
342 (home-page "http://csound.github.io/")
343 (synopsis "Sound and music computing system")
344 (description
345 "Csound is a user-programmable and user-extensible sound processing
346 language and software synthesizer.")
347 (license license:lgpl2.1+)))
348
349 (define-public clalsadrv
350 (package
351 (name "clalsadrv")
352 (version "2.0.0")
353 (source (origin
354 (method url-fetch)
355 (uri (string-append
356 "http://kokkinizita.linuxaudio.org"
357 "/linuxaudio/downloads/clalsadrv-"
358 version ".tar.bz2"))
359 (sha256
360 (base32
361 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
362 (build-system gnu-build-system)
363 (arguments
364 `(#:tests? #f ; no "check" target
365 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
366 #:phases
367 (alist-cons-after
368 'unpack 'patch-makefile-and-enter-directory
369 (lambda _
370 (substitute* "libs/Makefile"
371 (("/sbin/ldconfig") "true")
372 (("^LIBDIR =.*") "LIBDIR = lib\n"))
373 (chdir "libs")
374 #t)
375 (alist-cons-after
376 'install
377 'install-symlink
378 (lambda _
379 (symlink "libclalsadrv.so"
380 (string-append (assoc-ref %outputs "out")
381 "/lib/libclalsadrv.so.2")))
382 ;; no configure script
383 (alist-delete 'configure %standard-phases)))))
384 (inputs
385 `(("alsa-lib" ,alsa-lib)
386 ("fftw" ,fftw)))
387 (home-page "http://kokkinizita.linuxaudio.org")
388 (synopsis "C++ wrapper around the ALSA API")
389 (description
390 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
391 ALSA PCM devices.")
392 (license license:gpl2+)))
393
394 (define-public fluidsynth
395 (package
396 (name "fluidsynth")
397 (version "1.1.6")
398 (source (origin
399 (method url-fetch)
400 (uri (string-append
401 "mirror://sourceforge/fluidsynth/fluidsynth-"
402 version "/fluidsynth-" version ".tar.gz"))
403 (sha256
404 (base32
405 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
406 (build-system gnu-build-system)
407 (arguments
408 `(#:phases
409 (alist-cons-after
410 'unpack
411 'remove-broken-symlinks
412 (lambda _ (delete-file-recursively "m4") #t)
413 %standard-phases)))
414 (inputs
415 `(("libsndfile" ,libsndfile)
416 ("alsa-lib" ,alsa-lib)
417 ("jack" ,jack-1)
418 ("ladspa" ,ladspa)
419 ("lash" ,lash)
420 ("readline" ,readline)
421 ("glib" ,glib)))
422 (native-inputs
423 `(("pkg-config" ,pkg-config)))
424 (home-page "http://www.fluidsynth.org/")
425 (synopsis "SoundFont synthesizer")
426 (description
427 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
428 specifications. FluidSynth reads and handles MIDI events from the MIDI input
429 device. It is the software analogue of a MIDI synthesizer. FluidSynth can
430 also play midifiles using a Soundfont.")
431 (license license:gpl2+)))
432
433 (define-public faad2
434 (package
435 (name "faad2")
436 (version "2.7")
437 (source (origin
438 (method url-fetch)
439 (uri (string-append
440 "mirror://sourceforge/faac/faad2-" version ".zip"))
441 (sha256
442 (base32
443 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
444 (build-system gnu-build-system)
445 (native-inputs
446 `(("autoconf" ,autoconf)
447 ("automake" ,automake)
448 ("libtool" ,libtool)
449 ("unzip" ,unzip)))
450 (arguments
451 '(#:phases
452 (alist-cons-after
453 'unpack 'bootstrap
454 (lambda _
455 (substitute* "bootstrap" (("\r\n") "\n"))
456 (zero? (system* "sh" "bootstrap")))
457 %standard-phases)))
458 (home-page "http://www.audiocoding.com/faad2.html")
459 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
460 (description
461 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
462 PS, and DAB+.")
463 (license license:gpl2)))
464
465 (define-public faust
466 (package
467 (name "faust")
468 (version "0.9.67")
469 (source (origin
470 (method url-fetch)
471 (uri (string-append
472 "mirror://sourceforge/faudiostream/faust-" version ".zip"))
473 (sha256
474 (base32
475 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
476 (snippet
477 ;; Remove prebuilt library
478 '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
479 (build-system gnu-build-system)
480 (arguments
481 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
482 #:tests? #f
483 #:phases
484 (modify-phases %standard-phases
485 ;; no "configure" script
486 (delete 'configure))))
487 (native-inputs
488 `(("unzip" ,unzip)))
489 (home-page "http://faust.grame.fr/")
490 (synopsis "Signal processing language")
491 (description
492 "Faust is a programming language for realtime audio signal processing.")
493 (license license:gpl2+)))
494
495 (define-public freepats
496 (package
497 (name "freepats")
498 (version "20060219")
499 (source (origin
500 (method url-fetch)
501 (uri (string-append "http://freepats.zenvoid.org/freepats-"
502 version ".tar.bz2"))
503 (sha256
504 (base32
505 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
506 (build-system trivial-build-system)
507 (arguments
508 `(#:modules ((guix build utils))
509 #:builder (begin
510 (use-modules (guix build utils))
511 (let ((out (string-append %output "/share/freepats")))
512 (setenv "PATH" (string-append
513 (assoc-ref %build-inputs "bzip2") "/bin:"
514 (assoc-ref %build-inputs "tar") "/bin"))
515 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
516 (chdir "freepats")
517 ;; Use absolute pattern references
518 (substitute* "freepats.cfg"
519 (("Tone_000") (string-append out "/Tone_000"))
520 (("Drum_000") (string-append out "/Drum_000")))
521 (mkdir-p out)
522 (copy-recursively "." out)))))
523 (native-inputs
524 `(("tar" ,tar)
525 ("bzip2" ,bzip2)))
526 (home-page "http://freepats.zenvoid.org")
527 (synopsis "GUS compatible patches for MIDI players")
528 (description
529 "FreePats is a project to create a free and open set of GUS compatible
530 patches that can be used with softsynths such as Timidity and WildMidi.")
531 ;; GPLv2+ with exception for compositions using these patches.
532 (license license:gpl2+)))
533
534 (define-public guitarix
535 (package
536 (name "guitarix")
537 (version "0.33.0")
538 (source (origin
539 (method url-fetch)
540 (uri (string-append
541 "mirror://sourceforge/guitarix/guitarix2-"
542 version ".tar.bz2"))
543 (sha256
544 (base32
545 "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx"))
546 (patches (list (search-patch "guitarix-c++11.patch")))))
547 (build-system waf-build-system)
548 (arguments
549 `(#:tests? #f ; no "check" target
550 #:python ,python-2
551 #:configure-flags
552 (list
553 ;; Add the output lib directory to the RUNPATH.
554 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
555 "--cxxflags=-std=c++11")))
556 (inputs
557 `(("libsndfile" ,libsndfile)
558 ("boost" ,boost)
559 ("avahi" ,avahi)
560 ("eigen" ,eigen)
561 ("lv2" ,lv2)
562 ("lilv" ,lilv)
563 ("ladspa" ,ladspa)
564 ("jack" ,jack-1)
565 ("gtkmm" ,gtkmm-2)
566 ("gtk+" ,gtk+-2)
567 ("fftwf" ,fftwf)
568 ("lrdf" ,lrdf)
569 ("zita-resampler" ,zita-resampler)
570 ("zita-convolver" ,zita-convolver)))
571 (native-inputs
572 `(("gperf" ,gperf)
573 ("faust" ,faust)
574 ("intltool" ,intltool)
575 ("gettext" ,gnu-gettext)
576 ("pkg-config" ,pkg-config)))
577 (native-search-paths
578 (list (search-path-specification
579 (variable "LV2_PATH")
580 (files '("lib/lv2")))))
581 (home-page "http://guitarix.org/")
582 (synopsis "Virtual guitar amplifier")
583 (description "Guitarix is a virtual guitar amplifier running JACK.
584 Guitarix takes the signal from your guitar as a mono-signal from your sound
585 card. The input is processed by a main amp and a rack-section. Both can be
586 routed separately and deliver a processed stereo-signal via JACK. You may
587 fill the rack with effects from more than 25 built-in modules including stuff
588 from a simple noise gate to modulation effects like flanger, phaser or
589 auto-wah.")
590 (license license:gpl2+)))
591
592 (define-public ir
593 (package
594 (name "ir")
595 (version "1.3.2")
596 (source (origin
597 (method url-fetch)
598 (uri (string-append
599 "http://factorial.hu/system/files/ir.lv2-"
600 version ".tar.gz"))
601 (sha256
602 (base32
603 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
604 (build-system gnu-build-system)
605 (arguments
606 `(#:tests? #f ;no "check" target
607 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
608 #:phases
609 ;; no configure script
610 (alist-delete 'configure %standard-phases)))
611 (inputs
612 `(("libsndfile" ,libsndfile)
613 ("libsamplerate" ,libsamplerate)
614 ("lv2" ,lv2)
615 ("glib" ,glib)
616 ("gtk+" ,gtk+-2)
617 ("zita-convolver" ,zita-convolver)))
618 (native-inputs
619 `(("pkg-config" ,pkg-config)))
620 (native-search-paths
621 (list (search-path-specification
622 (variable "LV2_PATH")
623 (files '("lib/lv2")))))
624 (home-page "http://factorial.hu/plugins/lv2/ir")
625 (synopsis "LV2 convolution reverb")
626 (description
627 "IR is a low-latency, real-time, high performance signal convolver
628 especially for creating reverb effects. It supports impulse responses with 1,
629 2 or 4 channels, in any soundfile format supported by libsndfile.")
630 (license license:gpl2+)))
631
632 (define-public jack-1
633 (package
634 (name "jack")
635 (version "0.124.1")
636 (source (origin
637 (method url-fetch)
638 (uri (string-append
639 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
640 version
641 ".tar.gz"))
642 (sha256
643 (base32
644 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
645 (build-system gnu-build-system)
646 (inputs
647 `(("alsa-lib" ,alsa-lib)
648 ("readline" ,readline)))
649 ;; uuid.h is included in the JACK type headers
650 ;; db.h is included in the libjack metadata headers
651 (propagated-inputs
652 `(("libuuid" ,util-linux)
653 ("bdb" ,bdb)))
654 (native-inputs
655 `(("pkg-config" ,pkg-config)))
656 (home-page "http://jackaudio.org/")
657 (synopsis "JACK audio connection kit")
658 (description
659 "JACK is a low-latency audio server. It can connect a number of
660 different applications to an audio device, as well as allowing them to share
661 audio between themselves. JACK is different from other audio server efforts
662 in that it has been designed from the ground up to be suitable for
663 professional audio work. This means that it focuses on two key areas:
664 synchronous execution of all clients, and low latency operation.")
665 ;; Most files are licensed under the GPL. However, the libjack/ tree is
666 ;; licensed under the LGPL in order to allow for proprietary usage.
667 (license (list license:gpl2+ license:lgpl2.1+))))
668
669 ;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
670 ;; jack-2 implement the same API. JACK2 is provided primarily as a client
671 ;; program for users who might benefit from the D-BUS features.
672 (define-public jack-2
673 (package (inherit jack-1)
674 (name "jack2")
675 (version "1.9.10")
676 (source (origin
677 (method url-fetch)
678 (uri (string-append
679 "https://github.com/jackaudio/jack2/archive/v"
680 version
681 ".tar.gz"))
682 (file-name (string-append name "-" version ".tar.gz"))
683 (sha256
684 (base32
685 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
686 (build-system waf-build-system)
687 (arguments
688 `(#:tests? #f ; no check target
689 #:configure-flags '("--dbus"
690 "--alsa")
691 #:phases
692 (modify-phases %standard-phases
693 (add-before
694 'configure 'set-linkflags
695 (lambda _
696 ;; Add $libdir to the RUNPATH of all the binaries.
697 (substitute* "wscript"
698 ((".*CFLAGS.*-Wall.*" m)
699 (string-append m
700 " conf.env.append_unique('LINKFLAGS',"
701 "'-Wl,-rpath=" %output "/lib')\n"))))))))
702 (inputs
703 `(("alsa-lib" ,alsa-lib)
704 ("dbus" ,dbus)
705 ("expat" ,expat)
706 ("libsamplerate" ,libsamplerate)
707 ("opus" ,opus)
708 ("readline" ,readline)))
709 (native-inputs
710 `(("pkg-config" ,pkg-config)))
711 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
712 (license (list license:gpl2+ license:lgpl2.1+))))
713
714 (define-public jalv
715 (package
716 (name "jalv")
717 (version "1.4.6")
718 (source (origin
719 (method url-fetch)
720 (uri (string-append "http://download.drobilla.net/jalv-"
721 version ".tar.bz2"))
722 (sha256
723 (base32
724 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
725 (build-system waf-build-system)
726 (arguments
727 `(#:tests? #f ; no check target
728 #:phases
729 (modify-phases %standard-phases
730 (add-before
731 'configure 'set-flags
732 (lambda _
733 ;; Compile with C++11, required by gtkmm.
734 (setenv "CXXFLAGS" "-std=c++11")
735 #t)))))
736 (inputs
737 `(("lv2" ,lv2)
738 ("lilv" ,lilv)
739 ("suil" ,suil)
740 ("gtk" ,gtk+-2)
741 ("gtkmm" ,gtkmm-2)
742 ("qt" ,qt-4)
743 ("jack" ,jack-1)))
744 (native-inputs
745 `(("pkg-config" ,pkg-config)))
746 (home-page "http://drobilla.net/software/jalv/")
747 (synopsis "Simple LV2 host for JACK")
748 (description
749 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
750 plugins and exposes their ports as JACK ports, essentially making any LV2
751 plugin function as a JACK application.")
752 (license license:isc)))
753
754 (define-public ladspa
755 (package
756 (name "ladspa")
757 (version "1.13")
758 (source (origin
759 (method url-fetch)
760 (uri (string-append
761 "http://www.ladspa.org/download/ladspa_sdk_"
762 version
763 ".tgz"))
764 (sha256
765 (base32
766 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
767 (build-system gnu-build-system)
768 (arguments
769 `(#:tests? #f ; the "test" target is a listening test only
770 #:phases
771 (alist-replace
772 'configure
773 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
774 (chdir "src")
775 (let ((out (assoc-ref outputs "out")))
776 (substitute* "makefile"
777 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
778 (("/usr/include/") (string-append out "/include/"))
779 (("/usr/bin/") (string-append out "/bin/"))
780 (("-mkdirhier") "mkdir -p")
781 (("^CC.*") "CC = gcc\n")
782 (("^CPP.*") "CPP = g++\n"))))
783 (alist-delete 'build %standard-phases))))
784 (home-page "http://ladspa.org")
785 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
786 (description
787 "LADSPA is a standard that allows software audio processors and effects
788 to be plugged into a wide range of audio synthesis and recording packages.")
789 (license license:lgpl2.1+)))
790
791 (define-public lash
792 (package
793 (name "lash")
794 (version "0.6.0-rc2")
795 (source (origin
796 (method url-fetch)
797 ;; The tilde is not permitted in the builder name, but is used
798 ;; in the tarball.
799 (uri (string-append
800 "mirror://savannah/lash/lash-"
801 (string-join (string-split version #\-) "~")
802 ".tar.bz2"))
803 (file-name (string-append name "-" version ".tar.bz2"))
804 (sha256
805 (base32
806 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
807 (build-system gnu-build-system)
808 (inputs
809 `(("bdb" ,bdb)
810 ("gtk" ,gtk+-2)
811 ("jack" ,jack-1)
812 ("readline" ,readline)
813 ("python" ,python-2)))
814 ;; According to pkg-config, packages depending on lash also need to have
815 ;; at least the following packages declared as inputs.
816 (propagated-inputs
817 `(("alsa-lib" ,alsa-lib)
818 ("dbus" ,dbus)
819 ("libxml2" ,libxml2)))
820 (native-inputs
821 `(("pkg-config" ,pkg-config)))
822 (home-page "http://www.nongnu.org/lash/")
823 (synopsis "Audio application session manager")
824 (description
825 "LASH is a session management system for audio applications. It allows
826 you to save and restore audio sessions consisting of multiple interconneced
827 applications, restoring program state (i.e. loaded patches) and the
828 connections between them.")
829 (license license:gpl2+)))
830
831 (define-public libbs2b
832 (package
833 (name "libbs2b")
834 (version "3.1.0")
835 (source (origin
836 (method url-fetch)
837 (uri (string-append
838 "mirror://sourceforge/bs2b/libbs2b-" version ".tar.lzma"))
839 (sha256
840 (base32
841 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
842 (build-system gnu-build-system)
843 (native-inputs `(("pkg-config" ,pkg-config)))
844 (inputs `(("libsndfile" ,libsndfile)))
845 (home-page "http://sourceforge.net/projects/bs2b/")
846 (synopsis "Bauer stereophonic-to-binaural DSP")
847 (description
848 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
849 designed to improve headphone listening of stereo audio records. Recommended
850 for headphone prolonged listening to disable superstereo fatigue without
851 essential distortions.")
852 (license license:expat)))
853
854 (define-public liblo
855 (package
856 (name "liblo")
857 (version "0.28")
858 (source (origin
859 (method url-fetch)
860 (uri (string-append
861 "mirror://sourceforge/liblo/liblo-"
862 version
863 ".tar.gz"))
864 (sha256
865 (base32
866 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
867 (build-system gnu-build-system)
868 (arguments
869 `(;; liblo test FAILED
870 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
871 #:tests? #f))
872 (home-page "http://liblo.sourceforge.net")
873 (synopsis "Implementation of the Open Sound Control protocol")
874 (description
875 "liblo is a lightweight library that provides an easy to use
876 implementation of the Open Sound Control (OSC) protocol.")
877 (license license:lgpl2.1+)))
878
879 (define-public lilv
880 (package
881 (name "lilv")
882 (version "0.20.0")
883 (source (origin
884 (method url-fetch)
885 (uri (string-append "http://download.drobilla.net/lilv-"
886 version
887 ".tar.bz2"))
888 (sha256
889 (base32
890 "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
891 (build-system waf-build-system)
892 (arguments
893 `(#:tests? #f ; no check target
894 #:phases
895 (modify-phases %standard-phases
896 (add-before
897 'configure 'set-ldflags
898 (lambda* (#:key outputs #:allow-other-keys)
899 (setenv "LDFLAGS"
900 (string-append "-Wl,-rpath="
901 (assoc-ref outputs "out") "/lib")))))))
902 ;; required by lilv-0.pc
903 (propagated-inputs
904 `(("serd" ,serd)
905 ("sord" ,sord)
906 ("sratom" ,sratom)))
907 (inputs
908 `(("lv2" ,lv2)))
909 (native-inputs
910 `(("pkg-config" ,pkg-config)))
911 (home-page "http://drobilla.net/software/lilv/")
912 (synopsis "Library to simplify use of LV2 plugins in applications")
913 (description
914 "Lilv is a C library to make the use of LV2 plugins as simple as possible
915 for applications. Lilv is the successor to SLV2, rewritten to be
916 significantly faster and have minimal dependencies.")
917 (license license:isc)))
918
919 (define-public lv2
920 (package
921 (name "lv2")
922 (version "1.12.0")
923 (source (origin
924 (method url-fetch)
925 (uri (string-append "http://lv2plug.in/spec/lv2-"
926 version
927 ".tar.bz2"))
928 (sha256
929 (base32
930 "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks"))))
931 (build-system waf-build-system)
932 (arguments
933 `(#:tests? #f ; no check target
934 #:configure-flags '("--no-plugins")))
935 (inputs
936 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
937 `(("libsndfile" ,libsndfile)))
938 (native-inputs
939 `(("pkg-config" ,pkg-config)))
940 (home-page "http://lv2plug.in/")
941 (synopsis "LV2 audio plugin specification")
942 (description
943 "LV2 is an open specification for audio plugins and host applications.
944 At its core, LV2 is a simple stable interface, accompanied by extensions which
945 add functionality to support the needs of increasingly powerful audio
946 software.")
947 (license license:isc)))
948
949 (define-public lv2-mda-piano
950 (package
951 (name "lv2-mda-piano")
952 (version "0.0.2")
953 (source (origin
954 (method git-fetch)
955 (uri (git-reference
956 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
957 (commit version)))
958 (sha256
959 (base32
960 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
961 (build-system gnu-build-system)
962 (arguments
963 `(#:make-flags (list
964 "TYPE=mdaPiano"
965 (string-append "PREFIX=" (assoc-ref %outputs "out")))
966 #:tests? #f ; no check target
967 #:phases (alist-delete 'configure %standard-phases)))
968 (inputs
969 `(("lv2" ,lv2)
970 ("lvtk" ,lvtk)))
971 (native-inputs
972 `(("pkg-config" ,pkg-config)))
973 (native-search-paths
974 (list (search-path-specification
975 (variable "LV2_PATH")
976 (files '("lib/lv2")))))
977 (home-page "http://elephly.net/lv2/mdapiano.html")
978 (synopsis "LV2 port of the mda Piano plugin")
979 (description "An LV2 port of the mda Piano VSTi.")
980 (license license:gpl3+)))
981
982 (define-public lv2-mda-epiano
983 (package (inherit lv2-mda-piano)
984 (name "lv2-mda-epiano")
985 (arguments
986 `(#:make-flags (list
987 "TYPE=mdaEPiano"
988 (string-append "PREFIX=" (assoc-ref %outputs "out")))
989 #:tests? #f ; no check target
990 #:phases (alist-delete 'configure %standard-phases)))
991 (home-page "http://elephly.net/lv2/mdaepiano.html")
992 (synopsis "LV2 port of the mda EPiano plugin")
993 (description "An LV2 port of the mda EPiano VSTi.")))
994
995 (define-public lvtk
996 (package
997 (name "lvtk")
998 (version "1.2.0")
999 (source (origin
1000 (method url-fetch)
1001 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1002 version
1003 ".tar.gz"))
1004 (file-name (string-append name "-" version ".tar.gz"))
1005 (sha256
1006 (base32
1007 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1008 (build-system waf-build-system)
1009 (arguments
1010 `(#:tests? #f ; no check target
1011 #:python ,python-2
1012 #:configure-flags
1013 (list (string-append "--boost-includes="
1014 (assoc-ref %build-inputs "boost")
1015 "/include"))))
1016 (inputs
1017 `(("boost" ,boost)
1018 ("lv2" ,lv2)))
1019 (native-inputs
1020 `(("pkg-config" ,pkg-config)))
1021 (home-page "https://github.com/lvtk/lvtk")
1022 (synopsis "C++ libraries for LV2 plugins")
1023 (description
1024 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1025 extensions into easy to use C++ classes. It is the successor of
1026 lv2-c++-tools.")
1027 (license license:gpl3+)))
1028
1029 (define-public openal
1030 (package
1031 (name "openal")
1032 (version "1.15.1")
1033 (source (origin
1034 (method url-fetch)
1035 (uri (string-append
1036 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1037 version ".tar.bz2"))
1038 (sha256
1039 (base32
1040 "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
1041 (build-system cmake-build-system)
1042 (arguments
1043 `(#:tests? #f ; no check target
1044 #:phases
1045 (modify-phases %standard-phases
1046 (add-after
1047 'unpack 'use-full-library-paths
1048 (lambda* (#:key inputs #:allow-other-keys)
1049 (substitute* "Alc/backends/pulseaudio.c"
1050 (("#define PALIB \"libpulse\\.so\\.0\"")
1051 (string-append "#define PALIB \""
1052 (assoc-ref inputs "pulseaudio")
1053 "/lib/libpulse.so.0"
1054 "\"")))
1055 (substitute* "Alc/backends/alsa.c"
1056 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1057 (string-append "LoadLib(\""
1058 (assoc-ref inputs "alsa-lib")
1059 "/lib/libasound.so.2"
1060 "\")")))
1061 #t)))))
1062 (inputs
1063 `(("alsa-lib" ,alsa-lib)
1064 ("pulseaudio" ,pulseaudio)))
1065 (synopsis "3D audio API")
1066 (description
1067 "OpenAL provides capabilities for playing audio in a virtual 3D
1068 environment. Distance attenuation, doppler shift, and directional sound
1069 emitters are among the features handled by the API. More advanced effects,
1070 including air absorption, occlusion, and environmental reverb, are available
1071 through the EFX extension. It also facilitates streaming audio, multi-channel
1072 buffers, and audio capture.")
1073 (home-page "http://kcat.strangesoft.net/openal.html")
1074 (license license:lgpl2.0+)))
1075
1076 (define-public patchage
1077 (package
1078 (name "patchage")
1079 (version "1.0.0")
1080 (source (origin
1081 (method url-fetch)
1082 (uri (string-append "http://download.drobilla.net/patchage-"
1083 version
1084 ".tar.bz2"))
1085 (sha256
1086 (base32
1087 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1088 (build-system waf-build-system)
1089 (arguments `(#:tests? #f)) ; no check target
1090 (inputs
1091 `(("alsa-lib" ,alsa-lib)
1092 ("boost" ,boost)
1093 ("jack" ,jack-1)
1094 ("ganv" ,ganv)
1095 ("glibmm" ,glibmm)
1096 ("gtkmm" ,gtkmm-2)
1097 ("dbus-glib" ,dbus-glib)))
1098 (native-inputs
1099 `(("pkg-config" ,pkg-config)))
1100 (home-page "http://drobilla.net/software/patchage/")
1101 (synopsis "Modular patch bay for audio and MIDI systems")
1102 (description
1103 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1104 and ALSA.")
1105 (license license:gpl3+)))
1106
1107 (define-public raul
1108 (package
1109 (name "raul")
1110 (version "0.8.0")
1111 (source (origin
1112 (method url-fetch)
1113 (uri (string-append "http://download.drobilla.net/raul-"
1114 version ".tar.bz2"))
1115 (sha256
1116 (base32
1117 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
1118 (build-system waf-build-system)
1119 (arguments
1120 `(#:python ,python-2
1121 #:tests? #f)) ; no check target
1122 (inputs
1123 `(("glib" ,glib)
1124 ("boost" ,boost)))
1125 (native-inputs
1126 `(("pkg-config" ,pkg-config)))
1127 (home-page "http://drobilla.net/software/raul/")
1128 (synopsis "Real-time audio utility library")
1129 (description
1130 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
1131 aimed at audio/musical applications.")
1132 (license license:gpl2+)))
1133
1134 (define-public rubberband
1135 (package
1136 (name "rubberband")
1137 (version "1.8.1")
1138 (source (origin
1139 (method url-fetch)
1140 (uri
1141 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
1142 version
1143 ".tar.bz2"))
1144 (sha256
1145 (base32
1146 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
1147 (build-system gnu-build-system)
1148 (arguments `(#:tests? #f)) ; no check target
1149 (inputs
1150 `(("ladspa" ,ladspa)
1151 ("libsamplerate" ,libsamplerate)
1152 ("vamp" ,vamp)))
1153 (native-inputs
1154 `(("pkg-config" ,pkg-config)))
1155 (home-page "http://breakfastquay.com/rubberband/")
1156 (synopsis "Audio time-stretching and pitch-shifting library")
1157 (description
1158 "Rubber Band is a library and utility program that permits changing the
1159 tempo and pitch of an audio recording independently of one another.")
1160 (license license:gpl2+)))
1161
1162 (define-public rtmidi
1163 (package
1164 (name "rtmidi")
1165 (version "2.1.0")
1166 (source (origin
1167 (method url-fetch)
1168 (uri
1169 (string-append "https://github.com/powertab/rtmidi/archive/"
1170 version ".tar.gz"))
1171 (file-name (string-append name "-" version ".tar.gz"))
1172 (sha256
1173 (base32
1174 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
1175 (build-system gnu-build-system)
1176 (arguments
1177 `(#:tests? #f ;no "check" target
1178 #:phases (modify-phases %standard-phases
1179 (add-before
1180 'configure 'autoconf
1181 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
1182 (add-before
1183 'build 'fix-makefile
1184 (lambda _
1185 (substitute* "Makefile"
1186 (("/bin/ln") "ln")
1187 (("RtMidi.h RtError.h") "RtMidi.h"))
1188 #t))
1189 (add-before
1190 'install 'make-target-dirs
1191 (lambda _
1192 (let ((out (assoc-ref %outputs "out")))
1193 (mkdir-p (string-append out "/bin"))
1194 (mkdir (string-append out "/lib"))
1195 (mkdir (string-append out "/include")))
1196 #t)))))
1197 (inputs
1198 `(("jack" ,jack-1)
1199 ("alsa-lib" ,alsa-lib)))
1200 (native-inputs
1201 `(("autoconf" ,autoconf)
1202 ("automake" ,automake)
1203 ("libtool" ,libtool)
1204 ("pkg-config" ,pkg-config)))
1205 (home-page "https://github.com/powertab/rtmidi")
1206 (synopsis "Cross-platform MIDI library for C++")
1207 (description
1208 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
1209 classes) that provide a common cross-platform API for realtime MIDI
1210 input/output.")
1211 (license license:expat)))
1212
1213 (define-public sratom
1214 (package
1215 (name "sratom")
1216 (version "0.4.6")
1217 (source (origin
1218 (method url-fetch)
1219 (uri (string-append "http://download.drobilla.net/sratom-"
1220 version
1221 ".tar.bz2"))
1222 (sha256
1223 (base32
1224 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
1225 (build-system waf-build-system)
1226 (arguments `(#:tests? #f)) ; no check target
1227 (inputs
1228 `(("lv2" ,lv2)
1229 ("serd" ,serd)
1230 ("sord" ,sord)))
1231 (native-inputs
1232 `(("pkg-config" ,pkg-config)))
1233 (home-page "http://drobilla.net/software/sratom/")
1234 (synopsis "Library for serialising LV2 atoms to/from RDF")
1235 (description
1236 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
1237 the Turtle syntax.")
1238 (license license:isc)))
1239
1240 (define-public suil
1241 (package
1242 (name "suil")
1243 (version "0.8.2")
1244 (source (origin
1245 (method url-fetch)
1246 (uri (string-append "http://download.drobilla.net/suil-"
1247 version
1248 ".tar.bz2"))
1249 (sha256
1250 (base32
1251 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
1252 (build-system waf-build-system)
1253 (arguments `(#:tests? #f)) ; no check target
1254 (inputs
1255 `(("lv2" ,lv2)
1256 ("gtk+-2" ,gtk+-2)
1257 ("qt-4" ,qt-4)))
1258 (native-inputs
1259 `(("pkg-config" ,pkg-config)))
1260 (home-page "http://drobilla.net/software/suil/")
1261 (synopsis "Library for loading and wrapping LV2 plugin UIs")
1262 (description
1263 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
1264
1265 Suil makes it possible to load a UI of a toolkit in a host using another
1266 toolkit. The API is designed such that hosts do not need to explicitly
1267 support specific toolkits – if Suil supports a particular toolkit, then UIs in
1268 that toolkit will work in all hosts that use Suil automatically.
1269
1270 Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
1271 (license license:isc)))
1272
1273 (define-public timidity++
1274 (package
1275 (name "timidity++")
1276 (version "2.14.0")
1277 (source (origin
1278 (method url-fetch)
1279 (uri (string-append
1280 "mirror://sourceforge/timidity/TiMidity++-"
1281 version ".tar.bz2"))
1282 (sha256
1283 (base32
1284 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
1285 (build-system gnu-build-system)
1286 (arguments
1287 '(#:configure-flags
1288 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
1289 "--enable-ncurses"
1290 "--enable-server"
1291 "--enable-alsaseq"
1292 (string-append "--with-default-path="
1293 (assoc-ref %outputs "out") "/etc/timidity"))
1294 #:phases
1295 (alist-cons-after
1296 'install 'install-config
1297 (lambda _
1298 (let ((out (string-append (assoc-ref %outputs "out")
1299 "/etc/timidity")))
1300 (mkdir-p out)
1301 (call-with-output-file
1302 (string-append out "/timidity.cfg")
1303 (lambda (port)
1304 (format port (string-append "source "
1305 (assoc-ref %build-inputs "freepats")
1306 "/share/freepats/freepats.cfg"))))))
1307 %standard-phases)))
1308 (inputs
1309 `(("alsa-lib" ,alsa-lib)
1310 ("ao" ,ao)
1311 ("flac" ,flac)
1312 ("jack" ,jack-1)
1313 ("libogg" ,libogg)
1314 ("speex" ,speex)
1315 ("ncurses" ,ncurses)
1316 ("freepats" ,freepats)))
1317 (native-inputs
1318 `(("pkg-config" ,pkg-config)))
1319 (home-page "http://timidity.sourceforge.net/")
1320 (synopsis "Software synthesizer for playing MIDI files")
1321 (description
1322 "TiMidity++ is a software synthesizer. It can play MIDI files by
1323 converting them into PCM waveform data; give it a MIDI data along with digital
1324 instrument data files, then it synthesizes them in real-time, and plays. It
1325 can not only play sounds, but also can save the generated waveforms into hard
1326 disks as various audio file formats.")
1327 (license license:gpl2+)))
1328
1329 (define-public vamp
1330 (package
1331 (name "vamp")
1332 (version "2.6")
1333 (source (origin
1334 (method url-fetch)
1335 (uri (string-append
1336 "https://code.soundsoftware.ac.uk"
1337 "/attachments/download/1520/vamp-plugin-sdk-"
1338 version ".tar.gz"))
1339 (sha256
1340 (base32
1341 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
1342 (build-system gnu-build-system)
1343 (arguments
1344 `(#:tests? #f ; no check target
1345 #:phases
1346 (alist-cons-after
1347 'install 'remove-libvamp-hostsdk.la
1348 (lambda* (#:key outputs #:allow-other-keys)
1349 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
1350 (for-each delete-file
1351 (let ((out (assoc-ref outputs "out")))
1352 (list (string-append out "/lib/libvamp-sdk.la")
1353 (string-append out "/lib/libvamp-hostsdk.la"))))
1354 #t)
1355 %standard-phases)))
1356 (inputs
1357 `(("libsndfile" ,libsndfile)))
1358 (native-inputs
1359 `(("pkg-config" ,pkg-config)))
1360 (home-page "http://vamp-plugins.org")
1361 (synopsis "Modular and extensible audio processing system")
1362 (description
1363 "Vamp is an audio processing plugin system for plugins that extract
1364 descriptive information from audio data — typically referred to as audio
1365 analysis plugins or audio feature extraction plugins.")
1366 (license
1367 (license:x11-style
1368 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
1369
1370 (define-public libsbsms
1371 (package
1372 (name "libsbsms")
1373 (version "2.0.2")
1374 (source
1375 (origin
1376 (method url-fetch)
1377 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
1378 "/libsbsms-" version ".tar.gz"))
1379 (sha256
1380 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
1381 (build-system gnu-build-system)
1382 (native-inputs `(("automake" ,automake)))
1383 (arguments
1384 `(#:configure-flags
1385 ;; Disable the use of SSE unless on x86_64.
1386 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
1387 (%current-system))))
1388 ''("--disable-sse")
1389 ''())
1390 #:phases
1391 (modify-phases %standard-phases
1392 (add-after
1393 'unpack 'fix-ar-lib-path
1394 (lambda* (#:key inputs #:allow-other-keys)
1395 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
1396 (delete-file "ar-lib")
1397 (symlink
1398 (string-append (assoc-ref inputs "automake") "/share/automake-"
1399 ,(package-version automake) "/ar-lib")
1400 "ar-lib"))))))
1401 (home-page "http://sbsms.sourceforge.net/")
1402 (synopsis "Library for time stretching and pitch scaling of audio")
1403 (description
1404 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
1405 stretching and pitch scaling of audio. This package contains the library.")
1406 ;; There is no explicit declaration of a license, but a COPYING file
1407 ;; containing gpl2.
1408 (license license:gpl2)))
1409
1410 (define-public wavpack
1411 (package
1412 (name "wavpack")
1413 (version "4.70.0")
1414 (source (origin
1415 (method url-fetch)
1416 (uri (string-append "http://www.wavpack.com/"
1417 name "-" version ".tar.bz2"))
1418 (sha256
1419 (base32
1420 "191h8hv8qk72hfh1crg429i9yq3cminwqb249sy9zadbn1wy7b9c"))))
1421 (build-system gnu-build-system)
1422 (arguments
1423 `(#:configure-flags
1424 ;; wavpack.pc.in lacks path substitution for 'exec_prefix'.
1425 (list (string-append "--libdir=" %output "/lib"))))
1426 (home-page "http://www.wavpack.com/")
1427 (synopsis "Hybrid lossless audio codec")
1428 (description
1429 "WavPack is an audio compression format with lossless, lossy and hybrid
1430 compression modes. This package contains command-line programs and library to
1431 encode and decode wavpack files.")
1432 (license license:bsd-3)))
1433
1434 (define-public libmodplug
1435 (package
1436 (name "libmodplug")
1437 (version "0.8.8.5")
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append
1441 "mirror://sourceforge/project/modplug-xmms/"
1442 name "/" version "/" name "-" version ".tar.gz"))
1443 (sha256
1444 (base32
1445 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
1446 (build-system gnu-build-system)
1447 (home-page "http://modplug-xmms.sourceforge.net/")
1448 (synopsis "Mod file playing library")
1449 (description
1450 "Libmodplug renders mod music files as raw audio data, for playing or
1451 conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
1452 supported. Optional features include high-quality resampling, bass expansion,
1453 surround and reverb.")
1454 (license license:public-domain)))
1455
1456 (define-public libxmp
1457 (package
1458 (name "libxmp")
1459 (version "4.3.8")
1460 (source (origin
1461 (method url-fetch)
1462 (uri (string-append "mirror://sourceforge/xmp/libxmp/"
1463 name "-" version ".tar.gz"))
1464 (sha256
1465 (base32
1466 "0h06091hlpgc6ds4pjmfq8sx4snw7av3nhny180q4pwfyasjb6ny"))))
1467 (build-system gnu-build-system)
1468 (home-page "http://xmp.sourceforge.net/")
1469 (synopsis "Module player library")
1470 (description
1471 "Libxmp is a library that renders module files to PCM data. It supports
1472 over 90 mainstream and obscure module formats including Protracker (MOD),
1473 Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
1474 (license license:lgpl2.1+)))
1475
1476 (define-public xmp
1477 (package
1478 (name "xmp")
1479 (version "4.0.10")
1480 (source (origin
1481 (method url-fetch)
1482 (uri (string-append "mirror://sourceforge/xmp/xmp/"
1483 name "-" version ".tar.gz"))
1484 (sha256
1485 (base32
1486 "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n"))))
1487 (build-system gnu-build-system)
1488 (native-inputs
1489 `(("pkg-config" ,pkg-config)))
1490 (inputs
1491 `(("libxmp" ,libxmp)
1492 ("pulseaudio" ,pulseaudio)))
1493 (home-page "http://xmp.sourceforge.net/")
1494 (synopsis "Extended module player")
1495 (description
1496 "Xmp is a portable module player that plays over 90 mainstream and
1497 obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
1498 Tracker 3 S3M and Impulse Tracker IT files.")
1499 (license license:gpl2+)))
1500
1501 (define-public soundtouch
1502 (package
1503 (name "soundtouch")
1504 (version "1.8.0")
1505 (source
1506 (origin
1507 (method url-fetch)
1508 (uri
1509 (string-append
1510 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
1511 (sha256
1512 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
1513 (build-system gnu-build-system)
1514 (native-inputs
1515 `(("autoconf" ,autoconf)
1516 ("automake" ,automake)
1517 ("libtool" ,libtool)
1518 ("file" ,file)))
1519 (arguments
1520 '(#:phases
1521 (alist-cons-after
1522 'unpack 'bootstrap
1523 (lambda _
1524 (zero? (system* "sh" "bootstrap")))
1525 %standard-phases)))
1526 (home-page "http://www.surina.net/soundtouch/")
1527 (synopsis
1528 "Audio processing library for changing tempo, pitch and playback rate")
1529 (description
1530 "SoundTouch is an audio processing library for changing the tempo, pitch
1531 and playback rates of audio streams or audio files. It is intended for
1532 application developers writing sound processing tools that require tempo/pitch
1533 control functionality, or just for playing around with the sound effects.")
1534 (license license:lgpl2.1+)))
1535
1536 (define-public sox
1537 (package
1538 (name "sox")
1539 (version "14.4.2")
1540 (source (origin
1541 (method url-fetch)
1542 (uri (string-append "mirror://sourceforge/sox/sox-"
1543 version ".tar.bz2"))
1544 (sha256
1545 (base32
1546 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
1547 (build-system gnu-build-system)
1548 (arguments
1549 '(#:configure-flags
1550 ;; The upstream asks to identify the distribution to diagnose SoX
1551 ;; bug reports.
1552 '("--with-distro=Guix System Distribution")))
1553 (native-inputs
1554 `(("pkg-config" ,pkg-config)))
1555 (inputs
1556 `(("alsa-lib" ,alsa-lib)
1557 ("ao" ,ao)
1558 ("flac" ,flac)
1559 ("lame" ,lame)
1560 ("libid3tag" ,libid3tag)
1561 ("libltdl" ,libltdl)
1562 ("libmad" ,libmad)
1563 ("libpng" ,libpng)
1564 ("libvorbis" ,libvorbis)
1565 ("pulseaudio" ,pulseaudio)))
1566 (home-page "http://sox.sourceforge.net")
1567 (synopsis "Sound processing utility")
1568 (description
1569 "SoX (Sound eXchange) is a command line utility that can convert
1570 various formats of computer audio files to other formats. It can also
1571 apply various effects to these sound files, and, as an added bonus, SoX
1572 can play and record audio files.")
1573 ;; sox.c is distributed under GPL, while the files that make up
1574 ;; libsox are licensed under LGPL.
1575 (license (list license:gpl2+ license:lgpl2.1+))))
1576
1577 (define-public soxr
1578 (package
1579 (name "soxr")
1580 (version "0.1.1")
1581 (source
1582 (origin
1583 (method url-fetch)
1584 (uri
1585 (string-append "mirror://sourceforge/soxr/soxr-" version
1586 "-Source.tar.xz"))
1587 (sha256
1588 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
1589 (build-system cmake-build-system)
1590 (arguments '(#:tests? #f)) ;no 'check' target
1591 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
1592 (synopsis "One-dimensional sample-rate conversion library")
1593 (description
1594 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
1595 conversion. It may be used, for example, to resample PCM-encoded audio.")
1596 (license license:lgpl2.1+)))
1597
1598 (define-public twolame
1599 (package
1600 (name "twolame")
1601 (version "0.3.13")
1602 (source
1603 (origin
1604 (method url-fetch)
1605 (uri (string-append
1606 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
1607 (sha256
1608 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
1609 (build-system gnu-build-system)
1610 (inputs
1611 `(("libsndfile" ,libsndfile)))
1612 (native-inputs
1613 `(("perl" ,perl)
1614 ("which" ,which))) ;used in tests/test.pl
1615 (home-page "http://www.twolame.org/")
1616 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
1617 (description
1618 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
1619 tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
1620 portions of LAME.")
1621 (license license:lgpl2.1+)))
1622
1623 (define-public portaudio
1624 (package
1625 (name "portaudio")
1626 (version "19.20140130")
1627 (source
1628 (origin
1629 (method url-fetch)
1630 (uri (string-append
1631 "http://www.portaudio.com/archives/pa_stable_v"
1632 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
1633 ".tgz"))
1634 (sha256
1635 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
1636 (patches (list (search-patch "portaudio-audacity-compat.patch")))))
1637 (build-system gnu-build-system)
1638 (inputs
1639 ;; TODO: Add ASIHPI.
1640 `(("alsa-lib" ,alsa-lib)
1641 ("jack" ,jack-1)))
1642 (native-inputs
1643 `(("autoconf" ,autoconf)
1644 ("automake" ,automake)
1645 ("libtool" ,libtool)
1646 ("pkg-config" ,pkg-config)))
1647 (arguments
1648 '(#:phases
1649 ;; Autoreconf is necessary because the audacity-compat patch modifies
1650 ;; .in files.
1651 (alist-cons-after
1652 'unpack 'autoreconf
1653 (lambda _
1654 (zero? (system* "autoreconf" "-vif")))
1655 %standard-phases)
1656 #:tests? #f)) ;no 'check' target
1657 (home-page "http://www.portaudio.com/")
1658 (synopsis "Audio I/O library")
1659 (description
1660 "PortAudio is a portable C/C++ audio I/O library providing a simple API
1661 to record and/or play sound using a callback function or a blocking read/write
1662 interface.")
1663 (license license:expat)))
1664
1665 (define-public qsynth
1666 (package
1667 (name "qsynth")
1668 (version "0.4.0")
1669 (source
1670 (origin
1671 (method url-fetch)
1672 (uri (string-append
1673 "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
1674 (sha256
1675 (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
1676 (build-system gnu-build-system)
1677 (arguments
1678 `(#:tests? #f)) ; no "check" phase
1679 (inputs
1680 `(("qt" ,qt)
1681 ("fluidsynth" ,fluidsynth)))
1682 (home-page "http://qsynth.sourceforge.net")
1683 (synopsis "Graphical user interface for FluidSynth")
1684 (description
1685 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
1686 synthesizer written in C++.")
1687 (license license:gpl2+)))
1688
1689 (define-public rsound
1690 (package
1691 (name "rsound")
1692 (version "1.1")
1693 (source
1694 (origin
1695 (method url-fetch)
1696 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
1697 version ".tar.gz"))
1698 (file-name (string-append name "-" version))
1699 (sha256
1700 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
1701 (build-system gnu-build-system)
1702 (inputs
1703 `(("alsa-lib" ,alsa-lib)
1704 ("jack" ,jack-1)
1705 ("ao" ,ao)
1706 ("libsamplerate" ,libsamplerate)
1707 ("openal" ,openal)
1708 ("portaudio" ,portaudio)
1709 ("pulseaudio" ,pulseaudio)))
1710 (arguments
1711 '(#:phases
1712 (alist-replace
1713 'configure
1714 (lambda* (#:key outputs #:allow-other-keys)
1715 (setenv "CC" "gcc")
1716 (zero?
1717 (system* "./configure"
1718 (string-append "--prefix=" (assoc-ref outputs "out")))))
1719 %standard-phases)
1720 ;; No 'check' target.
1721 #:tests? #f))
1722 (home-page "http://themaister.net/rsound.html")
1723 (synopsis "Networked audio system")
1724 (description
1725 "RSound allows you to send audio from an application and transfer it
1726 directly to a different computer on your LAN network. It is an audio daemon
1727 with a much different focus than most other audio daemons.")
1728 (license license:gpl3+)))
1729
1730 (define-public xjackfreak
1731 (package
1732 (name "xjackfreak")
1733 (version "1.0")
1734 (source (origin
1735 (method url-fetch)
1736 (uri (string-append
1737 "https://github.com/johnhldavis/xjackfreak/archive/v"
1738 version ".tar.gz"))
1739 (file-name (string-append name "-" version ".tar.gz"))
1740 (sha256
1741 (base32
1742 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
1743 (build-system gnu-build-system)
1744 (arguments
1745 `(#:make-flags
1746 (list (string-append "docdir=" (assoc-ref %outputs "out")
1747 "/share/doc/xjackfreak"))))
1748 (inputs
1749 `(("jack" ,jack-1)
1750 ("libx11" ,libx11)
1751 ("libxt" ,libxt)
1752 ("libxext" ,libxext)))
1753 (native-inputs
1754 `(("pkg-config" ,pkg-config)))
1755 (home-page "https://github.com/johnhldavis/xjackfreak")
1756 (synopsis "JACK audio frequency analyzer and display")
1757 (description
1758 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
1759 Connection Kit. It can display the FFT of any input, modify it and output the
1760 result.")
1761 (license license:gpl3+)))
1762
1763 (define-public zita-convolver
1764 (package
1765 (name "zita-convolver")
1766 (version "3.1.0")
1767 (source (origin
1768 (method url-fetch)
1769 (uri (string-append
1770 "http://kokkinizita.linuxaudio.org"
1771 "/linuxaudio/downloads/zita-convolver-"
1772 version ".tar.bz2"))
1773 (sha256
1774 (base32
1775 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
1776 (build-system gnu-build-system)
1777 (arguments
1778 `(#:tests? #f ; no "check" target
1779 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1780 #:phases
1781 (alist-cons-after
1782 'unpack 'patch-makefile-and-enter-directory
1783 (lambda _
1784 (substitute* "libs/Makefile"
1785 (("ldconfig") "true")
1786 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1787 (chdir "libs") #t)
1788 (alist-cons-after
1789 'install
1790 'install-symlink
1791 (lambda _
1792 (symlink "libzita-convolver.so"
1793 (string-append (assoc-ref %outputs "out")
1794 "/lib/libzita-convolver.so.3")))
1795 ;; no configure script
1796 (alist-delete 'configure %standard-phases)))))
1797 (inputs `(("fftwf" ,fftwf)))
1798 (home-page "http://kokkinizita.linuxaudio.org")
1799 (synopsis "Fast, partitioned convolution engine library")
1800 (description
1801 "Zita convolver is a C++ library providing a real-time convolution
1802 engine.")
1803 (license license:gpl3+)))
1804
1805 (define-public zita-resampler
1806 (package
1807 (name "zita-resampler")
1808 (version "1.3.0")
1809 (source (origin
1810 (method url-fetch)
1811 (uri (string-append
1812 "http://kokkinizita.linuxaudio.org"
1813 "/linuxaudio/downloads/zita-resampler-"
1814 version ".tar.bz2"))
1815 (sha256
1816 (base32
1817 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
1818 (build-system gnu-build-system)
1819 (arguments
1820 `(#:tests? #f ; no "check" target
1821 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1822 #:phases
1823 (modify-phases %standard-phases
1824 (add-after
1825 'unpack 'patch-makefile-and-enter-directory
1826 (lambda _
1827 (substitute* "libs/Makefile"
1828 (("ldconfig") "true")
1829 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1830 (chdir "libs")
1831 #t))
1832 (add-after
1833 'install 'install-symlink
1834 (lambda _
1835 (symlink "libzita-resampler.so"
1836 (string-append (assoc-ref %outputs "out")
1837 "/lib/libzita-resampler.so.1"))))
1838 ;; no configure script
1839 (delete 'configure))))
1840 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
1841 (synopsis "C++ library for resampling audio signals")
1842 (description
1843 "Libzita-resampler is a C++ library for resampling audio signals. It is
1844 designed to be used within a real-time processing context, to be fast, and to
1845 provide high-quality sample rate conversion.")
1846 (license license:gpl3+)))
1847
1848 (define-public zita-alsa-pcmi
1849 (package
1850 (name "zita-alsa-pcmi")
1851 (version "0.2.0")
1852 (source (origin
1853 (method url-fetch)
1854 (uri (string-append
1855 "http://kokkinizita.linuxaudio.org"
1856 "/linuxaudio/downloads/zita-alsa-pcmi-"
1857 version ".tar.bz2"))
1858 (sha256
1859 (base32
1860 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
1861 (build-system gnu-build-system)
1862 (arguments
1863 `(#:tests? #f ; no "check" target
1864 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1865 #:phases
1866 (alist-cons-after
1867 'unpack 'patch-makefile-and-enter-directory
1868 (lambda _
1869 (substitute* "libs/Makefile"
1870 (("ldconfig") "true")
1871 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1872 (chdir "libs")
1873 #t)
1874 (alist-cons-after
1875 'install
1876 'install-symlink
1877 (lambda _
1878 (symlink "libzita-alsa-pcmi.so"
1879 (string-append (assoc-ref %outputs "out")
1880 "/lib/libzita-alsa-pcmi.so.0")))
1881 ;; no configure script
1882 (alist-delete 'configure %standard-phases)))))
1883 (inputs
1884 `(("alsa-lib" ,alsa-lib)
1885 ("fftw" ,fftw)))
1886 (home-page "http://kokkinizita.linuxaudio.org")
1887 (synopsis "C++ wrapper around the ALSA API")
1888 (description
1889 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
1890 access to ALSA PCM devices, taking care of the many functions required to
1891 open, initialise and use a hw: device in mmap mode, and providing floating
1892 point audio data.")
1893 (license license:gpl3+)))