gnu: Remove trailing period from synopsis.
[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")
bdc35b92 1727 (version "2.2.4")
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
bdc35b92 1736 "1061rdj69503spkd8vmfl3fqvyg4l41k5xcc4gw7niy31hnpnjmn"))))
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\\}")
bdc35b92 1747 "LIB_SUFFIX \"\"")))))))
e4f43b56 1748 (inputs
bdc35b92 1749 (list ladspa))
e4f43b56 1750 (native-inputs
8394619b 1751 (list pkg-config))
bdc35b92
TGR
1752 (propagated-inputs
1753 ;; In Libs.private of fluidsynth.pc.
1754 (list alsa-lib
1755 glib
1756 jack-1
1757 lash
1758 libsndfile
1759 readline))
4b980563 1760 (home-page "https://www.fluidsynth.org/")
e4f43b56
RW
1761 (synopsis "SoundFont synthesizer")
1762 (description
1763 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
1764specifications. FluidSynth reads and handles MIDI events from the MIDI input
e881752c 1765device. It is the software analogue of a MIDI synthesizer. FluidSynth can
e4f43b56 1766also play midifiles using a Soundfont.")
dd46c16b 1767 (license license:lgpl2.1+)))
e4f43b56 1768
70fc29d9
TUBK
1769(define-public faad2
1770 (package
1771 (name "faad2")
31f226c4
RG
1772 (version "2.8.8")
1773 (source
1774 (origin
1775 (method url-fetch)
1776 (uri
1777 (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
1778 (version-major+minor version) ".0/"
1779 "faad2-" version ".tar.gz"))
1780 (sha256
1781 (base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
70fc29d9 1782 (build-system gnu-build-system)
df2f7f5b 1783 (home-page "https://www.audiocoding.com/faad2.html")
70fc29d9
TUBK
1784 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
1785 (description
df2f7f5b 1786 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
31f226c4 1787 (license license:gpl2+)))
70fc29d9 1788
777291f0
RW
1789(define-public faust
1790 (package
1791 (name "faust")
a3604742 1792 (version "0.9.90")
777291f0 1793 (source (origin
a3604742
RW
1794 (method git-fetch)
1795 (uri (git-reference
b0e7b699 1796 (url "https://github.com/grame-cncm/faust")
a3604742
RW
1797 (commit (string-append "v"
1798 (string-map (lambda (c)
1799 (if (char=? c #\.) #\- c))
1800 version)))))
1801 (file-name (string-append "faust-" version "-checkout"))
777291f0
RW
1802 (sha256
1803 (base32
a3604742 1804 "0qc6iwjd3i80jdyjc186c6ywipmjzl8wlsp4050pbr56q4rlkd4z"))))
777291f0
RW
1805 (build-system gnu-build-system)
1806 (arguments
1807 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
1808 #:tests? #f
1809 #:phases
1810 (modify-phases %standard-phases
0543c326 1811 ;; no "configure" script
a3604742
RW
1812 (delete 'configure)
1813 ;; Files appear under $out/share/faust that are read-only. The
1814 ;; install phase tries to overwrite them and fails, so we change
1815 ;; the permissions first.
1816 (add-before 'install 'fix-permissions
1817 (lambda _
1818 (for-each (lambda (file)
1819 (chmod file #o644))
1820 (find-files "architecture/max-msp" ".*"))
1821 #t)))))
777291f0 1822 (native-inputs
8394619b 1823 (list unzip))
62f6f9d9 1824 (home-page "https://faust.grame.fr/")
777291f0
RW
1825 (synopsis "Signal processing language")
1826 (description
1827 "Faust is a programming language for realtime audio signal processing.")
1828 (license license:gpl2+)))
1829
8ae60404
RW
1830(define-public faust-2
1831 (package
1832 (inherit faust)
89c78948 1833 (version "2.5.23")
8ae60404 1834 (source (origin
89c78948
RW
1835 (method url-fetch)
1836 (uri (string-append "https://github.com/grame-cncm/faust/"
1837 "releases/download/" version
1838 "/faust-" version ".tar.gz"))
8ae60404
RW
1839 (sha256
1840 (base32
89c78948 1841 "1yz5jnr76hh7rmxkpdi7gyrw1wp4gyqfpq8zyl97qdi5ga5gjznq"))))
8ae60404
RW
1842 (build-system gnu-build-system)
1843 (arguments
1844 (substitute-keyword-arguments (package-arguments faust)
1845 ((#:make-flags flags)
1846 `(list (string-append "prefix=" (assoc-ref %outputs "out"))
75bbc3c2 1847 "world"))))
8ae60404 1848 (native-inputs
fc9dbf41 1849 `(("llvm" ,llvm-3.8)
8ae60404 1850 ("which" ,which)
9fc513ad 1851 ("xxd" ,xxd)
8ae60404
RW
1852 ("ctags" ,emacs-minimal) ; for ctags
1853 ("pkg-config" ,pkg-config)))
1854 (inputs
8394619b 1855 (list libsndfile libmicrohttpd ncurses openssl zlib))))
8ae60404 1856
7c92efff
RW
1857(define-public freepats
1858 (package
1859 (name "freepats")
1860 (version "20060219")
1861 (source (origin
1862 (method url-fetch)
1863 (uri (string-append "http://freepats.zenvoid.org/freepats-"
1864 version ".tar.bz2"))
1865 (sha256
1866 (base32
1867 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
1868 (build-system trivial-build-system)
1869 (arguments
1870 `(#:modules ((guix build utils))
1871 #:builder (begin
1872 (use-modules (guix build utils))
1873 (let ((out (string-append %output "/share/freepats")))
1874 (setenv "PATH" (string-append
1875 (assoc-ref %build-inputs "bzip2") "/bin:"
1876 (assoc-ref %build-inputs "tar") "/bin"))
e3cfef22 1877 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
7c92efff
RW
1878 (chdir "freepats")
1879 ;; Use absolute pattern references
1880 (substitute* "freepats.cfg"
1881 (("Tone_000") (string-append out "/Tone_000"))
1882 (("Drum_000") (string-append out "/Drum_000")))
1883 (mkdir-p out)
e3cfef22
MW
1884 (copy-recursively "." out)
1885 #t))))
7c92efff 1886 (native-inputs
8394619b 1887 (list tar bzip2))
7c92efff
RW
1888 (home-page "http://freepats.zenvoid.org")
1889 (synopsis "GUS compatible patches for MIDI players")
1890 (description
1891 "FreePats is a project to create a free and open set of GUS compatible
1892patches that can be used with softsynths such as Timidity and WildMidi.")
1893 ;; GPLv2+ with exception for compositions using these patches.
1894 (license license:gpl2+)))
1895
fcbeb00b
RW
1896(define-public guitarix
1897 (package
1898 (name "guitarix")
002442b2 1899 (version "0.43.1")
fcbeb00b
RW
1900 (source (origin
1901 (method url-fetch)
1902 (uri (string-append
de67e922 1903 "mirror://sourceforge/guitarix/guitarix/guitarix2-"
d706d943 1904 version ".tar.xz"))
fcbeb00b
RW
1905 (sha256
1906 (base32
002442b2 1907 "1bsjlfd7x09p3iiljilyfbns6hpqn9cgp6psl4ccd6i1lwascfrm"))))
fcbeb00b
RW
1908 (build-system waf-build-system)
1909 (arguments
1910 `(#:tests? #f ; no "check" target
fcbeb00b
RW
1911 #:configure-flags
1912 (list
fcbeb00b 1913 ;; Add the output lib directory to the RUNPATH.
bf592ef5 1914 (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
fcbeb00b 1915 (inputs
8394619b
LC
1916 (list libsndfile
1917 boost
1918 curl
1919 avahi
1920 eigen
1921 lv2
1922 lilv
1923 ladspa
1924 jack-1
1925 gtkmm-3
1926 gtk+
1927 fftwf
1928 lrdf
1929 zita-resampler
1930 zita-convolver))
fcbeb00b
RW
1931 (native-inputs
1932 `(("gperf" ,gperf)
49767428 1933 ("faust" ,faust)
fcbeb00b 1934 ("intltool" ,intltool)
b94a6ca0 1935 ("gettext" ,gettext-minimal)
bf592ef5
RW
1936 ("pkg-config" ,pkg-config)
1937 ("sassc" ,sassc)))
fcbeb00b
RW
1938 (native-search-paths
1939 (list (search-path-specification
1940 (variable "LV2_PATH")
1941 (files '("lib/lv2")))))
096ed4f9 1942 (home-page "https://guitarix.org/")
fcbeb00b
RW
1943 (synopsis "Virtual guitar amplifier")
1944 (description "Guitarix is a virtual guitar amplifier running JACK.
1945Guitarix takes the signal from your guitar as a mono-signal from your sound
1946card. The input is processed by a main amp and a rack-section. Both can be
1947routed separately and deliver a processed stereo-signal via JACK. You may
1948fill the rack with effects from more than 25 built-in modules including stuff
1949from a simple noise gate to modulation effects like flanger, phaser or
1950auto-wah.")
1951 (license license:gpl2+)))
1952
5f5b5768
RW
1953(define-public guitarix-lv2
1954 (package (inherit guitarix)
1955 (name "guitarix-lv2")
1956 (arguments
1957 (substitute-keyword-arguments (package-arguments guitarix)
1958 ((#:configure-flags flags)
029de52f 1959 `(cons "--no-standalone" ,flags))))))
5f5b5768 1960
11d4800a
RW
1961(define-public rakarrack
1962 (package
1963 (name "rakarrack")
1964 (version "0.6.1")
1965 (source (origin
1966 (method url-fetch)
1967 (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
1968 "rakarrack-" version "/rakarrack-"
1969 version ".tar.bz2"))
1970 (sha256
1971 (base32
1972 "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
1973 (modules '((guix build utils)))
1974 (snippet
1975 '(begin
1976 (substitute* '("src/process.C"
1977 "src/global.h")
1978 (("#include <Fl/") "#include <FL/"))
1979 #t))))
1980 (build-system gnu-build-system)
1981 (inputs
e3196755
LC
1982 (list alsa-utils
1983 fltk
1984 libx11
1985 libxext
1986 libxfixes
1987 libxft
1988 libxrender
1989 libxpm
1990 fontconfig
1991 freetype
1992 jack-1
1993 alsa-lib
1994 libsndfile
1995 libsamplerate
1996 zlib))
11d4800a
RW
1997 (home-page "http://rakarrack.sourceforge.net/")
1998 (synopsis "Audio effects processor")
1999 (description
2000 "Rakarrack is a richly featured multi-effects processor emulating a
2001guitar effects pedalboard. Effects include compressor, expander, noise gate,
2002equalizers, exciter, flangers, chorus, various delay and reverb effects,
2003distortion modules and many more. Most of the effects engine is built from
2004modules found in the excellent software synthesizer ZynAddSubFX. Presets and
2005user interface are optimized for guitar, but Rakarrack processes signals in
2006stereo while it does not apply internal band-limiting filtering, and thus is
2007well suited to all musical instruments and vocals.")
2008 ;; The code is explicitly licensed under the GPL version 2 only.
2009 (license license:gpl2)))
2010
32cf42c1
RW
2011(define-public ir
2012 (package
2013 (name "ir")
6f85a9c4 2014 (version "1.3.4")
32cf42c1 2015 (source (origin
6f85a9c4
RW
2016 (method git-fetch)
2017 (uri (git-reference
2018 (url "https://github.com/tomszilagyi/ir.lv2")
2019 (commit version)))
2020 (file-name (git-file-name name version))
32cf42c1
RW
2021 (sha256
2022 (base32
6f85a9c4 2023 "0svmjhg4r6wy5ci5rwz43ybll7yxjv7nnj7nyqscbzhr3gi5aib0"))))
32cf42c1
RW
2024 (build-system gnu-build-system)
2025 (arguments
2df984f2 2026 `(#:tests? #f ; no tests
6f85a9c4
RW
2027 #:make-flags
2028 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
2029 (string-append "INSTDIR="
2030 (assoc-ref %outputs "out") "/lib/lv2"))
63ebc380
RW
2031 #:phases
2032 (modify-phases %standard-phases
2033 (delete 'configure) ; no configure script
2034 ;; See https://github.com/tomszilagyi/ir.lv2/pull/20
869c416c 2035 (add-after 'unpack 'fix-type
63ebc380
RW
2036 (lambda _
2037 (substitute* '("ir_gui.cc" "lv2_ui.h")
2038 (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
2039 #t)))))
32cf42c1 2040 (inputs
8394619b
LC
2041 (list libsndfile
2042 libsamplerate
2043 lv2
2044 glib
2045 gtk+-2
2046 zita-convolver))
32cf42c1 2047 (native-inputs
8394619b 2048 (list pkg-config))
32cf42c1
RW
2049 (native-search-paths
2050 (list (search-path-specification
2051 (variable "LV2_PATH")
2052 (files '("lib/lv2")))))
6f85a9c4 2053 (home-page "https://tomszilagyi.github.io/plugins/ir.lv2")
32cf42c1
RW
2054 (synopsis "LV2 convolution reverb")
2055 (description
2056 "IR is a low-latency, real-time, high performance signal convolver
2057especially for creating reverb effects. It supports impulse responses with 1,
20582 or 4 channels, in any soundfile format supported by libsndfile.")
2059 (license license:gpl2+)))
2060
fb68469f
RW
2061(define-public jack-1
2062 (package
2063 (name "jack")
31b7af76 2064 (version "0.125.0")
2ae03bf6
TGR
2065 (source
2066 (origin
2067 (method url-fetch)
2068 ;; jackaudio.org/downloads/jack-audio-connection-kit-0.125.0.tar.gz
2069 ;; no longer exists (404). Use an unofficial mirror.
2070 (uri (string-append "https://crux.ster.zone/downloads/"
2071 "jack-audio-connection-kit/"
2072 "jack-audio-connection-kit-" version ".tar.gz"))
2073 (sha256
2074 (base32 "0i6l25dmfk2ji2lrakqq9icnwjxklgcjzzk65dmsff91z2zva5rm"))))
fb68469f 2075 (build-system gnu-build-system)
8e2c0ce4
MB
2076 (arguments
2077 `(#:phases (modify-phases %standard-phases
2078 (add-after 'unpack 'patch-configure
2079 (lambda _
2080 (substitute* "configure"
2081 ;; Install to <out/lib> regardless of platform.
2082 (("libnn=lib64") "libnn=lib"))
2083 #t)))))
fb68469f 2084 (inputs
8394619b 2085 (list alsa-lib readline))
5d95e30b 2086 ;; uuid.h is included in the JACK type headers
ca01b3ad 2087 ;; db.h is included in the libjack metadata headers
5d95e30b 2088 (propagated-inputs
bb93042c 2089 `(("libuuid" ,util-linux "lib")
ca01b3ad 2090 ("bdb" ,bdb)))
2f9ae82f 2091 (native-inputs
8394619b 2092 (list pkg-config))
2ae03bf6 2093 (home-page "https://jackaudio.org/")
fb68469f
RW
2094 (synopsis "JACK audio connection kit")
2095 (description
2096 "JACK is a low-latency audio server. It can connect a number of
2097different applications to an audio device, as well as allowing them to share
2098audio between themselves. JACK is different from other audio server efforts
2099in that it has been designed from the ground up to be suitable for
2100professional audio work. This means that it focuses on two key areas:
2101synchronous execution of all clients, and low latency operation.")
2102 ;; Most files are licensed under the GPL. However, the libjack/ tree is
2103 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 2104 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981 2105
bcbc02fd
RW
2106;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
2107;; jack-2 implement the same API. JACK2 is provided primarily as a client
2108;; program for users who might benefit from the D-BUS features.
c54a8981
RW
2109(define-public jack-2
2110 (package (inherit jack-1)
314275c7 2111 (name "jack2")
52139ce5 2112 (version "1.9.14")
c54a8981
RW
2113 (source (origin
2114 (method url-fetch)
a4527622
RW
2115 (uri (string-append "https://github.com/jackaudio/jack2/releases/"
2116 "download/v" version "/jack2-"
2117 version ".tar.gz"))
f586c877 2118 (file-name (string-append name "-" version ".tar.gz"))
c54a8981
RW
2119 (sha256
2120 (base32
52139ce5 2121 "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
c54a8981
RW
2122 (build-system waf-build-system)
2123 (arguments
fa984fa6 2124 `(#:tests? #f ; no check target
c54a8981 2125 #:configure-flags '("--dbus"
b416c647
SB
2126 "--alsa")
2127 #:phases
2128 (modify-phases %standard-phases
fa984fa6
RW
2129 (add-before 'configure 'set-linkflags
2130 (lambda _
52139ce5
MR
2131 ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
2132 ;; will not link with undefined reference to symbol
2133 ;; '__gxx_personality_v0@@CXXABI_1.3'
2134 (setenv "LDFLAGS" "-lstdc++")
fa984fa6
RW
2135 ;; Add $libdir to the RUNPATH of all the binaries.
2136 (substitute* "wscript"
2137 ((".*CFLAGS.*-Wall.*" m)
2138 (string-append m
2139 " conf.env.append_unique('LINKFLAGS',"
2140 "'-Wl,-rpath=" %output "/lib')\n")))
2141 #t))
bc8bf605 2142 (add-after 'install 'wrap-python-scripts
fa984fa6
RW
2143 (lambda* (#:key inputs outputs #:allow-other-keys)
2144 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
2145 (let* ((out (assoc-ref outputs "out"))
d42245d4 2146 (path (getenv "GUIX_PYTHONPATH")))
fa984fa6 2147 (wrap-program (string-append out "/bin/jack_control")
d42245d4 2148 `("GUIX_PYTHONPATH" ":" prefix (,path))))
fa984fa6 2149 #t)))))
c54a8981 2150 (inputs
8394619b
LC
2151 (list alsa-lib
2152 dbus
2153 expat
2154 libsamplerate
2155 opus
2156 python-dbus
2157 readline))
c54a8981 2158 (native-inputs
8394619b 2159 (list pkg-config))
c54a8981
RW
2160 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
2161 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 2162
2f4646b6
RW
2163(define-public jalv
2164 (package
2165 (name "jalv")
c569c735 2166 (version "1.6.6")
2f4646b6
RW
2167 (source (origin
2168 (method url-fetch)
0d0252e4 2169 (uri (string-append "https://download.drobilla.net/jalv-"
2f4646b6
RW
2170 version ".tar.bz2"))
2171 (sha256
2172 (base32
c569c735 2173 "05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
2f4646b6 2174 (build-system waf-build-system)
d8c317df 2175 (arguments
4e385d2a 2176 `(#:tests? #f ; no check target
0403b04d 2177 #:python ,python-2))
2f4646b6
RW
2178 (inputs
2179 `(("lv2" ,lv2)
2180 ("lilv" ,lilv)
2181 ("suil" ,suil)
9e4e66c4
AT
2182 ("gtk2" ,gtk+-2)
2183 ("gtk3" ,gtk+)
2184 ("gtkmm" ,gtkmm-2)
ea0a5107 2185 ("qtbase" ,qtbase-5)
2f4646b6
RW
2186 ("jack" ,jack-1)))
2187 (native-inputs
8394619b 2188 (list pkg-config))
0d0252e4 2189 (home-page "https://drobilla.net/software/jalv/")
2f4646b6
RW
2190 (synopsis "Simple LV2 host for JACK")
2191 (description
2192 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
2193plugins and exposes their ports as JACK ports, essentially making any LV2
2194plugin function as a JACK application.")
2195 (license license:isc)))
2196
2cc7ce31
RW
2197(define-public ladspa
2198 (package
2199 (name "ladspa")
2200 (version "1.13")
0c1910ed
AV
2201 (source
2202 (origin
2203 (method url-fetch)
2204 ;; Since the official link is dead,
2205 ;; we download the tarball from Debian or Internet Archive.
2206 (uri (list (string-append "http://http.debian.net"
2207 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
2208 version ".orig.tar.gz")
2209 (string-append "https://web.archive.org/web/20140717172251/"
2210 "http://www.ladspa.org/download/ladspa_sdk_"
2211 version ".tgz")))
2212 (sha256
2213 (base32
2214 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
2cc7ce31
RW
2215 (build-system gnu-build-system)
2216 (arguments
2217 `(#:tests? #f ; the "test" target is a listening test only
2218 #:phases
ee527187
MW
2219 (modify-phases %standard-phases
2220 (replace 'configure
2221 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
2222 (chdir "src")
2223 (let ((out (assoc-ref outputs "out")))
2224 (substitute* "makefile"
2225 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
2226 (("/usr/include/") (string-append out "/include/"))
2227 (("/usr/bin/") (string-append out "/bin/"))
2228 (("-mkdirhier") "mkdir -p")
2229 (("^CC.*") "CC = gcc\n")
2230 (("^CPP.*") "CPP = g++\n")))
2231 #t))
2232 (delete 'build))))
0c1910ed
AV
2233 ;; Since the home page is gone, we provide a link to the archived version.
2234 (home-page
2235 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
2cc7ce31
RW
2236 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
2237 (description
2238 "LADSPA is a standard that allows software audio processors and effects
2239to be plugged into a wide range of audio synthesis and recording packages.")
2240 (license license:lgpl2.1+)))
2241
da49086a
RW
2242(define-public lash
2243 (package
2244 (name "lash")
2245 (version "0.6.0-rc2")
2246 (source (origin
2247 (method url-fetch)
2248 ;; The tilde is not permitted in the builder name, but is used
2249 ;; in the tarball.
2250 (uri (string-append
2251 "mirror://savannah/lash/lash-"
2252 (string-join (string-split version #\-) "~")
2253 ".tar.bz2"))
2254 (file-name (string-append name "-" version ".tar.bz2"))
2255 (sha256
2256 (base32
2257 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
2258 (build-system gnu-build-system)
44df7807 2259 (arguments
f03cda4d
MB
2260 '(;; Glibc no longer includes Sun RPC support, so tell the build system
2261 ;; to use libtirpc instead.
2262 #:make-flags (list (string-append "CFLAGS=-I"
2263 (assoc-ref %build-inputs "libtirpc")
2264 "/include/tirpc -ltirpc"))
2265 #:phases
44df7807
EF
2266 (modify-phases %standard-phases
2267 ;; lashd embeds an ancient version of sigsegv so we just skip it
2268 (add-after 'unpack 'skip-lashd
2269 (lambda _
2270 (substitute* '("Makefile.am" "Makefile.in")
2271 (("lashd ") ""))
b07bfd06
EF
2272 #t)))
2273 #:configure-flags '("--disable-static")))
da49086a
RW
2274 (inputs
2275 `(("bdb" ,bdb)
2276 ("gtk" ,gtk+-2)
2277 ("jack" ,jack-1)
f03cda4d 2278 ("libtirpc" ,libtirpc)
da49086a
RW
2279 ("readline" ,readline)
2280 ("python" ,python-2)))
2281 ;; According to pkg-config, packages depending on lash also need to have
2282 ;; at least the following packages declared as inputs.
2283 (propagated-inputs
8394619b 2284 (list alsa-lib dbus libxml2))
da49086a 2285 (native-inputs
8394619b 2286 (list pkg-config))
340978d7 2287 (home-page "https://www.nongnu.org/lash/")
da49086a
RW
2288 (synopsis "Audio application session manager")
2289 (description
2290 "LASH is a session management system for audio applications. It allows
2291you to save and restore audio sessions consisting of multiple interconneced
2292applications, restoring program state (i.e. loaded patches) and the
2293connections between them.")
2294 (license license:gpl2+)))
2295
8c0b5a75
TUBK
2296(define-public libbs2b
2297 (package
2298 (name "libbs2b")
2299 (version "3.1.0")
2300 (source (origin
2301 (method url-fetch)
de67e922
LF
2302 (uri (string-append "mirror://sourceforge/bs2b/libbs2b/" version
2303 "/libbs2b-" version ".tar.lzma"))
8c0b5a75
TUBK
2304 (sha256
2305 (base32
2306 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
2307 (build-system gnu-build-system)
8394619b
LC
2308 (native-inputs (list pkg-config))
2309 (inputs (list libsndfile))
3b3b60d0 2310 (home-page "https://sourceforge.net/projects/bs2b/")
8c0b5a75
TUBK
2311 (synopsis "Bauer stereophonic-to-binaural DSP")
2312 (description
2313 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
2314designed to improve headphone listening of stereo audio records. Recommended
2315for headphone prolonged listening to disable superstereo fatigue without
2316essential distortions.")
2317 (license license:expat)))
2318
ecd56cd1
JF
2319(define-public ladspa-bs2b
2320 (package
2321 (name "ladspa-bs2b")
2322 (version "0.9.1")
2323 (source (origin
2324 (method url-fetch)
2325 (uri (string-append
2326 "mirror://sourceforge/bs2b/plugins/LADSPA%20plugin/"
2327 version "/" name "-" version ".tar.gz"))
2328 (sha256
2329 (base32
2330 "1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
2331 (build-system gnu-build-system)
8394619b
LC
2332 (native-inputs (list pkg-config))
2333 (inputs (list ladspa libbs2b))
ecd56cd1
JF
2334 (home-page "https://sourceforge.net/projects/bs2b/")
2335 (synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin")
2336 (description "The Bauer stereophonic-to-binaural DSP (bs2b) library and
2337plugins is designed to improve headphone listening of stereo audio records.
2338Recommended for headphone prolonged listening to disable superstereo fatigue
2339without essential distortions. This package contains a LADSPA plugin for use
2340with applications that support them (e.g. PulseAudio).")
2341 (license license:gpl2+)))
2342
f47cba0e
RW
2343(define-public liblo
2344 (package
2345 (name "liblo")
363fe78a 2346 (version "0.31")
f47cba0e
RW
2347 (source (origin
2348 (method url-fetch)
de67e922
LF
2349 (uri (string-append "mirror://sourceforge/liblo/liblo/" version
2350 "/liblo-" version ".tar.gz"))
f47cba0e
RW
2351 (sha256
2352 (base32
363fe78a 2353 "0l67rkdhfa8cffa0nynql3lh2xlbn1454h6qxhjddp1029p48krb"))))
f47cba0e
RW
2354 (build-system gnu-build-system)
2355 (arguments
2356 `(;; liblo test FAILED
2357 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
2358 #:tests? #f))
2359 (home-page "http://liblo.sourceforge.net")
2360 (synopsis "Implementation of the Open Sound Control protocol")
2361 (description
2362 "liblo is a lightweight library that provides an easy to use
03b71957 2363implementation of the Open Sound Control (@dfn{OSC}) protocol.")
f47cba0e 2364 (license license:lgpl2.1+)))
e2420191 2365
b6568c35
VM
2366(define-public rtaudio
2367 (package
2368 (name "rtaudio")
2369 (version "5.1.0")
2370 (source
2371 (origin
2372 (method git-fetch)
2373 (uri (git-reference
2374 (url "https://github.com/thestk/rtaudio")
2375 (commit version)))
2376 (file-name (git-file-name name version))
2377 (sha256
2378 (base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
2379 (build-system cmake-build-system)
177ff077
VM
2380 (arguments
2381 `(#:phases
2382 (modify-phases %standard-phases
2383 ;; The header that pkg-config expects is include/rtaudio/RtAudio.h,
2384 ;; but this package installs it as include/RtAudio.h by default.
2385 (add-after 'install 'fix-inc-path
2386 (lambda* (#:key outputs #:allow-other-keys)
2387 (let* ((out (assoc-ref outputs "out"))
2388 (inc (string-append out "/include")))
2389 (mkdir-p (string-append inc "/rtaudio"))
2390 (rename-file (string-append inc "/RtAudio.h")
2391 (string-append inc "/rtaudio/RtAudio.h"))))))))
b6568c35 2392 (native-inputs
8394619b 2393 (list pkg-config))
b6568c35 2394 (inputs
8394619b 2395 (list alsa-lib jack-1 pulseaudio))
b6568c35
VM
2396 (synopsis "Common API for real-time audio I/O")
2397 (description
2398 "RtAudio is a set of C++ classes that provides a common API for real-time
2399audio input/output. It was designed with the following objectives:
2400
2401@itemize
2402@item object-oriented C++ design
2403@item simple, common API across all supported platforms
2404@item only one source and one header file for easy inclusion in programming
2405projects
2406@item allow simultaneous multi-api support
2407@item support dynamic connection of devices
2408@item provide extensive audio device parameter control
2409@item allow audio device capability probing
2410@item automatic internal conversion for data format, channel number
2411compensation, (de)interleaving, and byte-swapping
2412@end itemize")
2413 (home-page "https://www.music.mcgill.ca/~gary/rtaudio/")
2414 ;; License is expat with a non-binding request to send modifications to
2415 ;; original developer.
2416 (license license:expat)))
2417
fbcad884
OP
2418(define-public python-pyaudio
2419 (package
2420 (name "python-pyaudio")
2421 (version "0.2.11")
2422 (source
2423 (origin
2424 (method url-fetch)
7d4dae6a 2425 (uri (pypi-uri "PyAudio" version))
fbcad884
OP
2426 (sha256
2427 (base32
2428 "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
2429 (build-system python-build-system)
2430 (inputs
8394619b 2431 (list portaudio))
fbcad884
OP
2432 (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
2433 (synopsis "Bindings for PortAudio v19")
2434 (description "This package provides bindings for PortAudio v19, the
2435cross-platform audio input/output stream library.")
2436 (license license:expat)))
2437
2438(define-public python2-pyaudio
2439 (package-with-python2 python-pyaudio))
2440
a91d72e2
RW
2441(define-public python-pyliblo
2442 (package
2443 (name "python-pyliblo")
2444 (version "0.10.0")
2445 (source (origin
2446 (method url-fetch)
2447 (uri (string-append "http://das.nasophon.de/download/pyliblo-"
2448 version ".tar.gz"))
2449 (sha256
2450 (base32
2451 "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
2452 (build-system python-build-system)
2453 (arguments `(#:tests? #f)) ;no tests
f2516de2 2454 (native-inputs
8394619b 2455 (list python-cython))
a91d72e2 2456 (inputs
8394619b 2457 (list liblo))
a91d72e2
RW
2458 (home-page "http://das.nasophon.de/pyliblo/")
2459 (synopsis "Python bindings for liblo")
2460 (description
2461 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)
2462library. It supports almost the complete functionality of liblo, allowing you
2463to send and receive OSC messages using a nice and simple Python API. Also
2464included are the command line utilities @code{send_osc} and @code{dump_osc}.")
2465 (license license:lgpl2.1+)))
2466
2467(define-public python2-pyliblo
2468 (package-with-python2 python-pyliblo))
2469
58932576
LP
2470(define-public python-soundfile
2471 (package
2472 (name "python-soundfile")
2473 (version "0.10.3.post1")
2474 (source
2475 (origin
2476 (method url-fetch)
2477 (uri (pypi-uri "SoundFile" version))
2478 (sha256
2479 (base32
2480 "0yqhrfz7xkvqrwdxdx2ydy4h467sk7z3gf984y1x2cq7cm1gy329"))))
2481 (build-system python-build-system)
2482 (propagated-inputs
8394619b 2483 (list python-cffi python-numpy libsndfile))
58932576 2484 (native-inputs
8394619b 2485 (list python-pytest))
58932576
LP
2486 (arguments
2487 `(#:tests? #f ; missing OGG support
2488 #:phases
2489 (modify-phases %standard-phases
2490 (add-after 'unpack 'patch
2491 (lambda* (#:key inputs #:allow-other-keys)
2492 (substitute* "soundfile.py"
2493 (("_find_library\\('sndfile'\\)")
2494 (string-append "\"" (assoc-ref inputs "libsndfile")
2495 "/lib/libsndfile.so\""))))))))
2496 (home-page "https://github.com/bastibe/SoundFile")
2497 (synopsis "Python bindings for libsndfile")
2498 (description "This package provides python bindings for libsndfile based on
2499CFFI and NumPy.")
2500 (license license:expat)))
2501
9e2cdf72
LP
2502(define-public python-python3-midi
2503 (package
2504 (name "python-python3-midi")
2505 (version "0.2.5")
2506 (source
2507 (origin
2508 (method url-fetch)
2509 (uri (pypi-uri "python3_midi" version))
2510 (sha256
2511 (base32
2512 "1z9j1w7mpn3xhkcpxmqm5rvmj6nffb5rf14bv7n3sdh07nf6n7sf"))))
2513 (build-system python-build-system)
2514 (home-page "https://github.com/NFJones/python3-midi")
2515 (synopsis "Python MIDI API")
2516 (description "This package provides a python API to read and write MIDI
2517files.")
2518 (license license:expat)))
2519
f356c71a
LP
2520(define-public audio-to-midi
2521 (package
2522 (name "audio-to-midi")
2523 (version "2020.7")
2524 (source
2525 (origin
2526 (method git-fetch)
2527 (uri (git-reference
2528 (url "https://github.com/NFJones/audio-to-midi")
2529 (commit (string-append "v" version))))
fda4a93e 2530 (file-name (git-file-name name version))
f356c71a
LP
2531 (sha256
2532 (base32
2533 "12wf17abn3psbsg2r2lk0xdnk8n5cd5rrvjlpxjnjfhd09n7qqgm"))))
2534 (build-system python-build-system)
2535 (propagated-inputs
8394619b
LC
2536 (list python-cffi
2537 python-cython
2538 python-numpy
2539 python-progressbar2
2540 python-pycparser
2541 python-python3-midi
2542 python-soundfile))
f356c71a 2543 (native-inputs
8394619b 2544 (list libsndfile))
f356c71a
LP
2545 (arguments
2546 `(#:phases
2547 (modify-phases %standard-phases
2548 (add-after 'unpack 'fix-versions
2549 (lambda _
2550 (substitute* "requirements.txt" (("==") ">=")))))))
2551 (home-page "https://github.com/NFJones/audio-to-midi")
38376090 2552 (synopsis "Convert audio to multichannel MIDI")
f356c71a
LP
2553 (description "@command{audio-to-midi} converts audio files to multichannel
2554MIDI files. It accomplishes this by performing FFTs on all channels of the
2555audio data at user-specified time steps. It then separates the resulting
2556frequency analysis into equivalence classes which correspond to the twelve tone
2557scale; the volume of each class being the average volume of its constituent
2558frequencies. This data is then formatted to MIDI and written to disk.")
2559 (license license:expat)))
2560
332aad1b
RW
2561(define-public lilv
2562 (package
2563 (name "lilv")
b331ee62 2564 (version "0.24.12")
332aad1b
RW
2565 (source (origin
2566 (method url-fetch)
0d0252e4 2567 (uri (string-append "https://download.drobilla.net/lilv-"
d4d3df82 2568 version ".tar.bz2"))
332aad1b
RW
2569 (sha256
2570 (base32
b331ee62 2571 "0qchfsyrsrp2pdpd59025kllycr04ddpzd03ha1iz70ci687g8r6"))))
332aad1b 2572 (build-system waf-build-system)
d80ee442 2573 (arguments
d0b025ea 2574 `(#:tests? #f ; no check target
d80ee442
TUBK
2575 #:phases
2576 (modify-phases %standard-phases
2d91e596 2577 (add-before 'configure 'set-ldflags
d80ee442
TUBK
2578 (lambda* (#:key outputs #:allow-other-keys)
2579 (setenv "LDFLAGS"
2580 (string-append "-Wl,-rpath="
b331ee62 2581 (assoc-ref outputs "out") "/lib"))))
6833c7a1
F
2582 (add-after 'unpack 'full-store-path-to-shared-library
2583 (lambda* (#:key outputs #:allow-other-keys)
2584 (with-directory-excursion "bindings/python"
2585 (substitute* "lilv.py"
2586 (("liblilv-0.so") (string-append (assoc-ref outputs "out")
b331ee62 2587 "/lib/liblilv-0.so")))))))))
d0b025ea 2588 ;; Required by lilv-0.pc.
ff7df27d 2589 (propagated-inputs
8394619b 2590 (list lv2 serd sord sratom))
332aad1b 2591 (native-inputs
8394619b 2592 (list python pkg-config))
6833c7a1 2593 (home-page "https://drobilla.net/software/lilv")
332aad1b
RW
2594 (synopsis "Library to simplify use of LV2 plugins in applications")
2595 (description
2596 "Lilv is a C library to make the use of LV2 plugins as simple as possible
2597for applications. Lilv is the successor to SLV2, rewritten to be
2598significantly faster and have minimal dependencies.")
2599 (license license:isc)))
2600
e2420191
RW
2601(define-public lv2
2602 (package
2603 (name "lv2")
6a36f4e4 2604 (version "1.18.2")
e2420191
RW
2605 (source (origin
2606 (method url-fetch)
2c735995 2607 (uri (string-append "https://lv2plug.in/spec/lv2-"
eb21d248 2608 version ".tar.bz2"))
e2420191
RW
2609 (sha256
2610 (base32
6a36f4e4 2611 "0pp0n9x1rg8d4fw853z9cvfifjdi4bl85yjxxddqa1acfjy1z2af"))))
e2420191
RW
2612 (build-system waf-build-system)
2613 (arguments
2c735995 2614 `(#:tests? #f ; no check target
2e189eb8 2615 #:configure-flags '("--no-plugins")))
e2420191
RW
2616 (inputs
2617 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
8394619b 2618 (list libsndfile))
e2420191 2619 (native-inputs
8394619b 2620 (list pkg-config))
2c735995 2621 (home-page "https://lv2plug.in/")
e2420191
RW
2622 (synopsis "LV2 audio plugin specification")
2623 (description
2624 "LV2 is an open specification for audio plugins and host applications.
2625At its core, LV2 is a simple stable interface, accompanied by extensions which
2626add functionality to support the needs of increasingly powerful audio
2627software.")
2628 (license license:isc)))
5279eb6f 2629
98247127
RW
2630(define-public lv2-mda-piano
2631 (package
2632 (name "lv2-mda-piano")
2633 (version "0.0.2")
2634 (source (origin
2635 (method git-fetch)
2636 (uri (git-reference
f6f499b3 2637 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
98247127 2638 (commit version)))
35a01e67 2639 (file-name (git-file-name name version))
98247127
RW
2640 (sha256
2641 (base32
2642 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
2643 (build-system gnu-build-system)
2644 (arguments
2645 `(#:make-flags (list
2646 "TYPE=mdaPiano"
2647 (string-append "PREFIX=" (assoc-ref %outputs "out")))
2648 #:tests? #f ; no check target
dc1d3cde 2649 #:phases (modify-phases %standard-phases (delete 'configure))))
98247127 2650 (inputs
8394619b 2651 (list lv2 lvtk))
98247127 2652 (native-inputs
8394619b 2653 (list pkg-config))
98247127
RW
2654 (native-search-paths
2655 (list (search-path-specification
2656 (variable "LV2_PATH")
2657 (files '("lib/lv2")))))
a4e8a9e0 2658 (home-page "https://elephly.net/lv2/mdapiano.html")
98247127
RW
2659 (synopsis "LV2 port of the mda Piano plugin")
2660 (description "An LV2 port of the mda Piano VSTi.")
2661 (license license:gpl3+)))
2662
8fb79e3d
RW
2663(define-public lv2-mda-epiano
2664 (package (inherit lv2-mda-piano)
2665 (name "lv2-mda-epiano")
2666 (arguments
2667 `(#:make-flags (list
2668 "TYPE=mdaEPiano"
2669 (string-append "PREFIX=" (assoc-ref %outputs "out")))
2670 #:tests? #f ; no check target
dc1d3cde 2671 #:phases (modify-phases %standard-phases (delete 'configure))))
a4e8a9e0 2672 (home-page "https://elephly.net/lv2/mdaepiano.html")
8fb79e3d
RW
2673 (synopsis "LV2 port of the mda EPiano plugin")
2674 (description "An LV2 port of the mda EPiano VSTi.")))
2675
c1718190
RW
2676(define-public lvtk
2677 (package
2678 (name "lvtk")
2679 (version "1.2.0")
2680 (source (origin
b255365c
RW
2681 (method git-fetch)
2682 (uri (git-reference
b0e7b699 2683 (url "https://github.com/lvtk/lvtk")
b255365c
RW
2684 (commit version)))
2685 (file-name (git-file-name name version))
c1718190
RW
2686 (sha256
2687 (base32
b255365c 2688 "1b01zvzl70ana6l1kn8fgyr7msnn3c7x61cgw7fdpp50322352p8"))))
c1718190
RW
2689 (build-system waf-build-system)
2690 (arguments
2691 `(#:tests? #f ; no check target
2692 #:python ,python-2
2693 #:configure-flags
2694 (list (string-append "--boost-includes="
2695 (assoc-ref %build-inputs "boost")
ed59057b 2696 "/include"))))
c1718190 2697 (inputs
8394619b 2698 (list boost gtkmm-2 lv2))
c1718190 2699 (native-inputs
8394619b 2700 (list pkg-config))
c1718190
RW
2701 (home-page "https://github.com/lvtk/lvtk")
2702 (synopsis "C++ libraries for LV2 plugins")
2703 (description
2704 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
2705extensions into easy to use C++ classes. It is the successor of
2706lv2-c++-tools.")
2707 (license license:gpl3+)))
2708
f2fac359
TUBK
2709(define-public openal
2710 (package
2711 (name "openal")
d5037890 2712 (version "1.20.1")
f2fac359
TUBK
2713 (source (origin
2714 (method url-fetch)
2715 (uri (string-append
b7ea10d0 2716 "https://openal-soft.org/openal-releases/openal-soft-"
f2fac359
TUBK
2717 version ".tar.bz2"))
2718 (sha256
2719 (base32
d5037890 2720 "0vax0b1lgd4212bpxa1rciz52d4mv3dkfvcbbhzw4cjp698v1kmn"))))
f2fac359
TUBK
2721 (build-system cmake-build-system)
2722 (arguments
7ee5db15
RW
2723 `(#:tests? #f ; no check target
2724 #:phases
2725 (modify-phases %standard-phases
2726 (add-after
2727 'unpack 'use-full-library-paths
2728 (lambda* (#:key inputs #:allow-other-keys)
69290fd0 2729 (substitute* "alc/backends/pulseaudio.cpp"
7ee5db15
RW
2730 (("#define PALIB \"libpulse\\.so\\.0\"")
2731 (string-append "#define PALIB \""
2732 (assoc-ref inputs "pulseaudio")
2733 "/lib/libpulse.so.0"
2734 "\"")))
69290fd0 2735 (substitute* "alc/backends/alsa.cpp"
7ee5db15
RW
2736 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
2737 (string-append "LoadLib(\""
2738 (assoc-ref inputs "alsa-lib")
2739 "/lib/libasound.so.2"
2740 "\")")))
2741 #t)))))
f2fac359 2742 (inputs
8394619b 2743 (list alsa-lib pulseaudio))
f2fac359
TUBK
2744 (synopsis "3D audio API")
2745 (description
2746 "OpenAL provides capabilities for playing audio in a virtual 3D
2747environment. Distance attenuation, doppler shift, and directional sound
2748emitters are among the features handled by the API. More advanced effects,
2749including air absorption, occlusion, and environmental reverb, are available
2750through the EFX extension. It also facilitates streaming audio, multi-channel
2751buffers, and audio capture.")
b7ea10d0 2752 (home-page "https://openal-soft.org/")
f2fac359
TUBK
2753 (license license:lgpl2.0+)))
2754
c2b411c2 2755(define-public freealut
2756 (package
2757 (name "freealut")
2758 (version "1.1.0")
2759 (source (origin
2760 (method url-fetch)
2761 ;; Upstream url is unclear, many systems use Fedora, there is also
2762 ;; https://github.com/vancegroup/freealut though the status of it
2763 ;; (official? unofficial?) is not clear.
2764 (uri (string-append
2765 "https://pkgs.fedoraproject.org/repo/pkgs/" name "/" name "-"
2766 version ".tar.gz" "/e089b28a0267faabdb6c079ee173664a/" name
2767 "-" version ".tar.gz"))
2768 (sha256
2769 (base32
2770 "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0"))))
2771 (build-system cmake-build-system)
2772 (arguments
2773 `(#:tests? #f)) ; no check target
2774 (inputs
8394619b 2775 (list openal))
c2b411c2 2776 (synopsis "Free implementation of OpenAL's ALUT standard")
2777 (description "freealut is the OpenAL Utility Toolkit.")
aeca6070 2778 (home-page "https://kcat.strangesoft.net/openal.html")
c2b411c2 2779 (license license:lgpl2.0)))
2780
4443bb8d
RW
2781(define-public patchage
2782 (package
2783 (name "patchage")
c3e70aac 2784 (version "1.0.4")
4443bb8d
RW
2785 (source (origin
2786 (method url-fetch)
0d0252e4 2787 (uri (string-append "https://download.drobilla.net/patchage-"
4443bb8d
RW
2788 version
2789 ".tar.bz2"))
2790 (sha256
2791 (base32
c3e70aac 2792 "0gbakiw3mikgbvy3pssrmqmn7z5c7kp4vyaxj5rs4jnkscxgw9vw"))))
4443bb8d 2793 (build-system waf-build-system)
0fd9671b 2794 (arguments
2a40b199 2795 `(#:tests? #f)) ; no check target
4443bb8d 2796 (inputs
8394619b
LC
2797 (list alsa-lib
2798 boost
2799 jack-1
2800 ganv
2801 glibmm
2802 gtkmm-2
2803 dbus-glib))
4443bb8d 2804 (native-inputs
8394619b 2805 (list pkg-config))
41cb043a 2806 (home-page "https://drobilla.net/software/patchage.html")
4443bb8d
RW
2807 (synopsis "Modular patch bay for audio and MIDI systems")
2808 (description
2809 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
2810and ALSA.")
2811 (license license:gpl3+)))
2812
a4b71b32
MB
2813(define-public pcaudiolib
2814 (package
2815 (name "pcaudiolib")
2816 (version "1.1")
2817 (home-page "https://github.com/espeak-ng/pcaudiolib")
2818 (source (origin
2819 (method git-fetch)
2820 (uri (git-reference (url home-page) (commit version)))
2821 (file-name (git-file-name name version))
2822 (sha256
2823 (base32
2824 "0c55hlqqh0m7bcb3nlgv1s4a22s5bgczr1cakjh3767rjb10khi0"))))
2825 (build-system gnu-build-system)
2826 (arguments
2827 `(#:configure-flags '("--disable-static")))
2828 (native-inputs
8394619b 2829 (list autoconf automake libtool pkg-config which))
a4b71b32 2830 (inputs
8394619b 2831 (list alsa-lib pulseaudio))
a4b71b32
MB
2832 (synopsis "Portable C audio library")
2833 (description
2834 "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to
2835different audio devices such as ALSA or PulseAudio.")
2836 (license (list license:gpl3+
2837 ;; The bundled TPCircularBuffer uses a custom license.
2838 (license:non-copyleft
2839 "file://src/TPCircularBuffer/README.markdown")))))
2840
0d78e377
MM
2841(define-public qjackctl
2842 (package
2843 (name "qjackctl")
f40526c6 2844 (version "0.9.5")
0d78e377
MM
2845 (source (origin
2846 (method url-fetch)
1538bc33
RW
2847 (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
2848 version "/qjackctl-" version ".tar.gz"))
0d78e377
MM
2849 (sha256
2850 (base32
f40526c6 2851 "1g61xwsxsndwlnh4547vl7jfcf4kqlbb4394jq2m8qbbzk51b6rv"))))
c9c27417 2852 (build-system cmake-build-system)
0d78e377 2853 (arguments
4dcf221c 2854 '(#:tests? #f)) ; no check target
0d78e377 2855 (inputs
8394619b 2856 (list jack-1 alsa-lib portaudio qtbase-5 qtx11extras))
0d78e377 2857 (native-inputs
8394619b 2858 (list pkg-config qttools))
0d78e377
MM
2859 (home-page "https://qjackctl.sourceforge.io/")
2860 (synopsis "Jack server control application")
2861 (description "Control a Jack server. Allows you to plug various sources
2862into various outputs and to start, stop and configure jackd")
2863 (license license:gpl2+)))
2864
40713793
RW
2865(define-public qjackrcd
2866 (package
2867 (name "qjackrcd")
78357403 2868 (version "1.2.2")
40713793 2869 (source (origin
78357403
RW
2870 (method git-fetch)
2871 (uri (git-reference
b0e7b699 2872 (url "https://github.com/orouits/qjackrcd")
78357403 2873 (commit (string-append "v" version))))
70aa07d2 2874 (file-name (git-file-name name version))
40713793
RW
2875 (sha256
2876 (base32
78357403 2877 "1l5iq2mkqd4gn9yr8xbh9qlpp1clcflazychl4vhdbz0bzq4c6al"))))
40713793
RW
2878 (build-system gnu-build-system)
2879 (arguments
2880 `(#:phases
2881 (modify-phases %standard-phases
2882 (replace 'configure
2883 (lambda* (#:key outputs #:allow-other-keys)
14a852bd
TGR
2884 (invoke "qmake"
2885 (string-append "PREFIX="
2886 (assoc-ref outputs "out"))))))))
40713793 2887 (native-inputs
8394619b 2888 (list qtbase-5)) ; for qmake
40713793 2889 (inputs
8394619b 2890 (list jack-1 libsndfile qtbase-5))
40713793
RW
2891 (home-page "https://sourceforge.net/projects/qjackrcd/")
2892 (synopsis "Stereo audio recorder for JACK")
2893 (description "QJackRcd is a simple graphical stereo recorder for JACK
2894supporting silence processing for automatic pause, file splitting, and
2895background file post-processing.")
2896 (license license:gpl2+)))
0d78e377 2897
247384d0
MC
2898(define-public supercollider
2899 (package
2900 (name "supercollider")
0745c820 2901 (version "3.12.1")
abd2a5a8
NG
2902 (source
2903 (origin
2904 (method git-fetch)
2905 (uri (git-reference
2906 (url "https://github.com/supercollider/supercollider")
2907 (commit (string-append "Version-" version))
2908 ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
2909 (recursive? #t)))
2910 (file-name (git-file-name name version))
2911 (sha256
2912 (base32
2913 "0id522338a464j1slcspajwc7klypbc9qpigw5mqjhrw970wij5z"))
2914 (modules '((guix build utils)
2915 (ice-9 ftw)))
2916 (snippet
2917 ;; The build system doesn't allow us to unbundle the following
2918 ;; libraries. hidapi is also heavily patched and upstream not
2919 ;; actively maintained.
2920 '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
2921 "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
2922 (with-directory-excursion "./external_libraries"
2923 (for-each
2924 delete-file-recursively
2925 (scandir "."
2926 (lambda (x)
2927 (and (eq? (stat:type (stat x)) 'directory)
2928 (not (member (basename x) keep-dirs)))))))
2929 ;; To find the Guix provided ableton-link library.
2930 (substitute* "lang/CMakeLists.txt"
2931 (("include\\(\\.\\./external_libraries/link/\
a5638483 2932AbletonLinkConfig\\.cmake\\)")
abd2a5a8
NG
2933 "find_package(AbletonLink NAMES AbletonLink ableton-link \
2934link REQUIRED)"))))))
247384d0 2935 (build-system cmake-build-system)
409d2907 2936 (outputs
abd2a5a8
NG
2937 '("out" ;core language
2938 "ide")) ;qt ide
247384d0 2939 (arguments
0745c820
AV
2940 `(#:configure-flags '("-DSYSTEM_BOOST=ON"
2941 "-DSYSTEM_YAMLCPP=ON"
2942 "-DSC_QT=ON"
2943 "-DCMAKE_BUILD_TYPE=Release"
267d5947 2944 "-DFORTIFY=ON"
0745c820
AV
2945 ;; "-DLIBSCSYNTH=ON" ; TODO: Re-enable?
2946 "-DSC_EL=OFF") ;scel is packaged individually as emacs-scel
247384d0
MC
2947 #:phases
2948 (modify-phases %standard-phases
2915a760
MC
2949 ;; HOME must be defined otherwise supercollider throws a "ERROR:
2950 ;; Primitive '_FileMkDir' failed." error when generating the doc.
2951 ;; The graphical tests also hang without it.
2952 (add-after 'unpack 'set-home-directory
247384d0 2953 (lambda _
abd2a5a8 2954 (setenv "HOME" (getcwd))))
2915a760 2955 (add-after 'unpack 'patch-scclass-dir
6241eacd
GL
2956 (lambda* (#:key outputs #:allow-other-keys)
2957 (let* ((out (assoc-ref outputs "out"))
2958 (scclass-dir
2959 (string-append out
2960 "/share/SuperCollider/SCClassLibrary")))
2961 (substitute* "lang/LangSource/SC_LanguageConfig.cpp"
2962 (((string-append
2963 "SC_Filesystem::instance\\(\\)\\.getDirectory"
2964 "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
abd2a5a8 2965 (string-append "Path(\"" scclass-dir "\")"))))))
2915a760
MC
2966 (add-before 'build 'prepare-x
2967 (lambda _
2968 (system "Xvfb &")
abd2a5a8 2969 (setenv "DISPLAY" ":0")))
409d2907
GL
2970 (add-before 'install 'install-ide
2971 (lambda* (#:key outputs #:allow-other-keys)
2972 (let* ((out (assoc-ref outputs "out"))
2973 (ide (assoc-ref outputs "ide"))
2974 (scide "editors/sc-ide/scide"))
2975 (install-file scide
2976 (string-append ide "/bin"))
abd2a5a8 2977 (delete-file scide)))))))
247384d0 2978 (native-inputs
8394619b 2979 (list ableton-link pkg-config qttools xorg-server-for-tests))
0745c820
AV
2980 (inputs (list jack-1
2981 libsndfile
2982 fftw
2983 libxt
2984 readline ;readline support for sclang's CLI
2985 alsa-lib ;for sclang's MIDI interface
2986 eudev ;for user interactions with devices
2987 avahi ;zeroconf service discovery support
2988 icu4c
2989 boost
2990 boost-sync
2991 yaml-cpp
2992 qtbase-5
2993 qtdeclarative
2994 qtsvg
2995 qtwebchannel
2996 qtwebsockets))
409d2907 2997 (propagated-inputs ;to get native-search-path
8394619b 2998 (list qtwebengine))
247384d0
MC
2999 (home-page "https://github.com/supercollider/supercollider")
3000 (synopsis "Synthesis engine and programming language")
3001 (description "SuperCollider is a synthesis engine (@code{scsynth} or
3002@code{supernova}) and programming language (@code{sclang}). It can be used
3003for experimenting with sound synthesis and algorithmic composition.
3004
3005SuperCollider requires jackd to be installed in your user profile and your
3006user must be allowed to access the realtime features of the kernel. Search
3007for \"realtime\" in the index of the Guix manual to learn how to achieve this
59e80445 3008using Guix System.")
247384d0
MC
3009 (license license:gpl2+)))
3010
9fe7b55a
VM
3011(define-public libshout-idjc
3012 (package
3013 (name "libshout-idjc")
3014 (version "2.4.4")
3015 (source
3016 (origin
3017 (method url-fetch)
3018 (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p"
3019 "/libshout-idjc-" version ".tar.gz"))
3020 (sha256
3021 (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb"))))
3022 (build-system gnu-build-system)
3023 (native-inputs
8394619b 3024 (list pkg-config))
9fe7b55a 3025 (inputs
8394619b 3026 (list libogg libtheora libvorbis speex))
9fe7b55a
VM
3027 (home-page "http://idjc.sourceforge.net/")
3028 (synopsis "Broadcast streaming library with IDJC extensions")
3029 (description "This package provides libshout plus IDJC extensions.")
3030 ;; GNU Library (not Lesser) General Public License.
3031 (license license:lgpl2.0+)))
3032
b22755be
RW
3033(define-public raul
3034 (package
3035 (name "raul")
3036 (version "0.8.0")
3037 (source (origin
3038 (method url-fetch)
0d0252e4 3039 (uri (string-append "https://download.drobilla.net/raul-"
b22755be
RW
3040 version ".tar.bz2"))
3041 (sha256
3042 (base32
3043 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
3044 (build-system waf-build-system)
3045 (arguments
3046 `(#:python ,python-2
3047 #:tests? #f)) ; no check target
3048 (inputs
8394619b 3049 (list glib boost))
b22755be 3050 (native-inputs
8394619b 3051 (list pkg-config))
0d0252e4 3052 (home-page "https://drobilla.net/software/raul/")
b22755be
RW
3053 (synopsis "Real-time audio utility library")
3054 (description
3055 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
3056aimed at audio/musical applications.")
3057 (license license:gpl2+)))
3058
f91d0d08 3059(define-public raul-devel
a8bf6b9b 3060 (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
f91d0d08
RW
3061 (revision "1"))
3062 (package (inherit raul)
3063 (name "raul")
a8bf6b9b 3064 (version (string-append "0.8.9-" revision "."
f91d0d08
RW
3065 (string-take commit 9)))
3066 (source (origin
3067 (method git-fetch)
3068 (uri (git-reference
0d0252e4 3069 (url "https://git.drobilla.net/raul.git")
f91d0d08
RW
3070 (commit commit)))
3071 (file-name (string-append name "-" version "-checkout"))
3072 (sha256
3073 (base32
a8bf6b9b 3074 "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
f91d0d08 3075
d83bb797
JW
3076(define-public resample
3077 (package
3078 (name "resample")
3079 (version "1.8.1")
3080 (source (origin
3081 (method url-fetch)
3082 (uri (string-append "https://ccrma.stanford.edu/~jos/gz/resample-"
3083 version
3084 ".tar.gz"))
3085 (sha256 (base32
3086 "074zj8ydp05yy1hjcglfv3hkvj4cm50f9nralka1992pm6yf8yvy"))))
3087 (build-system gnu-build-system)
3088 (native-inputs
8394619b 3089 (list autoconf automake pkg-config libtool))
ce34e87c
MC
3090 (synopsis "Sampling rate conversion and filter design utilities")
3091 (description "This package contains the @command{resample} and
3092@command{windowfilter} command line utilities. The @command{resample} command
3093allows changing the sampling rate of a sound file, while the
ed8c12fb 3094@command{windowfilter} command allows designing Finite Impulse Response (FIR)
ce34e87c 3095filters using the so-called @emph{window method}.")
d83bb797
JW
3096 (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
3097 (license license:lgpl2.1+)))
3098
57238ff2
RW
3099(define-public rubberband
3100 (package
3101 (name "rubberband")
4bee557d 3102 (version "1.8.2")
57238ff2
RW
3103 (source (origin
3104 (method url-fetch)
3105 (uri
3106 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
3107 version
3108 ".tar.bz2"))
fdf359f8 3109 (file-name (string-append name "-" version ".tar.bz2"))
57238ff2
RW
3110 (sha256
3111 (base32
4bee557d 3112 "0462fmjnfqpv2qi0s6ny42drqarkr0xy9lw8frjmfgzyzl5n9294"))))
57238ff2 3113 (build-system gnu-build-system)
4bee557d
TGR
3114 (arguments
3115 `(#:tests? #f ; no check target
3116 #:phases
3117 (modify-phases %standard-phases
3118 (add-after 'unpack 'skip-jni-installation
3119 ;; ‘make install’ unconditionally installs librubberband-jni.so,
3120 ;; which is never built by ‘make all’. Skip it.
3121 (lambda _
3122 (substitute* "Makefile.in"
3123 ((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
3124 #t)))))
57238ff2 3125 (inputs
8394619b 3126 (list ladspa libsamplerate vamp))
57238ff2 3127 (native-inputs
8394619b 3128 (list pkg-config))
20377e4a 3129 (home-page "https://breakfastquay.com/rubberband/")
57238ff2
RW
3130 (synopsis "Audio time-stretching and pitch-shifting library")
3131 (description
3132 "Rubber Band is a library and utility program that permits changing the
3133tempo and pitch of an audio recording independently of one another.")
3134 (license license:gpl2+)))
3135
cc45cff8
RW
3136(define-public rtmidi
3137 (package
3138 (name "rtmidi")
bcdf11d6 3139 (version "4.0.0")
cc45cff8 3140 (source (origin
bcdf11d6
PL
3141 (method url-fetch)
3142 (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
3143 "/release/rtmidi-" version ".tar.gz"))
3144 (file-name (string-append "rtmidi-" version ".tar.gz"))
cc45cff8
RW
3145 (sha256
3146 (base32
bcdf11d6 3147 "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
cc45cff8 3148 (build-system gnu-build-system)
cc45cff8 3149 (inputs
8394619b 3150 (list jack-1 alsa-lib))
cc45cff8 3151 (native-inputs
8394619b 3152 (list autoconf automake libtool pkg-config))
bcdf11d6 3153 (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
cc45cff8
RW
3154 (synopsis "Cross-platform MIDI library for C++")
3155 (description
3156 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
3157classes) that provide a common cross-platform API for realtime MIDI
3158input/output.")
3159 (license license:expat)))
3160
5279eb6f
RW
3161(define-public sratom
3162 (package
3163 (name "sratom")
dfea2492 3164 (version "0.6.6")
5279eb6f 3165 (source (origin
95f6e6da
MB
3166 (method url-fetch)
3167 (uri (string-append "https://download.drobilla.net/sratom-"
3168 version ".tar.bz2"))
3169 (sha256
3170 (base32
dfea2492 3171 "178v90qvsp6lw4sqdmdz0bzyjkgwhv9m75ph1d1z8say5bv0p4gv"))))
5279eb6f 3172 (build-system waf-build-system)
95f6e6da 3173 (arguments `(#:tests? #f)) ;no check target
6e0b18bf
MB
3174 (propagated-inputs
3175 ;; In Requires of sratom-0.pc.
8394619b 3176 (list lv2 serd sord))
5279eb6f 3177 (native-inputs
8394619b 3178 (list pkg-config))
0d0252e4 3179 (home-page "https://drobilla.net/software/sratom/")
5279eb6f
RW
3180 (synopsis "Library for serialising LV2 atoms to/from RDF")
3181 (description
3182 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
3183the Turtle syntax.")
3184 (license license:isc)))
f3ab6ad3
RW
3185
3186(define-public suil
3187 (package
3188 (name "suil")
7405da92 3189 (version "0.10.8")
f3ab6ad3 3190 (source (origin
8fadac95
TGR
3191 (method url-fetch)
3192 (uri (string-append "https://download.drobilla.net/suil-"
3193 version ".tar.bz2"))
3194 (sha256
3195 (base32
7405da92 3196 "0h0ghk1s0lrj4gh12r7390b0ybaw7awnj0vhchyy9ll0gvhqgkci"))))
f3ab6ad3 3197 (build-system waf-build-system)
9f64f7e6 3198 (arguments
0fe041bd 3199 `(#:tests? #f)) ;no check target
f3ab6ad3
RW
3200 (inputs
3201 `(("lv2" ,lv2)
a00403c6
RW
3202 ("gtk+" ,gtk+-2)
3203 ("gtk+" ,gtk+)
ea0a5107 3204 ("qt" ,qtbase-5)))
f3ab6ad3 3205 (native-inputs
8394619b 3206 (list pkg-config))
0d0252e4 3207 (home-page "https://drobilla.net/software/suil/")
f3ab6ad3
RW
3208 (synopsis "Library for loading and wrapping LV2 plugin UIs")
3209 (description
3210 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
3211
3212Suil makes it possible to load a UI of a toolkit in a host using another
3213toolkit. The API is designed such that hosts do not need to explicitly
3214support specific toolkits – if Suil supports a particular toolkit, then UIs in
3215that toolkit will work in all hosts that use Suil automatically.
3216
a00403c6 3217Suil currently supports every combination of Gtk, Qt, and X11.")
f3ab6ad3 3218 (license license:isc)))
db46f2fc 3219
2a4f3c17
VM
3220(define-public libebur128
3221 (package
3222 (name "libebur128")
55bdb2b3 3223 (version "1.2.6")
2a4f3c17
VM
3224 (source
3225 (origin
3226 (method git-fetch)
3227 (uri (git-reference
3228 (url "https://github.com/jiixyj/libebur128")
3229 (commit (string-append "v" version))))
3230 (file-name (git-file-name name version))
3231 (sha256
55bdb2b3 3232 (base32 "0xkpz5rzz1j1srhprbh89669gw8z5f1njpvcnxqgf7qax69vd8sh"))))
2a4f3c17
VM
3233 (build-system cmake-build-system)
3234 (arguments
3235 `(;; Tests require proprietary .wav files. See
3236 ;; https://github.com/jiixyj/libebur128/issues/82.
3237 #:tests? #f
3238 #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
3239 (home-page "https://github.com/jiixyj/libebur128")
3240 (synopsis "Library implementing the EBU R 128 loudness standard")
3241 (description
3242 "@code{libebur128} is a C library that implements the EBU R 128 standard
3243for loudness normalisation.")
3244 (license license:expat)))
3245
9ffee457
RW
3246(define-public timidity++
3247 (package
3248 (name "timidity++")
0c31e86b 3249 (version "2.15.0")
9ffee457
RW
3250 (source (origin
3251 (method url-fetch)
de67e922
LF
3252 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
3253 "/TiMidity++-" version
3254 "/TiMidity++-" version ".tar.bz2"))
9ffee457
RW
3255 (sha256
3256 (base32
0c31e86b 3257 "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn"))))
9ffee457
RW
3258 (build-system gnu-build-system)
3259 (arguments
3260 '(#:configure-flags
3261 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
3262 "--enable-ncurses"
3263 "--enable-server"
3264 "--enable-alsaseq"
3265 (string-append "--with-default-path="
3266 (assoc-ref %outputs "out") "/etc/timidity"))
3267 #:phases
dc1d3cde
KK
3268 (modify-phases %standard-phases
3269 (add-after 'install 'install-config
3270 (lambda _
3271 (let ((out (string-append (assoc-ref %outputs "out")
3272 "/etc/timidity")))
3273 (mkdir-p out)
3274 (call-with-output-file
3275 (string-append out "/timidity.cfg")
3276 (lambda (port)
3277 (format port (string-append "source "
3278 (assoc-ref %build-inputs "freepats")
3279 "/share/freepats/freepats.cfg")))))
3280 #t)))))
9ffee457 3281 (inputs
8394619b
LC
3282 (list alsa-lib
3283 ao
3284 flac
3285 jack-1
3286 libogg
3287 libvorbis
3288 speex
3289 ncurses
3290 freepats))
9ffee457 3291 (native-inputs
8394619b 3292 (list pkg-config))
9ffee457
RW
3293 (home-page "http://timidity.sourceforge.net/")
3294 (synopsis "Software synthesizer for playing MIDI files")
3295 (description
3296 "TiMidity++ is a software synthesizer. It can play MIDI files by
3297converting them into PCM waveform data; give it a MIDI data along with digital
3298instrument data files, then it synthesizes them in real-time, and plays. It
3299can not only play sounds, but also can save the generated waveforms into hard
3300disks as various audio file formats.")
3301 (license license:gpl2+)))
3302
db46f2fc
RW
3303(define-public vamp
3304 (package
3305 (name "vamp")
b1fb59d3 3306 (version "2.6")
db46f2fc
RW
3307 (source (origin
3308 (method url-fetch)
3309 (uri (string-append
3310 "https://code.soundsoftware.ac.uk"
494e9b91 3311 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 3312 version ".tar.gz"))
9002e17c
TUBK
3313 (sha256
3314 (base32
494e9b91 3315 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 3316 (build-system gnu-build-system)
9002e17c
TUBK
3317 (arguments
3318 `(#:tests? #f ; no check target
3319 #:phases
dc1d3cde
KK
3320 (modify-phases %standard-phases
3321 (add-after 'install 'remove-libvamp-hostsdk.la
3322 (lambda* (#:key outputs #:allow-other-keys)
3323 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
3324 (for-each delete-file
3325 (let ((out (assoc-ref outputs "out")))
3326 (list (string-append out "/lib/libvamp-sdk.la")
3327 (string-append out "/lib/libvamp-hostsdk.la"))))
4f27a333 3328 #t)))))
db46f2fc 3329 (inputs
8394619b 3330 (list libsndfile))
db46f2fc 3331 (native-inputs
8394619b 3332 (list pkg-config))
50a67a46 3333 (home-page "https://vamp-plugins.org")
db46f2fc
RW
3334 (synopsis "Modular and extensible audio processing system")
3335 (description
3336 "Vamp is an audio processing plugin system for plugins that extract
3337descriptive information from audio data — typically referred to as audio
3338analysis plugins or audio feature extraction plugins.")
3339 (license
3340 (license:x11-style
3341 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
3342
3343(define-public libsbsms
3344 (package
3345 (name "libsbsms")
3346 (version "2.0.2")
3347 (source
3348 (origin
3349 (method url-fetch)
3350 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
3351 "/libsbsms-" version ".tar.gz"))
3352 (sha256
3353 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
3354 (build-system gnu-build-system)
8394619b 3355 (native-inputs (list automake))
9f1cdd9d 3356 (arguments
476b2877
MW
3357 `(#:configure-flags
3358 ;; Disable the use of SSE unless on x86_64.
3359 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
3360 (%current-system))))
3361 ''("--disable-sse")
3362 ''())
3363 #:phases
09c414d8
MW
3364 (modify-phases %standard-phases
3365 (add-after
3366 'unpack 'fix-ar-lib-path
3367 (lambda* (#:key inputs #:allow-other-keys)
3368 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
3369 (delete-file "ar-lib")
3370 (symlink
ae112039
LC
3371 (search-input-file inputs
3372 (string-append "/share/automake-"
3373 ,(package-version automake)
3374 "/ar-lib"))
ee527187
MW
3375 "ar-lib")
3376 #t)))))
9f1cdd9d
TUBK
3377 (home-page "http://sbsms.sourceforge.net/")
3378 (synopsis "Library for time stretching and pitch scaling of audio")
3379 (description
3380 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
3381stretching and pitch scaling of audio. This package contains the library.")
3382 ;; There is no explicit declaration of a license, but a COPYING file
3383 ;; containing gpl2.
3384 (license license:gpl2)))
754a98ae 3385
5ced0440
VM
3386(define-public libkeyfinder
3387 (package
3388 (name "libkeyfinder")
3389 (version "2.2.5")
3390 (source
3391 (origin
3392 (method git-fetch)
3393 (uri (git-reference
3394 (url "https://github.com/mixxxdj/libkeyfinder")
3395 (commit (string-append "v" version))))
3396 (file-name (git-file-name name version))
3397 (sha256
3398 (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2"))))
3399 (build-system cmake-build-system)
3400 (native-inputs
e3196755 3401 (list catch-framework2))
5ced0440 3402 (inputs
8394619b 3403 (list fftw))
5ced0440
VM
3404 (home-page "https://mixxxdj.github.io/libkeyfinder/")
3405 (synopsis "Musical key detection for digital audio")
3406 (description
3407 "@code{libkeyfinder} is a small C++11 library for estimating the musical
3408key of digital audio.")
3409 (license license:gpl3+)))
3410
01b90919
SB
3411(define-public wavpack
3412 (package
3413 (name "wavpack")
5a4d0a65 3414 (version "5.4.0")
0e001b1f
TGR
3415 (source
3416 (origin
5a4d0a65
EF
3417 (method url-fetch)
3418 (uri (string-append "https://github.com/dbry/WavPack/releases/download/"
3419 version "/wavpack-" version ".tar.xz"))
0e001b1f 3420 (sha256
5a4d0a65 3421 (base32 "0ycbqarw25x7208jilh86vwwiqklr7f617jps9mllqc659mnmpjb"))))
01b90919 3422 (build-system gnu-build-system)
08b7a278 3423 (arguments
0e001b1f 3424 '(#:configure-flags
d9703035
EF
3425 (list "--disable-static"
3426 "--enable-tests")
0e001b1f
TGR
3427 #:phases
3428 (modify-phases %standard-phases
d9703035
EF
3429 (replace 'check
3430 (lambda* (#:key tests? #:allow-other-keys)
3431 (when tests?
3432 (invoke "./cli/wvtest" "--default" "--short"))
0e001b1f 3433 #t)))))
372b15f8 3434 (home-page "https://www.wavpack.com/")
01b90919
SB
3435 (synopsis "Hybrid lossless audio codec")
3436 (description
3437 "WavPack is an audio compression format with lossless, lossy and hybrid
3438compression modes. This package contains command-line programs and library to
3439encode and decode wavpack files.")
3440 (license license:bsd-3)))
3441
a176dd7e
SB
3442(define-public libmodplug
3443 (package
3444 (name "libmodplug")
06446a7d 3445 (version "0.8.9.0")
a176dd7e
SB
3446 (source (origin
3447 (method url-fetch)
3448 (uri (string-append
0f971a04 3449 "mirror://sourceforge/modplug-xmms/"
a176dd7e
SB
3450 name "/" version "/" name "-" version ".tar.gz"))
3451 (sha256
3452 (base32
06446a7d 3453 "1pnri98a603xk47smnxr551svbmgbzcw018mq1k6srbrq6kaaz25"))))
a176dd7e
SB
3454 (build-system gnu-build-system)
3455 (home-page "http://modplug-xmms.sourceforge.net/")
3456 (synopsis "Mod file playing library")
3457 (description
3458 "Libmodplug renders mod music files as raw audio data, for playing or
3459conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
3460supported. Optional features include high-quality resampling, bass expansion,
3461surround and reverb.")
3462 (license license:public-domain)))
3463
b97b5cda
SB
3464(define-public libxmp
3465 (package
3466 (name "libxmp")
2784fca0 3467 (version "4.4.1")
b97b5cda
SB
3468 (source (origin
3469 (method url-fetch)
de67e922 3470 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
b97b5cda
SB
3471 name "-" version ".tar.gz"))
3472 (sha256
3473 (base32
2784fca0 3474 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
b97b5cda
SB
3475 (build-system gnu-build-system)
3476 (home-page "http://xmp.sourceforge.net/")
3477 (synopsis "Module player library")
3478 (description
3479 "Libxmp is a library that renders module files to PCM data. It supports
3480over 90 mainstream and obscure module formats including Protracker (MOD),
3481Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
3482 (license license:lgpl2.1+)))
3483
3ec4bba4
SB
3484(define-public xmp
3485 (package
3486 (name "xmp")
1a79d476 3487 (version "4.1.0")
3ec4bba4
SB
3488 (source (origin
3489 (method url-fetch)
de67e922 3490 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
3ec4bba4
SB
3491 name "-" version ".tar.gz"))
3492 (sha256
3493 (base32
1a79d476 3494 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
3ec4bba4
SB
3495 (build-system gnu-build-system)
3496 (native-inputs
8394619b 3497 (list pkg-config))
3ec4bba4 3498 (inputs
8394619b 3499 (list libxmp pulseaudio))
3ec4bba4
SB
3500 (home-page "http://xmp.sourceforge.net/")
3501 (synopsis "Extended module player")
3502 (description
3503 "Xmp is a portable module player that plays over 90 mainstream and
3504obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
3505Tracker 3 S3M and Impulse Tracker IT files.")
3506 (license license:gpl2+)))
3507
754a98ae
TUBK
3508(define-public soundtouch
3509 (package
3510 (name "soundtouch")
46fd582f 3511 (version "2.2")
754a98ae
TUBK
3512 (source
3513 (origin
55036ddc
TGR
3514 (method git-fetch)
3515 (uri (git-reference
3516 (url "https://gitlab.com/soundtouch/soundtouch.git")
3517 (commit version)))
3518 (file-name (git-file-name name version))
754a98ae 3519 (sha256
46fd582f 3520 (base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
754a98ae
TUBK
3521 (build-system gnu-build-system)
3522 (native-inputs
8394619b 3523 (list autoconf automake libtool file))
c93bd94c 3524 (home-page "https://www.surina.net/soundtouch/")
754a98ae
TUBK
3525 (synopsis
3526 "Audio processing library for changing tempo, pitch and playback rate")
3527 (description
3528 "SoundTouch is an audio processing library for changing the tempo, pitch
3529and playback rates of audio streams or audio files. It is intended for
3530application developers writing sound processing tools that require tempo/pitch
3531control functionality, or just for playing around with the sound effects.")
3532 (license license:lgpl2.1+)))
4bddd14c 3533
d739f481
AK
3534(define-public sox
3535 (package
3536 (name "sox")
3537 (version "14.4.2")
3538 (source (origin
3539 (method url-fetch)
de67e922
LF
3540 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
3541 name "-" version ".tar.bz2"))
d739f481
AK
3542 (sha256
3543 (base32
3544 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
3545 (build-system gnu-build-system)
3546 (arguments
3547 '(#:configure-flags
3548 ;; The upstream asks to identify the distribution to diagnose SoX
3549 ;; bug reports.
3550 '("--with-distro=Guix System Distribution")))
3551 (native-inputs
8394619b 3552 (list pkg-config))
d739f481 3553 (inputs
8394619b
LC
3554 (list alsa-lib
3555 ao
3556 flac
3557 lame
3558 libid3tag
3559 libltdl
3560 libmad
3561 libpng
3562 libvorbis
3563 pulseaudio))
d739f481
AK
3564 (home-page "http://sox.sourceforge.net")
3565 (synopsis "Sound processing utility")
3566 (description
3567 "SoX (Sound eXchange) is a command line utility that can convert
3568various formats of computer audio files to other formats. It can also
3569apply various effects to these sound files, and, as an added bonus, SoX
3570can play and record audio files.")
3571 ;; sox.c is distributed under GPL, while the files that make up
3572 ;; libsox are licensed under LGPL.
3573 (license (list license:gpl2+ license:lgpl2.1+))))
3574
4bddd14c
TUBK
3575(define-public soxr
3576 (package
3577 (name "soxr")
9e9a211f 3578 (version "0.1.3")
4bddd14c
TUBK
3579 (source
3580 (origin
3581 (method url-fetch)
3582 (uri
3583 (string-append "mirror://sourceforge/soxr/soxr-" version
3584 "-Source.tar.xz"))
3585 (sha256
9e9a211f 3586 (base32 "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di"))))
4bddd14c
TUBK
3587 (build-system cmake-build-system)
3588 (arguments '(#:tests? #f)) ;no 'check' target
3b3b60d0 3589 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
4bddd14c
TUBK
3590 (synopsis "One-dimensional sample-rate conversion library")
3591 (description
3592 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
3593conversion. It may be used, for example, to resample PCM-encoded audio.")
3594 (license license:lgpl2.1+)))
49f36708
TUBK
3595
3596(define-public twolame
3597 (package
3598 (name "twolame")
196e3579 3599 (version "0.4.0")
49f36708
TUBK
3600 (source
3601 (origin
3602 (method url-fetch)
de67e922
LF
3603 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
3604 "/twolame-" version ".tar.gz"))
49f36708 3605 (sha256
196e3579 3606 (base32 "0zf8sxqb02w07ah55b1y7ab643zmpbhn62spa9pqra0rc17l4dfc"))))
49f36708
TUBK
3607 (build-system gnu-build-system)
3608 (inputs
8394619b 3609 (list libsndfile))
49f36708 3610 (native-inputs
8394619b 3611 (list perl which)) ;used in tests/test.pl
5c5a9cd6 3612 (home-page "https://www.twolame.org/")
49f36708
TUBK
3613 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
3614 (description
3615 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
3616tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
3617portions of LAME.")
3618 (license license:lgpl2.1+)))
bd4464f2
TUBK
3619
3620(define-public portaudio
3621 (package
3622 (name "portaudio")
80420acb 3623 (version "190600.20161030")
bd4464f2
TUBK
3624 (source
3625 (origin
3626 (method url-fetch)
3627 (uri (string-append
3628 "http://www.portaudio.com/archives/pa_stable_v"
3629 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
3630 ".tgz"))
3631 (sha256
80420acb 3632 (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
fc1adab1 3633 (patches (search-patches "portaudio-audacity-compat.patch"))))
bd4464f2
TUBK
3634 (build-system gnu-build-system)
3635 (inputs
3636 ;; TODO: Add ASIHPI.
8394619b 3637 (list alsa-lib jack-1))
cdb4048d
RW
3638 ;; Autoreconf is necessary because the audacity-compat patch modifies .in
3639 ;; files.
bd4464f2 3640 (native-inputs
8394619b 3641 (list autoconf automake libtool pkg-config))
86fded86 3642 (arguments
1ce6bfc2 3643 '(#:tests? #f ;no 'check' target
c9cd4a84 3644 #:parallel-build? #f ;fails on some systems
1ce6bfc2
NG
3645 #:configure-flags '("--with-pic"
3646 "--enable-cxx"
3647 ;; XXX: The following prevents a build error
3648 ;; because of missing depcomp when C++ bindings are
3649 ;; requested.
3650 "--disable-dependency-tracking")
86fded86
RW
3651 #:phases
3652 (modify-phases %standard-phases
3653 ;; This is needed for linking the static libraries
3654 (add-after 'unpack 'build-only-position-independent-code
3655 (lambda _
3656 (substitute* "configure.in"
3657 (("AC_PROG_LIBTOOL" m)
3658 (string-append m "\nAM_PROG_AR\nLT_INIT([pic-only])")))
3659 (delete-file "configure")
3660 #t))
3661 ;; Some headers are not installed by default, but are needed by
3662 ;; packages like Kaldi.
3663 (add-after 'install 'install-missing-headers
3664 (lambda* (#:key outputs #:allow-other-keys)
3665 (install-file "src/common/pa_ringbuffer.h"
3666 (string-append (assoc-ref outputs "out") "/include"))
3667 #t)))))
bd4464f2
TUBK
3668 (home-page "http://www.portaudio.com/")
3669 (synopsis "Audio I/O library")
3670 (description
3671 "PortAudio is a portable C/C++ audio I/O library providing a simple API
3672to record and/or play sound using a callback function or a blocking read/write
3673interface.")
3674 (license license:expat)))
74bbf894 3675
fe73aef4
RW
3676(define-public qsynth
3677 (package
3678 (name "qsynth")
5e4cb92e 3679 (version "0.5.7")
fe73aef4
RW
3680 (source
3681 (origin
3682 (method url-fetch)
b9495d07
EF
3683 (uri (list
3684 (string-append "mirror://sourceforge/qsynth/qsynth/" version
3685 "/qsynth-" version ".tar.gz")
3686 (string-append "mirror://sourceforge/qsynth/qsynth (attic)"
3687 "/qsynth-" version ".tar.gz")))
fe73aef4 3688 (sha256
5e4cb92e 3689 (base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6"))))
fe73aef4
RW
3690 (build-system gnu-build-system)
3691 (arguments
5e4cb92e 3692 `(#:tests? #f)) ; no "check" phase
598f6394 3693 (native-inputs
8394619b 3694 (list qttools pkg-config))
fe73aef4 3695 (inputs
8394619b 3696 (list fluidsynth qtbase-5 qtx11extras))
12c8c997 3697 (home-page "https://qsynth.sourceforge.io")
fe73aef4
RW
3698 (synopsis "Graphical user interface for FluidSynth")
3699 (description
3700 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
3701synthesizer written in C++.")
3702 (license license:gpl2+)))
3703
55b596c3
TUBK
3704(define-public rsound
3705 (package
3706 (name "rsound")
3707 (version "1.1")
3708 (source
3709 (origin
458baefb
RW
3710 (method git-fetch)
3711 (uri (git-reference
b0e7b699 3712 (url "https://github.com/Themaister/RSound")
458baefb
RW
3713 (commit (string-append "v" version))))
3714 (file-name (git-file-name name version))
55b596c3 3715 (sha256
458baefb 3716 (base32 "0gspmr3klwnq98h17p5hc6ifygya4p80g4g8r7a1qavm3mv19waf"))))
55b596c3
TUBK
3717 (build-system gnu-build-system)
3718 (inputs
8394619b
LC
3719 (list alsa-lib
3720 jack-1
3721 ao
3722 libsamplerate
3723 openal
3724 portaudio
3725 pulseaudio))
55b596c3
TUBK
3726 (arguments
3727 '(#:phases
dc1d3cde
KK
3728 (modify-phases %standard-phases
3729 (replace 'configure
3730 (lambda* (#:key outputs #:allow-other-keys)
3731 (setenv "CC" "gcc")
c3d14484
TGR
3732 (invoke "./configure"
3733 (string-append "--prefix=" (assoc-ref outputs "out"))))))
55b596c3
TUBK
3734 ;; No 'check' target.
3735 #:tests? #f))
286ab9d3 3736 (home-page "https://themaister.net/rsound.html")
55b596c3
TUBK
3737 (synopsis "Networked audio system")
3738 (description
3739 "RSound allows you to send audio from an application and transfer it
3740directly to a different computer on your LAN network. It is an audio daemon
3741with a much different focus than most other audio daemons.")
3742 (license license:gpl3+)))
3743
caf9055c
RW
3744(define-public xjackfreak
3745 (package
3746 (name "xjackfreak")
3747 (version "1.0")
3748 (source (origin
8e5995e3
RW
3749 (method git-fetch)
3750 (uri (git-reference
b0e7b699 3751 (url "https://github.com/johnhldavis/xjackfreak")
8e5995e3
RW
3752 (commit (string-append "v" version))))
3753 (file-name (git-file-name name version))
caf9055c
RW
3754 (sha256
3755 (base32
8e5995e3 3756 "18c546qidbrj0f5wfiq5llii2192xpln0ab3r4vpr7i3wybxqjfz"))))
caf9055c
RW
3757 (build-system gnu-build-system)
3758 (arguments
3759 `(#:make-flags
3760 (list (string-append "docdir=" (assoc-ref %outputs "out")
3761 "/share/doc/xjackfreak"))))
3762 (inputs
8394619b 3763 (list jack-1 libx11 libxt libxext))
caf9055c 3764 (native-inputs
8394619b 3765 (list pkg-config))
caf9055c
RW
3766 (home-page "https://github.com/johnhldavis/xjackfreak")
3767 (synopsis "JACK audio frequency analyzer and display")
3768 (description
3769 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
3770Connection Kit. It can display the FFT of any input, modify it and output the
3771result.")
3772 (license license:gpl3+)))
3773
d73f7909
RW
3774(define-public zita-convolver
3775 (package
3776 (name "zita-convolver")
1c1ce52a 3777 (version "4.0.3")
d73f7909
RW
3778 (source (origin
3779 (method url-fetch)
3780 (uri (string-append
3781 "http://kokkinizita.linuxaudio.org"
3782 "/linuxaudio/downloads/zita-convolver-"
3783 version ".tar.bz2"))
29e255ca
SB
3784 (snippet
3785 ;; Don't optimize for a specific processor architecture.
6cbee49d 3786 '(begin
1c1ce52a 3787 (substitute* "source/Makefile"
6cbee49d
MW
3788 (("^CXXFLAGS \\+= -march=native") ""))
3789 #t))
29e255ca 3790 (modules '((guix build utils)))
d73f7909
RW
3791 (sha256
3792 (base32
1c1ce52a 3793 "0prji66p86z2bzminywkwchr5bfgxcg2i8y803pydd1hzf2198cs"))))
d73f7909
RW
3794 (build-system gnu-build-system)
3795 (arguments
3796 `(#:tests? #f ; no "check" target
1c1ce52a
AT
3797 #:make-flags
3798 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
3799 (string-append "SUFFIX="))
d73f7909 3800 #:phases
dc1d3cde
KK
3801 (modify-phases %standard-phases
3802 (add-after 'unpack 'patch-makefile-and-enter-directory
3803 (lambda _
1c1ce52a 3804 (substitute* "source/Makefile"
dc1d3cde
KK
3805 (("ldconfig") "true")
3806 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1c1ce52a 3807 (chdir "source")
ee527187 3808 #t))
4f27a333
MB
3809 (add-after 'install 'install-symlink
3810 (lambda _
3811 (symlink "libzita-convolver.so"
3812 (string-append (assoc-ref %outputs "out")
1c1ce52a 3813 "/lib/libzita-convolver.so.4"))
ee527187 3814 #t))
d73f7909 3815 ;; no configure script
4f27a333 3816 (delete 'configure))))
8394619b 3817 (inputs (list fftwf))
4817bb92 3818 (home-page "https://kokkinizita.linuxaudio.org")
d73f7909
RW
3819 (synopsis "Fast, partitioned convolution engine library")
3820 (description
3821 "Zita convolver is a C++ library providing a real-time convolution
3822engine.")
3823 (license license:gpl3+)))
3824
b7ed6784
RW
3825(define-public zita-resampler
3826 (package
3827 (name "zita-resampler")
a35cd752 3828 (version "1.6.2")
b7ed6784
RW
3829 (source (origin
3830 (method url-fetch)
3831 (uri (string-append
3832 "http://kokkinizita.linuxaudio.org"
3833 "/linuxaudio/downloads/zita-resampler-"
3834 version ".tar.bz2"))
6dff4955
SB
3835 (snippet
3836 ;; Don't optimize for a specific processor architecture.
6cbee49d 3837 '(begin
a35cd752 3838 (substitute* '("apps/Makefile" "source/Makefile")
6cbee49d
MW
3839 (("^CXXFLAGS \\+= -march=native") ""))
3840 #t))
6dff4955 3841 (modules '((guix build utils)))
b7ed6784
RW
3842 (sha256
3843 (base32
a35cd752 3844 "1my5k2dh2dkvjp6xjnf9qy6i7s28z13kw1n9pwa4a2cpwbzawfr3"))))
b7ed6784
RW
3845 (build-system gnu-build-system)
3846 (arguments
3847 `(#:tests? #f ; no "check" target
a35cd752
AT
3848 #:make-flags
3849 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
3850 (string-append "SUFFIX="))
b7ed6784
RW
3851 #:phases
3852 (modify-phases %standard-phases
3853 (add-after
3854 'unpack 'patch-makefile-and-enter-directory
3855 (lambda _
a35cd752 3856 (substitute* "source/Makefile"
b7ed6784
RW
3857 (("ldconfig") "true")
3858 (("^LIBDIR =.*") "LIBDIR = lib\n"))
a35cd752 3859 (chdir "source")
b7ed6784
RW
3860 #t))
3861 (add-after
3862 'install 'install-symlink
3863 (lambda _
3864 (symlink "libzita-resampler.so"
3865 (string-append (assoc-ref %outputs "out")
ee527187
MW
3866 "/lib/libzita-resampler.so.1"))
3867 #t))
b7ed6784
RW
3868 ;; no configure script
3869 (delete 'configure))))
4817bb92 3870 (home-page "https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
b7ed6784
RW
3871 (synopsis "C++ library for resampling audio signals")
3872 (description
3873 "Libzita-resampler is a C++ library for resampling audio signals. It is
3874designed to be used within a real-time processing context, to be fast, and to
3875provide high-quality sample rate conversion.")
3876 (license license:gpl3+)))
3877
74bbf894
RW
3878(define-public zita-alsa-pcmi
3879 (package
3880 (name "zita-alsa-pcmi")
d0f0e2bd 3881 (version "0.3.2")
74bbf894
RW
3882 (source (origin
3883 (method url-fetch)
3884 (uri (string-append
3885 "http://kokkinizita.linuxaudio.org"
3886 "/linuxaudio/downloads/zita-alsa-pcmi-"
3887 version ".tar.bz2"))
3888 (sha256
3889 (base32
d0f0e2bd 3890 "12d7vdg74yh21w69qi0wg57iz4876j94qbiq09bvscih6xz9y78s"))))
74bbf894
RW
3891 (build-system gnu-build-system)
3892 (arguments
3893 `(#:tests? #f ; no "check" target
d0f0e2bd
AT
3894 #:make-flags
3895 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
3896 (string-append "SUFFIX="))
74bbf894 3897 #:phases
dc1d3cde
KK
3898 (modify-phases %standard-phases
3899 (add-after 'unpack 'patch-makefile-and-enter-directory
3900 (lambda _
d0f0e2bd 3901 (substitute* "source/Makefile"
dc1d3cde
KK
3902 (("ldconfig") "true")
3903 (("^LIBDIR =.*") "LIBDIR = lib\n"))
d0f0e2bd 3904 (chdir "source")
dc1d3cde
KK
3905 #t))
3906 (add-after 'install 'install-symlink
3907 (lambda _
3908 (symlink "libzita-alsa-pcmi.so"
3909 (string-append (assoc-ref %outputs "out")
ee527187
MW
3910 "/lib/libzita-alsa-pcmi.so.0"))
3911 #t))
dc1d3cde
KK
3912 ;; no configure script
3913 (delete 'configure))))
74bbf894 3914 (inputs
8394619b 3915 (list alsa-lib fftw))
4817bb92 3916 (home-page "https://kokkinizita.linuxaudio.org")
74bbf894
RW
3917 (synopsis "C++ wrapper around the ALSA API")
3918 (description
3919 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
3920access to ALSA PCM devices, taking care of the many functions required to
3921open, initialise and use a hw: device in mmap mode, and providing floating
3922point audio data.")
3923 (license license:gpl3+)))
6da16993
LF
3924
3925(define-public cuetools
3926 (package
3927 (name "cuetools")
3928 (version "1.4.1")
3929 (source (origin
4289a306
RW
3930 (method git-fetch)
3931 (uri (git-reference
b0e7b699 3932 (url "https://github.com/svend/cuetools")
4289a306
RW
3933 (commit version)))
3934 (file-name (git-file-name name version))
6da16993
LF
3935 (sha256
3936 (base32
4289a306 3937 "02ksv1ahf1v4cr2xbclsfv5x17m9ivzbssb5r8xjm97yh8a7spa3"))))
6da16993 3938 (build-system gnu-build-system)
4289a306 3939 ;; The source checkout is not bootstrapped.
6da16993 3940 (native-inputs
8394619b 3941 (list autoconf automake flex bison))
6da16993
LF
3942 (synopsis "Cue and toc file parsers and utilities")
3943 (description "Cuetools is a set of programs that are useful for manipulating
3944and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
3945files are a way to represent the layout of a data or audio CD in a
3946machine-readable ASCII format.")
3947 (home-page "https://github.com/svend/cuetools")
3948 (license license:gpl2+)))
6819a8dd 3949
747b98b3
VM
3950(define-public mp3guessenc
3951 (package
3952 (name "mp3guessenc")
3953 (version "0.27.5")
3954 (source
3955 (origin
3956 (method url-fetch)
3957 (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-"
3958 (version-major+minor version) "/mp3guessenc-"
3959 version ".tar.gz"))
3960 (sha256
3961 (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c"))))
3962 (build-system gnu-build-system)
3963 (arguments
3964 `(#:tests? #f ; no tests
3965 #:make-flags
3966 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3967 #:phases
3968 (modify-phases %standard-phases
3969 (delete 'configure)))) ; no configure phase
3970 (home-page "https://mp3guessenc.sourceforge.io")
3971 (synopsis "Analyze MPEG layer I/II/III files")
3972 (description "mp3guessenc is a command line utility that tries to detect the
3973encoder used for an MPEG Layer III (MP3) file, as well as scan any MPEG audio
3974file (any layer) and print a lot of useful information.")
3975 (license license:lgpl2.1+)))
3976
6819a8dd
LF
3977(define-public shntool
3978 (package
3979 (name "shntool")
3980 (version "3.0.10")
3981 (source (origin
3982 (method url-fetch)
7db934a9
EF
3983 (uri (list
3984 (string-append "http://etree.org/shnutils/shntool/dist/src/"
3985 "shntool-" version ".tar.gz")
3986 (string-append "mirror://debian/pool/main/s/shntool/shntool_"
3987 version ".orig.tar.gz")))
6819a8dd
LF
3988 (sha256
3989 (base32
3990 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
3991 (build-system gnu-build-system)
3992 (synopsis "WAVE audio data processing tool")
3993 (description "shntool is a multi-purpose WAVE data processing and reporting
3994utility. File formats are abstracted from its core, so it can process any file
3995that contains WAVE data, compressed or not---provided there exists a format
d5b357ec
LF
3996module to handle that particular file type. It can also generate CUE files, and
3997use them split WAVE data into multiple files.")
6819a8dd 3998 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
3999 ;; 'install-sh' bears the x11 license
4000 (license (list license:gpl2+ license:x11))))
680b54c5
DT
4001
4002(define-public dcadec
4003 (package
4004 (name "dcadec")
4005 (version "0.2.0")
4006 (source (origin
b249ff5d
RW
4007 (method git-fetch)
4008 (uri (git-reference
b0e7b699 4009 (url "https://github.com/foo86/dcadec")
b249ff5d
RW
4010 (commit (string-append "v" version))))
4011 (file-name (git-file-name name version))
680b54c5
DT
4012 (sha256
4013 (base32
b249ff5d 4014 "07nd0ajizrp1w02bsyfcv18431r8m8rq8gjfmz9wmckpg7cxj2hs"))))
680b54c5
DT
4015 (build-system gnu-build-system)
4016 (arguments
4017 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
4def7dac 4018 `(#:tests? #f
680b54c5 4019 #:make-flags
4def7dac 4020 (list (string-append "CC=" ,(cc-for-target))
680b54c5
DT
4021 ;; Build shared library.
4022 "CONFIG_SHARED=1"
4023 (string-append "PREFIX=" (assoc-ref %outputs "out"))
4024 ;; Set proper runpath.
4025 (string-append "LDFLAGS=-Wl,-rpath="
4026 (assoc-ref %outputs "out")
4027 "/lib"))
4028 #:phases
4029 (modify-phases %standard-phases
4030 ;; No configure script, just a hand-written Makefile.
4031 (delete 'configure))))
4032 (synopsis "DTS Coherent Acoustics decoder")
4033 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
4034with support for HD extensions.")
4035 (home-page "https://github.com/foo86/dcadec")
4036 (license license:lgpl2.1+)))
e87c7ec2
AG
4037
4038(define-public bs1770gain
4039 (package
4040 (name "bs1770gain")
d6af2737 4041 (version "0.7.0")
f295c083 4042 (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
e87c7ec2
AG
4043 (source
4044 (origin
4045 (method url-fetch)
4046 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
4047 version "/bs1770gain-" version ".tar.gz"))
4048 (sha256
d6af2737 4049 (base32 "0a2dcaxvxy5m3a5sb1lhplsymvz3ypaiidc5xn9qy01h53zvyvkp"))
17098a49
LF
4050 (modules '((guix build utils)))
4051 (snippet
f295c083 4052 `(begin
17098a49 4053 ;; XXX
39c746f0
TGR
4054 (substitute* (find-files "." "\\.[ch]$")
4055 (("^ \\* N..o.*") ""))
a2931b14 4056 (substitute* "libbg/bgx.c"
39c746f0
TGR
4057 (("#define BG.* ") "#define BS ")
4058 (("BG.*NO?.*N.*S.*E.*N.*SE?") "NO")
a2931b14
TGR
4059 (("\"( #|N).*\"") "\"\""))
4060 (substitute* (list "config.h"
4061 "configure.ac"
4062 "configure")
4063 (("https?://bs1770gain[^/]*/")
f295c083 4064 ,home-page))
2777dc75 4065 #t))))
e87c7ec2 4066 (build-system gnu-build-system)
8394619b 4067 (inputs (list ffmpeg sox))
e87c7ec2
AG
4068 (synopsis "Tool to adjust loudness of media files")
4069 (description
4070 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
4071flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
4072loudness of audio and video files to the same level.")
4073 (license license:gpl2+)))
eb64bde1
EE
4074
4075(define-public filteraudio
4076 (let ((revision "1")
4077 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
4078 (package
4079 (name "filteraudio")
4080 (version (string-append "0.0.0-" revision "."
4081 (string-take commit 7)))
4082 (source
4083 (origin
4084 (method git-fetch)
4085 (uri (git-reference
b0e7b699 4086 (url "https://github.com/irungentoo/filter_audio")
eb64bde1
EE
4087 (commit commit)))
4088 (file-name (string-append name "-" version "-checkout"))
4089 (sha256
4090 (base32
4091 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
4092 (build-system gnu-build-system)
4093 (arguments
bd3200fd
EF
4094 `(#:make-flags (list (string-append "PREFIX=" %output)
4095 (string-append "CC=" ,(cc-for-target)))
eb64bde1
EE
4096 #:tests? #f ; No tests
4097 #:phases
4098 (modify-phases %standard-phases
4099 ;; No configure script
4100 (delete 'configure))))
4101 (synopsis "Lightweight audio filtering library")
4102 (description "An easy to use audio filtering library made from webrtc
4103code, used in @code{libtoxcore}.")
4104 (home-page "https://github.com/irungentoo/filter_audio")
4105 (license license:bsd-3))))
9a4c032c
LG
4106
4107(define-public gsm
4108 (package
4109 (name "gsm")
5e16e440 4110 (version "1.0.19")
9a4c032c
LG
4111 (source
4112 (origin
4113 (method url-fetch)
4114 (uri
4115 (string-append "http://www.quut.com/" name "/" name
4116 "-" version ".tar.gz"))
4117 (sha256
4118 (base32
5e16e440 4119 "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9"))))
9a4c032c
LG
4120 (build-system gnu-build-system)
4121 (arguments
4122 `(#:test-target "tst"
5b05f8e9 4123 #:make-flags (list (string-append "INSTALL_ROOT=" %output))
9a4c032c
LG
4124 #:phases
4125 (modify-phases %standard-phases
5b05f8e9
MC
4126 (add-after 'unpack 'add-fpic-ccflag
4127 (lambda _
4128 ;; The -fPIC compiler option is needed when building
4129 ;; mediastreamer.
4130 (substitute* "Makefile"
4131 (("^CCFLAGS.*" all)
b6b07568 4132 (string-append all "CCFLAGS += -fPIC\n")))
5b05f8e9 4133 #t))
9a4c032c
LG
4134 (add-before 'install 'pre-install
4135 (lambda _
4136 (let ((out (assoc-ref %outputs "out")))
9a4c032c
LG
4137 (mkdir-p (string-append out "/inc"))
4138 (mkdir-p (string-append out "/man"))
4139 (mkdir-p (string-append out "/man/man1"))
4140 (mkdir-p (string-append out "/man/man3"))
4141 (mkdir-p (string-append out "/bin"))
ee527187
MW
4142 (mkdir-p (string-append out "/lib")))
4143 #t))
9a4c032c
LG
4144 (add-after 'install 'post-install
4145 (lambda _
4146 (let ((out (assoc-ref %outputs "out")))
4147 (rename-file (string-append out "/inc")
4148 (string-append out "/include"))
4149 (mkdir-p (string-append out "/include/gsm"))
4150 (copy-recursively "inc"
ee527187
MW
4151 (string-append out "/include/gsm")))
4152 #t))
aabe29af 4153 (delete 'configure)))) ; no configure script
9a4c032c
LG
4154 (synopsis "GSM 06.10 lossy speech compression library")
4155 (description "This C library provides an encoder and a decoder for the GSM
415606.10 RPE-LTP lossy speech compression algorithm.")
4157 (home-page "http://quut.com/gsm/")
4158 (license (license:non-copyleft "file://COPYRIGHT"))))
84d9abe4
DM
4159
4160(define-public python-pyalsaaudio
4161 (package
4162 (name "python-pyalsaaudio")
4163 (version "0.8.4")
4164 (source (origin
4165 (method url-fetch)
4166 (uri (pypi-uri "pyalsaaudio" version))
4167 (sha256
4168 (base32
4169 "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
4170 (build-system python-build-system)
4171 (arguments
4172 `(#:tests? #f)) ; tests require access to ALSA devices.
4173 (inputs
8394619b 4174 (list alsa-lib))
5adaeb36 4175 (home-page "https://larsimmisch.github.io/pyalsaaudio/")
84d9abe4
DM
4176 (synopsis "ALSA wrappers for Python")
4177 (description
4178 "This package contains wrappers for accessing the ALSA API from Python.
4179It is currently fairly complete for PCM devices, and has some support for
4180mixers.")
4181 (license license:psfl)))
4182
4183(define-public python2-pyalsaaudio
4184 (package-with-python2 python-pyalsaaudio))
d0c8e524 4185
c8d07c5f
RW
4186(define-public ldacbt
4187 (package
4188 (name "ldacbt")
4189 (version "2.0.2.3")
4190 (source (origin
4191 (method url-fetch)
4192 (uri (string-append "https://github.com/EHfive/ldacBT"
4193 "/releases/download/v" version
4194 "/ldacBT-" version ".tar.gz"))
4195 (sha256
4196 (base32
4197 "1d65dms4klzql29abi15i90f41h523kl6mxrz9hi6p5vg37fxn2b"))))
4198 (build-system cmake-build-system)
4199 (arguments `(#:tests? #f)) ; no check target
4200 (home-page "https://github.com/EHfive/ldacBT/")
4201 (synopsis "LDAC Bluetooth encoder and ABR library")
4202 (description "This package provides an encoder for the LDAC
4203high-resolution Bluetooth audio streaming codec for streaming at up to 990
4204kbps at 24 bit/96 kHz.")
4205 (license license:asl2.0)))
4206
dba33ca3
RW
4207(define-public bluez-alsa
4208 (package
4209 (name "bluez-alsa")
a079f3eb 4210 (version "3.0.0")
dba33ca3
RW
4211 (source (origin
4212 ;; The tarballs are mere snapshots and don't contain a
4213 ;; bootstrapped build system.
4214 (method git-fetch)
4215 (uri (git-reference
b0e7b699 4216 (url "https://github.com/Arkq/bluez-alsa")
dba33ca3 4217 (commit (string-append "v" version))))
9f9520a1 4218 (file-name (git-file-name name version))
dba33ca3
RW
4219 (sha256
4220 (base32
a079f3eb 4221 "1jlsgxyqfhncfhx1sy3ry0dp6p95kd4agh7g2b7g51h0c4cv74h8"))))
dba33ca3 4222 (build-system gnu-build-system)
9f9520a1
RW
4223 (arguments
4224 `(#:configure-flags
09b00a62
RW
4225 (list "--enable-ldac"
4226 (string-append "--with-alsaplugindir="
9f9520a1
RW
4227 (assoc-ref %outputs "out")
4228 "/lib/alsa-lib")
4229 (string-append "--with-dbusconfdir="
4230 (assoc-ref %outputs "out")
8f2e2120 4231 "/etc/dbus-1/system.d"))))
dba33ca3 4232 (native-inputs
8394619b 4233 (list autoconf automake libtool pkg-config))
dba33ca3 4234 (inputs
8394619b
LC
4235 (list alsa-lib
4236 bluez
4237 dbus
4238 glib
4239 ldacbt
4240 libbsd
4241 ncurses
4242 ortp
4243 sbc))
dba33ca3
RW
4244 (home-page "https://github.com/Arkq/bluez-alsa")
4245 (synopsis "Bluetooth ALSA backend")
4246 (description "This project is a rebirth of a direct integration between
cb22d103 4247Bluez and ALSA. Since Bluez >= 5, the built-in integration has been removed
dba33ca3
RW
4248in favor of 3rd party audio applications. From now on, Bluez acts as a
4249middleware between an audio application, which implements Bluetooth audio
4250profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
4251audio profiles in Bluez, so in theory every Bluetooth device (with audio
4252capabilities) can be connected. In order to access the audio stream, one has
4253to connect to the ALSA PCM device called @code{bluealsa}. The device is based
4254on the ALSA software PCM plugin.")
4255 (license license:expat)))
4256
d0c8e524
SB
4257(define-public snd
4258 (package
4259 (name "snd")
c569aae1 4260 (version "20.9")
d0c8e524
SB
4261 (source (origin
4262 (method url-fetch)
4263 (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
4264 "snd-" version ".tar.gz"))
4265 (sha256
4266 (base32
c569aae1 4267 "0jxkycxn6jcbs4gklk9sk3gfr0y26dz1m71nxah9rnx80wnzj6hr"))))
d0c8e524
SB
4268 (build-system glib-or-gtk-build-system)
4269 (arguments
4ae9274a 4270 `(#:tests? #f ; no tests
d0c8e524
SB
4271 #:out-of-source? #f ; for the 'install-doc' phase
4272 #:configure-flags
4273 (let* ((out (assoc-ref %outputs "out"))
94774876
TGR
4274 (docdir (string-append out "/share/doc/"
4275 ,name "-" ,version)))
d0c8e524
SB
4276 (list "--with-alsa" "--with-jack" "--with-gmp"
4277 (string-append "--with-doc-dir=" docdir)))
4278 #:phases
4279 (modify-phases %standard-phases
4280 (add-after 'install 'install-doc
4281 (lambda* (#:key outputs #:allow-other-keys)
4282 (let* ((out (assoc-ref outputs "out"))
4ae9274a
TGR
4283 (doc (string-append out "/share/doc/"
4284 ,name "-" ,version)))
d0c8e524
SB
4285 (for-each
4286 (lambda (f)
4ae9274a 4287 (install-file f doc))
3ef664d0 4288 (find-files "." "\\.html$"))
4ae9274a 4289 (copy-recursively "pix" (string-append doc "/pix"))
d0c8e524
SB
4290 #t))))))
4291 (native-inputs
8394619b 4292 (list pkg-config))
d0c8e524 4293 (inputs
8394619b
LC
4294 (list alsa-lib
4295 fftw
4296 flac
4297 gmp
4298 gsl
4299 gtk+
4300 jack-1
4301 libsamplerate
4302 mpc
4303 mpfr
4304 mpg123
4305 speex
4306 timidity++
4307 vorbis-tools
4308 wavpack))
d0c8e524
SB
4309 (synopsis "Sound editor")
4310 (home-page "https://ccrma.stanford.edu/software/snd/")
4311 (description
4312 "Snd is a sound editor modelled loosely after Emacs. It can be
4313customized and extended using either the s7 Scheme implementation (included in
4314the Snd sources), Ruby, or Forth.")
4315 (license (license:non-copyleft "file://COPYING"))))
adedbe95 4316
cf31d5e1
RW
4317(define-public noise-repellent
4318 (package
4319 (name "noise-repellent")
f6c8ba31 4320 (version "0.1.5")
cf31d5e1
RW
4321 (source (origin
4322 (method git-fetch)
4323 (uri (git-reference
b0e7b699 4324 (url "https://github.com/lucianodato/noise-repellent")
cf31d5e1
RW
4325 (commit version)))
4326 (file-name (string-append name "-" version "-checkout"))
4327 (sha256
4328 (base32
f6c8ba31
TGR
4329 "0hb89x9i2knzan46q4nwscf5zmnb2nwf4w13xl2c0y1mx1ls1mwl"))))
4330 (build-system meson-build-system)
cf31d5e1 4331 (arguments
f6c8ba31
TGR
4332 `(#:configure-flags
4333 (list (string-append "--prefix=" (assoc-ref %outputs "out")
4334 "/lib/lv2"))))
cf31d5e1 4335 (inputs
8394619b 4336 (list lv2 fftwf))
cf31d5e1 4337 (native-inputs
8394619b 4338 (list pkg-config))
cf31d5e1
RW
4339 (home-page "https://github.com/lucianodato/noise-repellent")
4340 (synopsis "LV2 plugin for broadband noise reduction")
4341 (description "Noise Repellent is an LV2 plugin to reduce noise. It has
4342the following features:
4343
4344@enumerate
4345@item Spectral gating and spectral subtraction suppression rule
4346@item Adaptive and manual noise thresholds estimation
4347@item Adjustable noise floor
4348@item Adjustable offset of thresholds to perform over-subtraction
4349@item Time smoothing and a masking estimation to reduce artifacts
4350@item Basic onset detector to avoid transients suppression
4351@item Whitening of the noise floor to mask artifacts and to recover higher
4352 frequencies
4353@item Option to listen to the residual signal
4354@item Soft bypass
4355@item Noise profile saved with the session
4356@end enumerate
4357")
4358 (license license:lgpl3+)))
4359
4f38e0e4
RW
4360(define-public lv2-speech-denoiser
4361 (let ((commit "04cfba929630404f8d4f4ca5bac8d9b09a99152f")
4362 (revision "1"))
4363 (package
4364 (name "lv2-speech-denoiser")
4365 (version (git-version "0" revision commit))
4366 (source
4367 (origin
4368 (method git-fetch)
4369 (uri (git-reference
4370 (url "https://github.com/lucianodato/speech-denoiser/")
4371 (commit commit)))
4372 (file-name (git-file-name name version))
4373 (sha256
4374 (base32 "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4"))))
4375 (build-system meson-build-system)
4376 (arguments
dfd6ca19 4377 `(;; Using a "release" build is recommended for performance
4f38e0e4
RW
4378 #:build-type "release"
4379 #:phases
4380 (modify-phases %standard-phases
4381 (add-after 'unpack 'patch-meson-build
4382 (lambda _
4383 (substitute* "meson.build"
4384 (("install_folder = 'sdenoise.lv2'")
4385 "install_folder = 'lib/lv2/sdenoise.lv2'")
4386 (("build/manifest.ttl") "../build/manifest.ttl"))
4387 #t))
4388 (add-after 'unpack 'build-rnnoise
4389 (lambda _
4390 (with-directory-excursion "rnnoise"
4391 (let ((old-CFLAGS (getenv "CFLAGS")))
4392 (setenv "CFLAGS" "-fvisibility=hidden -fPIC -Wl,--exclude-libs,ALL")
4393 (setenv "CONFIG_SHELL" (which "bash"))
4394 (invoke "autoreconf" "-vif")
4395 (invoke "sh" "configure"
4396 "--disable-examples"
4397 "--disable-doc"
4398 "--disable-shared"
4399 "--enable-static")
4400 (invoke "make")
4401 (setenv "CFLAGS" old-CFLAGS))))))))
4402 (inputs
8394619b 4403 (list lv2))
4f38e0e4 4404 (native-inputs
8394619b 4405 (list autoconf automake libtool pkg-config))
4f38e0e4
RW
4406 (home-page "https://github.com/werman/noise-suppression-for-voice")
4407 (synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library")
4408 (description "RNNoise is a library that uses deep learning to apply
7699bbb3 4409noise suppression to audio sources with voice presence. This package provides
4f38e0e4
RW
4410an LV2 audio plugin.")
4411 (license license:lgpl3+))))
4412
adedbe95
OP
4413(define-public cli-visualizer
4414 (package
4415 (name "cli-visualizer")
e121cb87 4416 (version "1.8")
adedbe95
OP
4417 (source
4418 (origin
c2a2d364
RW
4419 (method git-fetch)
4420 (uri (git-reference
b0e7b699 4421 (url "https://github.com/dpayne/cli-visualizer")
e121cb87 4422 (commit (string-append "v" version))))
c2a2d364 4423 (file-name (git-file-name name version))
adedbe95 4424 (sha256
e121cb87
TGR
4425 (base32 "003mbbwsz43mg3d7llphpypqa9g7rs1p1cdbqi1mbc2bfrc1gcq2"))))
4426 (build-system cmake-build-system)
adedbe95 4427 (native-inputs
e121cb87 4428 ;; TODO: Try using the latest googletest for versions > 1.8.
8394619b
LC
4429 (list ;; ("googletest" ,googletest-1.8)
4430 which))
adedbe95 4431 (inputs
8394619b 4432 (list fftw ncurses pulseaudio))
adedbe95 4433 (arguments
e121cb87
TGR
4434 '(#:tests? #f
4435 ;; XXX Enable tests after patching them to use the system googletest.
4436 ;; #:configure-flags (list "-DVIS_WITH_TESTS=true")
adedbe95
OP
4437 #:phases
4438 (modify-phases %standard-phases
e121cb87
TGR
4439 (add-after 'install 'install-examples
4440 (lambda* (#:key outputs #:allow-other-keys)
4441 (with-directory-excursion "../source/examples"
4442 (delete-file "mac_osx_config")
4443 (for-each (lambda (file)
4444 (install-file file
4445 (string-append
4446 (assoc-ref outputs "out")
4447 "/share/doc")))
4448 (find-files ".")))
adedbe95
OP
4449 #t)))))
4450 (home-page "https://github.com/dpayne/cli-visualizer/")
4451 (synopsis "Command-line audio visualizer")
4452 (description "@code{cli-visualizer} displays fast-Fourier
4453transforms (FFTs) of the sound being played, as well as other graphical
4454representations.")
4455 (license license:expat)))
c2c0d661
OP
4456
4457(define-public cava
4458 (package
4459 (name "cava")
ba31fbb1 4460 (version "0.7.4")
c2c0d661 4461 (source (origin
a7fde1a8
RW
4462 (method git-fetch)
4463 (uri (git-reference
b0e7b699 4464 (url "https://github.com/karlstav/cava")
a7fde1a8
RW
4465 (commit version)))
4466 (file-name (git-file-name name version))
c2c0d661
OP
4467 (sha256
4468 (base32
ba31fbb1 4469 "1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))))
c2c0d661
OP
4470 (build-system gnu-build-system)
4471 (native-inputs
8394619b 4472 (list autoconf automake libtool))
c2c0d661 4473 (inputs
8394619b 4474 (list fftw ncurses pulseaudio))
c2c0d661
OP
4475 (arguments
4476 `(#:configure-flags
4477 (list (string-append "PREFIX=" %output)
9e3e80ba 4478 (string-append "FONT_DIR=" %output "/share/consolefonts"))
c2c0d661
OP
4479 #:make-flags
4480 (let ((lib (string-append %output "/lib")))
4481 (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
4482 #:phases
4483 (modify-phases %standard-phases
189be331 4484 (replace 'bootstrap
c2c0d661
OP
4485 (lambda* (#:key outputs #:allow-other-keys)
4486 (setenv "HOME" (getcwd))
4487 (invoke "sh" "autogen.sh")))
4488 (add-before 'build 'make-cava-ldflags
4489 (lambda* (#:key outputs #:allow-other-keys)
ee527187
MW
4490 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
4491 #t))
c2c0d661
OP
4492 (add-after 'install 'data
4493 (lambda* (#:key outputs #:allow-other-keys)
4494 (for-each (lambda (file)
4495 (install-file file
4496 (string-append (assoc-ref outputs "out")
4497 "/share/doc/examples")))
ee527187
MW
4498 (find-files "example_files"))
4499 #t)))))
c2c0d661
OP
4500 (home-page "https://karlstav.github.io/cava/")
4501 (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
4502 (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
4503using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
4504 (license license:expat)))
9073c875 4505
4506(define-public fluid-3
4507 (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
4508 (package
4509 (name "fluid-3")
4510 (version "2.1")
4511 (source
4512 (origin
4513 (method url-fetch)
4514 ;; Only one file is required, but the release bundles the whole
4515 ;; software which is 50MiB as tar and 200MiB unpacked. The website
4516 ;; directly links the soundfont release to the github file download.
4517 (uri (string-append "https://github.com/musescore/MuseScore/raw/"
4518 commit "/share/sound/FluidR3Mono_GM.sf3"))
4519 (file-name (string-append name "-" version ".sf3"))
4520 (sha256
4521 (base32
4522 "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg"))))
4523 (build-system trivial-build-system)
4524 (arguments
4525 `(#:modules ((guix build utils))
4526 #:builder
4527 (begin
4528 (use-modules (guix build utils))
4529 (let ((file (assoc-ref %build-inputs "source"))
4530 (out (string-append %output "/share/soundfonts")))
4531 (mkdir-p out)
e3cfef22
MW
4532 (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))
4533 #t))))
9073c875 4534 (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
4535 (synopsis "Pro-quality GM soundfont")
4536 (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")
4537 (license license:expat))))
5c40a69f
LF
4538
4539(define-public libfdk
b8930fd8
LF
4540 (package
4541 (name "libfdk")
4542 (version "2.0.1")
4543 (source
4544 (origin
4545 (method git-fetch)
4546 (uri (git-reference
4547 (url "https://github.com/mstorsjo/fdk-aac")
4548 (commit (string-append "v" version))))
4549 (file-name (git-file-name name version))
4550 (sha256
4551 (base32
4552 "1fkrnzs78fmj11n9z3l0w53i2fl16jcfiyavwidck9bzmkmsf486"))))
4553 (build-system gnu-build-system)
4554 (native-inputs
8394619b 4555 (list autoconf automake libtool))
b8930fd8
LF
4556 (home-page "https://github.com/mstorsjo/fdk-aac")
4557 (synopsis "Fraunhofer FDK AAC library")
4558 (description "FDK is a library for encoding and decoding Advanced Audio
5c40a69f
LF
4559Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of
4560Android. It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC
4561LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)
4562and AAC-ELD (enhanced low delay) for real-time communication. The encoding
4563library supports sample rates up to 96 kHz and up to eight channels (7.1
b8930fd8
LF
4564 surround).")
4565 (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
4566 "https://www.gnu.org/licenses/license-list.html#fdk"))))
ef8517f2
EB
4567
4568(define-public libopenshot-audio
4569 (package
4570 (name "libopenshot-audio")
c4ca2e95 4571 (version "0.2.2")
ef8517f2
EB
4572 (source (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://github.com/OpenShot/libopenshot-audio")
4576 (commit (string-append "v" version))))
4577 (file-name (git-file-name name version))
4578 (sha256
4579 (base32
c4ca2e95 4580 "03dygh85riljk7dpn5a5a0d22a2kz45fs13gzwqgnbzzr1k17p2y"))))
ef8517f2
EB
4581 (build-system cmake-build-system)
4582 (inputs
8394619b
LC
4583 (list alsa-lib
4584 ;; The following are for JUCE GUI components:
4585 libx11
4586 freetype
4587 libxrandr
4588 libxinerama
4589 libxcursor))
ef8517f2
EB
4590 (arguments
4591 `(#:tests? #f ;there are no tests
4592 #:configure-flags
4593 (list (string-append "-DCMAKE_CXX_FLAGS=-I"
4594 (assoc-ref %build-inputs "freetype")
4595 "/include/freetype2"))))
4596 (home-page "https://openshot.org")
4597 (synopsis "Audio editing and playback for OpenShot")
4598 (description "OpenShot Audio Library (libopenshot-audio) allows
4599high-quality editing and playback of audio, and is based on the JUCE
4600library.")
4601 (license license:lgpl3+)))
ea3510f8
RH
4602
4603(define-public faudio
4604 (package
4605 (name "faudio")
61118aed 4606 (version "21.10")
ea3510f8
RH
4607 (source
4608 (origin
4609 (method git-fetch)
4610 (uri (git-reference
b0e7b699 4611 (url "https://github.com/FNA-XNA/FAudio")
ea3510f8 4612 (commit version)))
543f7ad1 4613 (file-name (git-file-name name version))
ea3510f8 4614 (sha256
61118aed 4615 (base32 "0l9bicg8v1shsyq9k48zh4wv5kwfs6lfjmm9blzd13xrgmhd07w2"))))
ea3510f8
RH
4616 (arguments
4617 '(#:tests? #f ; No tests.
12158b83 4618 #:configure-flags '("-DGSTREAMER=ON")))
ea3510f8 4619 (build-system cmake-build-system)
8394619b
LC
4620 (native-inputs (list pkg-config))
4621 (inputs (list gstreamer gst-plugins-base sdl2))
ea3510f8
RH
4622 (home-page "https://github.com/FNA-XNA/FAudio")
4623 (synopsis "XAudio reimplementation")
4624 (description "FAudio is an XAudio reimplementation that focuses solely on
4625developing fully accurate DirectX Audio runtime libraries.")
12158b83
TGR
4626 (license
4627 (list license:zlib
4628 ;; stb & utils/{ui,wav}common are dual-licenced under either of:
4629 license:expat
4630 license:public-domain))))
e13714b6
AI
4631
4632(define-public gnaural
4633 (package
4634 (name "gnaural")
4635 (version "20110606")
4636 (source
4637 (origin
4638 (method url-fetch)
4639 (uri (string-append "mirror://sourceforge/gnaural/Gnaural/gnaural_"
4640 version ".tar.xz"))
4641 (sha256
4642 (base32
4643 "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
4644 (build-system gnu-build-system)
4645 (inputs
8394619b 4646 (list alsa-lib gtk+-2 libsndfile portaudio))
e13714b6 4647 (native-inputs
8394619b 4648 (list pkg-config))
e13714b6
AI
4649 (home-page "http://gnaural.sourceforge.net/")
4650 (synopsis "Binaural beat synthesizer")
4651 (description "Gnaural is a programmable auditory binaural beat synthesizer
4652intended to be used for brainwave entrainment. Gnaural supports creation of
4653binaural beat tracks of different frequencies and exporting of tracks into
4654different audio formats. Gnaural can also be linked over the internet with
4655other Gnaural instances, allowing synchronous sessions between many users.")
4656 (license license:gpl2+)))
2f4698d7
MW
4657
4658(define-public darkice
4659 (package
4660 (name "darkice")
c827c52a 4661 (version "1.4")
2f4698d7
MW
4662 (source (origin
4663 (method url-fetch)
c827c52a
LF
4664 (uri (string-append "https://github.com/rafael2k/darkice/releases/"
4665 "download/v" version "/darkice-"
4666 version ".tar.gz"))
2f4698d7 4667 (sha256
c827c52a
LF
4668 (base32
4669 "05yq7lggxygrkd76yiqby3msrgdn082p0qlvmzzv9xbw8hmyra76"))))
2f4698d7 4670 (build-system gnu-build-system)
8394619b
LC
4671 (native-inputs (list pkg-config))
4672 (inputs (list lame
4673 libvorbis
4674 opus
4675 twolame
4676 alsa-lib
4677 pulseaudio
4678 jack-1
4679 libsamplerate))
2f4698d7
MW
4680 (arguments
4681 `(#:configure-flags
4682 (list (string-append "--with-lame-prefix="
4683 (assoc-ref %build-inputs "lame")))))
4684 (home-page "http://www.darkice.org/")
4685 (synopsis "Live audio streamer")
4686 (description "DarkIce is a live audio streamer. It takes audio input from
4687a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio
4688stream to one or more IceCast and/or ShoutCast servers.")
4689 (license license:gpl3+)))
0f2ce448
AT
4690
4691(define-public libltc
4692 (package
4693 (name "libltc")
4694 (version "1.3.1")
4695 (source
4696 (origin
4697 (method url-fetch)
4698 (uri
4699 (string-append "https://github.com/x42/libltc/releases/download/v"
4700 version "/libltc-" version ".tar.gz"))
4701 (sha256
4702 (base32
4703 "173h9dgmain3nyrwk6q2d7yl4fnh4vacag4s2p01n5b7nyrkxrjh"))))
4704 (build-system gnu-build-system)
4705 (arguments
4706 `(#:parallel-tests? #f)) ;tests fail otherwise
4707 (native-inputs
8394619b 4708 (list doxygen pkg-config))
0f2ce448
AT
4709 (synopsis "Encode or decode Linear/Longitudinal Time Code (LTC) audio")
4710 (description "Libltc is a POSIX-C Library for handling
4711@dfn{Linear/Longitudinal Time Code} (LTC) data.")
4712 (home-page "https://x42.github.io/libltc/")
4713 (license license:lgpl3+)))
74f9a8fb 4714
8aca4f69
AT
4715(define-public ttaenc
4716 (package
4717 (name "ttaenc")
4718 (version "3.4.1")
4719 (source
4720 (origin
4721 (method url-fetch)
4722 (uri (string-append "mirror://sourceforge/tta/"
4723 "tta/ttaenc-src"
4724 "/ttaenc-" version "-src.tgz"))
4725 (sha256
4726 (base32
4727 "1iixpr4b89g9g1hwn8ak8k8iflcww3r5f09a117qdidc2nqcijdj"))))
4728 (build-system gnu-build-system)
4729 (arguments
4730 `(#:tests? #f ;no tests
4731 #:make-flags
4732 (list (string-append "CC=" ,(cc-for-target))
4733 (string-append "INSDIR=" (assoc-ref %outputs "out") "/bin"))
4734 #:phases
4735 (modify-phases %standard-phases
4736 (delete 'configure) ; no configure
4737 (add-before 'install 'make-bindir
4738 (lambda* (#:key outputs #:allow-other-keys)
4739 (let* ((out (assoc-ref outputs "out")))
4740 (mkdir-p (string-append out "/bin"))
4741 #t))))))
4742 (synopsis "TTA lossless audio encoder")
4743 (description
4744 "TTA performs lossless compression on multichannel 8,16 and 24 bits
4745data of the Wav audio files. Being lossless means that no data-
4746quality is lost in the compression - when uncompressed, the data will
4747be identical to the original. The compression ratios of TTA depend on
4748the type of music file being compressed, but the compression size
4749will generally range between 30% - 70% of the original. TTA format
4750supports both of ID3v1/v2 and APEv2 tags.")
4751 (home-page "http://tausoft.org/")
4752 (license license:gpl2+)))
4753
bea98f9a
AT
4754(define-public libsoundio
4755 (package
66c83960
MO
4756 (name "libsoundio")
4757 (version "2.0.0")
4758 (source
bea98f9a
AT
4759 (origin
4760 (method git-fetch)
4761 (uri (git-reference
66c83960
MO
4762 (url "https://github.com/andrewrk/libsoundio")
4763 (commit version)))
bea98f9a
AT
4764 (file-name (git-file-name name version))
4765 (sha256
66c83960
MO
4766 (base32
4767 "12l4rvaypv87vigdrmjz48d4d6sq4gfxf5asvnc4adyabxb73i4x"))))
4768 (build-system cmake-build-system)
4769 (arguments
4770 `(#:tests? #f)) ;no tests included
4771 (inputs
8394619b 4772 (list alsa-lib jack-1 pulseaudio))
66c83960 4773 (native-inputs
8394619b 4774 (list pkg-config))
66c83960
MO
4775 (home-page "http://libsound.io")
4776 (synopsis "C library for real-time audio input and output")
4777 (description "@code{libsoundio} is a C library providing audio input and
4778output. The API is suitable for real-time software such as digital audio
4779workstations as well as consumer software such as music players.")
4780 (license license:expat)))
bea98f9a 4781
74f9a8fb
AT
4782(define-public redkite
4783 (package
4784 (name "redkite")
e46e144b 4785 (version "1.3.1") ;marked unmaintained as of Oct. 2021
74f9a8fb
AT
4786 (source
4787 (origin
83ba0e42
MB
4788 (method git-fetch)
4789 (uri (git-reference
4ddcd0e2 4790 (url "https://github.com/free-sm/redkite")
83ba0e42
MB
4791 (commit (string-append "v" version))))
4792 (file-name (git-file-name name version))
74f9a8fb 4793 (sha256
e46e144b 4794 (base32 "1zb2k2a4m7z2ravqrjn8fq8lic20wbr2m8kja3p3113jsk7j9zvd"))))
74f9a8fb
AT
4795 (build-system cmake-build-system)
4796 (arguments
4797 `(#:tests? #f)) ;no tests included
3fc49dae 4798 (propagated-inputs
8394619b 4799 (list cairo))
74f9a8fb 4800 (native-inputs
8394619b 4801 (list pkg-config))
74f9a8fb
AT
4802 (synopsis "Small GUI toolkit")
4803 (description "Redkite is a small GUI toolkit developed in C++17 and
4804inspired from other well known GUI toolkits such as Qt and GTK. It is
4805minimal on purpose and is intended to be statically linked to applications,
4806therefore satisfying any requirements they may have to be self contained,
4807as is the case with audio plugins.")
4808 (home-page "https://gitlab.com/geontime/redkite")
4809 (license license:gpl3+)))
caa1f6a8
AT
4810
4811(define-public carla
4812 (package
4813 (name "carla")
c11c1080 4814 (version "2.4.1")
caa1f6a8
AT
4815 (source
4816 (origin
4817 (method git-fetch)
4818 (uri
4819 (git-reference
b0e7b699 4820 (url "https://github.com/falkTX/Carla")
caa1f6a8
AT
4821 (commit (string-append "v" version))))
4822 (file-name (git-file-name name version))
4823 (sha256
c11c1080 4824 (base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
caa1f6a8
AT
4825 (build-system gnu-build-system)
4826 (arguments
4827 `(#:tests? #f ; no "check" target
4828 #:make-flags
4829 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
4830 #:phases
4831 (modify-phases %standard-phases
5424e680 4832 (delete 'configure) ; no configure script
caa1f6a8
AT
4833 (add-before 'build 'set-CC-variable-and-show-features
4834 (lambda _
4835 (setenv "CC" "gcc")
4836 (invoke "make" "features")))
5424e680
TGR
4837 (add-after 'install 'make-carla-executable
4838 (lambda* (#:key outputs #:allow-other-keys)
4839 (let ((out (assoc-ref outputs "out")))
4840 (chmod (string-append out "/share/carla/carla") #o555)
4841 #t)))
1ab58a3d 4842 (add-after 'install 'wrap-executables
0a843e36 4843 (lambda* (#:key inputs outputs #:allow-other-keys)
1ab58a3d
TGR
4844 (let ((out (assoc-ref outputs "out")))
4845 (wrap-script (string-append out "/bin/carla")
0a843e36 4846 #:guile (search-input-file inputs "bin/guile")
d42245d4 4847 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
1ab58a3d 4848 #t))))))
caa1f6a8
AT
4849 (inputs
4850 `(("alsa-lib" ,alsa-lib)
4851 ("ffmpeg" ,ffmpeg)
4852 ("fluidsynth" ,fluidsynth)
4853 ("file" ,file)
4854 ("liblo" ,liblo)
4855 ("libsndfile" ,libsndfile)
281456b4 4856 ("gtk2" ,gtk+-2) ;needed for bridging GTK2 plugins in GTK3 hosts
caa1f6a8
AT
4857 ("gtk+" ,gtk+)
4858 ("python-pyliblo" ,python-pyliblo)
4859 ("python-pyqt" ,python-pyqt)
4860 ("python-rdflib" ,python-rdflib)
4861 ;; python-pyqt shows the following error without python-wrapper:
4862 ;; Error while finding module specification for 'PyQt5.uic.pyuic'
4863 ;; (ModuleNotFoundError: No module named 'PyQt5')
4864 ("python-wrapper" ,python-wrapper)
4865 ("libx11" ,libx11)
ea0a5107 4866 ("qtbase" ,qtbase-5)
1ab58a3d
TGR
4867 ("zlib" ,zlib)
4868
4869 ;; For WRAP-SCRIPT above.
4870 ("guile" ,guile-2.2)))
caa1f6a8 4871 (native-inputs
8394619b 4872 (list pkg-config))
caa1f6a8
AT
4873 (home-page "https://kx.studio/Applications:Carla")
4874 (synopsis "Audio plugin host")
4875 (description "Carla is a modular audio plugin host, with features like
4876transport control, automation of parameters via MIDI CC and remote control
4877over OSC. Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2,
4878and VST3 plugin formats, plus SF2 and SFZ file support. It uses JACK as the
4879default and preferred audio driver but also supports native drivers like ALSA.")
4880 (license license:gpl2+)))
615a4fbf
CLW
4881
4882(define-public ecasound
4883 (package
4884 (name "ecasound")
ec67d069 4885 (version "2.9.3")
615a4fbf
CLW
4886 (source (origin
4887 (method url-fetch)
694c2976 4888 (uri (string-append "https://nosignal.fi/download/ecasound-"
615a4fbf
CLW
4889 version ".tar.gz"))
4890 (sha256
ec67d069 4891 (base32 "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6"))))
615a4fbf 4892 (build-system gnu-build-system)
8394619b 4893 (native-inputs (list pkg-config))
ec67d069
TGR
4894 ;; It would be nice to add mikmod to inputs if that gets packaged
4895 ;; eventually.
8394619b
LC
4896 (inputs (list alsa-lib
4897 jack-1
4898 mpg123
4899 lame
4900 vorbis-tools
4901 faad2
4902 flac
4903 timidity++
4904 libsndfile
4905 libsamplerate
4906 ncurses
4907 ladspa
4908 lilv))
694c2976 4909 (home-page "https://nosignal.fi/ecasound/index.php")
615a4fbf
CLW
4910 (synopsis "Multitrack audio processing")
4911 (description "Ecasound is a software package designed for multitrack audio
4912processing. It can be used for simple tasks like audio playback, recording and
4913format conversions, as well as for multitrack effect processing, mixing,
4914recording and signal recycling. Ecasound supports a wide range of audio inputs,
4915outputs and effect algorithms. Effects and audio objects can be combined in
4916various ways, and their parameters can be controlled by operator objects like
4917oscillators and MIDI-CCs. A versatile console mode user-interface is included
4918in the package.")
d83bb797
JW
4919 ;; As an exception to the above, the C, C++ and python implementations
4920 ;; of the Ecasound Control Interface (ECI) are licensed under the LGPL
4921 ;; (see the file 'COPYING.LGPL'). This allows writing ECI applications
615a4fbf
CLW
4922 ;; that are not licensed under GPL.
4923 (license (list license:gpl2 license:lgpl2.1))))
5d703da3
AT
4924
4925(define-public libaudec
4926 (package
4927 (name "libaudec")
4c76af04 4928 (version "0.2.4")
5d703da3
AT
4929 (source
4930 (origin
4931 (method git-fetch)
4932 (uri (git-reference
4831f4e8 4933 (url "https://git.zrythm.org/zrythm/libaudec")
5d703da3
AT
4934 (commit (string-append "v" version))))
4935 (file-name (git-file-name name version))
4936 (sha256
4937 (base32
4c76af04 4938 "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz"))))
5d703da3
AT
4939 (build-system meson-build-system)
4940 (arguments
dfd6ca19 4941 `(#:configure-flags
4c76af04
TGR
4942 ;; Build the tests.
4943 `("-Dtests=true")))
5d703da3 4944 (inputs
8394619b 4945 (list libsamplerate libsndfile))
5d703da3 4946 (native-inputs
8394619b 4947 (list pkg-config))
5d703da3
AT
4948 (synopsis "Library for reading and resampling audio files")
4949 (description "libaudec is a wrapper library over ffmpeg, sndfile and
4950libsamplerate for reading and resampling audio files, based on Robin Gareus'
4951@code{audio_decoder} code.")
4831f4e8 4952 (home-page "https://git.zrythm.org/zrythm/libaudec")
5d703da3 4953 (license license:agpl3+)))
70d9ef51
AT
4954
4955(define-public lv2lint
4956 (package
4957 (name "lv2lint")
b02e52f6 4958 (version "0.8.0")
70d9ef51
AT
4959 (source
4960 (origin
4961 (method git-fetch)
4962 (uri (git-reference
4963 (url "https://git.open-music-kontrollers.ch/lv2/lv2lint")
4964 (commit version)))
4965 (file-name (git-file-name name version))
4966 (sha256
4967 (base32
b02e52f6 4968 "1jrka0hsn4n1clri7zfkcl3c2vi52144lkpjm81l51ff8rqy8ks1"))))
70d9ef51
AT
4969 (build-system meson-build-system)
4970 (arguments
4971 `(#:configure-flags
4972 `("-Delf-tests=true" ; for checking symbol visibility
4973 "-Donline-tests=true"))) ; for checking URI existence
4974 (inputs
8394619b 4975 (list curl libelf lilv))
70d9ef51 4976 (native-inputs
8394619b 4977 (list pkg-config))
70d9ef51
AT
4978 (synopsis "LV2 plugin lint tool")
4979 (description "lv2lint is an LV2 lint-like tool that checks whether a
4980given plugin and its UI(s) match up with the provided metadata and adhere
4981to well-known best practices.")
4982 (home-page "https://open-music-kontrollers.ch/lv2/lv2lint/")
4983 (license license:artistic2.0)))
670da398
AT
4984
4985(define-public lv2toweb
4986 (package
4987 (name "lv2toweb")
4988 (version "0.4")
4989 (source
4990 (origin
4991 (method git-fetch)
4992 (uri (git-reference
4993 (url "https://github.com/x42/lv2toweb")
4994 (commit (string-append "v" version))))
4995 (file-name (git-file-name name version))
4996 (sha256
4997 (base32
4998 "007aysqvgkf25za8nkmyd5g9kp1zla460dcpidlj5xg1zc3fcdfi"))))
4999 (build-system gnu-build-system)
5000 (arguments
5001 `(#:tests? #f ; no "check" target
5002 #:make-flags (list "CC=gcc"
5003 (string-append "PREFIX=" (assoc-ref %outputs "out")))
5004 #:phases
5005 (modify-phases %standard-phases
5006 (delete 'configure))))
5007 (inputs
8394619b 5008 (list jalv lilv))
670da398 5009 (native-inputs
8394619b 5010 (list help2man pkg-config))
670da398
AT
5011 (synopsis "Documentation generator for LV2 plugins")
5012 (description
5013 "lv2toweb allows the user to create an xhtml page with information
5014about the given LV2 plugin, provided that the plugin and its UI(s) match up
5015with the provided metadata and adhere to well-known best practices.")
5016 (home-page "https://github.com/x42/lv2toweb")
5017 (license (list license:isc license:gpl2))))
2f4faccc
AT
5018
5019(define-public ztoolkit
5020 (package
5021 (name "ztoolkit")
5022 (version "0.1.1")
5023 (source
5024 (origin
5025 (method git-fetch)
5026 (uri (git-reference
4831f4e8 5027 (url "https://git.zrythm.org/zrythm/ztoolkit")
2f4faccc
AT
5028 (commit (string-append "v" version))))
5029 (file-name (git-file-name name version))
5030 (sha256
5031 (base32
5032 "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1"))))
5033 (build-system meson-build-system)
2f4faccc 5034 (native-inputs
8394619b 5035 (list pkg-config))
4bce3a06
AT
5036 ;; These are listed as propagated inputs because they are dependencies
5037 ;; in pkgconfig.
5038 (propagated-inputs
8394619b 5039 (list cairo libx11))
2f4faccc
AT
5040 (synopsis "GUI toolkit for LV2 plugins")
5041 (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily
5042inspired by GTK. It handles events and low level drawing on behalf of
5043the user and provides a high-level API for managing the UI and custom
5044widgets. ZToolkit is written in C and was created to be used for building
5045audio plugin UIs, where the dependencies often need to be kept to a
5046minimum.")
4831f4e8 5047 (home-page "https://git.zrythm.org/zrythm/ztoolkit")
2f4faccc 5048 (license license:agpl3+)))
360ebe50 5049
d474052b
VM
5050(define-public libinstpatch
5051 (package
5052 (name "libinstpatch")
846a6aad 5053 (version "1.1.6")
d474052b
VM
5054 (source
5055 (origin
5056 (method git-fetch)
5057 (uri (git-reference
5058 (url "https://github.com/swami/libinstpatch")
5059 (commit (string-append "v" version))))
5060 (file-name (git-file-name name version))
5061 (sha256
846a6aad 5062 (base32 "1w3nk0vvd1cxic70n45zjip0bdsrja969myvyvkhq3ngbarbykir"))))
d474052b
VM
5063 (build-system cmake-build-system)
5064 (arguments
5065 `(#:tests? #f)) ;there are no tests
5066 (native-inputs
5067 `(("glib:bin" ,glib "bin")
5068 ("pkg-config" ,pkg-config)))
5069 (inputs
8394619b 5070 (list glib libsndfile))
d474052b
VM
5071 (home-page "http://www.swamiproject.org/")
5072 (synopsis "Instrument file software library")
5073 (description
5074 "libInstPatch is a library for processing digital sample based MIDI
5075instrument \"patch\" files. The types of files libInstPatch supports are used
5076for creating instrument sounds for wavetable synthesis. libInstPatch provides
5077an object framework (based on GObject) to load patch files, which can then be
5078edited, converted, compressed and saved.")
5079 (license license:lgpl2.1)))
5080
360ebe50 5081(define-public ztoolkit-rsvg
1a265842 5082 (package/inherit ztoolkit
360ebe50
AT
5083 (name "ztoolkit-rsvg")
5084 (arguments
5085 `(#:configure-flags `("-Denable_rsvg=true")))
60a5071f 5086 (propagated-inputs
360ebe50 5087 `(("librsvg" ,librsvg)
60a5071f 5088 ,@(package-propagated-inputs ztoolkit)))
360ebe50 5089 (synopsis "ZToolkit with SVG support")))
7cd2609e 5090
913faed8
AT
5091(define-public lsp-dsp-lib
5092 (package
5093 (name "lsp-dsp-lib")
f50adf0b 5094 (version "0.5.11")
913faed8
AT
5095 (source
5096 (origin
5097 (method url-fetch)
5098 (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
f50adf0b 5099 "releases/download/" version
913faed8
AT
5100 "/lsp-dsp-lib-" version "-src.tar.gz"))
5101 (sha256
f50adf0b 5102 (base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
913faed8
AT
5103 (build-system gnu-build-system)
5104 (arguments
5105 `(#:tests? #f ; no tests
5106 #:make-flags
5107 (list (string-append "CC=" ,(cc-for-target)))
5108 #:phases
5109 (modify-phases %standard-phases
673c58cd
TGR
5110 (add-after 'unpack 'omit-static-library
5111 (lambda _
5112 (substitute* "src/Makefile"
5113 ((".*@.*ARTIFACT_SLIB.*") "") ; don't install it
5114 ((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
913faed8
AT
5115 (replace 'configure
5116 (lambda* (#:key outputs #:allow-other-keys)
5117 (invoke "make" "config"
5118 (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
5119 (home-page "https://github.com/sadko4u/lsp-dsp-lib")
5120 (synopsis "Digital signal processing library")
5121 (description "The LSP DSP library provides a set of functions that perform
5122SIMD-optimized computing on several hardware architectures. All functions
5123currently operate on IEEE-754 single-precision floating-point numbers.")
5124 (license license:lgpl3+)))
5125
7cd2609e
GLV
5126(define-public codec2
5127 (package
5128 (name "codec2")
5129 (version "0.9.2")
5130 (source
5131 (origin
5132 (method git-fetch)
5133 (uri (git-reference
b0e7b699 5134 (url "https://github.com/drowe67/codec2")
7cd2609e
GLV
5135 (commit (string-append "v" version))))
5136 (file-name (git-file-name name version))
5137 (sha256
5138 (base32 "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba"))))
5139 (build-system cmake-build-system)
5140 (native-inputs
8394619b 5141 (list bc octave valgrind))
7cd2609e
GLV
5142 (arguments
5143 `(#:tests? #f ; TODO: Fix tests (paths, graphic toolkit, octave modules).
5144 #:phases
5145 (modify-phases %standard-phases
5146 (add-before 'check 'set-test-environment
5147 (lambda _
5148 (setenv "HOME" "/tmp")
5149 #t)))))
5150 (synopsis "Speech codec")
5151 (description
5152 "Codec 2 is a speech codec designed for communications quality speech
5153between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF
5154digital radio.")
5155 (home-page "https://www.rowetel.com/?page_id=452")
5156 (license license:lgpl2.1)))
17aa4eb4 5157
f1b0d0d7
GLV
5158(define-public mbelib
5159 ;; No release since 2016, use commit directly.
5160 (let ((commit "9a04ed5c78176a9965f3d43f7aa1b1f5330e771f")
5161 (revision "1"))
5162 (package
5163 (name "mbelib")
4b861c89 5164 (version (git-version "1.3.0" revision commit))
f1b0d0d7
GLV
5165 (source
5166 (origin
5167 (method git-fetch)
5168 (uri (git-reference
5169 (url "https://github.com/szechyjs/mbelib")
5170 (commit commit)))
5171 (file-name (git-file-name name version))
5172 (sha256
5173 (base32 "0a7xmf87xnjzm5b437j2vnwv39x0ascja1j04c5wj6xs1529gw8h"))))
5174 (build-system cmake-build-system)
5175 (home-page "https://github.com/szechyjs/mbelib")
5176 (synopsis "P25 Phase 1 and ProVoice vocoder")
5177 (description
5178 "The mbelib library provides support for the 7200x4400 bit/s codec used
5179in P25 Phase 1, the 7100x4400 bit/s codec used in ProVoice and the @emph{Half
5180Rate} 3600x2250 bit/s vocoder used in various radio systems.")
e15f7a6b
TGR
5181 (license (list license:bsd-3 ; test/ framework
5182 license:isc))))) ; the rest
f1b0d0d7 5183
17aa4eb4
GL
5184(define-public ableton-link
5185 (package
5186 (name "ableton-link")
e874c730 5187 (version "3.0.3")
17aa4eb4
GL
5188 (source (origin
5189 (method git-fetch)
5190 (uri (git-reference
b0e7b699 5191 (url "https://github.com/Ableton/link")
17aa4eb4
GL
5192 (commit (string-append "Link-" version))))
5193 (file-name (git-file-name name version))
5194 (sha256
5195 (base32
e874c730 5196 "1wplqj11ww64gmw2kzlxpvfs3v04m2036f7k5ndm34zcv12b91fa"))
17aa4eb4
GL
5197 (modules '((guix build utils)))
5198 (patches
5199 (search-patches "ableton-link-system-libraries-debian.patch"))
5200 (snippet
5201 '(begin
5202 ;; Tests assume that CMake's "build" directory is a
5203 ;; sub-directory of the source tree, so we fix it.
5204 (substitute* "ci/run-tests.py"
5205 (("root_dir,") "root_dir, os.pardir,"))
5206 ;; Unbundle dependencies.
5207 (delete-file-recursively "third_party")
e874c730 5208 (delete-file-recursively "modules")))))
17aa4eb4
GL
5209 (build-system cmake-build-system)
5210 (native-inputs
8394619b
LC
5211 (list catch-framework
5212 python ;for running tests
5213 portaudio ;for portaudio examples
5214 qtbase-5 ;for Qt examples
5215 qtdeclarative
5216 qttools))
17aa4eb4 5217 (inputs
8394619b
LC
5218 (list jack-1 ;for JACK examples
5219 qtquickcontrols)) ;for Qt examples
17aa4eb4
GL
5220 (propagated-inputs
5221 ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
5222 ;; contains '#include <asio.hpp>'.
8394619b 5223 (list asio))
17aa4eb4
GL
5224 (arguments
5225 `(#:configure-flags
5226 '("-DLINK_BUILD_QT_EXAMPLES=ON"
5227 "-DLINK_BUILD_JACK=ON")
5228 #:phases
5229 (modify-phases %standard-phases
5230 (replace 'check
d29cf19b
AV
5231 (lambda* (#:key inputs tests? #:allow-other-keys)
5232 (when tests?
5233 (let* ((python (search-input-file inputs "/bin/python3"))
5234 (run-tests "../source/ci/run-tests.py"))
5235 (invoke python run-tests "--target" "LinkCoreTest")
5236 (invoke python run-tests "--target" "LinkDiscoveryTest")))))
17aa4eb4
GL
5237 (add-before 'install 'patch-cmake
5238 (lambda* (#:key inputs #:allow-other-keys)
e874c730 5239 (let* ((source "../source/"))
17aa4eb4
GL
5240 (substitute* (string-append source
5241 "cmake_include/AsioStandaloneConfig.cmake")
5242 (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
5243 "modules/asio-standalone/asio/include"))
5244 (string-append (assoc-ref inputs "asio")
5245 "/include")))
5246 (substitute* (string-append source "AbletonLinkConfig.cmake")
5247 (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
5248 "${CMAKE_CURRENT_LIST_DIR}/../../../include")
5249 (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
e874c730 5250 "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")))))
17aa4eb4
GL
5251 (replace 'install
5252 (lambda* (#:key outputs #:allow-other-keys)
5253 (let* ((out (assoc-ref outputs "out"))
5254 (bin (string-append out "/bin"))
5255 (lib-cmake (string-append out "/lib/cmake/ableton-link"))
e874c730 5256 (source "../source"))
17aa4eb4
GL
5257 (for-each (lambda (test-file)
5258 (delete-file test-file))
5259 '("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
5260 (copy-recursively "bin" bin)
5261 (copy-recursively (string-append source "/include/ableton")
5262 (string-append out "/include/ableton"))
5263 (install-file (string-append source "/AbletonLinkConfig.cmake")
5264 lib-cmake)
5265 (install-file (string-append source
5266 "/cmake_include/AsioStandaloneConfig.cmake")
e874c730 5267 (string-append lib-cmake "/cmake_include"))))))))
17aa4eb4
GL
5268 (home-page "https://github.com/Ableton/link")
5269 (synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
5270 (description
5271 "Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase
5272across multiple applications running on one or more devices. Applications on devices
5273connected to a local network discover each other automatically and form a musical
5274session in which each participant can perform independently: anyone can start or stop
5275while still staying in time.")
5276 (license license:gpl2+)))
80986c6a
LF
5277
5278(define-public butt
5279 (package
5280 (name "butt")
4938ea5f 5281 (version "0.1.32")
80986c6a
LF
5282 (source (origin
5283 (method url-fetch)
5284 (uri (string-append "mirror://sourceforge/butt/butt/butt-"
5285 version "/butt-" version ".tar.gz"))
5286 (sha256
5287 (base32
4938ea5f 5288 "1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r"))
6c7dc0ba
TGR
5289 (modules '((guix build utils)))
5290 (snippet
5291 '(substitute* "src/butt.cpp"
5292 ((".*zica.*") "")))))
80986c6a
LF
5293 (build-system gnu-build-system)
5294 (arguments
5295 `(#:phases
5296 (modify-phases %standard-phases
5297 (add-after 'install 'install-documentation
5298 (lambda* (#:key inputs outputs #:allow-other-keys)
5299 (let* ((out (assoc-ref outputs "out"))
5300 (manual (assoc-ref inputs "manual"))
5301 (doc (string-append out "/share/doc/" ,name "-" ,version)))
5302 (install-file "README" doc)
5303 (copy-file manual (string-append doc "/butt-manual.pdf"))))))))
5304 (inputs
5305 `(("dbus" ,dbus)
5306 ("flac" ,flac)
5307 ("fltk" ,fltk)
5308 ("lame" ,lame)
5309 ("libfdk" ,libfdk)
5310 ("libsamplerate" ,libsamplerate)
5311 ("libvorbis" ,libvorbis)
5312 ("libx11" ,libx11)
5313 ("libxext" ,libxext)
5314 ("libxfixes" ,libxfixes)
5315 ("libxft" ,libxft)
5316 ("libxrender" ,libxrender)
5317 ("ogg" ,libogg)
5318 ("openssl" ,openssl)
5319 ("opus" ,opus)
5320 ("portaudio" ,portaudio)))
5321 (native-inputs
5322 `(("pkg-config" ,pkg-config)
5323 ("manual" ,(origin
5324 (method url-fetch)
5325 (uri (string-append "https://danielnoethen.de/butt/butt-"
5326 version "_manual.pdf"))
5327 (sha256
5328 (base32
4938ea5f 5329 "0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh"))))))
80986c6a
LF
5330 (home-page "https://danielnoethen.de/butt/")
5331 (synopsis "Audio streaming tool")
5332 (description "Butt is a tool to stream audio to a ShoutCast or
5333Icecast server.")
5334 (license license:gpl2+)))
ac886034
AI
5335
5336(define-public siggen
5337 (package
5338 (name "siggen")
5339 (version "2.3.10")
5340 (source
5341 (origin
5342 (method git-fetch)
5343 (uri (git-reference
5344 (url "https://github.com/bleskodev/siggen")
5345 (commit "a407611b59d59c7770bbe62ba9b8e9a948cf3210")))
5346 (file-name (git-file-name name version))
5347 (sha256
5348 (base32
5349 "0szhgfd9kddr6qsz0imp0x66jjn6ry236f35vjl82ivc1v2bllcb"))))
5350 (build-system gnu-build-system)
5351 (arguments
5352 `(#:make-flags (list (string-append "INSDIR=" %output "/bin")
5353 (string-append "MANDIR=" %output "/share/man"))
5354 #:tests? #f ; no tests
5355 #:phases
5356 (modify-phases %standard-phases
5357 ;; Patch misc.c to prevent a segfault.
5358 (add-after 'unpack 'patch-segfault
5359 (lambda _
5360 (substitute* "misc.c"
5361 (("#include <stdio.h>\n" all)
5362 (string-append all "#include <string.h>\n")))))
5363 (delete 'configure)
5364 (replace 'install
5365 (lambda* (#:key make-flags outputs #:allow-other-keys)
5366 (let ((out (assoc-ref outputs "out")))
5367 (for-each (lambda (dir)
5368 (mkdir-p (string-append out dir)))
5369 (list "/bin" "/share/man/man1" "/share/man/man5"))
5370 (apply invoke "make" "sysinstall" make-flags)))))))
5371 (inputs
8394619b 5372 (list ncurses))
ac886034
AI
5373 (native-inputs
5374 `(("groff" ,groff-minimal) ; for nroff
5375 ("util-linux" ,util-linux))) ; for col
5376 (home-page "https://github.com/bleskodev/siggen")
5377 (synopsis "Signal generation tools")
5378 (description "siggen is a set of tools for imitating a laboratory signal
5379generator, generating audio signals out of Linux's /dev/dsp audio
5380device. There is support for mono and/or stereo and 8 or 16 bit samples.")
5381 (license license:gpl2)))
77c9c5c1 5382
653bcab9 5383(define-public python-pysox
5384 ;; PyPi does not include the data folder containing audio files for testing.
5385 (let ((commit "3d0053381c24ae3490f759d4de87194b85789d36")
5386 (revision "0"))
5387 (package
5388 (name "python-pysox")
5389 (version (git-version "1.4.2" revision commit))
5390 (source
5391 (origin
5392 (method git-fetch)
5393 (uri (git-reference
5394 (url "https://github.com/rabitt/pysox")
5395 (commit commit)))
5396 (file-name (git-file-name name version))
5397 (sha256
5398 (base32
5399 "0i62jx92vfpcr2z7lp69yzqdi9idfs3pifl3rzm2akc2c4cr1mac"))))
5400 (build-system python-build-system)
5401 (arguments
5402 `(#:phases
5403 (modify-phases %standard-phases
5404 (add-after 'unpack 'patch-sox
5405 (lambda* (#:key inputs #:allow-other-keys)
5406 (let* ((sox-store-path (assoc-ref inputs "sox"))
5407 (sox-bin (string-append sox-store-path "/bin/sox")))
5408 (substitute* "sox/__init__.py"
5409 (("sox -h")
5410 (string-append sox-bin " -h")))
5411 (substitute* "sox/core.py"
5412 (("\\['sox")
5413 (string-append "['" sox-bin))))))
5414 (replace 'check
5415 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
5416 (when tests?
5417 (add-installed-pythonpath inputs outputs)
5418 (invoke "pytest")))))))
5419 (propagated-inputs
8394619b 5420 (list python-numpy python-typing-extensions))
653bcab9 5421 (native-inputs
8394619b 5422 (list sox python-pytest python-pytest-cov python-soundfile))
653bcab9 5423 (home-page "https://github.com/rabitt/pysox")
5424 (synopsis "Python wrapper around SoX")
5425 (description "@code{python-pysox} is a wrapper around the @command{sox}
5426command line tool. The API offers @code{Transformer} and @code{Combiner}
5427classes that allow the user to incrementally build up effects and audio
5428manipulations. @code{python-pysox} also provides methods for querying audio
5429information such as sample rate, determining whether an audio file is silent,
5430and much more.")
5431 (license license:bsd-3))))
5432
b615790a 5433(define-public python-resampy
5434 (package
5435 (name "python-resampy")
5436 (version "0.2.2")
5437 (source
5438 (origin
5439 (method git-fetch)
5440 (uri
5441 (git-reference
5442 ;; PyPi does not include tests.
5443 (url "https://github.com/bmcfee/resampy")
5444 (commit version)))
5445 (file-name (git-file-name name version))
5446 (sha256
5447 (base32 "0qmkxl5sbgh0j73n667vyi7ywzh09iaync91yp1j5rrcmwsn0qfs"))))
5448 (build-system python-build-system)
5449 (arguments
5450 '(#:phases
5451 (modify-phases %standard-phases
5452 (replace 'check
5453 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
5454 (when tests?
5455 (add-installed-pythonpath inputs outputs)
5456 (invoke "pytest" "tests")))))))
5457 (propagated-inputs
5458 (list python-numba python-numpy python-scipy python-six))
5459 (native-inputs
5460 (list python-pytest python-pytest-cov))
5461 (home-page "https://github.com/bmcfee/resampy")
5462 (synopsis "Efficient signal resampling")
5463 (description
5464 "@code{python-resampy} implements the band-limited sinc interpolation
5465method for sampling rate conversion as described by Julius O. Smith at the
5466@url{https://ccrma.stanford.edu/~jos/resample/, Digital Audio Resampling
5467Home Page}.")
5468 (license license:isc)))
2f0107d8 5469
5470(define-public python-librosa
5471 (package
5472 (name "python-librosa")
5473 (version "0.8.1")
5474 (source
5475 (origin
5476 (method url-fetch)
5477 (uri (pypi-uri "librosa" version))
5478 (sha256
5479 (base32 "1cx6rhcvak0hy6bx84jwzpxmwgi92m82w77279akwjmfd3khagf5"))))
5480 (build-system python-build-system)
5481 (arguments
5482 ;; Tests require internet connection to download MATLAB scripts for
5483 ;; generating the testing data.
5484 `(#:tests? #f))
5485 (propagated-inputs
5486 (list python-audioread
5487 python-decorator
5488 python-joblib
5489 python-numba
5490 python-numpy
5491 python-packaging
5492 python-pooch
5493 python-resampy
5494 python-scikit-learn
5495 python-scipy
5496 python-soundfile))
5497 (home-page "https://librosa.org")
5498 (synopsis "Python module for audio and music processing")
5499 (description
5500 "@code{librosa} is a python package for music and audio analysis. It
5501provides the building blocks necessary to create music information retrieval
5502systems.")
5503 (license license:isc)))
b615790a 5504
77c9c5c1
TW
5505(define-public mda-lv2
5506 (package
5507 (name "mda-lv2")
5508 (version "1.2.6")
5509 (source
5510 (origin
5511 (method url-fetch)
5512 (uri (string-append "http://download.drobilla.net/mda-lv2-"
5513 version ".tar.bz2"))
5514 (sha256
5515 (base32 "1nspk2j11l65m5r9z5isw8j749vh9a89wgx8mkrrq15f4iq12rnd"))))
5516 (build-system waf-build-system)
5517 (arguments
5518 `(#:tests? #f ; There are no tests.
5519 #:configure-flags
5520 (list (string-append "--prefix="
5521 (assoc-ref %outputs "out")))))
5522 (inputs
8394619b 5523 (list lv2))
77c9c5c1 5524 (native-inputs
8394619b 5525 (list pkg-config))
77c9c5c1
TW
5526 (native-search-paths
5527 (list (search-path-specification
5528 (variable "LV2_PATH")
5529 (files '("lib/lv2")))))
5530 (home-page "https://drobilla.net/software/mda-lv2")
5531 (synopsis "Audio plug-in pack for LV2")
5532 (description
5533 "MDA-LV2 is an LV2 port of the MDA plugins. It includes effects and a few
5534instrument plugins.")
5535 (license license:gpl3+)))