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