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