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