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