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