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