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