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