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