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