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