gnu: java: Use HTTPS for osgi.org home pages.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
CommitLineData
fb68469f 1;;; GNU Guix --- Functional package management for GNU
78357403 2;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
9f1cdd9d 3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
0390a520 4;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
d739f481 5;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
1207a0c3 6;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
a3c57693 7;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
eb5378f9 8;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
c2b411c2 9;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
9a4c032c 10;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
7a0ba651 11;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
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")
23f45dd3 1031 (version "1.1.9")
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
23f45dd3 1040 "0krvmb1idnf95l2ydzfcb08ayyx3n4m71hf9fgwv3srzaikvpf3q"))))
dd46c16b 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")
54ea2d86 1963 (version "0.5.0")
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
54ea2d86 1970 "0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s"))))
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)
c0c5feda 1976 ("alsa-lib" ,alsa-lib)
a3c57693
EF
1977 ("qtbase" ,qtbase)
1978 ("qtx11extras" ,qtx11extras)))
0d78e377
MM
1979 (native-inputs
1980 `(("pkg-config" ,pkg-config)
1981 ("qttools" ,qttools)))
1982 (home-page "https://qjackctl.sourceforge.io/")
1983 (synopsis "Jack server control application")
1984 (description "Control a Jack server. Allows you to plug various sources
1985into various outputs and to start, stop and configure jackd")
1986 (license license:gpl2+)))
1987
40713793
RW
1988(define-public qjackrcd
1989 (package
1990 (name "qjackrcd")
78357403 1991 (version "1.2.2")
40713793 1992 (source (origin
78357403
RW
1993 (method git-fetch)
1994 (uri (git-reference
1995 (url "https://github.com/orouits/qjackrcd.git")
1996 (commit (string-append "v" version))))
40713793
RW
1997 (sha256
1998 (base32
78357403 1999 "1l5iq2mkqd4gn9yr8xbh9qlpp1clcflazychl4vhdbz0bzq4c6al"))))
40713793
RW
2000 (build-system gnu-build-system)
2001 (arguments
2002 `(#:phases
2003 (modify-phases %standard-phases
2004 (replace 'configure
2005 (lambda* (#:key outputs #:allow-other-keys)
2006 (zero? (system* "qmake"
2007 (string-append "PREFIX="
2008 (assoc-ref outputs "out")))))))))
2009 (native-inputs
2010 `(("qtbase" ,qtbase))) ; for qmake
2011 (inputs
2012 `(("jack" ,jack-1)
2013 ("libsndfile" ,libsndfile)
2014 ("qtbase" ,qtbase)))
2015 (home-page "https://sourceforge.net/projects/qjackrcd/")
2016 (synopsis "Stereo audio recorder for JACK")
2017 (description "QJackRcd is a simple graphical stereo recorder for JACK
2018supporting silence processing for automatic pause, file splitting, and
2019background file post-processing.")
2020 (license license:gpl2+)))
0d78e377 2021
b22755be
RW
2022(define-public raul
2023 (package
2024 (name "raul")
2025 (version "0.8.0")
2026 (source (origin
2027 (method url-fetch)
2028 (uri (string-append "http://download.drobilla.net/raul-"
2029 version ".tar.bz2"))
2030 (sha256
2031 (base32
2032 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
2033 (build-system waf-build-system)
2034 (arguments
2035 `(#:python ,python-2
2036 #:tests? #f)) ; no check target
2037 (inputs
2038 `(("glib" ,glib)
2039 ("boost" ,boost)))
2040 (native-inputs
2041 `(("pkg-config" ,pkg-config)))
2042 (home-page "http://drobilla.net/software/raul/")
2043 (synopsis "Real-time audio utility library")
2044 (description
2045 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
2046aimed at audio/musical applications.")
2047 (license license:gpl2+)))
2048
f91d0d08 2049(define-public raul-devel
a8bf6b9b 2050 (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
f91d0d08
RW
2051 (revision "1"))
2052 (package (inherit raul)
2053 (name "raul")
a8bf6b9b 2054 (version (string-append "0.8.9-" revision "."
f91d0d08
RW
2055 (string-take commit 9)))
2056 (source (origin
2057 (method git-fetch)
2058 (uri (git-reference
2059 (url "http://git.drobilla.net/raul.git")
2060 (commit commit)))
2061 (file-name (string-append name "-" version "-checkout"))
2062 (sha256
2063 (base32
a8bf6b9b 2064 "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
f91d0d08 2065
57238ff2
RW
2066(define-public rubberband
2067 (package
2068 (name "rubberband")
2069 (version "1.8.1")
2070 (source (origin
2071 (method url-fetch)
2072 (uri
2073 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
2074 version
2075 ".tar.bz2"))
2076 (sha256
2077 (base32
2078 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
2079 (build-system gnu-build-system)
2080 (arguments `(#:tests? #f)) ; no check target
2081 (inputs
2082 `(("ladspa" ,ladspa)
2083 ("libsamplerate" ,libsamplerate)
2084 ("vamp" ,vamp)))
2085 (native-inputs
2086 `(("pkg-config" ,pkg-config)))
2087 (home-page "http://breakfastquay.com/rubberband/")
2088 (synopsis "Audio time-stretching and pitch-shifting library")
2089 (description
2090 "Rubber Band is a library and utility program that permits changing the
2091tempo and pitch of an audio recording independently of one another.")
2092 (license license:gpl2+)))
2093
cc45cff8
RW
2094(define-public rtmidi
2095 (package
2096 (name "rtmidi")
2097 (version "2.1.0")
2098 (source (origin
2099 (method url-fetch)
2100 (uri
2101 (string-append "https://github.com/powertab/rtmidi/archive/"
2102 version ".tar.gz"))
2103 (file-name (string-append name "-" version ".tar.gz"))
2104 (sha256
2105 (base32
2106 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
2107 (build-system gnu-build-system)
2108 (arguments
2109 `(#:tests? #f ;no "check" target
2110 #:phases (modify-phases %standard-phases
d10092b8
KK
2111 (add-after
2112 'unpack 'autoconf
cc45cff8
RW
2113 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
2114 (add-before
2115 'build 'fix-makefile
2116 (lambda _
2117 (substitute* "Makefile"
2118 (("/bin/ln") "ln")
2119 (("RtMidi.h RtError.h") "RtMidi.h"))
2120 #t))
2121 (add-before
2122 'install 'make-target-dirs
2123 (lambda _
2124 (let ((out (assoc-ref %outputs "out")))
2125 (mkdir-p (string-append out "/bin"))
2126 (mkdir (string-append out "/lib"))
2127 (mkdir (string-append out "/include")))
2128 #t)))))
2129 (inputs
2130 `(("jack" ,jack-1)
2131 ("alsa-lib" ,alsa-lib)))
2132 (native-inputs
2133 `(("autoconf" ,autoconf)
2134 ("automake" ,automake)
2135 ("libtool" ,libtool)
2136 ("pkg-config" ,pkg-config)))
2137 (home-page "https://github.com/powertab/rtmidi")
2138 (synopsis "Cross-platform MIDI library for C++")
2139 (description
2140 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
2141classes) that provide a common cross-platform API for realtime MIDI
2142input/output.")
2143 (license license:expat)))
2144
5279eb6f
RW
2145(define-public sratom
2146 (package
2147 (name "sratom")
7181981f 2148 (version "0.6.0")
5279eb6f
RW
2149 (source (origin
2150 (method url-fetch)
2151 (uri (string-append "http://download.drobilla.net/sratom-"
7181981f 2152 version ".tar.bz2"))
5279eb6f
RW
2153 (sha256
2154 (base32
7181981f 2155 "0hrxd9i66s06bpn6i3s9ka95134g3sm8yscmif7qgdzhyjqw42j4"))))
5279eb6f
RW
2156 (build-system waf-build-system)
2157 (arguments `(#:tests? #f)) ; no check target
2158 (inputs
2159 `(("lv2" ,lv2)
2160 ("serd" ,serd)
2161 ("sord" ,sord)))
2162 (native-inputs
2163 `(("pkg-config" ,pkg-config)))
2164 (home-page "http://drobilla.net/software/sratom/")
2165 (synopsis "Library for serialising LV2 atoms to/from RDF")
2166 (description
2167 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
2168the Turtle syntax.")
2169 (license license:isc)))
f3ab6ad3
RW
2170
2171(define-public suil
2172 (package
2173 (name "suil")
a00403c6 2174 (version "0.10.0")
f3ab6ad3
RW
2175 (source (origin
2176 (method url-fetch)
2177 (uri (string-append "http://download.drobilla.net/suil-"
b1d3bb76 2178 version ".tar.bz2"))
f3ab6ad3
RW
2179 (sha256
2180 (base32
a00403c6 2181 "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"))))
f3ab6ad3 2182 (build-system waf-build-system)
9f64f7e6
RW
2183 (arguments
2184 `(#:tests? #f ; no check target
2185 #:configure-flags
2186 '("CXXFLAGS=-std=gnu++11")))
f3ab6ad3
RW
2187 (inputs
2188 `(("lv2" ,lv2)
a00403c6
RW
2189 ("gtk+" ,gtk+-2)
2190 ("gtk+" ,gtk+)
9f64f7e6 2191 ("qt" ,qtbase)))
f3ab6ad3
RW
2192 (native-inputs
2193 `(("pkg-config" ,pkg-config)))
2194 (home-page "http://drobilla.net/software/suil/")
2195 (synopsis "Library for loading and wrapping LV2 plugin UIs")
2196 (description
2197 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
2198
2199Suil makes it possible to load a UI of a toolkit in a host using another
2200toolkit. The API is designed such that hosts do not need to explicitly
2201support specific toolkits – if Suil supports a particular toolkit, then UIs in
2202that toolkit will work in all hosts that use Suil automatically.
2203
a00403c6 2204Suil currently supports every combination of Gtk, Qt, and X11.")
f3ab6ad3 2205 (license license:isc)))
db46f2fc 2206
9ffee457
RW
2207(define-public timidity++
2208 (package
2209 (name "timidity++")
2210 (version "2.14.0")
2211 (source (origin
2212 (method url-fetch)
de67e922
LF
2213 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
2214 "/TiMidity++-" version
2215 "/TiMidity++-" version ".tar.bz2"))
9ffee457
RW
2216 (sha256
2217 (base32
2218 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
2219 (build-system gnu-build-system)
2220 (arguments
2221 '(#:configure-flags
2222 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
2223 "--enable-ncurses"
2224 "--enable-server"
2225 "--enable-alsaseq"
2226 (string-append "--with-default-path="
2227 (assoc-ref %outputs "out") "/etc/timidity"))
2228 #:phases
dc1d3cde
KK
2229 (modify-phases %standard-phases
2230 (add-after 'install 'install-config
2231 (lambda _
2232 (let ((out (string-append (assoc-ref %outputs "out")
2233 "/etc/timidity")))
2234 (mkdir-p out)
2235 (call-with-output-file
2236 (string-append out "/timidity.cfg")
2237 (lambda (port)
2238 (format port (string-append "source "
2239 (assoc-ref %build-inputs "freepats")
2240 "/share/freepats/freepats.cfg")))))
2241 #t)))))
9ffee457
RW
2242 (inputs
2243 `(("alsa-lib" ,alsa-lib)
2244 ("ao" ,ao)
2245 ("flac" ,flac)
2246 ("jack" ,jack-1)
2247 ("libogg" ,libogg)
2248 ("speex" ,speex)
2249 ("ncurses" ,ncurses)
2250 ("freepats" ,freepats)))
2251 (native-inputs
2252 `(("pkg-config" ,pkg-config)))
2253 (home-page "http://timidity.sourceforge.net/")
2254 (synopsis "Software synthesizer for playing MIDI files")
2255 (description
2256 "TiMidity++ is a software synthesizer. It can play MIDI files by
2257converting them into PCM waveform data; give it a MIDI data along with digital
2258instrument data files, then it synthesizes them in real-time, and plays. It
2259can not only play sounds, but also can save the generated waveforms into hard
2260disks as various audio file formats.")
2261 (license license:gpl2+)))
2262
db46f2fc
RW
2263(define-public vamp
2264 (package
2265 (name "vamp")
b1fb59d3 2266 (version "2.6")
db46f2fc
RW
2267 (source (origin
2268 (method url-fetch)
2269 (uri (string-append
2270 "https://code.soundsoftware.ac.uk"
494e9b91 2271 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 2272 version ".tar.gz"))
9002e17c
TUBK
2273 (sha256
2274 (base32
494e9b91 2275 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 2276 (build-system gnu-build-system)
9002e17c
TUBK
2277 (arguments
2278 `(#:tests? #f ; no check target
2279 #:phases
dc1d3cde
KK
2280 (modify-phases %standard-phases
2281 (add-after 'install 'remove-libvamp-hostsdk.la
2282 (lambda* (#:key outputs #:allow-other-keys)
2283 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
2284 (for-each delete-file
2285 (let ((out (assoc-ref outputs "out")))
2286 (list (string-append out "/lib/libvamp-sdk.la")
2287 (string-append out "/lib/libvamp-hostsdk.la"))))
4f27a333 2288 #t)))))
db46f2fc
RW
2289 (inputs
2290 `(("libsndfile" ,libsndfile)))
2291 (native-inputs
2292 `(("pkg-config" ,pkg-config)))
2293 (home-page "http://vamp-plugins.org")
2294 (synopsis "Modular and extensible audio processing system")
2295 (description
2296 "Vamp is an audio processing plugin system for plugins that extract
2297descriptive information from audio data — typically referred to as audio
2298analysis plugins or audio feature extraction plugins.")
2299 (license
2300 (license:x11-style
2301 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
2302
2303(define-public libsbsms
2304 (package
2305 (name "libsbsms")
2306 (version "2.0.2")
2307 (source
2308 (origin
2309 (method url-fetch)
2310 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
2311 "/libsbsms-" version ".tar.gz"))
2312 (sha256
2313 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
2314 (build-system gnu-build-system)
2315 (native-inputs `(("automake" ,automake)))
2316 (arguments
476b2877
MW
2317 `(#:configure-flags
2318 ;; Disable the use of SSE unless on x86_64.
2319 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
2320 (%current-system))))
2321 ''("--disable-sse")
2322 ''())
2323 #:phases
09c414d8
MW
2324 (modify-phases %standard-phases
2325 (add-after
2326 'unpack 'fix-ar-lib-path
2327 (lambda* (#:key inputs #:allow-other-keys)
2328 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
2329 (delete-file "ar-lib")
2330 (symlink
2331 (string-append (assoc-ref inputs "automake") "/share/automake-"
2332 ,(package-version automake) "/ar-lib")
2333 "ar-lib"))))))
9f1cdd9d
TUBK
2334 (home-page "http://sbsms.sourceforge.net/")
2335 (synopsis "Library for time stretching and pitch scaling of audio")
2336 (description
2337 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
2338stretching and pitch scaling of audio. This package contains the library.")
2339 ;; There is no explicit declaration of a license, but a COPYING file
2340 ;; containing gpl2.
2341 (license license:gpl2)))
754a98ae 2342
01b90919
SB
2343(define-public wavpack
2344 (package
2345 (name "wavpack")
5171ea38 2346 (version "5.1.0")
01b90919
SB
2347 (source (origin
2348 (method url-fetch)
2349 (uri (string-append "http://www.wavpack.com/"
2350 name "-" version ".tar.bz2"))
2351 (sha256
2352 (base32
5171ea38 2353 "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
01b90919
SB
2354 (build-system gnu-build-system)
2355 (home-page "http://www.wavpack.com/")
2356 (synopsis "Hybrid lossless audio codec")
2357 (description
2358 "WavPack is an audio compression format with lossless, lossy and hybrid
2359compression modes. This package contains command-line programs and library to
2360encode and decode wavpack files.")
2361 (license license:bsd-3)))
2362
a176dd7e
SB
2363(define-public libmodplug
2364 (package
2365 (name "libmodplug")
2366 (version "0.8.8.5")
2367 (source (origin
2368 (method url-fetch)
2369 (uri (string-append
0f971a04 2370 "mirror://sourceforge/modplug-xmms/"
a176dd7e
SB
2371 name "/" version "/" name "-" version ".tar.gz"))
2372 (sha256
2373 (base32
2374 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
2375 (build-system gnu-build-system)
2376 (home-page "http://modplug-xmms.sourceforge.net/")
2377 (synopsis "Mod file playing library")
2378 (description
2379 "Libmodplug renders mod music files as raw audio data, for playing or
2380conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
2381supported. Optional features include high-quality resampling, bass expansion,
2382surround and reverb.")
2383 (license license:public-domain)))
2384
b97b5cda
SB
2385(define-public libxmp
2386 (package
2387 (name "libxmp")
2784fca0 2388 (version "4.4.1")
b97b5cda
SB
2389 (source (origin
2390 (method url-fetch)
de67e922 2391 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
b97b5cda
SB
2392 name "-" version ".tar.gz"))
2393 (sha256
2394 (base32
2784fca0 2395 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
b97b5cda
SB
2396 (build-system gnu-build-system)
2397 (home-page "http://xmp.sourceforge.net/")
2398 (synopsis "Module player library")
2399 (description
2400 "Libxmp is a library that renders module files to PCM data. It supports
2401over 90 mainstream and obscure module formats including Protracker (MOD),
2402Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
2403 (license license:lgpl2.1+)))
2404
3ec4bba4
SB
2405(define-public xmp
2406 (package
2407 (name "xmp")
1a79d476 2408 (version "4.1.0")
3ec4bba4
SB
2409 (source (origin
2410 (method url-fetch)
de67e922 2411 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
3ec4bba4
SB
2412 name "-" version ".tar.gz"))
2413 (sha256
2414 (base32
1a79d476 2415 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
3ec4bba4
SB
2416 (build-system gnu-build-system)
2417 (native-inputs
2418 `(("pkg-config" ,pkg-config)))
2419 (inputs
2420 `(("libxmp" ,libxmp)
2421 ("pulseaudio" ,pulseaudio)))
2422 (home-page "http://xmp.sourceforge.net/")
2423 (synopsis "Extended module player")
2424 (description
2425 "Xmp is a portable module player that plays over 90 mainstream and
2426obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
2427Tracker 3 S3M and Impulse Tracker IT files.")
2428 (license license:gpl2+)))
2429
754a98ae
TUBK
2430(define-public soundtouch
2431 (package
2432 (name "soundtouch")
2433 (version "1.8.0")
2434 (source
2435 (origin
2436 (method url-fetch)
2437 (uri
2438 (string-append
2439 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
2440 (sha256
2441 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
2442 (build-system gnu-build-system)
2443 (native-inputs
2444 `(("autoconf" ,autoconf)
2445 ("automake" ,automake)
2446 ("libtool" ,libtool)
2447 ("file" ,file)))
2448 (arguments
2449 '(#:phases
dc1d3cde
KK
2450 (modify-phases %standard-phases
2451 (add-after 'unpack 'bootstrap
2452 (lambda _
2453 (zero? (system* "sh" "bootstrap")))))))
754a98ae
TUBK
2454 (home-page "http://www.surina.net/soundtouch/")
2455 (synopsis
2456 "Audio processing library for changing tempo, pitch and playback rate")
2457 (description
2458 "SoundTouch is an audio processing library for changing the tempo, pitch
2459and playback rates of audio streams or audio files. It is intended for
2460application developers writing sound processing tools that require tempo/pitch
2461control functionality, or just for playing around with the sound effects.")
2462 (license license:lgpl2.1+)))
4bddd14c 2463
d739f481
AK
2464(define-public sox
2465 (package
2466 (name "sox")
2467 (version "14.4.2")
2468 (source (origin
2469 (method url-fetch)
de67e922
LF
2470 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2471 name "-" version ".tar.bz2"))
d739f481
AK
2472 (sha256
2473 (base32
2474 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2475 (build-system gnu-build-system)
2476 (arguments
2477 '(#:configure-flags
2478 ;; The upstream asks to identify the distribution to diagnose SoX
2479 ;; bug reports.
2480 '("--with-distro=Guix System Distribution")))
2481 (native-inputs
2482 `(("pkg-config" ,pkg-config)))
2483 (inputs
2484 `(("alsa-lib" ,alsa-lib)
2485 ("ao" ,ao)
2486 ("flac" ,flac)
2487 ("lame" ,lame)
2488 ("libid3tag" ,libid3tag)
2489 ("libltdl" ,libltdl)
2490 ("libmad" ,libmad)
2491 ("libpng" ,libpng)
2492 ("libvorbis" ,libvorbis)
2493 ("pulseaudio" ,pulseaudio)))
2494 (home-page "http://sox.sourceforge.net")
2495 (synopsis "Sound processing utility")
2496 (description
2497 "SoX (Sound eXchange) is a command line utility that can convert
2498various formats of computer audio files to other formats. It can also
2499apply various effects to these sound files, and, as an added bonus, SoX
2500can play and record audio files.")
2501 ;; sox.c is distributed under GPL, while the files that make up
2502 ;; libsox are licensed under LGPL.
2503 (license (list license:gpl2+ license:lgpl2.1+))))
2504
4bddd14c
TUBK
2505(define-public soxr
2506 (package
2507 (name "soxr")
eb3574fb 2508 (version "0.1.2")
4bddd14c
TUBK
2509 (source
2510 (origin
2511 (method url-fetch)
2512 (uri
2513 (string-append "mirror://sourceforge/soxr/soxr-" version
2514 "-Source.tar.xz"))
2515 (sha256
eb3574fb 2516 (base32 "0xf2w3piwz9gfr1xqyrj4k685q5dy53kq3igv663i4f4y4sg9rjl"))))
4bddd14c
TUBK
2517 (build-system cmake-build-system)
2518 (arguments '(#:tests? #f)) ;no 'check' target
3b3b60d0 2519 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
4bddd14c
TUBK
2520 (synopsis "One-dimensional sample-rate conversion library")
2521 (description
2522 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2523conversion. It may be used, for example, to resample PCM-encoded audio.")
2524 (license license:lgpl2.1+)))
49f36708
TUBK
2525
2526(define-public twolame
2527 (package
2528 (name "twolame")
2529 (version "0.3.13")
2530 (source
2531 (origin
2532 (method url-fetch)
de67e922
LF
2533 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2534 "/twolame-" version ".tar.gz"))
49f36708 2535 (sha256
46914280
LF
2536 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))
2537 (modules '((guix build utils)))
2538 ;; The tests break with Perl 5.24:
2539 ;; https://github.com/njh/twolame/issues/21
2540 ;; TODO: Remove this snippet when upgrading twolame.
2541 (snippet
2542 '(begin
2543 (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])"))
2544 #t))))
49f36708
TUBK
2545 (build-system gnu-build-system)
2546 (inputs
2547 `(("libsndfile" ,libsndfile)))
2548 (native-inputs
2549 `(("perl" ,perl)
2550 ("which" ,which))) ;used in tests/test.pl
2551 (home-page "http://www.twolame.org/")
2552 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2553 (description
2554 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2555tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2556portions of LAME.")
2557 (license license:lgpl2.1+)))
bd4464f2
TUBK
2558
2559(define-public portaudio
2560 (package
2561 (name "portaudio")
80420acb 2562 (version "190600.20161030")
bd4464f2
TUBK
2563 (source
2564 (origin
2565 (method url-fetch)
2566 (uri (string-append
2567 "http://www.portaudio.com/archives/pa_stable_v"
2568 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2569 ".tgz"))
2570 (sha256
80420acb 2571 (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
fc1adab1 2572 (patches (search-patches "portaudio-audacity-compat.patch"))))
bd4464f2
TUBK
2573 (build-system gnu-build-system)
2574 (inputs
2575 ;; TODO: Add ASIHPI.
2576 `(("alsa-lib" ,alsa-lib)
bcbc02fd 2577 ("jack" ,jack-1)))
bd4464f2 2578 (native-inputs
b47be021
TUBK
2579 `(("autoconf" ,autoconf)
2580 ("automake" ,automake)
2581 ("libtool" ,libtool)
2582 ("pkg-config" ,pkg-config)))
2583 (arguments
2584 '(#:phases
2585 ;; Autoreconf is necessary because the audacity-compat patch modifies
2586 ;; .in files.
dc1d3cde
KK
2587 (modify-phases %standard-phases
2588 (add-after 'unpack 'autoreconf
2589 (lambda _
2590 (zero? (system* "autoreconf" "-vif")))))
b47be021 2591 #:tests? #f)) ;no 'check' target
bd4464f2
TUBK
2592 (home-page "http://www.portaudio.com/")
2593 (synopsis "Audio I/O library")
2594 (description
2595 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2596to record and/or play sound using a callback function or a blocking read/write
2597interface.")
2598 (license license:expat)))
74bbf894 2599
fe73aef4
RW
2600(define-public qsynth
2601 (package
2602 (name "qsynth")
0fe17528 2603 (version "0.5.0")
fe73aef4
RW
2604 (source
2605 (origin
2606 (method url-fetch)
de67e922
LF
2607 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2608 "/qsynth-" version ".tar.gz"))
fe73aef4 2609 (sha256
e13fff2c 2610 (base32
0fe17528 2611 "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584"))))
fe73aef4
RW
2612 (build-system gnu-build-system)
2613 (arguments
f2358305
DC
2614 `(#:tests? #f ; no "check" phase
2615 #:configure-flags
2616 '("CXXFLAGS=-std=gnu++11")))
598f6394 2617 (native-inputs
4ed4bb11
RW
2618 `(("qttools" ,qttools)
2619 ("pkg-config" ,pkg-config)))
fe73aef4 2620 (inputs
598f6394
DC
2621 `(("fluidsynth" ,fluidsynth)
2622 ("qtbase" ,qtbase)
2623 ("qtx11extras" ,qtx11extras)))
fe73aef4
RW
2624 (home-page "http://qsynth.sourceforge.net")
2625 (synopsis "Graphical user interface for FluidSynth")
2626 (description
2627 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2628synthesizer written in C++.")
2629 (license license:gpl2+)))
2630
55b596c3
TUBK
2631(define-public rsound
2632 (package
2633 (name "rsound")
2634 (version "1.1")
2635 (source
2636 (origin
2637 (method url-fetch)
2638 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
2639 version ".tar.gz"))
01e327b5 2640 (file-name (string-append name "-" version))
55b596c3
TUBK
2641 (sha256
2642 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
2643 (build-system gnu-build-system)
2644 (inputs
2645 `(("alsa-lib" ,alsa-lib)
276f49df 2646 ("jack" ,jack-1)
55b596c3
TUBK
2647 ("ao" ,ao)
2648 ("libsamplerate" ,libsamplerate)
2649 ("openal" ,openal)
2650 ("portaudio" ,portaudio)
2651 ("pulseaudio" ,pulseaudio)))
2652 (arguments
2653 '(#:phases
dc1d3cde
KK
2654 (modify-phases %standard-phases
2655 (replace 'configure
2656 (lambda* (#:key outputs #:allow-other-keys)
2657 (setenv "CC" "gcc")
2658 (zero?
2659 (system* "./configure"
2660 (string-append "--prefix=" (assoc-ref outputs "out")))))))
55b596c3
TUBK
2661 ;; No 'check' target.
2662 #:tests? #f))
2663 (home-page "http://themaister.net/rsound.html")
2664 (synopsis "Networked audio system")
2665 (description
2666 "RSound allows you to send audio from an application and transfer it
2667directly to a different computer on your LAN network. It is an audio daemon
2668with a much different focus than most other audio daemons.")
2669 (license license:gpl3+)))
2670
caf9055c
RW
2671(define-public xjackfreak
2672 (package
2673 (name "xjackfreak")
2674 (version "1.0")
2675 (source (origin
2676 (method url-fetch)
2677 (uri (string-append
2678 "https://github.com/johnhldavis/xjackfreak/archive/v"
2679 version ".tar.gz"))
2680 (file-name (string-append name "-" version ".tar.gz"))
2681 (sha256
2682 (base32
2683 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
2684 (build-system gnu-build-system)
2685 (arguments
2686 `(#:make-flags
2687 (list (string-append "docdir=" (assoc-ref %outputs "out")
2688 "/share/doc/xjackfreak"))))
2689 (inputs
2690 `(("jack" ,jack-1)
2691 ("libx11" ,libx11)
2692 ("libxt" ,libxt)
2693 ("libxext" ,libxext)))
2694 (native-inputs
2695 `(("pkg-config" ,pkg-config)))
2696 (home-page "https://github.com/johnhldavis/xjackfreak")
2697 (synopsis "JACK audio frequency analyzer and display")
2698 (description
2699 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2700Connection Kit. It can display the FFT of any input, modify it and output the
2701result.")
2702 (license license:gpl3+)))
2703
d73f7909
RW
2704(define-public zita-convolver
2705 (package
2706 (name "zita-convolver")
2707 (version "3.1.0")
2708 (source (origin
2709 (method url-fetch)
2710 (uri (string-append
2711 "http://kokkinizita.linuxaudio.org"
2712 "/linuxaudio/downloads/zita-convolver-"
2713 version ".tar.bz2"))
29e255ca
SB
2714 (snippet
2715 ;; Don't optimize for a specific processor architecture.
2716 '(substitute* "libs/Makefile"
2717 (("^CXXFLAGS \\+= -march=native") "")))
2718 (modules '((guix build utils)))
d73f7909
RW
2719 (sha256
2720 (base32
2721 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2722 (build-system gnu-build-system)
2723 (arguments
2724 `(#:tests? #f ; no "check" target
2725 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2726 #:phases
dc1d3cde
KK
2727 (modify-phases %standard-phases
2728 (add-after 'unpack 'patch-makefile-and-enter-directory
2729 (lambda _
2730 (substitute* "libs/Makefile"
2731 (("ldconfig") "true")
2732 (("^LIBDIR =.*") "LIBDIR = lib\n"))
4f27a333
MB
2733 (chdir "libs") #t))
2734 (add-after 'install 'install-symlink
2735 (lambda _
2736 (symlink "libzita-convolver.so"
2737 (string-append (assoc-ref %outputs "out")
2738 "/lib/libzita-convolver.so.3"))))
d73f7909 2739 ;; no configure script
4f27a333 2740 (delete 'configure))))
d73f7909
RW
2741 (inputs `(("fftwf" ,fftwf)))
2742 (home-page "http://kokkinizita.linuxaudio.org")
2743 (synopsis "Fast, partitioned convolution engine library")
2744 (description
2745 "Zita convolver is a C++ library providing a real-time convolution
2746engine.")
2747 (license license:gpl3+)))
2748
b7ed6784
RW
2749(define-public zita-resampler
2750 (package
2751 (name "zita-resampler")
2752 (version "1.3.0")
2753 (source (origin
2754 (method url-fetch)
2755 (uri (string-append
2756 "http://kokkinizita.linuxaudio.org"
2757 "/linuxaudio/downloads/zita-resampler-"
2758 version ".tar.bz2"))
6dff4955
SB
2759 (snippet
2760 ;; Don't optimize for a specific processor architecture.
2761 '(substitute* '("apps/Makefile" "libs/Makefile")
2762 (("^CXXFLAGS \\+= -march=native") "")))
2763 (modules '((guix build utils)))
b7ed6784
RW
2764 (sha256
2765 (base32
2766 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
2767 (build-system gnu-build-system)
2768 (arguments
2769 `(#:tests? #f ; no "check" target
2770 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2771 #:phases
2772 (modify-phases %standard-phases
2773 (add-after
2774 'unpack 'patch-makefile-and-enter-directory
2775 (lambda _
2776 (substitute* "libs/Makefile"
2777 (("ldconfig") "true")
2778 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2779 (chdir "libs")
2780 #t))
2781 (add-after
2782 'install 'install-symlink
2783 (lambda _
2784 (symlink "libzita-resampler.so"
2785 (string-append (assoc-ref %outputs "out")
2786 "/lib/libzita-resampler.so.1"))))
2787 ;; no configure script
2788 (delete 'configure))))
2789 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
2790 (synopsis "C++ library for resampling audio signals")
2791 (description
2792 "Libzita-resampler is a C++ library for resampling audio signals. It is
2793designed to be used within a real-time processing context, to be fast, and to
2794provide high-quality sample rate conversion.")
2795 (license license:gpl3+)))
2796
74bbf894
RW
2797(define-public zita-alsa-pcmi
2798 (package
2799 (name "zita-alsa-pcmi")
2800 (version "0.2.0")
2801 (source (origin
2802 (method url-fetch)
2803 (uri (string-append
2804 "http://kokkinizita.linuxaudio.org"
2805 "/linuxaudio/downloads/zita-alsa-pcmi-"
2806 version ".tar.bz2"))
2807 (sha256
2808 (base32
9569dfc8 2809 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
2810 (build-system gnu-build-system)
2811 (arguments
2812 `(#:tests? #f ; no "check" target
2813 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2814 #:phases
dc1d3cde
KK
2815 (modify-phases %standard-phases
2816 (add-after 'unpack 'patch-makefile-and-enter-directory
2817 (lambda _
2818 (substitute* "libs/Makefile"
2819 (("ldconfig") "true")
2820 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2821 (chdir "libs")
2822 #t))
2823 (add-after 'install 'install-symlink
2824 (lambda _
2825 (symlink "libzita-alsa-pcmi.so"
2826 (string-append (assoc-ref %outputs "out")
2827 "/lib/libzita-alsa-pcmi.so.0"))))
2828 ;; no configure script
2829 (delete 'configure))))
74bbf894
RW
2830 (inputs
2831 `(("alsa-lib" ,alsa-lib)
2832 ("fftw" ,fftw)))
2833 (home-page "http://kokkinizita.linuxaudio.org")
2834 (synopsis "C++ wrapper around the ALSA API")
2835 (description
2836 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
2837access to ALSA PCM devices, taking care of the many functions required to
2838open, initialise and use a hw: device in mmap mode, and providing floating
2839point audio data.")
2840 (license license:gpl3+)))
6da16993
LF
2841
2842(define-public cuetools
2843 (package
2844 (name "cuetools")
2845 (version "1.4.1")
2846 (source (origin
2847 (method url-fetch)
2848 (uri (string-append "https://github.com/svend/cuetools/archive/"
2849 version ".tar.gz"))
2850 (file-name (string-append name "-" version ".tar.gz"))
2851 (sha256
2852 (base32
2853 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
2854 (build-system gnu-build-system)
2855 ;; The source tarball is not bootstrapped.
2856 (arguments
2857 `(#:phases
2858 (modify-phases %standard-phases
2859 (add-after 'unpack 'bootstrap
2860 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
2861 ;; Bootstrapping tools
2862 (native-inputs
2863 `(("autoconf" ,autoconf)
2864 ("automake" ,automake)
2865 ("flex" ,flex)
2866 ("bison" ,bison)))
2867 (synopsis "Cue and toc file parsers and utilities")
2868 (description "Cuetools is a set of programs that are useful for manipulating
2869and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
2870files are a way to represent the layout of a data or audio CD in a
2871machine-readable ASCII format.")
2872 (home-page "https://github.com/svend/cuetools")
2873 (license license:gpl2+)))
6819a8dd
LF
2874
2875(define-public shntool
2876 (package
2877 (name "shntool")
2878 (version "3.0.10")
2879 (source (origin
2880 (method url-fetch)
2881 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
2882 "shntool-" version ".tar.gz"))
2883 (sha256
2884 (base32
2885 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
2886 (build-system gnu-build-system)
2887 (synopsis "WAVE audio data processing tool")
2888 (description "shntool is a multi-purpose WAVE data processing and reporting
2889utility. File formats are abstracted from its core, so it can process any file
2890that contains WAVE data, compressed or not---provided there exists a format
d5b357ec
LF
2891module to handle that particular file type. It can also generate CUE files, and
2892use them split WAVE data into multiple files.")
6819a8dd 2893 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
2894 ;; 'install-sh' bears the x11 license
2895 (license (list license:gpl2+ license:x11))))
680b54c5
DT
2896
2897(define-public dcadec
2898 (package
2899 (name "dcadec")
2900 (version "0.2.0")
2901 (source (origin
2902 (method url-fetch)
2903 (uri (string-append "https://github.com/foo86/dcadec/archive/v"
2904 version ".tar.gz"))
2905 (file-name (string-append name "-" version ".tar.gz"))
2906 (sha256
2907 (base32
2908 "0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
2909 (build-system gnu-build-system)
2910 (arguments
2911 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
2912 '(#:tests? #f
2913 #:make-flags
2914 (list "CC=gcc"
2915 ;; Build shared library.
2916 "CONFIG_SHARED=1"
2917 (string-append "PREFIX=" (assoc-ref %outputs "out"))
2918 ;; Set proper runpath.
2919 (string-append "LDFLAGS=-Wl,-rpath="
2920 (assoc-ref %outputs "out")
2921 "/lib"))
2922 #:phases
2923 (modify-phases %standard-phases
2924 ;; No configure script, just a hand-written Makefile.
2925 (delete 'configure))))
2926 (synopsis "DTS Coherent Acoustics decoder")
2927 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
2928with support for HD extensions.")
2929 (home-page "https://github.com/foo86/dcadec")
2930 (license license:lgpl2.1+)))
e87c7ec2
AG
2931
2932(define-public bs1770gain
2933 (package
2934 (name "bs1770gain")
eb5378f9 2935 (version "0.4.12")
e87c7ec2
AG
2936 (source
2937 (origin
2938 (method url-fetch)
2939 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
2940 version "/bs1770gain-" version ".tar.gz"))
2941 (sha256
2942 (base32
eb5378f9 2943 "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a"))))
e87c7ec2
AG
2944 (build-system gnu-build-system)
2945 (inputs `(("ffmpeg" ,ffmpeg)
2946 ("sox" ,sox)))
2947 (home-page "http://bs1770gain.sourceforge.net/")
2948 (synopsis "Tool to adjust loudness of media files")
2949 (description
2950 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
2951flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
2952loudness of audio and video files to the same level.")
2953 (license license:gpl2+)))
eb64bde1
EE
2954
2955(define-public filteraudio
2956 (let ((revision "1")
2957 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
2958 (package
2959 (name "filteraudio")
2960 (version (string-append "0.0.0-" revision "."
2961 (string-take commit 7)))
2962 (source
2963 (origin
2964 (method git-fetch)
2965 (uri (git-reference
2966 (url "https://github.com/irungentoo/filter_audio.git")
2967 (commit commit)))
2968 (file-name (string-append name "-" version "-checkout"))
2969 (sha256
2970 (base32
2971 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
2972 (build-system gnu-build-system)
2973 (arguments
2974 '(#:make-flags (list (string-append "PREFIX=" %output)
2975 "CC=gcc")
2976 #:tests? #f ; No tests
2977 #:phases
2978 (modify-phases %standard-phases
2979 ;; No configure script
2980 (delete 'configure))))
2981 (synopsis "Lightweight audio filtering library")
2982 (description "An easy to use audio filtering library made from webrtc
2983code, used in @code{libtoxcore}.")
2984 (home-page "https://github.com/irungentoo/filter_audio")
2985 (license license:bsd-3))))
9a4c032c
LG
2986
2987(define-public gsm
2988 (package
2989 (name "gsm")
7a0ba651 2990 (version "1.0.17")
9a4c032c
LG
2991 (source
2992 (origin
2993 (method url-fetch)
2994 (uri
2995 (string-append "http://www.quut.com/" name "/" name
2996 "-" version ".tar.gz"))
2997 (sha256
2998 (base32
7a0ba651 2999 "00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5"))))
9a4c032c
LG
3000 (build-system gnu-build-system)
3001 (arguments
3002 `(#:test-target "tst"
3003 #:phases
3004 (modify-phases %standard-phases
3005 (add-before 'install 'pre-install
3006 (lambda _
3007 (let ((out (assoc-ref %outputs "out")))
3008 (substitute* "Makefile"
3009 (("INSTALL_ROOT\t=")
3010 (string-append "INSTALL_ROOT\t=\t" out)))
3011 (mkdir-p (string-append out "/inc"))
3012 (mkdir-p (string-append out "/man"))
3013 (mkdir-p (string-append out "/man/man1"))
3014 (mkdir-p (string-append out "/man/man3"))
3015 (mkdir-p (string-append out "/bin"))
3016 (mkdir-p (string-append out "/lib")))))
3017 (add-after 'install 'post-install
3018 (lambda _
3019 (let ((out (assoc-ref %outputs "out")))
3020 (rename-file (string-append out "/inc")
3021 (string-append out "/include"))
3022 (mkdir-p (string-append out "/include/gsm"))
3023 (copy-recursively "inc"
3024 (string-append out "/include/gsm")))))
3025 (delete 'configure))))
3026 (synopsis "GSM 06.10 lossy speech compression library")
3027 (description "This C library provides an encoder and a decoder for the GSM
302806.10 RPE-LTP lossy speech compression algorithm.")
3029 (home-page "http://quut.com/gsm/")
3030 (license (license:non-copyleft "file://COPYRIGHT"))))
84d9abe4
DM
3031
3032(define-public python-pyalsaaudio
3033 (package
3034 (name "python-pyalsaaudio")
3035 (version "0.8.4")
3036 (source (origin
3037 (method url-fetch)
3038 (uri (pypi-uri "pyalsaaudio" version))
3039 (sha256
3040 (base32
3041 "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
3042 (build-system python-build-system)
3043 (arguments
3044 `(#:tests? #f)) ; tests require access to ALSA devices.
3045 (inputs
3046 `(("alsa-lib" ,alsa-lib)))
3047 (home-page "http://larsimmisch.github.io/pyalsaaudio/")
3048 (synopsis "ALSA wrappers for Python")
3049 (description
3050 "This package contains wrappers for accessing the ALSA API from Python.
3051It is currently fairly complete for PCM devices, and has some support for
3052mixers.")
3053 (license license:psfl)))
3054
3055(define-public python2-pyalsaaudio
3056 (package-with-python2 python-pyalsaaudio))
d0c8e524 3057
dba33ca3
RW
3058(define-public bluez-alsa
3059 (package
3060 (name "bluez-alsa")
3061 (version "1.2.0")
3062 (source (origin
3063 ;; The tarballs are mere snapshots and don't contain a
3064 ;; bootstrapped build system.
3065 (method git-fetch)
3066 (uri (git-reference
3067 (url "https://github.com/Arkq/bluez-alsa.git")
3068 (commit (string-append "v" version))))
1fa37d1b 3069 (file-name (string-append name "-" version "-checkout"))
dba33ca3
RW
3070 (sha256
3071 (base32
3072 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
3073 (build-system gnu-build-system)
3074 (arguments
3075 `(#:phases
3076 (modify-phases %standard-phases
3077 (add-after 'unpack 'bootstrap
3078 (lambda _
3079 (zero? (system* "autoreconf" "-vif")))))))
3080 (native-inputs
3081 `(("autoconf" ,autoconf)
3082 ("automake" ,automake)
3083 ("libtool" ,libtool)
3084 ("pkg-config" ,pkg-config)))
3085 (inputs
3086 `(("alsa-lib" ,alsa-lib)
3087 ("bluez" ,bluez)
3088 ("glib" ,glib)
3089 ("libbsd" ,libbsd)
3090 ("ncurses" ,ncurses)
3091 ("ortp" ,ortp)
3092 ("sbc" ,sbc)))
3093 (home-page "https://github.com/Arkq/bluez-alsa")
3094 (synopsis "Bluetooth ALSA backend")
3095 (description "This project is a rebirth of a direct integration between
3096Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
3097in favor of 3rd party audio applications. From now on, Bluez acts as a
3098middleware between an audio application, which implements Bluetooth audio
3099profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
3100audio profiles in Bluez, so in theory every Bluetooth device (with audio
3101capabilities) can be connected. In order to access the audio stream, one has
3102to connect to the ALSA PCM device called @code{bluealsa}. The device is based
3103on the ALSA software PCM plugin.")
3104 (license license:expat)))
3105
d0c8e524
SB
3106(define-public snd
3107 (package
3108 (name "snd")
3109 (version "17.7")
3110 (source (origin
3111 (method url-fetch)
3112 (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
3113 "snd-" version ".tar.gz"))
3114 (sha256
3115 (base32
3116 "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
3117 (build-system glib-or-gtk-build-system)
3118 (arguments
3119 '(#:tests? #f ; no tests
3120 #:out-of-source? #f ; for the 'install-doc' phase
3121 #:configure-flags
3122 (let* ((out (assoc-ref %outputs "out"))
3123 (docdir (string-append out "/share/doc/snd")))
3124 (list "--with-alsa" "--with-jack" "--with-gmp"
3125 (string-append "--with-doc-dir=" docdir)))
3126 #:phases
3127 (modify-phases %standard-phases
3128 (add-after 'install 'install-doc
3129 (lambda* (#:key outputs #:allow-other-keys)
3130 (let* ((out (assoc-ref outputs "out"))
3131 (docdir (string-append out "/share/doc/snd")))
3132 (mkdir-p docdir)
3133 (for-each
3134 (lambda (f)
3135 (install-file f docdir))
3136 (find-files "." "\\.html$|COPYING"))
3137 (copy-recursively "pix" (string-append docdir "/pix"))
3138 #t))))))
3139 (native-inputs
3140 `(("pkg-config" ,pkg-config)))
3141 (inputs
3142 `(("alsa-lib" ,alsa-lib)
3143 ("fftw" ,fftw)
3144 ("flac" ,flac)
3145 ("gmp" ,gmp)
3146 ("gsl" ,gsl)
3147 ("gtk+" ,gtk+)
3148 ("jack" ,jack-1)
3149 ("libsamplerate" ,libsamplerate)
3150 ("mpc" ,mpc)
3151 ("mpfr" ,mpfr)
3152 ("mpg123" ,mpg123)
3153 ("speex" ,speex)
3154 ("timidity++" ,timidity++)
3155 ("vorbis-tools" ,vorbis-tools)
3156 ("wavpack" ,wavpack)))
3157 (synopsis "Sound editor")
3158 (home-page "https://ccrma.stanford.edu/software/snd/")
3159 (description
3160 "Snd is a sound editor modelled loosely after Emacs. It can be
3161customized and extended using either the s7 Scheme implementation (included in
3162the Snd sources), Ruby, or Forth.")
3163 (license (license:non-copyleft "file://COPYING"))))
adedbe95 3164
cf31d5e1
RW
3165(define-public noise-repellent
3166 (package
3167 (name "noise-repellent")
3168 (version "0.1.4")
3169 (source (origin
3170 (method git-fetch)
3171 (uri (git-reference
3172 (url "https://github.com/lucianodato/noise-repellent.git")
3173 (commit version)))
3174 (file-name (string-append name "-" version "-checkout"))
3175 (sha256
3176 (base32
3177 "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
3178 (build-system gnu-build-system)
3179 (arguments
3180 `(#:make-flags
3181 (list "CC=gcc"
3182 (string-append "PREFIX=" (assoc-ref %outputs "out")))
3183 #:tests? #f ; there are none
3184 #:phases
3185 (modify-phases %standard-phases
3186 (delete 'configure))))
3187 (inputs
3188 `(("lv2" ,lv2)
3189 ("fftwf" ,fftwf)))
3190 (native-inputs
3191 `(("pkg-config" ,pkg-config)))
3192 (home-page "https://github.com/lucianodato/noise-repellent")
3193 (synopsis "LV2 plugin for broadband noise reduction")
3194 (description "Noise Repellent is an LV2 plugin to reduce noise. It has
3195the following features:
3196
3197@enumerate
3198@item Spectral gating and spectral subtraction suppression rule
3199@item Adaptive and manual noise thresholds estimation
3200@item Adjustable noise floor
3201@item Adjustable offset of thresholds to perform over-subtraction
3202@item Time smoothing and a masking estimation to reduce artifacts
3203@item Basic onset detector to avoid transients suppression
3204@item Whitening of the noise floor to mask artifacts and to recover higher
3205 frequencies
3206@item Option to listen to the residual signal
3207@item Soft bypass
3208@item Noise profile saved with the session
3209@end enumerate
3210")
3211 (license license:lgpl3+)))
3212
adedbe95
OP
3213(define-public cli-visualizer
3214 (package
3215 (name "cli-visualizer")
3216 (version "1.6")
3217 (source
3218 (origin
3219 (method url-fetch)
3220 (uri (string-append "https://github.com/dpayne/cli-visualizer/archive/"
3221 version ".tar.gz"))
3222 (file-name (string-append name "-" version ".tar.gz"))
3223 (sha256
3224 (base32
3225 "07zkm87f2fr8kc6531zrkya7q81sdanm6813y2f54mg13g41y6hi"))))
3226 (build-system gnu-build-system)
3227 (native-inputs
3228 `(("which" ,which)))
3229 (inputs
3230 `(("fftw" ,fftw)
3231 ("googletest" ,googletest)
3232 ("ncurses" ,ncurses)
3233 ("pulseaudio" ,pulseaudio)))
3234 (arguments
3235 '(#:test-target "test"
3236 #:make-flags
3237 (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
3238 #:phases
3239 (modify-phases %standard-phases
3240 (add-after 'unpack 'remove-sudo
3241 (lambda _
3242 (substitute* "install.sh" (("sudo") ""))
3243 #t))
3244 (add-before 'check 'set-check-environment
3245 (lambda _
3246 (setenv "CXX" "g++")
3247 (setenv "CC" "gcc")
3248 #t))
3249 (add-before 'install 'make-prefix
3250 (lambda _
3251 (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
3252 #t))
3253 (add-after 'install 'data
3254 (lambda _
3255 (for-each (lambda (file)
3256 (install-file file
3257 (string-append (assoc-ref %outputs "out")
3258 "/share/doc")))
3259 (find-files "examples"))
3260 #t)))))
3261 (home-page "https://github.com/dpayne/cli-visualizer/")
3262 (synopsis "Command-line audio visualizer")
3263 (description "@code{cli-visualizer} displays fast-Fourier
3264transforms (FFTs) of the sound being played, as well as other graphical
3265representations.")
3266 (license license:expat)))