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