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