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