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