gnu: brlaser: Update to 6.
[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")
bcdf11d6 2344 (version "4.0.0")
cc45cff8 2345 (source (origin
bcdf11d6
PL
2346 (method url-fetch)
2347 (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
2348 "/release/rtmidi-" version ".tar.gz"))
2349 (file-name (string-append "rtmidi-" version ".tar.gz"))
cc45cff8
RW
2350 (sha256
2351 (base32
bcdf11d6 2352 "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
cc45cff8
RW
2353 (build-system gnu-build-system)
2354 (arguments
bcdf11d6 2355 `(#:phases
7db147ec 2356 (modify-phases %standard-phases
bcdf11d6 2357 (add-before 'bootstrap 'noconfigure
7db147ec 2358 (lambda _
bcdf11d6 2359 (setenv "NOCONFIGURE" "yes")
7db147ec 2360 #t)))))
cc45cff8
RW
2361 (inputs
2362 `(("jack" ,jack-1)
2363 ("alsa-lib" ,alsa-lib)))
2364 (native-inputs
2365 `(("autoconf" ,autoconf)
2366 ("automake" ,automake)
2367 ("libtool" ,libtool)
2368 ("pkg-config" ,pkg-config)))
bcdf11d6 2369 (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
cc45cff8
RW
2370 (synopsis "Cross-platform MIDI library for C++")
2371 (description
2372 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
2373classes) that provide a common cross-platform API for realtime MIDI
2374input/output.")
2375 (license license:expat)))
2376
5279eb6f
RW
2377(define-public sratom
2378 (package
2379 (name "sratom")
9dd6b8d1 2380 (version "0.6.4")
5279eb6f 2381 (source (origin
95f6e6da
MB
2382 (method url-fetch)
2383 (uri (string-append "https://download.drobilla.net/sratom-"
2384 version ".tar.bz2"))
2385 (sha256
2386 (base32
2387 "0vh0biy3ngpzzgdml309c2mqz8xq9q0hlblczb4c6alhp0a8yv0l"))))
5279eb6f 2388 (build-system waf-build-system)
95f6e6da 2389 (arguments `(#:tests? #f)) ;no check target
6e0b18bf
MB
2390 (propagated-inputs
2391 ;; In Requires of sratom-0.pc.
5279eb6f
RW
2392 `(("lv2" ,lv2)
2393 ("serd" ,serd)
2394 ("sord" ,sord)))
2395 (native-inputs
2396 `(("pkg-config" ,pkg-config)))
0d0252e4 2397 (home-page "https://drobilla.net/software/sratom/")
5279eb6f
RW
2398 (synopsis "Library for serialising LV2 atoms to/from RDF")
2399 (description
2400 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
2401the Turtle syntax.")
2402 (license license:isc)))
f3ab6ad3
RW
2403
2404(define-public suil
2405 (package
2406 (name "suil")
9bc06860 2407 (version "0.10.6")
f3ab6ad3 2408 (source (origin
8fadac95
TGR
2409 (method url-fetch)
2410 (uri (string-append "https://download.drobilla.net/suil-"
2411 version ".tar.bz2"))
2412 (sha256
2413 (base32
9bc06860 2414 "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06"))))
f3ab6ad3 2415 (build-system waf-build-system)
9f64f7e6 2416 (arguments
0fe041bd 2417 `(#:tests? #f)) ;no check target
f3ab6ad3
RW
2418 (inputs
2419 `(("lv2" ,lv2)
a00403c6
RW
2420 ("gtk+" ,gtk+-2)
2421 ("gtk+" ,gtk+)
9f64f7e6 2422 ("qt" ,qtbase)))
f3ab6ad3
RW
2423 (native-inputs
2424 `(("pkg-config" ,pkg-config)))
0d0252e4 2425 (home-page "https://drobilla.net/software/suil/")
f3ab6ad3
RW
2426 (synopsis "Library for loading and wrapping LV2 plugin UIs")
2427 (description
2428 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
2429
2430Suil makes it possible to load a UI of a toolkit in a host using another
2431toolkit. The API is designed such that hosts do not need to explicitly
2432support specific toolkits – if Suil supports a particular toolkit, then UIs in
2433that toolkit will work in all hosts that use Suil automatically.
2434
a00403c6 2435Suil currently supports every combination of Gtk, Qt, and X11.")
f3ab6ad3 2436 (license license:isc)))
db46f2fc 2437
9ffee457
RW
2438(define-public timidity++
2439 (package
2440 (name "timidity++")
2441 (version "2.14.0")
2442 (source (origin
2443 (method url-fetch)
de67e922
LF
2444 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
2445 "/TiMidity++-" version
2446 "/TiMidity++-" version ".tar.bz2"))
9ffee457
RW
2447 (sha256
2448 (base32
2449 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
2450 (build-system gnu-build-system)
2451 (arguments
2452 '(#:configure-flags
2453 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
2454 "--enable-ncurses"
2455 "--enable-server"
2456 "--enable-alsaseq"
2457 (string-append "--with-default-path="
2458 (assoc-ref %outputs "out") "/etc/timidity"))
2459 #:phases
dc1d3cde
KK
2460 (modify-phases %standard-phases
2461 (add-after 'install 'install-config
2462 (lambda _
2463 (let ((out (string-append (assoc-ref %outputs "out")
2464 "/etc/timidity")))
2465 (mkdir-p out)
2466 (call-with-output-file
2467 (string-append out "/timidity.cfg")
2468 (lambda (port)
2469 (format port (string-append "source "
2470 (assoc-ref %build-inputs "freepats")
2471 "/share/freepats/freepats.cfg")))))
2472 #t)))))
9ffee457
RW
2473 (inputs
2474 `(("alsa-lib" ,alsa-lib)
2475 ("ao" ,ao)
2476 ("flac" ,flac)
2477 ("jack" ,jack-1)
2478 ("libogg" ,libogg)
2479 ("speex" ,speex)
2480 ("ncurses" ,ncurses)
2481 ("freepats" ,freepats)))
2482 (native-inputs
2483 `(("pkg-config" ,pkg-config)))
2484 (home-page "http://timidity.sourceforge.net/")
2485 (synopsis "Software synthesizer for playing MIDI files")
2486 (description
2487 "TiMidity++ is a software synthesizer. It can play MIDI files by
2488converting them into PCM waveform data; give it a MIDI data along with digital
2489instrument data files, then it synthesizes them in real-time, and plays. It
2490can not only play sounds, but also can save the generated waveforms into hard
2491disks as various audio file formats.")
2492 (license license:gpl2+)))
2493
db46f2fc
RW
2494(define-public vamp
2495 (package
2496 (name "vamp")
b1fb59d3 2497 (version "2.6")
db46f2fc
RW
2498 (source (origin
2499 (method url-fetch)
2500 (uri (string-append
2501 "https://code.soundsoftware.ac.uk"
494e9b91 2502 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 2503 version ".tar.gz"))
9002e17c
TUBK
2504 (sha256
2505 (base32
494e9b91 2506 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 2507 (build-system gnu-build-system)
9002e17c
TUBK
2508 (arguments
2509 `(#:tests? #f ; no check target
2510 #:phases
dc1d3cde
KK
2511 (modify-phases %standard-phases
2512 (add-after 'install 'remove-libvamp-hostsdk.la
2513 (lambda* (#:key outputs #:allow-other-keys)
2514 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
2515 (for-each delete-file
2516 (let ((out (assoc-ref outputs "out")))
2517 (list (string-append out "/lib/libvamp-sdk.la")
2518 (string-append out "/lib/libvamp-hostsdk.la"))))
4f27a333 2519 #t)))))
db46f2fc
RW
2520 (inputs
2521 `(("libsndfile" ,libsndfile)))
2522 (native-inputs
2523 `(("pkg-config" ,pkg-config)))
2524 (home-page "http://vamp-plugins.org")
2525 (synopsis "Modular and extensible audio processing system")
2526 (description
2527 "Vamp is an audio processing plugin system for plugins that extract
2528descriptive information from audio data — typically referred to as audio
2529analysis plugins or audio feature extraction plugins.")
2530 (license
2531 (license:x11-style
2532 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
2533
2534(define-public libsbsms
2535 (package
2536 (name "libsbsms")
2537 (version "2.0.2")
2538 (source
2539 (origin
2540 (method url-fetch)
2541 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
2542 "/libsbsms-" version ".tar.gz"))
2543 (sha256
2544 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
2545 (build-system gnu-build-system)
2546 (native-inputs `(("automake" ,automake)))
2547 (arguments
476b2877
MW
2548 `(#:configure-flags
2549 ;; Disable the use of SSE unless on x86_64.
2550 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
2551 (%current-system))))
2552 ''("--disable-sse")
2553 ''())
2554 #:phases
09c414d8
MW
2555 (modify-phases %standard-phases
2556 (add-after
2557 'unpack 'fix-ar-lib-path
2558 (lambda* (#:key inputs #:allow-other-keys)
2559 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
2560 (delete-file "ar-lib")
2561 (symlink
2562 (string-append (assoc-ref inputs "automake") "/share/automake-"
2563 ,(package-version automake) "/ar-lib")
ee527187
MW
2564 "ar-lib")
2565 #t)))))
9f1cdd9d
TUBK
2566 (home-page "http://sbsms.sourceforge.net/")
2567 (synopsis "Library for time stretching and pitch scaling of audio")
2568 (description
2569 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
2570stretching and pitch scaling of audio. This package contains the library.")
2571 ;; There is no explicit declaration of a license, but a COPYING file
2572 ;; containing gpl2.
2573 (license license:gpl2)))
754a98ae 2574
01b90919
SB
2575(define-public wavpack
2576 (package
2577 (name "wavpack")
5171ea38 2578 (version "5.1.0")
01b90919
SB
2579 (source (origin
2580 (method url-fetch)
2581 (uri (string-append "http://www.wavpack.com/"
2582 name "-" version ".tar.bz2"))
53453d7a
MB
2583 (patches (search-patches "wavpack-CVE-2018-6767.patch"
2584 "wavpack-CVE-2018-7253.patch"
65f704f3 2585 "wavpack-CVE-2018-7254.patch"))
01b90919
SB
2586 (sha256
2587 (base32
5171ea38 2588 "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
01b90919
SB
2589 (build-system gnu-build-system)
2590 (home-page "http://www.wavpack.com/")
2591 (synopsis "Hybrid lossless audio codec")
2592 (description
2593 "WavPack is an audio compression format with lossless, lossy and hybrid
2594compression modes. This package contains command-line programs and library to
2595encode and decode wavpack files.")
2596 (license license:bsd-3)))
2597
a176dd7e
SB
2598(define-public libmodplug
2599 (package
2600 (name "libmodplug")
06446a7d 2601 (version "0.8.9.0")
a176dd7e
SB
2602 (source (origin
2603 (method url-fetch)
2604 (uri (string-append
0f971a04 2605 "mirror://sourceforge/modplug-xmms/"
a176dd7e
SB
2606 name "/" version "/" name "-" version ".tar.gz"))
2607 (sha256
2608 (base32
06446a7d 2609 "1pnri98a603xk47smnxr551svbmgbzcw018mq1k6srbrq6kaaz25"))))
a176dd7e
SB
2610 (build-system gnu-build-system)
2611 (home-page "http://modplug-xmms.sourceforge.net/")
2612 (synopsis "Mod file playing library")
2613 (description
2614 "Libmodplug renders mod music files as raw audio data, for playing or
2615conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
2616supported. Optional features include high-quality resampling, bass expansion,
2617surround and reverb.")
2618 (license license:public-domain)))
2619
b97b5cda
SB
2620(define-public libxmp
2621 (package
2622 (name "libxmp")
2784fca0 2623 (version "4.4.1")
b97b5cda
SB
2624 (source (origin
2625 (method url-fetch)
de67e922 2626 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
b97b5cda
SB
2627 name "-" version ".tar.gz"))
2628 (sha256
2629 (base32
2784fca0 2630 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
b97b5cda
SB
2631 (build-system gnu-build-system)
2632 (home-page "http://xmp.sourceforge.net/")
2633 (synopsis "Module player library")
2634 (description
2635 "Libxmp is a library that renders module files to PCM data. It supports
2636over 90 mainstream and obscure module formats including Protracker (MOD),
2637Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
2638 (license license:lgpl2.1+)))
2639
3ec4bba4
SB
2640(define-public xmp
2641 (package
2642 (name "xmp")
1a79d476 2643 (version "4.1.0")
3ec4bba4
SB
2644 (source (origin
2645 (method url-fetch)
de67e922 2646 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
3ec4bba4
SB
2647 name "-" version ".tar.gz"))
2648 (sha256
2649 (base32
1a79d476 2650 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
3ec4bba4
SB
2651 (build-system gnu-build-system)
2652 (native-inputs
2653 `(("pkg-config" ,pkg-config)))
2654 (inputs
2655 `(("libxmp" ,libxmp)
2656 ("pulseaudio" ,pulseaudio)))
2657 (home-page "http://xmp.sourceforge.net/")
2658 (synopsis "Extended module player")
2659 (description
2660 "Xmp is a portable module player that plays over 90 mainstream and
2661obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
2662Tracker 3 S3M and Impulse Tracker IT files.")
2663 (license license:gpl2+)))
2664
754a98ae
TUBK
2665(define-public soundtouch
2666 (package
2667 (name "soundtouch")
55036ddc 2668 (version "2.1.1")
754a98ae
TUBK
2669 (source
2670 (origin
55036ddc
TGR
2671 (method git-fetch)
2672 (uri (git-reference
2673 (url "https://gitlab.com/soundtouch/soundtouch.git")
2674 (commit version)))
2675 (file-name (git-file-name name version))
754a98ae 2676 (sha256
55036ddc 2677 (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
754a98ae
TUBK
2678 (build-system gnu-build-system)
2679 (native-inputs
2680 `(("autoconf" ,autoconf)
2681 ("automake" ,automake)
2682 ("libtool" ,libtool)
2683 ("file" ,file)))
754a98ae
TUBK
2684 (home-page "http://www.surina.net/soundtouch/")
2685 (synopsis
2686 "Audio processing library for changing tempo, pitch and playback rate")
2687 (description
2688 "SoundTouch is an audio processing library for changing the tempo, pitch
2689and playback rates of audio streams or audio files. It is intended for
2690application developers writing sound processing tools that require tempo/pitch
2691control functionality, or just for playing around with the sound effects.")
2692 (license license:lgpl2.1+)))
4bddd14c 2693
d739f481
AK
2694(define-public sox
2695 (package
2696 (name "sox")
2697 (version "14.4.2")
2698 (source (origin
2699 (method url-fetch)
de67e922
LF
2700 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2701 name "-" version ".tar.bz2"))
d739f481
AK
2702 (sha256
2703 (base32
2704 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2705 (build-system gnu-build-system)
2706 (arguments
2707 '(#:configure-flags
2708 ;; The upstream asks to identify the distribution to diagnose SoX
2709 ;; bug reports.
2710 '("--with-distro=Guix System Distribution")))
2711 (native-inputs
2712 `(("pkg-config" ,pkg-config)))
2713 (inputs
2714 `(("alsa-lib" ,alsa-lib)
2715 ("ao" ,ao)
2716 ("flac" ,flac)
2717 ("lame" ,lame)
2718 ("libid3tag" ,libid3tag)
2719 ("libltdl" ,libltdl)
2720 ("libmad" ,libmad)
2721 ("libpng" ,libpng)
2722 ("libvorbis" ,libvorbis)
2723 ("pulseaudio" ,pulseaudio)))
2724 (home-page "http://sox.sourceforge.net")
2725 (synopsis "Sound processing utility")
2726 (description
2727 "SoX (Sound eXchange) is a command line utility that can convert
2728various formats of computer audio files to other formats. It can also
2729apply various effects to these sound files, and, as an added bonus, SoX
2730can play and record audio files.")
2731 ;; sox.c is distributed under GPL, while the files that make up
2732 ;; libsox are licensed under LGPL.
2733 (license (list license:gpl2+ license:lgpl2.1+))))
2734
4bddd14c
TUBK
2735(define-public soxr
2736 (package
2737 (name "soxr")
9e9a211f 2738 (version "0.1.3")
4bddd14c
TUBK
2739 (source
2740 (origin
2741 (method url-fetch)
2742 (uri
2743 (string-append "mirror://sourceforge/soxr/soxr-" version
2744 "-Source.tar.xz"))
2745 (sha256
9e9a211f 2746 (base32 "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di"))))
4bddd14c
TUBK
2747 (build-system cmake-build-system)
2748 (arguments '(#:tests? #f)) ;no 'check' target
3b3b60d0 2749 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
4bddd14c
TUBK
2750 (synopsis "One-dimensional sample-rate conversion library")
2751 (description
2752 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2753conversion. It may be used, for example, to resample PCM-encoded audio.")
2754 (license license:lgpl2.1+)))
49f36708
TUBK
2755
2756(define-public twolame
2757 (package
2758 (name "twolame")
196e3579 2759 (version "0.4.0")
49f36708
TUBK
2760 (source
2761 (origin
2762 (method url-fetch)
de67e922
LF
2763 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2764 "/twolame-" version ".tar.gz"))
49f36708 2765 (sha256
196e3579 2766 (base32 "0zf8sxqb02w07ah55b1y7ab643zmpbhn62spa9pqra0rc17l4dfc"))))
49f36708
TUBK
2767 (build-system gnu-build-system)
2768 (inputs
2769 `(("libsndfile" ,libsndfile)))
2770 (native-inputs
2771 `(("perl" ,perl)
2772 ("which" ,which))) ;used in tests/test.pl
2773 (home-page "http://www.twolame.org/")
2774 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2775 (description
2776 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2777tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2778portions of LAME.")
2779 (license license:lgpl2.1+)))
bd4464f2
TUBK
2780
2781(define-public portaudio
2782 (package
2783 (name "portaudio")
80420acb 2784 (version "190600.20161030")
bd4464f2
TUBK
2785 (source
2786 (origin
2787 (method url-fetch)
2788 (uri (string-append
2789 "http://www.portaudio.com/archives/pa_stable_v"
2790 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2791 ".tgz"))
2792 (sha256
80420acb 2793 (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
fc1adab1 2794 (patches (search-patches "portaudio-audacity-compat.patch"))))
bd4464f2
TUBK
2795 (build-system gnu-build-system)
2796 (inputs
2797 ;; TODO: Add ASIHPI.
2798 `(("alsa-lib" ,alsa-lib)
bcbc02fd 2799 ("jack" ,jack-1)))
cdb4048d
RW
2800 ;; Autoreconf is necessary because the audacity-compat patch modifies .in
2801 ;; files.
bd4464f2 2802 (native-inputs
b47be021
TUBK
2803 `(("autoconf" ,autoconf)
2804 ("automake" ,automake)
2805 ("libtool" ,libtool)
2806 ("pkg-config" ,pkg-config)))
86fded86
RW
2807 (arguments
2808 '(#:tests? #f ;no 'check' target
2809 #:configure-flags '("--with-pic")
2810 #:phases
2811 (modify-phases %standard-phases
2812 ;; This is needed for linking the static libraries
2813 (add-after 'unpack 'build-only-position-independent-code
2814 (lambda _
2815 (substitute* "configure.in"
2816 (("AC_PROG_LIBTOOL" m)
2817 (string-append m "\nAM_PROG_AR\nLT_INIT([pic-only])")))
2818 (delete-file "configure")
2819 #t))
2820 ;; Some headers are not installed by default, but are needed by
2821 ;; packages like Kaldi.
2822 (add-after 'install 'install-missing-headers
2823 (lambda* (#:key outputs #:allow-other-keys)
2824 (install-file "src/common/pa_ringbuffer.h"
2825 (string-append (assoc-ref outputs "out") "/include"))
2826 #t)))))
bd4464f2
TUBK
2827 (home-page "http://www.portaudio.com/")
2828 (synopsis "Audio I/O library")
2829 (description
2830 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2831to record and/or play sound using a callback function or a blocking read/write
2832interface.")
2833 (license license:expat)))
74bbf894 2834
fe73aef4
RW
2835(define-public qsynth
2836 (package
2837 (name "qsynth")
5e4cb92e 2838 (version "0.5.7")
fe73aef4
RW
2839 (source
2840 (origin
2841 (method url-fetch)
de67e922
LF
2842 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2843 "/qsynth-" version ".tar.gz"))
fe73aef4 2844 (sha256
5e4cb92e 2845 (base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6"))))
fe73aef4
RW
2846 (build-system gnu-build-system)
2847 (arguments
5e4cb92e 2848 `(#:tests? #f)) ; no "check" phase
598f6394 2849 (native-inputs
4ed4bb11
RW
2850 `(("qttools" ,qttools)
2851 ("pkg-config" ,pkg-config)))
fe73aef4 2852 (inputs
598f6394
DC
2853 `(("fluidsynth" ,fluidsynth)
2854 ("qtbase" ,qtbase)
2855 ("qtx11extras" ,qtx11extras)))
12c8c997 2856 (home-page "https://qsynth.sourceforge.io")
fe73aef4
RW
2857 (synopsis "Graphical user interface for FluidSynth")
2858 (description
2859 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2860synthesizer written in C++.")
2861 (license license:gpl2+)))
2862
55b596c3
TUBK
2863(define-public rsound
2864 (package
2865 (name "rsound")
2866 (version "1.1")
2867 (source
2868 (origin
458baefb
RW
2869 (method git-fetch)
2870 (uri (git-reference
2871 (url "https://github.com/Themaister/RSound.git")
2872 (commit (string-append "v" version))))
2873 (file-name (git-file-name name version))
55b596c3 2874 (sha256
458baefb 2875 (base32 "0gspmr3klwnq98h17p5hc6ifygya4p80g4g8r7a1qavm3mv19waf"))))
55b596c3
TUBK
2876 (build-system gnu-build-system)
2877 (inputs
2878 `(("alsa-lib" ,alsa-lib)
276f49df 2879 ("jack" ,jack-1)
55b596c3
TUBK
2880 ("ao" ,ao)
2881 ("libsamplerate" ,libsamplerate)
2882 ("openal" ,openal)
2883 ("portaudio" ,portaudio)
2884 ("pulseaudio" ,pulseaudio)))
2885 (arguments
2886 '(#:phases
dc1d3cde
KK
2887 (modify-phases %standard-phases
2888 (replace 'configure
2889 (lambda* (#:key outputs #:allow-other-keys)
2890 (setenv "CC" "gcc")
c3d14484
TGR
2891 (invoke "./configure"
2892 (string-append "--prefix=" (assoc-ref outputs "out"))))))
55b596c3
TUBK
2893 ;; No 'check' target.
2894 #:tests? #f))
2895 (home-page "http://themaister.net/rsound.html")
2896 (synopsis "Networked audio system")
2897 (description
2898 "RSound allows you to send audio from an application and transfer it
2899directly to a different computer on your LAN network. It is an audio daemon
2900with a much different focus than most other audio daemons.")
2901 (license license:gpl3+)))
2902
caf9055c
RW
2903(define-public xjackfreak
2904 (package
2905 (name "xjackfreak")
2906 (version "1.0")
2907 (source (origin
8e5995e3
RW
2908 (method git-fetch)
2909 (uri (git-reference
2910 (url "https://github.com/johnhldavis/xjackfreak.git")
2911 (commit (string-append "v" version))))
2912 (file-name (git-file-name name version))
caf9055c
RW
2913 (sha256
2914 (base32
8e5995e3 2915 "18c546qidbrj0f5wfiq5llii2192xpln0ab3r4vpr7i3wybxqjfz"))))
caf9055c
RW
2916 (build-system gnu-build-system)
2917 (arguments
2918 `(#:make-flags
2919 (list (string-append "docdir=" (assoc-ref %outputs "out")
2920 "/share/doc/xjackfreak"))))
2921 (inputs
2922 `(("jack" ,jack-1)
2923 ("libx11" ,libx11)
2924 ("libxt" ,libxt)
2925 ("libxext" ,libxext)))
2926 (native-inputs
2927 `(("pkg-config" ,pkg-config)))
2928 (home-page "https://github.com/johnhldavis/xjackfreak")
2929 (synopsis "JACK audio frequency analyzer and display")
2930 (description
2931 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2932Connection Kit. It can display the FFT of any input, modify it and output the
2933result.")
2934 (license license:gpl3+)))
2935
d73f7909
RW
2936(define-public zita-convolver
2937 (package
2938 (name "zita-convolver")
1c1ce52a 2939 (version "4.0.3")
d73f7909
RW
2940 (source (origin
2941 (method url-fetch)
2942 (uri (string-append
2943 "http://kokkinizita.linuxaudio.org"
2944 "/linuxaudio/downloads/zita-convolver-"
2945 version ".tar.bz2"))
29e255ca
SB
2946 (snippet
2947 ;; Don't optimize for a specific processor architecture.
6cbee49d 2948 '(begin
1c1ce52a 2949 (substitute* "source/Makefile"
6cbee49d
MW
2950 (("^CXXFLAGS \\+= -march=native") ""))
2951 #t))
29e255ca 2952 (modules '((guix build utils)))
d73f7909
RW
2953 (sha256
2954 (base32
1c1ce52a 2955 "0prji66p86z2bzminywkwchr5bfgxcg2i8y803pydd1hzf2198cs"))))
d73f7909
RW
2956 (build-system gnu-build-system)
2957 (arguments
2958 `(#:tests? #f ; no "check" target
1c1ce52a
AT
2959 #:make-flags
2960 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
2961 (string-append "SUFFIX="))
d73f7909 2962 #:phases
dc1d3cde
KK
2963 (modify-phases %standard-phases
2964 (add-after 'unpack 'patch-makefile-and-enter-directory
2965 (lambda _
1c1ce52a 2966 (substitute* "source/Makefile"
dc1d3cde
KK
2967 (("ldconfig") "true")
2968 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1c1ce52a 2969 (chdir "source")
ee527187 2970 #t))
4f27a333
MB
2971 (add-after 'install 'install-symlink
2972 (lambda _
2973 (symlink "libzita-convolver.so"
2974 (string-append (assoc-ref %outputs "out")
1c1ce52a 2975 "/lib/libzita-convolver.so.4"))
ee527187 2976 #t))
d73f7909 2977 ;; no configure script
4f27a333 2978 (delete 'configure))))
d73f7909 2979 (inputs `(("fftwf" ,fftwf)))
4817bb92 2980 (home-page "https://kokkinizita.linuxaudio.org")
d73f7909
RW
2981 (synopsis "Fast, partitioned convolution engine library")
2982 (description
2983 "Zita convolver is a C++ library providing a real-time convolution
2984engine.")
2985 (license license:gpl3+)))
2986
b7ed6784
RW
2987(define-public zita-resampler
2988 (package
2989 (name "zita-resampler")
2990 (version "1.3.0")
2991 (source (origin
2992 (method url-fetch)
2993 (uri (string-append
2994 "http://kokkinizita.linuxaudio.org"
2995 "/linuxaudio/downloads/zita-resampler-"
2996 version ".tar.bz2"))
6dff4955
SB
2997 (snippet
2998 ;; Don't optimize for a specific processor architecture.
6cbee49d
MW
2999 '(begin
3000 (substitute* '("apps/Makefile" "libs/Makefile")
3001 (("^CXXFLAGS \\+= -march=native") ""))
3002 #t))
6dff4955 3003 (modules '((guix build utils)))
b7ed6784
RW
3004 (sha256
3005 (base32
3006 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
3007 (build-system gnu-build-system)
3008 (arguments
3009 `(#:tests? #f ; no "check" target
3010 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3011 #:phases
3012 (modify-phases %standard-phases
3013 (add-after
3014 'unpack 'patch-makefile-and-enter-directory
3015 (lambda _
3016 (substitute* "libs/Makefile"
3017 (("ldconfig") "true")
3018 (("^LIBDIR =.*") "LIBDIR = lib\n"))
3019 (chdir "libs")
3020 #t))
3021 (add-after
3022 'install 'install-symlink
3023 (lambda _
3024 (symlink "libzita-resampler.so"
3025 (string-append (assoc-ref %outputs "out")
ee527187
MW
3026 "/lib/libzita-resampler.so.1"))
3027 #t))
b7ed6784
RW
3028 ;; no configure script
3029 (delete 'configure))))
4817bb92 3030 (home-page "https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
b7ed6784
RW
3031 (synopsis "C++ library for resampling audio signals")
3032 (description
3033 "Libzita-resampler is a C++ library for resampling audio signals. It is
3034designed to be used within a real-time processing context, to be fast, and to
3035provide high-quality sample rate conversion.")
3036 (license license:gpl3+)))
3037
74bbf894
RW
3038(define-public zita-alsa-pcmi
3039 (package
3040 (name "zita-alsa-pcmi")
3041 (version "0.2.0")
3042 (source (origin
3043 (method url-fetch)
3044 (uri (string-append
3045 "http://kokkinizita.linuxaudio.org"
3046 "/linuxaudio/downloads/zita-alsa-pcmi-"
3047 version ".tar.bz2"))
3048 (sha256
3049 (base32
9569dfc8 3050 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
3051 (build-system gnu-build-system)
3052 (arguments
3053 `(#:tests? #f ; no "check" target
3054 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
3055 #:phases
dc1d3cde
KK
3056 (modify-phases %standard-phases
3057 (add-after 'unpack 'patch-makefile-and-enter-directory
3058 (lambda _
3059 (substitute* "libs/Makefile"
3060 (("ldconfig") "true")
3061 (("^LIBDIR =.*") "LIBDIR = lib\n"))
3062 (chdir "libs")
3063 #t))
3064 (add-after 'install 'install-symlink
3065 (lambda _
3066 (symlink "libzita-alsa-pcmi.so"
3067 (string-append (assoc-ref %outputs "out")
ee527187
MW
3068 "/lib/libzita-alsa-pcmi.so.0"))
3069 #t))
dc1d3cde
KK
3070 ;; no configure script
3071 (delete 'configure))))
74bbf894
RW
3072 (inputs
3073 `(("alsa-lib" ,alsa-lib)
3074 ("fftw" ,fftw)))
4817bb92 3075 (home-page "https://kokkinizita.linuxaudio.org")
74bbf894
RW
3076 (synopsis "C++ wrapper around the ALSA API")
3077 (description
3078 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
3079access to ALSA PCM devices, taking care of the many functions required to
3080open, initialise and use a hw: device in mmap mode, and providing floating
3081point audio data.")
3082 (license license:gpl3+)))
6da16993
LF
3083
3084(define-public cuetools
3085 (package
3086 (name "cuetools")
3087 (version "1.4.1")
3088 (source (origin
4289a306
RW
3089 (method git-fetch)
3090 (uri (git-reference
3091 (url "https://github.com/svend/cuetools.git")
3092 (commit version)))
3093 (file-name (git-file-name name version))
6da16993
LF
3094 (sha256
3095 (base32
4289a306 3096 "02ksv1ahf1v4cr2xbclsfv5x17m9ivzbssb5r8xjm97yh8a7spa3"))))
6da16993 3097 (build-system gnu-build-system)
4289a306 3098 ;; The source checkout is not bootstrapped.
6da16993
LF
3099 (native-inputs
3100 `(("autoconf" ,autoconf)
3101 ("automake" ,automake)
3102 ("flex" ,flex)
3103 ("bison" ,bison)))
3104 (synopsis "Cue and toc file parsers and utilities")
3105 (description "Cuetools is a set of programs that are useful for manipulating
3106and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
3107files are a way to represent the layout of a data or audio CD in a
3108machine-readable ASCII format.")
3109 (home-page "https://github.com/svend/cuetools")
3110 (license license:gpl2+)))
6819a8dd
LF
3111
3112(define-public shntool
3113 (package
3114 (name "shntool")
3115 (version "3.0.10")
3116 (source (origin
3117 (method url-fetch)
3118 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
3119 "shntool-" version ".tar.gz"))
3120 (sha256
3121 (base32
3122 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
3123 (build-system gnu-build-system)
3124 (synopsis "WAVE audio data processing tool")
3125 (description "shntool is a multi-purpose WAVE data processing and reporting
3126utility. File formats are abstracted from its core, so it can process any file
3127that contains WAVE data, compressed or not---provided there exists a format
d5b357ec
LF
3128module to handle that particular file type. It can also generate CUE files, and
3129use them split WAVE data into multiple files.")
6819a8dd 3130 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
3131 ;; 'install-sh' bears the x11 license
3132 (license (list license:gpl2+ license:x11))))
680b54c5
DT
3133
3134(define-public dcadec
3135 (package
3136 (name "dcadec")
3137 (version "0.2.0")
3138 (source (origin
b249ff5d
RW
3139 (method git-fetch)
3140 (uri (git-reference
3141 (url "https://github.com/foo86/dcadec.git")
3142 (commit (string-append "v" version))))
3143 (file-name (git-file-name name version))
680b54c5
DT
3144 (sha256
3145 (base32
b249ff5d 3146 "07nd0ajizrp1w02bsyfcv18431r8m8rq8gjfmz9wmckpg7cxj2hs"))))
680b54c5
DT
3147 (build-system gnu-build-system)
3148 (arguments
3149 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
3150 '(#:tests? #f
3151 #:make-flags
3152 (list "CC=gcc"
3153 ;; Build shared library.
3154 "CONFIG_SHARED=1"
3155 (string-append "PREFIX=" (assoc-ref %outputs "out"))
3156 ;; Set proper runpath.
3157 (string-append "LDFLAGS=-Wl,-rpath="
3158 (assoc-ref %outputs "out")
3159 "/lib"))
3160 #:phases
3161 (modify-phases %standard-phases
3162 ;; No configure script, just a hand-written Makefile.
3163 (delete 'configure))))
3164 (synopsis "DTS Coherent Acoustics decoder")
3165 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
3166with support for HD extensions.")
3167 (home-page "https://github.com/foo86/dcadec")
3168 (license license:lgpl2.1+)))
e87c7ec2
AG
3169
3170(define-public bs1770gain
3171 (package
3172 (name "bs1770gain")
a2931b14 3173 (version "0.6.0")
e87c7ec2
AG
3174 (source
3175 (origin
3176 (method url-fetch)
3177 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
3178 version "/bs1770gain-" version ".tar.gz"))
3179 (sha256
a2931b14 3180 (base32 "0nnqixvw3x7i22nsr54n4bgm35z9nh3d9qj5s75cfd3ajjsjndyh"))
17098a49
LF
3181 (modules '((guix build utils)))
3182 (snippet
3183 '(begin
3184 ;; XXX
a2931b14
TGR
3185 (substitute* "libbg/bgx.c"
3186 (("#define BS.* ") "#define BS ")
3187 (("BS.*NO?.*N.*S.*E.*N.*SE?") "NO")
3188 (("\"( #|N).*\"") "\"\""))
3189 (substitute* (list "config.h"
3190 "configure.ac"
3191 "configure")
3192 (("https?://bs1770gain[^/]*/")
2777dc75
TGR
3193 "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html"))
3194 #t))))
e87c7ec2
AG
3195 (build-system gnu-build-system)
3196 (inputs `(("ffmpeg" ,ffmpeg)
3197 ("sox" ,sox)))
17098a49 3198 (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
e87c7ec2
AG
3199 (synopsis "Tool to adjust loudness of media files")
3200 (description
3201 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
3202flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
3203loudness of audio and video files to the same level.")
3204 (license license:gpl2+)))
eb64bde1
EE
3205
3206(define-public filteraudio
3207 (let ((revision "1")
3208 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
3209 (package
3210 (name "filteraudio")
3211 (version (string-append "0.0.0-" revision "."
3212 (string-take commit 7)))
3213 (source
3214 (origin
3215 (method git-fetch)
3216 (uri (git-reference
3217 (url "https://github.com/irungentoo/filter_audio.git")
3218 (commit commit)))
3219 (file-name (string-append name "-" version "-checkout"))
3220 (sha256
3221 (base32
3222 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
3223 (build-system gnu-build-system)
3224 (arguments
3225 '(#:make-flags (list (string-append "PREFIX=" %output)
3226 "CC=gcc")
3227 #:tests? #f ; No tests
3228 #:phases
3229 (modify-phases %standard-phases
3230 ;; No configure script
3231 (delete 'configure))))
3232 (synopsis "Lightweight audio filtering library")
3233 (description "An easy to use audio filtering library made from webrtc
3234code, used in @code{libtoxcore}.")
3235 (home-page "https://github.com/irungentoo/filter_audio")
3236 (license license:bsd-3))))
9a4c032c
LG
3237
3238(define-public gsm
3239 (package
3240 (name "gsm")
aabe29af 3241 (version "1.0.18")
9a4c032c
LG
3242 (source
3243 (origin
3244 (method url-fetch)
3245 (uri
3246 (string-append "http://www.quut.com/" name "/" name
3247 "-" version ".tar.gz"))
3248 (sha256
3249 (base32
aabe29af 3250 "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"))))
9a4c032c
LG
3251 (build-system gnu-build-system)
3252 (arguments
3253 `(#:test-target "tst"
3254 #:phases
3255 (modify-phases %standard-phases
3256 (add-before 'install 'pre-install
3257 (lambda _
3258 (let ((out (assoc-ref %outputs "out")))
3259 (substitute* "Makefile"
3260 (("INSTALL_ROOT\t=")
3261 (string-append "INSTALL_ROOT\t=\t" out)))
3262 (mkdir-p (string-append out "/inc"))
3263 (mkdir-p (string-append out "/man"))
3264 (mkdir-p (string-append out "/man/man1"))
3265 (mkdir-p (string-append out "/man/man3"))
3266 (mkdir-p (string-append out "/bin"))
ee527187
MW
3267 (mkdir-p (string-append out "/lib")))
3268 #t))
9a4c032c
LG
3269 (add-after 'install 'post-install
3270 (lambda _
3271 (let ((out (assoc-ref %outputs "out")))
3272 (rename-file (string-append out "/inc")
3273 (string-append out "/include"))
3274 (mkdir-p (string-append out "/include/gsm"))
3275 (copy-recursively "inc"
ee527187
MW
3276 (string-append out "/include/gsm")))
3277 #t))
aabe29af 3278 (delete 'configure)))) ; no configure script
9a4c032c
LG
3279 (synopsis "GSM 06.10 lossy speech compression library")
3280 (description "This C library provides an encoder and a decoder for the GSM
328106.10 RPE-LTP lossy speech compression algorithm.")
3282 (home-page "http://quut.com/gsm/")
3283 (license (license:non-copyleft "file://COPYRIGHT"))))
84d9abe4
DM
3284
3285(define-public python-pyalsaaudio
3286 (package
3287 (name "python-pyalsaaudio")
3288 (version "0.8.4")
3289 (source (origin
3290 (method url-fetch)
3291 (uri (pypi-uri "pyalsaaudio" version))
3292 (sha256
3293 (base32
3294 "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
3295 (build-system python-build-system)
3296 (arguments
3297 `(#:tests? #f)) ; tests require access to ALSA devices.
3298 (inputs
3299 `(("alsa-lib" ,alsa-lib)))
3300 (home-page "http://larsimmisch.github.io/pyalsaaudio/")
3301 (synopsis "ALSA wrappers for Python")
3302 (description
3303 "This package contains wrappers for accessing the ALSA API from Python.
3304It is currently fairly complete for PCM devices, and has some support for
3305mixers.")
3306 (license license:psfl)))
3307
3308(define-public python2-pyalsaaudio
3309 (package-with-python2 python-pyalsaaudio))
d0c8e524 3310
dba33ca3
RW
3311(define-public bluez-alsa
3312 (package
3313 (name "bluez-alsa")
3314 (version "1.2.0")
3315 (source (origin
3316 ;; The tarballs are mere snapshots and don't contain a
3317 ;; bootstrapped build system.
3318 (method git-fetch)
3319 (uri (git-reference
3320 (url "https://github.com/Arkq/bluez-alsa.git")
3321 (commit (string-append "v" version))))
1fa37d1b 3322 (file-name (string-append name "-" version "-checkout"))
dba33ca3
RW
3323 (sha256
3324 (base32
3325 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
3326 (build-system gnu-build-system)
dba33ca3
RW
3327 (native-inputs
3328 `(("autoconf" ,autoconf)
3329 ("automake" ,automake)
3330 ("libtool" ,libtool)
3331 ("pkg-config" ,pkg-config)))
3332 (inputs
3333 `(("alsa-lib" ,alsa-lib)
3334 ("bluez" ,bluez)
3335 ("glib" ,glib)
3336 ("libbsd" ,libbsd)
3337 ("ncurses" ,ncurses)
3338 ("ortp" ,ortp)
3339 ("sbc" ,sbc)))
3340 (home-page "https://github.com/Arkq/bluez-alsa")
3341 (synopsis "Bluetooth ALSA backend")
3342 (description "This project is a rebirth of a direct integration between
3343Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
3344in favor of 3rd party audio applications. From now on, Bluez acts as a
3345middleware between an audio application, which implements Bluetooth audio
3346profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
3347audio profiles in Bluez, so in theory every Bluetooth device (with audio
3348capabilities) can be connected. In order to access the audio stream, one has
3349to connect to the ALSA PCM device called @code{bluealsa}. The device is based
3350on the ALSA software PCM plugin.")
3351 (license license:expat)))
3352
d0c8e524
SB
3353(define-public snd
3354 (package
3355 (name "snd")
cb6add54 3356 (version "19.6")
d0c8e524
SB
3357 (source (origin
3358 (method url-fetch)
3359 (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
3360 "snd-" version ".tar.gz"))
3361 (sha256
3362 (base32
cb6add54 3363 "0s2qv8sznvw6559bi39qj9p072azh9qcb2b86w6w8clz2azjaa76"))))
d0c8e524
SB
3364 (build-system glib-or-gtk-build-system)
3365 (arguments
4ae9274a 3366 `(#:tests? #f ; no tests
d0c8e524
SB
3367 #:out-of-source? #f ; for the 'install-doc' phase
3368 #:configure-flags
3369 (let* ((out (assoc-ref %outputs "out"))
94774876
TGR
3370 (docdir (string-append out "/share/doc/"
3371 ,name "-" ,version)))
d0c8e524
SB
3372 (list "--with-alsa" "--with-jack" "--with-gmp"
3373 (string-append "--with-doc-dir=" docdir)))
3374 #:phases
3375 (modify-phases %standard-phases
3376 (add-after 'install 'install-doc
3377 (lambda* (#:key outputs #:allow-other-keys)
3378 (let* ((out (assoc-ref outputs "out"))
4ae9274a
TGR
3379 (doc (string-append out "/share/doc/"
3380 ,name "-" ,version)))
d0c8e524
SB
3381 (for-each
3382 (lambda (f)
4ae9274a 3383 (install-file f doc))
3ef664d0 3384 (find-files "." "\\.html$"))
4ae9274a 3385 (copy-recursively "pix" (string-append doc "/pix"))
d0c8e524
SB
3386 #t))))))
3387 (native-inputs
3388 `(("pkg-config" ,pkg-config)))
3389 (inputs
3390 `(("alsa-lib" ,alsa-lib)
3391 ("fftw" ,fftw)
3392 ("flac" ,flac)
3393 ("gmp" ,gmp)
3394 ("gsl" ,gsl)
3395 ("gtk+" ,gtk+)
3396 ("jack" ,jack-1)
3397 ("libsamplerate" ,libsamplerate)
3398 ("mpc" ,mpc)
3399 ("mpfr" ,mpfr)
3400 ("mpg123" ,mpg123)
3401 ("speex" ,speex)
3402 ("timidity++" ,timidity++)
3403 ("vorbis-tools" ,vorbis-tools)
3404 ("wavpack" ,wavpack)))
3405 (synopsis "Sound editor")
3406 (home-page "https://ccrma.stanford.edu/software/snd/")
3407 (description
3408 "Snd is a sound editor modelled loosely after Emacs. It can be
3409customized and extended using either the s7 Scheme implementation (included in
3410the Snd sources), Ruby, or Forth.")
3411 (license (license:non-copyleft "file://COPYING"))))
adedbe95 3412
cf31d5e1
RW
3413(define-public noise-repellent
3414 (package
3415 (name "noise-repellent")
3416 (version "0.1.4")
3417 (source (origin
3418 (method git-fetch)
3419 (uri (git-reference
3420 (url "https://github.com/lucianodato/noise-repellent.git")
3421 (commit version)))
3422 (file-name (string-append name "-" version "-checkout"))
3423 (sha256
3424 (base32
3425 "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
3426 (build-system gnu-build-system)
3427 (arguments
3428 `(#:make-flags
3429 (list "CC=gcc"
3430 (string-append "PREFIX=" (assoc-ref %outputs "out")))
3431 #:tests? #f ; there are none
3432 #:phases
3433 (modify-phases %standard-phases
3434 (delete 'configure))))
3435 (inputs
3436 `(("lv2" ,lv2)
3437 ("fftwf" ,fftwf)))
3438 (native-inputs
3439 `(("pkg-config" ,pkg-config)))
3440 (home-page "https://github.com/lucianodato/noise-repellent")
3441 (synopsis "LV2 plugin for broadband noise reduction")
3442 (description "Noise Repellent is an LV2 plugin to reduce noise. It has
3443the following features:
3444
3445@enumerate
3446@item Spectral gating and spectral subtraction suppression rule
3447@item Adaptive and manual noise thresholds estimation
3448@item Adjustable noise floor
3449@item Adjustable offset of thresholds to perform over-subtraction
3450@item Time smoothing and a masking estimation to reduce artifacts
3451@item Basic onset detector to avoid transients suppression
3452@item Whitening of the noise floor to mask artifacts and to recover higher
3453 frequencies
3454@item Option to listen to the residual signal
3455@item Soft bypass
3456@item Noise profile saved with the session
3457@end enumerate
3458")
3459 (license license:lgpl3+)))
3460
adedbe95
OP
3461(define-public cli-visualizer
3462 (package
3463 (name "cli-visualizer")
3464 (version "1.6")
3465 (source
3466 (origin
c2a2d364
RW
3467 (method git-fetch)
3468 (uri (git-reference
3469 (url "https://github.com/dpayne/cli-visualizer.git")
3470 (commit version)))
3471 (file-name (git-file-name name version))
adedbe95
OP
3472 (sha256
3473 (base32
c2a2d364 3474 "0mirp8bk398di5xyq95iprmdyvplfghxqmrfj7jdnpy554vx7ppc"))))
adedbe95
OP
3475 (build-system gnu-build-system)
3476 (native-inputs
3477 `(("which" ,which)))
3478 (inputs
3479 `(("fftw" ,fftw)
3480 ("googletest" ,googletest)
3481 ("ncurses" ,ncurses)
3482 ("pulseaudio" ,pulseaudio)))
3483 (arguments
3484 '(#:test-target "test"
3485 #:make-flags
3486 (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
3487 #:phases
3488 (modify-phases %standard-phases
3489 (add-after 'unpack 'remove-sudo
3490 (lambda _
3491 (substitute* "install.sh" (("sudo") ""))
3492 #t))
3493 (add-before 'check 'set-check-environment
3494 (lambda _
3495 (setenv "CXX" "g++")
3496 (setenv "CC" "gcc")
3497 #t))
3498 (add-before 'install 'make-prefix
3499 (lambda _
3500 (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
3501 #t))
3502 (add-after 'install 'data
3503 (lambda _
3504 (for-each (lambda (file)
3505 (install-file file
3506 (string-append (assoc-ref %outputs "out")
3507 "/share/doc")))
3508 (find-files "examples"))
3509 #t)))))
3510 (home-page "https://github.com/dpayne/cli-visualizer/")
3511 (synopsis "Command-line audio visualizer")
3512 (description "@code{cli-visualizer} displays fast-Fourier
3513transforms (FFTs) of the sound being played, as well as other graphical
3514representations.")
3515 (license license:expat)))
c2c0d661
OP
3516
3517(define-public cava
3518 (package
3519 (name "cava")
042fa638 3520 (version "0.6.1")
c2c0d661 3521 (source (origin
a7fde1a8
RW
3522 (method git-fetch)
3523 (uri (git-reference
3524 (url "https://github.com/karlstav/cava.git")
3525 (commit version)))
3526 (file-name (git-file-name name version))
c2c0d661
OP
3527 (sha256
3528 (base32
a7fde1a8 3529 "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy"))))
c2c0d661
OP
3530 (build-system gnu-build-system)
3531 (native-inputs
3532 `(("autoconf" ,autoconf)
3533 ("automake" ,automake)
3534 ("libtool" ,libtool)))
3535 (inputs
3536 `(("fftw" ,fftw)
3537 ("ncurses" ,ncurses)
3538 ("pulseaudio" ,pulseaudio)))
3539 (arguments
3540 `(#:configure-flags
3541 (list (string-append "PREFIX=" %output)
9e3e80ba 3542 (string-append "FONT_DIR=" %output "/share/consolefonts"))
c2c0d661
OP
3543 #:make-flags
3544 (let ((lib (string-append %output "/lib")))
3545 (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
3546 #:phases
3547 (modify-phases %standard-phases
189be331 3548 (replace 'bootstrap
c2c0d661
OP
3549 (lambda* (#:key outputs #:allow-other-keys)
3550 (setenv "HOME" (getcwd))
3551 (invoke "sh" "autogen.sh")))
3552 (add-before 'build 'make-cava-ldflags
3553 (lambda* (#:key outputs #:allow-other-keys)
ee527187
MW
3554 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
3555 #t))
c2c0d661
OP
3556 (add-after 'install 'data
3557 (lambda* (#:key outputs #:allow-other-keys)
3558 (for-each (lambda (file)
3559 (install-file file
3560 (string-append (assoc-ref outputs "out")
3561 "/share/doc/examples")))
ee527187
MW
3562 (find-files "example_files"))
3563 #t)))))
c2c0d661
OP
3564 (home-page "https://karlstav.github.io/cava/")
3565 (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
3566 (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
3567using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
3568 (license license:expat)))
9073c875 3569
3570(define-public fluid-3
3571 (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
3572 (package
3573 (name "fluid-3")
3574 (version "2.1")
3575 (source
3576 (origin
3577 (method url-fetch)
3578 ;; Only one file is required, but the release bundles the whole
3579 ;; software which is 50MiB as tar and 200MiB unpacked. The website
3580 ;; directly links the soundfont release to the github file download.
3581 (uri (string-append "https://github.com/musescore/MuseScore/raw/"
3582 commit "/share/sound/FluidR3Mono_GM.sf3"))
3583 (file-name (string-append name "-" version ".sf3"))
3584 (sha256
3585 (base32
3586 "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg"))))
3587 (build-system trivial-build-system)
3588 (arguments
3589 `(#:modules ((guix build utils))
3590 #:builder
3591 (begin
3592 (use-modules (guix build utils))
3593 (let ((file (assoc-ref %build-inputs "source"))
3594 (out (string-append %output "/share/soundfonts")))
3595 (mkdir-p out)
e3cfef22
MW
3596 (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))
3597 #t))))
9073c875 3598 (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
3599 (synopsis "Pro-quality GM soundfont")
3600 (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")
3601 (license license:expat))))
5c40a69f
LF
3602
3603(define-public libfdk
3604 (let ((commit "2326faaf8f2cdf2c3a9108ccdaf1d7551aec543e")
3605 (revision "0"))
3606 (package
3607 (name "libfdk")
3608 ;; The latest upstream revision, with many bug fixes.
3609 (version (git-version "0.1.6" revision commit))
3610 (source
3611 (origin
3612 (method git-fetch)
3613 (uri (git-reference
3614 (url "https://github.com/mstorsjo/fdk-aac")
3615 (commit commit)))
3616 (file-name (git-file-name name version))
3617 (sha256
3618 (base32
3619 "0yy6ndd9d61bwl283vl1r5kva2a4acc0f4r9g0sza156f2abr9ws"))))
3620 (build-system gnu-build-system)
3621 (native-inputs
3622 `(("autoconf" ,autoconf)
3623 ("automake" ,automake)
3624 ("libtool" ,libtool)))
3625 (home-page "https://github.com/mstorsjo/fdk-aac")
3626 (synopsis "Fraunhofer FDK AAC library")
3627 (description "FDK is a library for encoding and decoding Advanced Audio
3628Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of
3629Android. It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC
3630LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)
3631and AAC-ELD (enhanced low delay) for real-time communication. The encoding
3632library supports sample rates up to 96 kHz and up to eight channels (7.1
3633surround).")
3634 (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
3635 "https://www.gnu.org/licenses/license-list.html#fdk")))))
ef8517f2
EB
3636
3637(define-public libopenshot-audio
3638 (package
3639 (name "libopenshot-audio")
799298eb 3640 (version "0.1.8")
ef8517f2
EB
3641 (source (origin
3642 (method git-fetch)
3643 (uri (git-reference
3644 (url "https://github.com/OpenShot/libopenshot-audio")
3645 (commit (string-append "v" version))))
3646 (file-name (git-file-name name version))
3647 (sha256
3648 (base32
799298eb 3649 "1fvp6nmf30xzkmcznakh8dv5vn9d7nq051pqcqv638hsfppkmcrl"))))
ef8517f2
EB
3650 (build-system cmake-build-system)
3651 (inputs
3652 `(("alsa-lib" ,alsa-lib)
3653 ;; The following are for JUCE GUI components:
3654 ("libx11" ,libx11)
3655 ("freetype" ,freetype)
3656 ("libxrandr" ,libxrandr)
3657 ("libxinerama" ,libxinerama)
3658 ("libxcursor" ,libxcursor)))
3659 (arguments
3660 `(#:tests? #f ;there are no tests
3661 #:configure-flags
3662 (list (string-append "-DCMAKE_CXX_FLAGS=-I"
3663 (assoc-ref %build-inputs "freetype")
3664 "/include/freetype2"))))
3665 (home-page "https://openshot.org")
3666 (synopsis "Audio editing and playback for OpenShot")
3667 (description "OpenShot Audio Library (libopenshot-audio) allows
3668high-quality editing and playback of audio, and is based on the JUCE
3669library.")
3670 (license license:lgpl3+)))
ea3510f8
RH
3671
3672(define-public faudio
3673 (package
3674 (name "faudio")
c44db46f 3675 (version "19.11")
ea3510f8
RH
3676 (source
3677 (origin
3678 (method git-fetch)
3679 (uri (git-reference
3680 (url "https://github.com/FNA-XNA/FAudio.git")
3681 (commit version)))
543f7ad1 3682 (file-name (git-file-name name version))
ea3510f8 3683 (sha256
c44db46f 3684 (base32 "0ckpr6ffz8ssfh1y850dhip5s5jv0j6n90qz5yx1v9d6gpwf08rp"))))
ea3510f8
RH
3685 (arguments
3686 '(#:tests? #f ; No tests.
3687 #:configure-flags '("-DFFMPEG=ON")))
3688 (build-system cmake-build-system)
3689 (native-inputs `(("pkg-config" ,pkg-config)))
3690 (inputs `(("ffmpeg" ,ffmpeg)
3691 ("sdl2" ,sdl2)))
3692 (home-page "https://github.com/FNA-XNA/FAudio")
3693 (synopsis "XAudio reimplementation")
3694 (description "FAudio is an XAudio reimplementation that focuses solely on
3695developing fully accurate DirectX Audio runtime libraries.")
3696 (license license:zlib)))
e13714b6
AI
3697
3698(define-public gnaural
3699 (package
3700 (name "gnaural")
3701 (version "20110606")
3702 (source
3703 (origin
3704 (method url-fetch)
3705 (uri (string-append "mirror://sourceforge/gnaural/Gnaural/gnaural_"
3706 version ".tar.xz"))
3707 (sha256
3708 (base32
3709 "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
3710 (build-system gnu-build-system)
3711 (inputs
3712 `(("alsa-lib" ,alsa-lib)
3713 ("gtk+" ,gtk+-2)
3714 ("libsndfile" ,libsndfile)
3715 ("portaudio" ,portaudio)))
3716 (native-inputs
3717 `(("pkg-config" ,pkg-config)))
3718 (home-page "http://gnaural.sourceforge.net/")
3719 (synopsis "Binaural beat synthesizer")
3720 (description "Gnaural is a programmable auditory binaural beat synthesizer
3721intended to be used for brainwave entrainment. Gnaural supports creation of
3722binaural beat tracks of different frequencies and exporting of tracks into
3723different audio formats. Gnaural can also be linked over the internet with
3724other Gnaural instances, allowing synchronous sessions between many users.")
3725 (license license:gpl2+)))
2f4698d7
MW
3726
3727(define-public darkice
3728 (package
3729 (name "darkice")
3730 (version "1.3")
3731 (source (origin
3732 (method url-fetch)
3733 (uri (string-append "mirror://sourceforge/darkice/darkice/"
3734 version "/darkice-" version ".tar.gz"))
3735 (sha256
3736 (base32 "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c"))
3737 (patches
3738 (search-patches "darkice-workaround-fpermissive-error.patch"))))
3739 (build-system gnu-build-system)
3740 (native-inputs `(("pkg-config" ,pkg-config)))
3741 (inputs `(("lame" ,lame)
3742 ("libvorbis" ,libvorbis)
3743 ("opus" ,opus)
3744 ("twolame" ,twolame)
3745 ("alsa-lib" ,alsa-lib)
3746 ("pulseaudio" ,pulseaudio)
3747 ("jack" ,jack-1)
3748 ("libsamplerate" ,libsamplerate)))
3749 (arguments
3750 `(#:configure-flags
3751 (list (string-append "--with-lame-prefix="
3752 (assoc-ref %build-inputs "lame")))))
3753 (home-page "http://www.darkice.org/")
3754 (synopsis "Live audio streamer")
3755 (description "DarkIce is a live audio streamer. It takes audio input from
3756a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio
3757stream to one or more IceCast and/or ShoutCast servers.")
3758 (license license:gpl3+)))
0f2ce448
AT
3759
3760(define-public libltc
3761 (package
3762 (name "libltc")
3763 (version "1.3.1")
3764 (source
3765 (origin
3766 (method url-fetch)
3767 (uri
3768 (string-append "https://github.com/x42/libltc/releases/download/v"
3769 version "/libltc-" version ".tar.gz"))
3770 (sha256
3771 (base32
3772 "173h9dgmain3nyrwk6q2d7yl4fnh4vacag4s2p01n5b7nyrkxrjh"))))
3773 (build-system gnu-build-system)
3774 (arguments
3775 `(#:parallel-tests? #f)) ;tests fail otherwise
3776 (native-inputs
3777 `(("doxygen" ,doxygen)
3778 ("pkg-config" ,pkg-config)))
3779 (synopsis "Encode or decode Linear/Longitudinal Time Code (LTC) audio")
3780 (description "Libltc is a POSIX-C Library for handling
3781@dfn{Linear/Longitudinal Time Code} (LTC) data.")
3782 (home-page "https://x42.github.io/libltc/")
3783 (license license:lgpl3+)))
74f9a8fb
AT
3784
3785(define-public redkite
3786 (package
3787 (name "redkite")
3788 (version "0.6.2")
3789 (source
3790 (origin
83ba0e42
MB
3791 (method git-fetch)
3792 (uri (git-reference
3793 (url "https://gitlab.com/geontime/redkite.git")
3794 (commit (string-append "v" version))))
3795 (file-name (git-file-name name version))
74f9a8fb
AT
3796 (sha256
3797 (base32
83ba0e42 3798 "1i874izajbdhlfacwwj84qrsxf7g4y6nblzxalrkzaap9sa7d1r6"))))
74f9a8fb
AT
3799 (build-system cmake-build-system)
3800 (arguments
3801 `(#:tests? #f)) ;no tests included
3802 (inputs
3803 `(("cairo" ,cairo)))
3804 (native-inputs
3805 `(("pkg-config", pkg-config)))
3806 (synopsis "Small GUI toolkit")
3807 (description "Redkite is a small GUI toolkit developed in C++17 and
3808inspired from other well known GUI toolkits such as Qt and GTK. It is
3809minimal on purpose and is intended to be statically linked to applications,
3810therefore satisfying any requirements they may have to be self contained,
3811as is the case with audio plugins.")
3812 (home-page "https://gitlab.com/geontime/redkite")
3813 (license license:gpl3+)))