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