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