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