gnu: Add freeorion
[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>
dcfa0acd 20;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
b06966b4 21;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
17098a49 22;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
ea3510f8 23;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
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"
4ab9ad1e 177 "--enable-avcodec")
d55f912a
RW
178 #:python ,python-2))
179 (inputs
180 `(("jack" ,jack-1)
d55f912a
RW
181 ("libsndfile" ,libsndfile)
182 ("libsamplerate" ,libsamplerate)
4ab9ad1e
KK
183 ("fftwf" ,fftwf)
184 ("ffmpeg" ,ffmpeg))) ; for libavcodec
d55f912a
RW
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")
9a8aac16 716 (version "6.12.2")
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
9a8aac16 725 "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
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")
8949b640 1107 (version "2.0.5")
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
8949b640 1116 "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
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")
9062cf8c 2123 (version "0.5.8")
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
9062cf8c 2130 "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"))))
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")
55036ddc 2694 (version "2.1.1")
754a98ae
TUBK
2695 (source
2696 (origin
55036ddc
TGR
2697 (method git-fetch)
2698 (uri (git-reference
2699 (url "https://gitlab.com/soundtouch/soundtouch.git")
2700 (commit version)))
2701 (file-name (git-file-name name version))
754a98ae 2702 (sha256
55036ddc 2703 (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
754a98ae
TUBK
2704 (build-system gnu-build-system)
2705 (native-inputs
2706 `(("autoconf" ,autoconf)
2707 ("automake" ,automake)
2708 ("libtool" ,libtool)
2709 ("file" ,file)))
754a98ae
TUBK
2710 (home-page "http://www.surina.net/soundtouch/")
2711 (synopsis
2712 "Audio processing library for changing tempo, pitch and playback rate")
2713 (description
2714 "SoundTouch is an audio processing library for changing the tempo, pitch
2715and playback rates of audio streams or audio files. It is intended for
2716application developers writing sound processing tools that require tempo/pitch
2717control functionality, or just for playing around with the sound effects.")
2718 (license license:lgpl2.1+)))
4bddd14c 2719
d739f481
AK
2720(define-public sox
2721 (package
2722 (name "sox")
2723 (version "14.4.2")
2724 (source (origin
2725 (method url-fetch)
de67e922
LF
2726 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2727 name "-" version ".tar.bz2"))
d739f481
AK
2728 (sha256
2729 (base32
2730 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2731 (build-system gnu-build-system)
2732 (arguments
2733 '(#:configure-flags
2734 ;; The upstream asks to identify the distribution to diagnose SoX
2735 ;; bug reports.
2736 '("--with-distro=Guix System Distribution")))
2737 (native-inputs
2738 `(("pkg-config" ,pkg-config)))
2739 (inputs
2740 `(("alsa-lib" ,alsa-lib)
2741 ("ao" ,ao)
2742 ("flac" ,flac)
2743 ("lame" ,lame)
2744 ("libid3tag" ,libid3tag)
2745 ("libltdl" ,libltdl)
2746 ("libmad" ,libmad)
2747 ("libpng" ,libpng)
2748 ("libvorbis" ,libvorbis)
2749 ("pulseaudio" ,pulseaudio)))
2750 (home-page "http://sox.sourceforge.net")
2751 (synopsis "Sound processing utility")
2752 (description
2753 "SoX (Sound eXchange) is a command line utility that can convert
2754various formats of computer audio files to other formats. It can also
2755apply various effects to these sound files, and, as an added bonus, SoX
2756can play and record audio files.")
2757 ;; sox.c is distributed under GPL, while the files that make up
2758 ;; libsox are licensed under LGPL.
2759 (license (list license:gpl2+ license:lgpl2.1+))))
2760
4bddd14c
TUBK
2761(define-public soxr
2762 (package
2763 (name "soxr")
9e9a211f 2764 (version "0.1.3")
4bddd14c
TUBK
2765 (source
2766 (origin
2767 (method url-fetch)
2768 (uri
2769 (string-append "mirror://sourceforge/soxr/soxr-" version
2770 "-Source.tar.xz"))
2771 (sha256
9e9a211f 2772 (base32 "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di"))))
4bddd14c
TUBK
2773 (build-system cmake-build-system)
2774 (arguments '(#:tests? #f)) ;no 'check' target
3b3b60d0 2775 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
4bddd14c
TUBK
2776 (synopsis "One-dimensional sample-rate conversion library")
2777 (description
2778 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2779conversion. It may be used, for example, to resample PCM-encoded audio.")
2780 (license license:lgpl2.1+)))
49f36708
TUBK
2781
2782(define-public twolame
2783 (package
2784 (name "twolame")
2785 (version "0.3.13")
2786 (source
2787 (origin
2788 (method url-fetch)
de67e922
LF
2789 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2790 "/twolame-" version ".tar.gz"))
49f36708 2791 (sha256
46914280
LF
2792 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))
2793 (modules '((guix build utils)))
2794 ;; The tests break with Perl 5.24:
2795 ;; https://github.com/njh/twolame/issues/21
2796 ;; TODO: Remove this snippet when upgrading twolame.
2797 (snippet
2798 '(begin
2799 (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])"))
2800 #t))))
49f36708
TUBK
2801 (build-system gnu-build-system)
2802 (inputs
2803 `(("libsndfile" ,libsndfile)))
2804 (native-inputs
2805 `(("perl" ,perl)
2806 ("which" ,which))) ;used in tests/test.pl
2807 (home-page "http://www.twolame.org/")
2808 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2809 (description
2810 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2811tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2812portions of LAME.")
2813 (license license:lgpl2.1+)))
bd4464f2
TUBK
2814
2815(define-public portaudio
2816 (package
2817 (name "portaudio")
80420acb 2818 (version "190600.20161030")
bd4464f2
TUBK
2819 (source
2820 (origin
2821 (method url-fetch)
2822 (uri (string-append
2823 "http://www.portaudio.com/archives/pa_stable_v"
2824 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2825 ".tgz"))
2826 (sha256
80420acb 2827 (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
fc1adab1 2828 (patches (search-patches "portaudio-audacity-compat.patch"))))
bd4464f2
TUBK
2829 (build-system gnu-build-system)
2830 (inputs
2831 ;; TODO: Add ASIHPI.
2832 `(("alsa-lib" ,alsa-lib)
bcbc02fd 2833 ("jack" ,jack-1)))
cdb4048d
RW
2834 ;; Autoreconf is necessary because the audacity-compat patch modifies .in
2835 ;; files.
bd4464f2 2836 (native-inputs
b47be021
TUBK
2837 `(("autoconf" ,autoconf)
2838 ("automake" ,automake)
2839 ("libtool" ,libtool)
2840 ("pkg-config" ,pkg-config)))
86fded86
RW
2841 (arguments
2842 '(#:tests? #f ;no 'check' target
2843 #:configure-flags '("--with-pic")
2844 #:phases
2845 (modify-phases %standard-phases
2846 ;; This is needed for linking the static libraries
2847 (add-after 'unpack 'build-only-position-independent-code
2848 (lambda _
2849 (substitute* "configure.in"
2850 (("AC_PROG_LIBTOOL" m)
2851 (string-append m "\nAM_PROG_AR\nLT_INIT([pic-only])")))
2852 (delete-file "configure")
2853 #t))
2854 ;; Some headers are not installed by default, but are needed by
2855 ;; packages like Kaldi.
2856 (add-after 'install 'install-missing-headers
2857 (lambda* (#:key outputs #:allow-other-keys)
2858 (install-file "src/common/pa_ringbuffer.h"
2859 (string-append (assoc-ref outputs "out") "/include"))
2860 #t)))))
bd4464f2
TUBK
2861 (home-page "http://www.portaudio.com/")
2862 (synopsis "Audio I/O library")
2863 (description
2864 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2865to record and/or play sound using a callback function or a blocking read/write
2866interface.")
2867 (license license:expat)))
74bbf894 2868
fe73aef4
RW
2869(define-public qsynth
2870 (package
2871 (name "qsynth")
9043c1c5 2872 (version "0.5.6")
fe73aef4
RW
2873 (source
2874 (origin
2875 (method url-fetch)
de67e922
LF
2876 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2877 "/qsynth-" version ".tar.gz"))
fe73aef4 2878 (sha256
9043c1c5 2879 (base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
fe73aef4
RW
2880 (build-system gnu-build-system)
2881 (arguments
599a88cc 2882 `(#:tests? #f ; no "check" phase
f2358305
DC
2883 #:configure-flags
2884 '("CXXFLAGS=-std=gnu++11")))
598f6394 2885 (native-inputs
4ed4bb11
RW
2886 `(("qttools" ,qttools)
2887 ("pkg-config" ,pkg-config)))
fe73aef4 2888 (inputs
598f6394
DC
2889 `(("fluidsynth" ,fluidsynth)
2890 ("qtbase" ,qtbase)
2891 ("qtx11extras" ,qtx11extras)))
fe73aef4
RW
2892 (home-page "http://qsynth.sourceforge.net")
2893 (synopsis "Graphical user interface for FluidSynth")
2894 (description
2895 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2896synthesizer written in C++.")
2897 (license license:gpl2+)))
2898
55b596c3
TUBK
2899(define-public rsound
2900 (package
2901 (name "rsound")
2902 (version "1.1")
2903 (source
2904 (origin
458baefb
RW
2905 (method git-fetch)
2906 (uri (git-reference
2907 (url "https://github.com/Themaister/RSound.git")
2908 (commit (string-append "v" version))))
2909 (file-name (git-file-name name version))
55b596c3 2910 (sha256
458baefb 2911 (base32 "0gspmr3klwnq98h17p5hc6ifygya4p80g4g8r7a1qavm3mv19waf"))))
55b596c3
TUBK
2912 (build-system gnu-build-system)
2913 (inputs
2914 `(("alsa-lib" ,alsa-lib)
276f49df 2915 ("jack" ,jack-1)
55b596c3
TUBK
2916 ("ao" ,ao)
2917 ("libsamplerate" ,libsamplerate)
2918 ("openal" ,openal)
2919 ("portaudio" ,portaudio)
2920 ("pulseaudio" ,pulseaudio)))
2921 (arguments
2922 '(#:phases
dc1d3cde
KK
2923 (modify-phases %standard-phases
2924 (replace 'configure
2925 (lambda* (#:key outputs #:allow-other-keys)
2926 (setenv "CC" "gcc")
c3d14484
TGR
2927 (invoke "./configure"
2928 (string-append "--prefix=" (assoc-ref outputs "out"))))))
55b596c3
TUBK
2929 ;; No 'check' target.
2930 #:tests? #f))
2931 (home-page "http://themaister.net/rsound.html")
2932 (synopsis "Networked audio system")
2933 (description
2934 "RSound allows you to send audio from an application and transfer it
2935directly to a different computer on your LAN network. It is an audio daemon
2936with a much different focus than most other audio daemons.")
2937 (license license:gpl3+)))
2938
caf9055c
RW
2939(define-public xjackfreak
2940 (package
2941 (name "xjackfreak")
2942 (version "1.0")
2943 (source (origin
8e5995e3
RW
2944 (method git-fetch)
2945 (uri (git-reference
2946 (url "https://github.com/johnhldavis/xjackfreak.git")
2947 (commit (string-append "v" version))))
2948 (file-name (git-file-name name version))
caf9055c
RW
2949 (sha256
2950 (base32
8e5995e3 2951 "18c546qidbrj0f5wfiq5llii2192xpln0ab3r4vpr7i3wybxqjfz"))))
caf9055c
RW
2952 (build-system gnu-build-system)
2953 (arguments
2954 `(#:make-flags
2955 (list (string-append "docdir=" (assoc-ref %outputs "out")
2956 "/share/doc/xjackfreak"))))
2957 (inputs
2958 `(("jack" ,jack-1)
2959 ("libx11" ,libx11)
2960 ("libxt" ,libxt)
2961 ("libxext" ,libxext)))
2962 (native-inputs
2963 `(("pkg-config" ,pkg-config)))
2964 (home-page "https://github.com/johnhldavis/xjackfreak")
2965 (synopsis "JACK audio frequency analyzer and display")
2966 (description
2967 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2968Connection Kit. It can display the FFT of any input, modify it and output the
2969result.")
2970 (license license:gpl3+)))
2971
d73f7909
RW
2972(define-public zita-convolver
2973 (package
2974 (name "zita-convolver")
2975 (version "3.1.0")
2976 (source (origin
2977 (method url-fetch)
2978 (uri (string-append
2979 "http://kokkinizita.linuxaudio.org"
2980 "/linuxaudio/downloads/zita-convolver-"
2981 version ".tar.bz2"))
29e255ca
SB
2982 (snippet
2983 ;; Don't optimize for a specific processor architecture.
6cbee49d
MW
2984 '(begin
2985 (substitute* "libs/Makefile"
2986 (("^CXXFLAGS \\+= -march=native") ""))
2987 #t))
29e255ca 2988 (modules '((guix build utils)))
d73f7909
RW
2989 (sha256
2990 (base32
2991 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2992 (build-system gnu-build-system)
2993 (arguments
2994 `(#:tests? #f ; no "check" target
2995 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2996 #:phases
dc1d3cde
KK
2997 (modify-phases %standard-phases
2998 (add-after 'unpack 'patch-makefile-and-enter-directory
2999 (lambda _
3000 (substitute* "libs/Makefile"
3001 (("ldconfig") "true")
3002 (("^LIBDIR =.*") "LIBDIR = lib\n"))
ee527187
MW
3003 (chdir "libs")
3004 #t))
4f27a333
MB
3005 (add-after 'install 'install-symlink
3006 (lambda _
3007 (symlink "libzita-convolver.so"
3008 (string-append (assoc-ref %outputs "out")
ee527187
MW
3009 "/lib/libzita-convolver.so.3"))
3010 #t))
d73f7909 3011 ;; no configure script
4f27a333 3012 (delete 'configure))))
d73f7909 3013 (inputs `(("fftwf" ,fftwf)))
4817bb92 3014 (home-page "https://kokkinizita.linuxaudio.org")
d73f7909
RW
3015 (synopsis "Fast, partitioned convolution engine library")
3016 (description
3017 "Zita convolver is a C++ library providing a real-time convolution
3018engine.")
3019 (license license:gpl3+)))
3020
b7ed6784
RW
3021(define-public zita-resampler
3022 (package
3023 (name "zita-resampler")
3024 (version "1.3.0")
3025 (source (origin
3026 (method url-fetch)
3027 (uri (string-append
3028 "http://kokkinizita.linuxaudio.org"
3029 "/linuxaudio/downloads/zita-resampler-"
3030 version ".tar.bz2"))
6dff4955
SB
3031 (snippet
3032 ;; Don't optimize for a specific processor architecture.
6cbee49d
MW
3033 '(begin
3034 (substitute* '("apps/Makefile" "libs/Makefile")
3035 (("^CXXFLAGS \\+= -march=native") ""))
3036 #t))
6dff4955 3037 (modules '((guix build utils)))
b7ed6784
RW
3038 (sha256
3039 (base32
3040 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
3041 (build-system gnu-build-system)
3042 (arguments
3043 `(#:tests? #f ; no "check" target
3044 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3045 #:phases
3046 (modify-phases %standard-phases
3047 (add-after
3048 'unpack 'patch-makefile-and-enter-directory
3049 (lambda _
3050 (substitute* "libs/Makefile"
3051 (("ldconfig") "true")
3052 (("^LIBDIR =.*") "LIBDIR = lib\n"))
3053 (chdir "libs")
3054 #t))
3055 (add-after
3056 'install 'install-symlink
3057 (lambda _
3058 (symlink "libzita-resampler.so"
3059 (string-append (assoc-ref %outputs "out")
ee527187
MW
3060 "/lib/libzita-resampler.so.1"))
3061 #t))
b7ed6784
RW
3062 ;; no configure script
3063 (delete 'configure))))
4817bb92 3064 (home-page "https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
b7ed6784
RW
3065 (synopsis "C++ library for resampling audio signals")
3066 (description
3067 "Libzita-resampler is a C++ library for resampling audio signals. It is
3068designed to be used within a real-time processing context, to be fast, and to
3069provide high-quality sample rate conversion.")
3070 (license license:gpl3+)))
3071
74bbf894
RW
3072(define-public zita-alsa-pcmi
3073 (package
3074 (name "zita-alsa-pcmi")
3075 (version "0.2.0")
3076 (source (origin
3077 (method url-fetch)
3078 (uri (string-append
3079 "http://kokkinizita.linuxaudio.org"
3080 "/linuxaudio/downloads/zita-alsa-pcmi-"
3081 version ".tar.bz2"))
3082 (sha256
3083 (base32
9569dfc8 3084 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
3085 (build-system gnu-build-system)
3086 (arguments
3087 `(#:tests? #f ; no "check" target
3088 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3089 #:phases
dc1d3cde
KK
3090 (modify-phases %standard-phases
3091 (add-after 'unpack 'patch-makefile-and-enter-directory
3092 (lambda _
3093 (substitute* "libs/Makefile"
3094 (("ldconfig") "true")
3095 (("^LIBDIR =.*") "LIBDIR = lib\n"))
3096 (chdir "libs")
3097 #t))
3098 (add-after 'install 'install-symlink
3099 (lambda _
3100 (symlink "libzita-alsa-pcmi.so"
3101 (string-append (assoc-ref %outputs "out")
ee527187
MW
3102 "/lib/libzita-alsa-pcmi.so.0"))
3103 #t))
dc1d3cde
KK
3104 ;; no configure script
3105 (delete 'configure))))
74bbf894
RW
3106 (inputs
3107 `(("alsa-lib" ,alsa-lib)
3108 ("fftw" ,fftw)))
4817bb92 3109 (home-page "https://kokkinizita.linuxaudio.org")
74bbf894
RW
3110 (synopsis "C++ wrapper around the ALSA API")
3111 (description
3112 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
3113access to ALSA PCM devices, taking care of the many functions required to
3114open, initialise and use a hw: device in mmap mode, and providing floating
3115point audio data.")
3116 (license license:gpl3+)))
6da16993
LF
3117
3118(define-public cuetools
3119 (package
3120 (name "cuetools")
3121 (version "1.4.1")
3122 (source (origin
4289a306
RW
3123 (method git-fetch)
3124 (uri (git-reference
3125 (url "https://github.com/svend/cuetools.git")
3126 (commit version)))
3127 (file-name (git-file-name name version))
6da16993
LF
3128 (sha256
3129 (base32
4289a306 3130 "02ksv1ahf1v4cr2xbclsfv5x17m9ivzbssb5r8xjm97yh8a7spa3"))))
6da16993 3131 (build-system gnu-build-system)
4289a306 3132 ;; The source checkout is not bootstrapped.
6da16993
LF
3133 (native-inputs
3134 `(("autoconf" ,autoconf)
3135 ("automake" ,automake)
3136 ("flex" ,flex)
3137 ("bison" ,bison)))
3138 (synopsis "Cue and toc file parsers and utilities")
3139 (description "Cuetools is a set of programs that are useful for manipulating
3140and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
3141files are a way to represent the layout of a data or audio CD in a
3142machine-readable ASCII format.")
3143 (home-page "https://github.com/svend/cuetools")
3144 (license license:gpl2+)))
6819a8dd
LF
3145
3146(define-public shntool
3147 (package
3148 (name "shntool")
3149 (version "3.0.10")
3150 (source (origin
3151 (method url-fetch)
3152 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
3153 "shntool-" version ".tar.gz"))
3154 (sha256
3155 (base32
3156 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
3157 (build-system gnu-build-system)
3158 (synopsis "WAVE audio data processing tool")
3159 (description "shntool is a multi-purpose WAVE data processing and reporting
3160utility. File formats are abstracted from its core, so it can process any file
3161that contains WAVE data, compressed or not---provided there exists a format
d5b357ec
LF
3162module to handle that particular file type. It can also generate CUE files, and
3163use them split WAVE data into multiple files.")
6819a8dd 3164 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
3165 ;; 'install-sh' bears the x11 license
3166 (license (list license:gpl2+ license:x11))))
680b54c5
DT
3167
3168(define-public dcadec
3169 (package
3170 (name "dcadec")
3171 (version "0.2.0")
3172 (source (origin
b249ff5d
RW
3173 (method git-fetch)
3174 (uri (git-reference
3175 (url "https://github.com/foo86/dcadec.git")
3176 (commit (string-append "v" version))))
3177 (file-name (git-file-name name version))
680b54c5
DT
3178 (sha256
3179 (base32
b249ff5d 3180 "07nd0ajizrp1w02bsyfcv18431r8m8rq8gjfmz9wmckpg7cxj2hs"))))
680b54c5
DT
3181 (build-system gnu-build-system)
3182 (arguments
3183 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
3184 '(#:tests? #f
3185 #:make-flags
3186 (list "CC=gcc"
3187 ;; Build shared library.
3188 "CONFIG_SHARED=1"
3189 (string-append "PREFIX=" (assoc-ref %outputs "out"))
3190 ;; Set proper runpath.
3191 (string-append "LDFLAGS=-Wl,-rpath="
3192 (assoc-ref %outputs "out")
3193 "/lib"))
3194 #:phases
3195 (modify-phases %standard-phases
3196 ;; No configure script, just a hand-written Makefile.
3197 (delete 'configure))))
3198 (synopsis "DTS Coherent Acoustics decoder")
3199 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
3200with support for HD extensions.")
3201 (home-page "https://github.com/foo86/dcadec")
3202 (license license:lgpl2.1+)))
e87c7ec2
AG
3203
3204(define-public bs1770gain
3205 (package
3206 (name "bs1770gain")
cf0913f6 3207 (version "0.5.2")
e87c7ec2
AG
3208 (source
3209 (origin
3210 (method url-fetch)
3211 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
3212 version "/bs1770gain-" version ".tar.gz"))
3213 (sha256
3214 (base32
17098a49
LF
3215 "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk"))
3216 (modules '((guix build utils)))
3217 (snippet
3218 '(begin
3219 ;; XXX
3220 (substitute* "bs1770gain/bs1770gain.c"
3221 (("\"N.*\"") "\"\""))
3222 (substitute* "configure"
3223 (("URL=.*$")
3224 "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html\n"))))))
e87c7ec2
AG
3225 (build-system gnu-build-system)
3226 (inputs `(("ffmpeg" ,ffmpeg)
3227 ("sox" ,sox)))
17098a49 3228 (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
e87c7ec2
AG
3229 (synopsis "Tool to adjust loudness of media files")
3230 (description
3231 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
3232flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
3233loudness of audio and video files to the same level.")
3234 (license license:gpl2+)))
eb64bde1
EE
3235
3236(define-public filteraudio
3237 (let ((revision "1")
3238 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
3239 (package
3240 (name "filteraudio")
3241 (version (string-append "0.0.0-" revision "."
3242 (string-take commit 7)))
3243 (source
3244 (origin
3245 (method git-fetch)
3246 (uri (git-reference
3247 (url "https://github.com/irungentoo/filter_audio.git")
3248 (commit commit)))
3249 (file-name (string-append name "-" version "-checkout"))
3250 (sha256
3251 (base32
3252 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
3253 (build-system gnu-build-system)
3254 (arguments
3255 '(#:make-flags (list (string-append "PREFIX=" %output)
3256 "CC=gcc")
3257 #:tests? #f ; No tests
3258 #:phases
3259 (modify-phases %standard-phases
3260 ;; No configure script
3261 (delete 'configure))))
3262 (synopsis "Lightweight audio filtering library")
3263 (description "An easy to use audio filtering library made from webrtc
3264code, used in @code{libtoxcore}.")
3265 (home-page "https://github.com/irungentoo/filter_audio")
3266 (license license:bsd-3))))
9a4c032c
LG
3267
3268(define-public gsm
3269 (package
3270 (name "gsm")
aabe29af 3271 (version "1.0.18")
9a4c032c
LG
3272 (source
3273 (origin
3274 (method url-fetch)
3275 (uri
3276 (string-append "http://www.quut.com/" name "/" name
3277 "-" version ".tar.gz"))
3278 (sha256
3279 (base32
aabe29af 3280 "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"))))
9a4c032c
LG
3281 (build-system gnu-build-system)
3282 (arguments
3283 `(#:test-target "tst"
3284 #:phases
3285 (modify-phases %standard-phases
3286 (add-before 'install 'pre-install
3287 (lambda _
3288 (let ((out (assoc-ref %outputs "out")))
3289 (substitute* "Makefile"
3290 (("INSTALL_ROOT\t=")
3291 (string-append "INSTALL_ROOT\t=\t" out)))
3292 (mkdir-p (string-append out "/inc"))
3293 (mkdir-p (string-append out "/man"))
3294 (mkdir-p (string-append out "/man/man1"))
3295 (mkdir-p (string-append out "/man/man3"))
3296 (mkdir-p (string-append out "/bin"))
ee527187
MW
3297 (mkdir-p (string-append out "/lib")))
3298 #t))
9a4c032c
LG
3299 (add-after 'install 'post-install
3300 (lambda _
3301 (let ((out (assoc-ref %outputs "out")))
3302 (rename-file (string-append out "/inc")
3303 (string-append out "/include"))
3304 (mkdir-p (string-append out "/include/gsm"))
3305 (copy-recursively "inc"
ee527187
MW
3306 (string-append out "/include/gsm")))
3307 #t))
aabe29af 3308 (delete 'configure)))) ; no configure script
9a4c032c
LG
3309 (synopsis "GSM 06.10 lossy speech compression library")
3310 (description "This C library provides an encoder and a decoder for the GSM
331106.10 RPE-LTP lossy speech compression algorithm.")
3312 (home-page "http://quut.com/gsm/")
3313 (license (license:non-copyleft "file://COPYRIGHT"))))
84d9abe4
DM
3314
3315(define-public python-pyalsaaudio
3316 (package
3317 (name "python-pyalsaaudio")
3318 (version "0.8.4")
3319 (source (origin
3320 (method url-fetch)
3321 (uri (pypi-uri "pyalsaaudio" version))
3322 (sha256
3323 (base32
3324 "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
3325 (build-system python-build-system)
3326 (arguments
3327 `(#:tests? #f)) ; tests require access to ALSA devices.
3328 (inputs
3329 `(("alsa-lib" ,alsa-lib)))
3330 (home-page "http://larsimmisch.github.io/pyalsaaudio/")
3331 (synopsis "ALSA wrappers for Python")
3332 (description
3333 "This package contains wrappers for accessing the ALSA API from Python.
3334It is currently fairly complete for PCM devices, and has some support for
3335mixers.")
3336 (license license:psfl)))
3337
3338(define-public python2-pyalsaaudio
3339 (package-with-python2 python-pyalsaaudio))
d0c8e524 3340
dba33ca3
RW
3341(define-public bluez-alsa
3342 (package
3343 (name "bluez-alsa")
3344 (version "1.2.0")
3345 (source (origin
3346 ;; The tarballs are mere snapshots and don't contain a
3347 ;; bootstrapped build system.
3348 (method git-fetch)
3349 (uri (git-reference
3350 (url "https://github.com/Arkq/bluez-alsa.git")
3351 (commit (string-append "v" version))))
1fa37d1b 3352 (file-name (string-append name "-" version "-checkout"))
dba33ca3
RW
3353 (sha256
3354 (base32
3355 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
3356 (build-system gnu-build-system)
dba33ca3
RW
3357 (native-inputs
3358 `(("autoconf" ,autoconf)
3359 ("automake" ,automake)
3360 ("libtool" ,libtool)
3361 ("pkg-config" ,pkg-config)))
3362 (inputs
3363 `(("alsa-lib" ,alsa-lib)
3364 ("bluez" ,bluez)
3365 ("glib" ,glib)
3366 ("libbsd" ,libbsd)
3367 ("ncurses" ,ncurses)
3368 ("ortp" ,ortp)
3369 ("sbc" ,sbc)))
3370 (home-page "https://github.com/Arkq/bluez-alsa")
3371 (synopsis "Bluetooth ALSA backend")
3372 (description "This project is a rebirth of a direct integration between
3373Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
3374in favor of 3rd party audio applications. From now on, Bluez acts as a
3375middleware between an audio application, which implements Bluetooth audio
3376profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
3377audio profiles in Bluez, so in theory every Bluetooth device (with audio
3378capabilities) can be connected. In order to access the audio stream, one has
3379to connect to the ALSA PCM device called @code{bluealsa}. The device is based
3380on the ALSA software PCM plugin.")
3381 (license license:expat)))
3382
d0c8e524
SB
3383(define-public snd
3384 (package
3385 (name "snd")
b24ada51 3386 (version "19.3")
d0c8e524
SB
3387 (source (origin
3388 (method url-fetch)
3389 (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
3390 "snd-" version ".tar.gz"))
3391 (sha256
3392 (base32
b24ada51 3393 "16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
d0c8e524
SB
3394 (build-system glib-or-gtk-build-system)
3395 (arguments
4ae9274a 3396 `(#:tests? #f ; no tests
d0c8e524
SB
3397 #:out-of-source? #f ; for the 'install-doc' phase
3398 #:configure-flags
3399 (let* ((out (assoc-ref %outputs "out"))
3400 (docdir (string-append out "/share/doc/snd")))
3401 (list "--with-alsa" "--with-jack" "--with-gmp"
3402 (string-append "--with-doc-dir=" docdir)))
3403 #:phases
3404 (modify-phases %standard-phases
3405 (add-after 'install 'install-doc
3406 (lambda* (#:key outputs #:allow-other-keys)
3407 (let* ((out (assoc-ref outputs "out"))
4ae9274a
TGR
3408 (doc (string-append out "/share/doc/"
3409 ,name "-" ,version)))
d0c8e524
SB
3410 (for-each
3411 (lambda (f)
4ae9274a 3412 (install-file f doc))
d0c8e524 3413 (find-files "." "\\.html$|COPYING"))
4ae9274a 3414 (copy-recursively "pix" (string-append doc "/pix"))
d0c8e524
SB
3415 #t))))))
3416 (native-inputs
3417 `(("pkg-config" ,pkg-config)))
3418 (inputs
3419 `(("alsa-lib" ,alsa-lib)
3420 ("fftw" ,fftw)
3421 ("flac" ,flac)
3422 ("gmp" ,gmp)
3423 ("gsl" ,gsl)
3424 ("gtk+" ,gtk+)
3425 ("jack" ,jack-1)
3426 ("libsamplerate" ,libsamplerate)
3427 ("mpc" ,mpc)
3428 ("mpfr" ,mpfr)
3429 ("mpg123" ,mpg123)
3430 ("speex" ,speex)
3431 ("timidity++" ,timidity++)
3432 ("vorbis-tools" ,vorbis-tools)
3433 ("wavpack" ,wavpack)))
3434 (synopsis "Sound editor")
3435 (home-page "https://ccrma.stanford.edu/software/snd/")
3436 (description
3437 "Snd is a sound editor modelled loosely after Emacs. It can be
3438customized and extended using either the s7 Scheme implementation (included in
3439the Snd sources), Ruby, or Forth.")
3440 (license (license:non-copyleft "file://COPYING"))))
adedbe95 3441
cf31d5e1
RW
3442(define-public noise-repellent
3443 (package
3444 (name "noise-repellent")
3445 (version "0.1.4")
3446 (source (origin
3447 (method git-fetch)
3448 (uri (git-reference
3449 (url "https://github.com/lucianodato/noise-repellent.git")
3450 (commit version)))
3451 (file-name (string-append name "-" version "-checkout"))
3452 (sha256
3453 (base32
3454 "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
3455 (build-system gnu-build-system)
3456 (arguments
3457 `(#:make-flags
3458 (list "CC=gcc"
3459 (string-append "PREFIX=" (assoc-ref %outputs "out")))
3460 #:tests? #f ; there are none
3461 #:phases
3462 (modify-phases %standard-phases
3463 (delete 'configure))))
3464 (inputs
3465 `(("lv2" ,lv2)
3466 ("fftwf" ,fftwf)))
3467 (native-inputs
3468 `(("pkg-config" ,pkg-config)))
3469 (home-page "https://github.com/lucianodato/noise-repellent")
3470 (synopsis "LV2 plugin for broadband noise reduction")
3471 (description "Noise Repellent is an LV2 plugin to reduce noise. It has
3472the following features:
3473
3474@enumerate
3475@item Spectral gating and spectral subtraction suppression rule
3476@item Adaptive and manual noise thresholds estimation
3477@item Adjustable noise floor
3478@item Adjustable offset of thresholds to perform over-subtraction
3479@item Time smoothing and a masking estimation to reduce artifacts
3480@item Basic onset detector to avoid transients suppression
3481@item Whitening of the noise floor to mask artifacts and to recover higher
3482 frequencies
3483@item Option to listen to the residual signal
3484@item Soft bypass
3485@item Noise profile saved with the session
3486@end enumerate
3487")
3488 (license license:lgpl3+)))
3489
adedbe95
OP
3490(define-public cli-visualizer
3491 (package
3492 (name "cli-visualizer")
3493 (version "1.6")
3494 (source
3495 (origin
c2a2d364
RW
3496 (method git-fetch)
3497 (uri (git-reference
3498 (url "https://github.com/dpayne/cli-visualizer.git")
3499 (commit version)))
3500 (file-name (git-file-name name version))
adedbe95
OP
3501 (sha256
3502 (base32
c2a2d364 3503 "0mirp8bk398di5xyq95iprmdyvplfghxqmrfj7jdnpy554vx7ppc"))))
adedbe95
OP
3504 (build-system gnu-build-system)
3505 (native-inputs
3506 `(("which" ,which)))
3507 (inputs
3508 `(("fftw" ,fftw)
3509 ("googletest" ,googletest)
3510 ("ncurses" ,ncurses)
3511 ("pulseaudio" ,pulseaudio)))
3512 (arguments
3513 '(#:test-target "test"
3514 #:make-flags
3515 (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
3516 #:phases
3517 (modify-phases %standard-phases
3518 (add-after 'unpack 'remove-sudo
3519 (lambda _
3520 (substitute* "install.sh" (("sudo") ""))
3521 #t))
3522 (add-before 'check 'set-check-environment
3523 (lambda _
3524 (setenv "CXX" "g++")
3525 (setenv "CC" "gcc")
3526 #t))
3527 (add-before 'install 'make-prefix
3528 (lambda _
3529 (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
3530 #t))
3531 (add-after 'install 'data
3532 (lambda _
3533 (for-each (lambda (file)
3534 (install-file file
3535 (string-append (assoc-ref %outputs "out")
3536 "/share/doc")))
3537 (find-files "examples"))
3538 #t)))))
3539 (home-page "https://github.com/dpayne/cli-visualizer/")
3540 (synopsis "Command-line audio visualizer")
3541 (description "@code{cli-visualizer} displays fast-Fourier
3542transforms (FFTs) of the sound being played, as well as other graphical
3543representations.")
3544 (license license:expat)))
c2c0d661
OP
3545
3546(define-public cava
3547 (package
3548 (name "cava")
042fa638 3549 (version "0.6.1")
c2c0d661 3550 (source (origin
a7fde1a8
RW
3551 (method git-fetch)
3552 (uri (git-reference
3553 (url "https://github.com/karlstav/cava.git")
3554 (commit version)))
3555 (file-name (git-file-name name version))
c2c0d661
OP
3556 (sha256
3557 (base32
a7fde1a8 3558 "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy"))))
c2c0d661
OP
3559 (build-system gnu-build-system)
3560 (native-inputs
3561 `(("autoconf" ,autoconf)
3562 ("automake" ,automake)
3563 ("libtool" ,libtool)))
3564 (inputs
3565 `(("fftw" ,fftw)
3566 ("ncurses" ,ncurses)
3567 ("pulseaudio" ,pulseaudio)))
3568 (arguments
3569 `(#:configure-flags
3570 (list (string-append "PREFIX=" %output)
3571 (string-append "FONT_DIR=" %output "/usr/share/consolefonts"))
3572 #:make-flags
3573 (let ((lib (string-append %output "/lib")))
3574 (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
3575 #:phases
3576 (modify-phases %standard-phases
189be331 3577 (replace 'bootstrap
c2c0d661
OP
3578 (lambda* (#:key outputs #:allow-other-keys)
3579 (setenv "HOME" (getcwd))
3580 (invoke "sh" "autogen.sh")))
3581 (add-before 'build 'make-cava-ldflags
3582 (lambda* (#:key outputs #:allow-other-keys)
ee527187
MW
3583 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
3584 #t))
c2c0d661
OP
3585 (add-after 'install 'data
3586 (lambda* (#:key outputs #:allow-other-keys)
3587 (for-each (lambda (file)
3588 (install-file file
3589 (string-append (assoc-ref outputs "out")
3590 "/share/doc/examples")))
ee527187
MW
3591 (find-files "example_files"))
3592 #t)))))
c2c0d661
OP
3593 (home-page "https://karlstav.github.io/cava/")
3594 (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
3595 (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
3596using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
3597 (license license:expat)))
9073c875 3598
3599(define-public fluid-3
3600 (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
3601 (package
3602 (name "fluid-3")
3603 (version "2.1")
3604 (source
3605 (origin
3606 (method url-fetch)
3607 ;; Only one file is required, but the release bundles the whole
3608 ;; software which is 50MiB as tar and 200MiB unpacked. The website
3609 ;; directly links the soundfont release to the github file download.
3610 (uri (string-append "https://github.com/musescore/MuseScore/raw/"
3611 commit "/share/sound/FluidR3Mono_GM.sf3"))
3612 (file-name (string-append name "-" version ".sf3"))
3613 (sha256
3614 (base32
3615 "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg"))))
3616 (build-system trivial-build-system)
3617 (arguments
3618 `(#:modules ((guix build utils))
3619 #:builder
3620 (begin
3621 (use-modules (guix build utils))
3622 (let ((file (assoc-ref %build-inputs "source"))
3623 (out (string-append %output "/share/soundfonts")))
3624 (mkdir-p out)
e3cfef22
MW
3625 (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))
3626 #t))))
9073c875 3627 (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
3628 (synopsis "Pro-quality GM soundfont")
3629 (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")
3630 (license license:expat))))
5c40a69f
LF
3631
3632(define-public libfdk
3633 (let ((commit "2326faaf8f2cdf2c3a9108ccdaf1d7551aec543e")
3634 (revision "0"))
3635 (package
3636 (name "libfdk")
3637 ;; The latest upstream revision, with many bug fixes.
3638 (version (git-version "0.1.6" revision commit))
3639 (source
3640 (origin
3641 (method git-fetch)
3642 (uri (git-reference
3643 (url "https://github.com/mstorsjo/fdk-aac")
3644 (commit commit)))
3645 (file-name (git-file-name name version))
3646 (sha256
3647 (base32
3648 "0yy6ndd9d61bwl283vl1r5kva2a4acc0f4r9g0sza156f2abr9ws"))))
3649 (build-system gnu-build-system)
3650 (native-inputs
3651 `(("autoconf" ,autoconf)
3652 ("automake" ,automake)
3653 ("libtool" ,libtool)))
3654 (home-page "https://github.com/mstorsjo/fdk-aac")
3655 (synopsis "Fraunhofer FDK AAC library")
3656 (description "FDK is a library for encoding and decoding Advanced Audio
3657Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of
3658Android. It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC
3659LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)
3660and AAC-ELD (enhanced low delay) for real-time communication. The encoding
3661library supports sample rates up to 96 kHz and up to eight channels (7.1
3662surround).")
3663 (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
3664 "https://www.gnu.org/licenses/license-list.html#fdk")))))
ef8517f2
EB
3665
3666(define-public libopenshot-audio
3667 (package
3668 (name "libopenshot-audio")
799298eb 3669 (version "0.1.8")
ef8517f2
EB
3670 (source (origin
3671 (method git-fetch)
3672 (uri (git-reference
3673 (url "https://github.com/OpenShot/libopenshot-audio")
3674 (commit (string-append "v" version))))
3675 (file-name (git-file-name name version))
3676 (sha256
3677 (base32
799298eb 3678 "1fvp6nmf30xzkmcznakh8dv5vn9d7nq051pqcqv638hsfppkmcrl"))))
ef8517f2
EB
3679 (build-system cmake-build-system)
3680 (inputs
3681 `(("alsa-lib" ,alsa-lib)
3682 ;; The following are for JUCE GUI components:
3683 ("libx11" ,libx11)
3684 ("freetype" ,freetype)
3685 ("libxrandr" ,libxrandr)
3686 ("libxinerama" ,libxinerama)
3687 ("libxcursor" ,libxcursor)))
3688 (arguments
3689 `(#:tests? #f ;there are no tests
3690 #:configure-flags
3691 (list (string-append "-DCMAKE_CXX_FLAGS=-I"
3692 (assoc-ref %build-inputs "freetype")
3693 "/include/freetype2"))))
3694 (home-page "https://openshot.org")
3695 (synopsis "Audio editing and playback for OpenShot")
3696 (description "OpenShot Audio Library (libopenshot-audio) allows
3697high-quality editing and playback of audio, and is based on the JUCE
3698library.")
3699 (license license:lgpl3+)))
ea3510f8
RH
3700
3701(define-public faudio
3702 (package
3703 (name "faudio")
0debb9ac 3704 (version "19.06.07")
ea3510f8
RH
3705 (source
3706 (origin
3707 (method git-fetch)
3708 (uri (git-reference
3709 (url "https://github.com/FNA-XNA/FAudio.git")
3710 (commit version)))
3711 (file-name (string-append name "-" version "-checkout"))
3712 (sha256
0debb9ac 3713 (base32 "1w37qp279lgpyvslwz3wlb4fp0i68ncd411rqdlk5s71b1zz466n"))))
ea3510f8
RH
3714 (arguments
3715 '(#:tests? #f ; No tests.
3716 #:configure-flags '("-DFFMPEG=ON")))
3717 (build-system cmake-build-system)
3718 (native-inputs `(("pkg-config" ,pkg-config)))
3719 (inputs `(("ffmpeg" ,ffmpeg)
3720 ("sdl2" ,sdl2)))
3721 (home-page "https://github.com/FNA-XNA/FAudio")
3722 (synopsis "XAudio reimplementation")
3723 (description "FAudio is an XAudio reimplementation that focuses solely on
3724developing fully accurate DirectX Audio runtime libraries.")
3725 (license license:zlib)))