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