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