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