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