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