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