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