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