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