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