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