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