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