gnu: Add g2reverb.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
CommitLineData
fb68469f 1;;; GNU Guix --- Functional package management for GNU
b16043a3 2;;; Copyright © 2015, 2016 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>
fb68469f
RW
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages audio)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
d49976ed 27 #:use-module (guix utils)
fb68469f
RW
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system gnu)
c54a8981 30 #:use-module (guix build-system waf)
7c92efff 31 #:use-module (guix build-system trivial)
4bddd14c 32 #:use-module (guix build-system cmake)
a91d72e2 33 #:use-module (guix build-system python)
fb68469f 34 #:use-module (gnu packages)
d55f912a 35 #:use-module (gnu packages algebra)
9f1cdd9d 36 #:use-module (gnu packages autotools)
fcbeb00b 37 #:use-module (gnu packages avahi)
88efb2c3 38 #:use-module (gnu packages boost)
7c92efff 39 #:use-module (gnu packages base)
fda85ca6 40 #:use-module (gnu packages bison)
7c92efff 41 #:use-module (gnu packages compression)
88efb2c3 42 #:use-module (gnu packages curl)
fb68469f 43 #:use-module (gnu packages databases)
754a98ae 44 #:use-module (gnu packages file)
fda85ca6 45 #:use-module (gnu packages flex)
11d4800a
RW
46 #:use-module (gnu packages fltk)
47 #:use-module (gnu packages fontutils)
fda85ca6 48 #:use-module (gnu packages gettext)
88efb2c3 49 #:use-module (gnu packages glib)
f3ab6ad3 50 #:use-module (gnu packages gtk)
88efb2c3 51 #:use-module (gnu packages gnome)
fcbeb00b 52 #:use-module (gnu packages gperf)
d739f481 53 #:use-module (gnu packages image)
9ffee457 54 #:use-module (gnu packages ncurses)
f3ab6ad3 55 #:use-module (gnu packages qt)
c54a8981 56 #:use-module (gnu packages linux)
88efb2c3
RW
57 #:use-module (gnu packages mp3) ;taglib
58 #:use-module (gnu packages perl)
c54a8981
RW
59 #:use-module (gnu packages pkg-config)
60 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
d55f912a 61 #:use-module (gnu packages python)
5279eb6f 62 #:use-module (gnu packages rdf)
c54a8981 63 #:use-module (gnu packages readline)
02979664 64 #:use-module (gnu packages webkit)
c54a8981 65 #:use-module (gnu packages xiph)
da49086a 66 #:use-module (gnu packages xml)
caf9055c 67 #:use-module (gnu packages xorg)
70fc29d9 68 #:use-module (gnu packages zip)
da49086a 69 #:use-module (srfi srfi-1))
fb68469f 70
eb0fb087
RW
71(define-public alsa-modular-synth
72 (package
73 (name "alsa-modular-synth")
61eecd71 74 (version "2.1.2")
eb0fb087
RW
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "mirror://sourceforge/alsamodular/ams-"
78 version ".tar.bz2"))
79 (sha256
80 (base32
61eecd71 81 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
eb0fb087 82 (build-system gnu-build-system)
ee6a88b1 83 (arguments
afadb05e
RW
84 `(#:configure-flags '("--enable-qt5")
85 #:phases
86 (modify-phases %standard-phases
87 ;; Insert an extra space between linker flags.
88 (add-before 'configure 'add-missing-space
89 (lambda _
90 (substitute* "configure"
91 (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
92 (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
93 #t)))))
eb0fb087
RW
94 (inputs
95 `(("alsa-lib" ,alsa-lib)
96 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
97 ;; license incompatibility.
98 ("clalsadrv" ,clalsadrv)
99 ("fftw" ,fftw)
100 ("jack" ,jack-1)
101 ("ladspa" ,ladspa)
102 ("liblo" ,liblo)
ee6a88b1 103 ("qt" ,qt)))
eb0fb087
RW
104 (native-inputs
105 `(("pkg-config" ,pkg-config)))
106 (home-page "http://alsamodular.sourceforge.net/")
107 (synopsis "Realtime modular synthesizer and effect processor")
108 (description
109 "AlsaModularSynth is a digital implementation of a classical analog
110modular synthesizer system. It uses virtual control voltages to control the
111parameters of the modules. The control voltages which control the frequency
112e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
113Filter) modules follow the convention of 1V / Octave.")
114 (license license:gpl2)))
115
d55f912a
RW
116(define-public aubio
117 (package
118 (name "aubio")
119 (version "0.4.1")
120 (source (origin
121 (method url-fetch)
122 (uri (string-append
123 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
124 (sha256
125 (base32
126 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
127 (build-system waf-build-system)
128 (arguments
129 `(#:tests? #f ; no check target
130 #:configure-flags
131 '("--enable-fftw3f"
132 "--enable-jack"
133 "--enable-sndfile"
134 "--enable-samplerate"
135 ;; enable compilation with avcodec once available
136 "--disable-avcodec")
137 #:python ,python-2))
138 (inputs
139 `(("jack" ,jack-1)
d55f912a
RW
140 ("libsndfile" ,libsndfile)
141 ("libsamplerate" ,libsamplerate)
142 ("fftwf" ,fftwf)))
143 (native-inputs
144 `(("pkg-config" ,pkg-config)))
145 (home-page "http://aubio.org/")
a124bbd2 146 (synopsis "Library for audio labelling")
d55f912a
RW
147 (description
148 "aubio is a tool designed for the extraction of annotations from audio
149signals. Its features include segmenting a sound file before each of its
150attacks, performing pitch detection, tapping the beat and producing MIDI
151streams from live audio.")
152 (license license:gpl3+)))
153
d49976ed
RW
154(define (ardour-rpath-phase major-version)
155 `(lambda* (#:key outputs #:allow-other-keys)
156 (let ((libdir (string-append (assoc-ref outputs "out")
157 "/lib/ardour" ,major-version)))
158 (substitute* "wscript"
159 (("linker_flags = \\[\\]")
160 (string-append "linker_flags = [\""
161 "-Wl,-rpath="
162 libdir ":"
163 libdir "/backends" ":"
164 libdir "/engines" ":"
165 libdir "/panners" ":"
166 libdir "/surfaces" ":"
167 libdir "/vamp" "\"]"))))
168 #t))
169
60725232 170(define-public ardour
88efb2c3
RW
171 (package
172 (name "ardour")
b16043a3 173 (version "4.7")
88efb2c3 174 (source (origin
88efb2c3
RW
175 (method git-fetch)
176 (uri (git-reference
177 (url "git://git.ardour.org/ardour/ardour.git")
178 (commit version)))
179 (snippet
b16043a3
RW
180 ;; Ardour expects this file to exist at build time. The revision
181 ;; is the output of
182 ;; git describe HEAD | sed 's/^[A-Za-z]*+//'
88efb2c3
RW
183 '(call-with-output-file
184 "libs/ardour/revision.cc"
185 (lambda (port)
186 (format port "#include \"ardour/revision.h\"
b16043a3 187namespace ARDOUR { const char* revision = \"4.7-219-g0e36f8e\" ; }"))))
88efb2c3
RW
188 (sha256
189 (base32
b16043a3 190 "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l"))
88efb2c3
RW
191 (file-name (string-append name "-" version))))
192 (build-system waf-build-system)
193 (arguments
92e4fbe2
SB
194 `(#:configure-flags '("--cxx11") ; required by gtkmm
195 #:phases
21481a28
RW
196 (modify-phases %standard-phases
197 (add-after
198 'unpack 'set-rpath-in-LDFLAGS
d49976ed 199 ,(ardour-rpath-phase (version-prefix version 1))))
21481a28 200 #:tests? #f ; no check target
88efb2c3
RW
201 #:python ,python-2))
202 (inputs
203 `(("alsa-lib" ,alsa-lib)
204 ("aubio" ,aubio)
205 ("lrdf" ,lrdf)
206 ("boost" ,boost)
207 ("atkmm" ,atkmm)
208 ("cairomm" ,cairomm)
209 ("gtkmm" ,gtkmm-2)
210 ("glibmm" ,glibmm)
211 ("libart-lgpl" ,libart-lgpl)
212 ("libgnomecanvasmm" ,libgnomecanvasmm)
213 ("pangomm" ,pangomm)
214 ("liblo" ,liblo)
215 ("libsndfile" ,libsndfile)
216 ("libsamplerate" ,libsamplerate)
217 ("libxml2" ,libxml2)
218 ("libogg" ,libogg)
219 ("libvorbis" ,libvorbis)
220 ("flac" ,flac)
221 ("lv2" ,lv2)
222 ("vamp" ,vamp)
223 ("curl" ,curl)
88efb2c3
RW
224 ("fftw" ,fftw)
225 ("fftwf" ,fftwf)
226 ("jack" ,jack-1)
227 ("serd" ,serd)
228 ("sord" ,sord)
229 ("sratom" ,sratom)
230 ("suil" ,suil)
231 ("lilv" ,lilv)
88efb2c3
RW
232 ("redland" ,redland)
233 ("rubberband" ,rubberband)
234 ("taglib" ,taglib)
235 ("python-rdflib" ,python-rdflib)))
236 (native-inputs
237 `(("perl" ,perl)
238 ("pkg-config" ,pkg-config)))
239 (home-page "http://ardour.org")
240 (synopsis "Digital audio workstation")
241 (description
242 "Ardour is a multi-channel digital audio workstation, allowing users to
243record, edit, mix and master audio and MIDI projects. It is targeted at audio
244engineers, musicians, soundtrack editors and composers.")
245 (license license:gpl2+)))
246
497e9a82
RW
247(define-public azr3
248 (package
249 (name "azr3")
250 (version "1.2.3")
251 (source (origin
252 (method url-fetch)
253 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
254 version
255 ".tar.bz2"))
256 (sha256
257 (base32
258 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
259 (build-system gnu-build-system)
260 (arguments
261 `(#:tests? #f ; no check target
262 #:make-flags
263 (list "LV2PEG=ttl2c"
264 (string-append "prefix=" %output)
265 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
266 (inputs
267 `(("gtkmm" ,gtkmm-2)
268 ("lvtk" ,lvtk)
269 ("jack" ,jack-1)
f753846b 270 ("lash" ,lash)))
497e9a82
RW
271 (native-inputs
272 `(("pkg-config" ,pkg-config)))
273 (home-page "http://ll-plugins.nongnu.org/azr3/")
274 (synopsis "Tonewheel organ synthesizer")
275 (description
276 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
277with drawbars, distortion and rotating speakers. The organ has three
278sections, two polyphonic sections with nine drawbars each and one monophonic
279bass section with five drawbars. A standalone JACK application and LV2
280plugins are provided.")
281 (license license:gpl2)))
282
f62a8417
RW
283(define-public calf
284 (package
285 (name "calf")
286 (version "0.0.60")
287 (source (origin
288 (method url-fetch)
73cea74d
RW
289 (uri (string-append "http://calf-studio-gear.org/files/calf-"
290 version ".tar.gz"))
f62a8417
RW
291 (sha256
292 (base32
293 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
294 (build-system gnu-build-system)
295 (inputs
296 `(("fluidsynth" ,fluidsynth)
297 ("expat" ,expat)
298 ("glib" ,glib)
299 ("gtk" ,gtk+-2)
300 ("cairo" ,cairo)
301 ("lash" ,lash)
302 ("jack" ,jack-1)
303 ("lv2" ,lv2)
304 ("ladspa" ,ladspa)
305 ("fftw" ,fftw)))
306 (native-inputs
307 `(("pkg-config" ,pkg-config)))
308 (native-search-paths
309 (list (search-path-specification
310 (variable "LV2_PATH")
311 (files '("lib/lv2")))))
312 (home-page "http://calf.sourceforge.net/")
313 (synopsis "Audio plug-in pack for LV2 and JACK environments")
314 (description
315 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
316The suite contains lots of effects (delay, modulation, signal processing,
317filters, equalizers, dynamics, distortion and mastering effects),
318instruments (SF2 player, organ simulator and a monophonic synthesizer) and
319tools (analyzer, mono/stereo tools, crossovers).")
320 ;; calfjackhost is released under GPLv2+
321 ;; The plugins are released under LGPLv2.1+
322 (license (list license:lgpl2.1+ license:gpl2+))))
323
fda85ca6
RW
324(define-public csound
325 (package
326 (name "csound")
efd37722 327 (version "6.05")
fda85ca6
RW
328 (source (origin
329 (method url-fetch)
330 (uri (string-append
331 "mirror://sourceforge/csound/csound6/Csound"
332 version "/Csound" version ".tar.gz"))
333 (sha256
334 (base32
c91d3fb7
EB
335 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
336 (patches (list (search-patch "csound-header-ordering.patch")))))
fda85ca6 337 (build-system cmake-build-system)
00c16d5b
LC
338 (arguments
339 ;; Work around this error on x86_64 with libc 2.22+:
340 ;; libmvec.so.1: error adding symbols: DSO missing from command line
341 (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
342 '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
343 '()))
fda85ca6
RW
344 (inputs
345 `(("alsa-lib" ,alsa-lib)
346 ("boost" ,boost)
347 ("pulseaudio" ,pulseaudio)
348 ("libsndfile" ,libsndfile)
349 ("liblo" ,liblo)
350 ("ladspa" ,ladspa)
351 ("jack" ,jack-1)
352 ("gettext" ,gnu-gettext)))
353 (native-inputs
354 `(("bison" ,bison)
355 ("flex" ,flex)
356 ("zlib" ,zlib)))
357 (home-page "http://csound.github.io/")
358 (synopsis "Sound and music computing system")
359 (description
360 "Csound is a user-programmable and user-extensible sound processing
361language and software synthesizer.")
362 (license license:lgpl2.1+)))
363
631ac903
RW
364(define-public clalsadrv
365 (package
366 (name "clalsadrv")
367 (version "2.0.0")
368 (source (origin
369 (method url-fetch)
370 (uri (string-append
371 "http://kokkinizita.linuxaudio.org"
372 "/linuxaudio/downloads/clalsadrv-"
373 version ".tar.bz2"))
374 (sha256
375 (base32
9de2e43c 376 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
631ac903
RW
377 (build-system gnu-build-system)
378 (arguments
379 `(#:tests? #f ; no "check" target
380 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
381 #:phases
382 (alist-cons-after
9de2e43c
RW
383 'unpack 'patch-makefile-and-enter-directory
384 (lambda _
385 (substitute* "libs/Makefile"
386 (("/sbin/ldconfig") "true")
387 (("^LIBDIR =.*") "LIBDIR = lib\n"))
388 (chdir "libs")
389 #t)
631ac903
RW
390 (alist-cons-after
391 'install
392 'install-symlink
393 (lambda _
394 (symlink "libclalsadrv.so"
395 (string-append (assoc-ref %outputs "out")
396 "/lib/libclalsadrv.so.2")))
397 ;; no configure script
398 (alist-delete 'configure %standard-phases)))))
399 (inputs
400 `(("alsa-lib" ,alsa-lib)
401 ("fftw" ,fftw)))
402 (home-page "http://kokkinizita.linuxaudio.org")
403 (synopsis "C++ wrapper around the ALSA API")
404 (description
405 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
406ALSA PCM devices.")
407 (license license:gpl2+)))
408
fb2e072c
RW
409(define-public mcp-plugins
410 (package
411 (name "mcp-plugins")
412 (version "0.4.0")
413 (source (origin
414 (method url-fetch)
415 (uri (string-append
416 "http://kokkinizita.linuxaudio.org"
417 "/linuxaudio/downloads/MCP-plugins-"
418 version ".tar.bz2"))
419 (sha256
420 (base32
421 "06a9r1l85jmg7l1cvc3788mk8ra0xagjfy1rmhw3b80y4n0vlnvc"))))
422 (build-system gnu-build-system)
423 (arguments
424 `(#:tests? #f ; no "check" target
425 #:phases
426 (modify-phases %standard-phases
427 ;; no configure script
428 (delete 'configure)
429 (add-before 'install 'prepare-target-directory
430 (lambda* (#:key outputs #:allow-other-keys)
431 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
432 #t))
433 (add-after 'unpack 'override-target-directory
434 (lambda* (#:key outputs #:allow-other-keys)
435 (substitute* "Makefile"
436 (("/usr") (assoc-ref outputs "out")))
437 #t)))))
438 (home-page "http://kokkinizita.linuxaudio.org")
439 (synopsis "Chorus, phaser, and vintage high-pass and low-pass filters")
440 (description
441 "This package provides various LADSPA plugins. @code{cs_chorus} and
442@code{cs_phaser} provide chorus and phaser effects, respectively;
443@code{mvclpf24} provides four implementations of the low-pass filter used in
444vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled
445high-pass filter by Robert Moog. The filters attempt to accurately emulate
446the non-linear circuit elements of their original analog counterparts.")
447 (license license:gpl2+)))
448
eb4fca7e
RW
449(define-public vco-plugins
450 (package
451 (name "vco-plugins")
452 (version "0.3.0")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append
456 "http://kokkinizita.linuxaudio.org"
457 "/linuxaudio/downloads/VCO-plugins-"
458 version ".tar.bz2"))
459 (sha256
460 (base32
461 "1xzqdg3b07r7zww05y9bb737l9dxvfkv28m3fyak1aazaci3rsgl"))))
462 (build-system gnu-build-system)
463 (arguments
464 `(#:tests? #f ; no "check" target
465 #:phases
466 (modify-phases %standard-phases
467 ;; no configure script
468 (delete 'configure)
469 (add-before 'install 'prepare-target-directory
470 (lambda* (#:key outputs #:allow-other-keys)
471 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
472 #t))
473 (add-after 'unpack 'override-target-directory
474 (lambda* (#:key outputs #:allow-other-keys)
475 (substitute* "Makefile"
476 (("/usr") (assoc-ref outputs "out"))
477 (("/bin/cp") (which "cp")))
478 #t)))))
479 (home-page "http://kokkinizita.linuxaudio.org")
480 (synopsis "LADSPA plugin for synthesizer oscillators")
481 (description
482 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:
483
484@enumerate
485@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
486@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
487@item Rec-VCO, a square / rectange oscillator
488@end enumerate\n
489
490All oscillators are low-pass filtered to provide waveforms similar to the
491output of analog synthesizers such as the Moog Voyager.")
492 (license license:gpl2+)))
493
ed17465d
RW
494(define-public g2reverb
495 (package
496 (name "g2reverb")
497 (version "0.7.1")
498 (source (origin
499 (method url-fetch)
500 (uri (string-append
501 "http://kokkinizita.linuxaudio.org"
502 "/linuxaudio/downloads/g2reverb-"
503 version ".tar.bz2"))
504 (sha256
505 (base32
506 "18wb8vj1kky5glr76s34awbi8qzplsmf3wjbd7a12hfv4j0bkwrj"))))
507 (build-system gnu-build-system)
508 (arguments
509 `(#:tests? #f ; no "check" target
510 #:phases
511 (modify-phases %standard-phases
512 ;; no configure script
513 (delete 'configure)
514 (add-before 'install 'prepare-target-directory
515 (lambda* (#:key outputs #:allow-other-keys)
516 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
517 #t))
518 (add-after 'unpack 'override-target-directory
519 (lambda* (#:key outputs #:allow-other-keys)
520 (substitute* "Makefile"
521 (("/usr") (assoc-ref outputs "out")))
522 #t)))))
523 (home-page "http://kokkinizita.linuxaudio.org")
524 (synopsis "LADSPA stereo reverb plugin")
525 (description
526 "This package provides a LADSPA plugin for a stereo reverb effect.")
527 (license license:gpl2+)))
528
e4f43b56
RW
529(define-public fluidsynth
530 (package
531 (name "fluidsynth")
532 (version "1.1.6")
533 (source (origin
534 (method url-fetch)
535 (uri (string-append
536 "mirror://sourceforge/fluidsynth/fluidsynth-"
537 version "/fluidsynth-" version ".tar.gz"))
538 (sha256
539 (base32
540 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
541 (build-system gnu-build-system)
542 (arguments
543 `(#:phases
544 (alist-cons-after
545 'unpack
546 'remove-broken-symlinks
547 (lambda _ (delete-file-recursively "m4") #t)
548 %standard-phases)))
549 (inputs
550 `(("libsndfile" ,libsndfile)
551 ("alsa-lib" ,alsa-lib)
552 ("jack" ,jack-1)
553 ("ladspa" ,ladspa)
554 ("lash" ,lash)
555 ("readline" ,readline)
556 ("glib" ,glib)))
557 (native-inputs
558 `(("pkg-config" ,pkg-config)))
559 (home-page "http://www.fluidsynth.org/")
560 (synopsis "SoundFont synthesizer")
561 (description
562 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
563specifications. FluidSynth reads and handles MIDI events from the MIDI input
e881752c 564device. It is the software analogue of a MIDI synthesizer. FluidSynth can
e4f43b56
RW
565also play midifiles using a Soundfont.")
566 (license license:gpl2+)))
567
70fc29d9
TUBK
568(define-public faad2
569 (package
570 (name "faad2")
571 (version "2.7")
572 (source (origin
573 (method url-fetch)
574 (uri (string-append
575 "mirror://sourceforge/faac/faad2-" version ".zip"))
576 (sha256
577 (base32
578 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
579 (build-system gnu-build-system)
580 (native-inputs
581 `(("autoconf" ,autoconf)
582 ("automake" ,automake)
583 ("libtool" ,libtool)
584 ("unzip" ,unzip)))
585 (arguments
586 '(#:phases
587 (alist-cons-after
588 'unpack 'bootstrap
589 (lambda _
590 (substitute* "bootstrap" (("\r\n") "\n"))
591 (zero? (system* "sh" "bootstrap")))
592 %standard-phases)))
593 (home-page "http://www.audiocoding.com/faad2.html")
594 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
595 (description
596 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
597PS, and DAB+.")
598 (license license:gpl2)))
599
777291f0
RW
600(define-public faust
601 (package
602 (name "faust")
603 (version "0.9.67")
604 (source (origin
605 (method url-fetch)
606 (uri (string-append
607 "mirror://sourceforge/faudiostream/faust-" version ".zip"))
608 (sha256
609 (base32
0543c326
RW
610 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
611 (snippet
612 ;; Remove prebuilt library
613 '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
777291f0
RW
614 (build-system gnu-build-system)
615 (arguments
616 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
617 #:tests? #f
618 #:phases
619 (modify-phases %standard-phases
0543c326 620 ;; no "configure" script
777291f0
RW
621 (delete 'configure))))
622 (native-inputs
623 `(("unzip" ,unzip)))
624 (home-page "http://faust.grame.fr/")
625 (synopsis "Signal processing language")
626 (description
627 "Faust is a programming language for realtime audio signal processing.")
628 (license license:gpl2+)))
629
7c92efff
RW
630(define-public freepats
631 (package
632 (name "freepats")
633 (version "20060219")
634 (source (origin
635 (method url-fetch)
636 (uri (string-append "http://freepats.zenvoid.org/freepats-"
637 version ".tar.bz2"))
638 (sha256
639 (base32
640 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
641 (build-system trivial-build-system)
642 (arguments
643 `(#:modules ((guix build utils))
644 #:builder (begin
645 (use-modules (guix build utils))
646 (let ((out (string-append %output "/share/freepats")))
647 (setenv "PATH" (string-append
648 (assoc-ref %build-inputs "bzip2") "/bin:"
649 (assoc-ref %build-inputs "tar") "/bin"))
650 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
651 (chdir "freepats")
652 ;; Use absolute pattern references
653 (substitute* "freepats.cfg"
654 (("Tone_000") (string-append out "/Tone_000"))
655 (("Drum_000") (string-append out "/Drum_000")))
656 (mkdir-p out)
657 (copy-recursively "." out)))))
658 (native-inputs
659 `(("tar" ,tar)
660 ("bzip2" ,bzip2)))
661 (home-page "http://freepats.zenvoid.org")
662 (synopsis "GUS compatible patches for MIDI players")
663 (description
664 "FreePats is a project to create a free and open set of GUS compatible
665patches that can be used with softsynths such as Timidity and WildMidi.")
666 ;; GPLv2+ with exception for compositions using these patches.
667 (license license:gpl2+)))
668
fcbeb00b
RW
669(define-public guitarix
670 (package
671 (name "guitarix")
02979664 672 (version "0.34.0")
fcbeb00b
RW
673 (source (origin
674 (method url-fetch)
675 (uri (string-append
676 "mirror://sourceforge/guitarix/guitarix2-"
677 version ".tar.bz2"))
678 (sha256
679 (base32
02979664 680 "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8"))))
fcbeb00b
RW
681 (build-system waf-build-system)
682 (arguments
683 `(#:tests? #f ; no "check" target
684 #:python ,python-2
685 #:configure-flags
686 (list
fcbeb00b 687 ;; Add the output lib directory to the RUNPATH.
3c3e6972
LC
688 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
689 "--cxxflags=-std=c++11")))
fcbeb00b
RW
690 (inputs
691 `(("libsndfile" ,libsndfile)
692 ("boost" ,boost)
693 ("avahi" ,avahi)
694 ("eigen" ,eigen)
695 ("lv2" ,lv2)
696 ("lilv" ,lilv)
697 ("ladspa" ,ladspa)
698 ("jack" ,jack-1)
699 ("gtkmm" ,gtkmm-2)
700 ("gtk+" ,gtk+-2)
02979664 701 ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2)
fcbeb00b
RW
702 ("fftwf" ,fftwf)
703 ("lrdf" ,lrdf)
704 ("zita-resampler" ,zita-resampler)
705 ("zita-convolver" ,zita-convolver)))
706 (native-inputs
707 `(("gperf" ,gperf)
49767428 708 ("faust" ,faust)
fcbeb00b
RW
709 ("intltool" ,intltool)
710 ("gettext" ,gnu-gettext)
711 ("pkg-config" ,pkg-config)))
712 (native-search-paths
713 (list (search-path-specification
714 (variable "LV2_PATH")
715 (files '("lib/lv2")))))
716 (home-page "http://guitarix.org/")
717 (synopsis "Virtual guitar amplifier")
718 (description "Guitarix is a virtual guitar amplifier running JACK.
719Guitarix takes the signal from your guitar as a mono-signal from your sound
720card. The input is processed by a main amp and a rack-section. Both can be
721routed separately and deliver a processed stereo-signal via JACK. You may
722fill the rack with effects from more than 25 built-in modules including stuff
723from a simple noise gate to modulation effects like flanger, phaser or
724auto-wah.")
725 (license license:gpl2+)))
726
11d4800a
RW
727(define-public rakarrack
728 (package
729 (name "rakarrack")
730 (version "0.6.1")
731 (source (origin
732 (method url-fetch)
733 (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
734 "rakarrack-" version "/rakarrack-"
735 version ".tar.bz2"))
736 (sha256
737 (base32
738 "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
739 (modules '((guix build utils)))
740 (snippet
741 '(begin
742 (substitute* '("src/process.C"
743 "src/global.h")
744 (("#include <Fl/") "#include <FL/"))
745 #t))))
746 (build-system gnu-build-system)
747 (inputs
748 `(("alsa-utils" ,alsa-utils)
749 ("fltk" ,fltk)
750 ("libx11" ,libx11)
751 ("libxext" ,libxext)
752 ("libxfixes" ,libxfixes)
753 ("libxft" ,libxft)
754 ("libxrender" ,libxrender)
755 ("libxpm" ,libxpm)
756 ("fontconfig" ,fontconfig)
757 ("freetype" ,freetype)
758 ("jack" ,jack-1)
759 ("alsa-lib" ,alsa-lib)
760 ("libsndfile" ,libsndfile)
761 ("libsamplerate" ,libsamplerate)
762 ("zlib" ,zlib)))
763 (home-page "http://rakarrack.sourceforge.net/")
764 (synopsis "Audio effects processor")
765 (description
766 "Rakarrack is a richly featured multi-effects processor emulating a
767guitar effects pedalboard. Effects include compressor, expander, noise gate,
768equalizers, exciter, flangers, chorus, various delay and reverb effects,
769distortion modules and many more. Most of the effects engine is built from
770modules found in the excellent software synthesizer ZynAddSubFX. Presets and
771user interface are optimized for guitar, but Rakarrack processes signals in
772stereo while it does not apply internal band-limiting filtering, and thus is
773well suited to all musical instruments and vocals.")
774 ;; The code is explicitly licensed under the GPL version 2 only.
775 (license license:gpl2)))
776
32cf42c1
RW
777(define-public ir
778 (package
779 (name "ir")
780 (version "1.3.2")
781 (source (origin
782 (method url-fetch)
783 (uri (string-append
784 "http://factorial.hu/system/files/ir.lv2-"
785 version ".tar.gz"))
786 (sha256
787 (base32
788 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
789 (build-system gnu-build-system)
790 (arguments
791 `(#:tests? #f ;no "check" target
792 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
793 #:phases
794 ;; no configure script
795 (alist-delete 'configure %standard-phases)))
796 (inputs
797 `(("libsndfile" ,libsndfile)
798 ("libsamplerate" ,libsamplerate)
799 ("lv2" ,lv2)
800 ("glib" ,glib)
801 ("gtk+" ,gtk+-2)
802 ("zita-convolver" ,zita-convolver)))
803 (native-inputs
804 `(("pkg-config" ,pkg-config)))
805 (native-search-paths
806 (list (search-path-specification
807 (variable "LV2_PATH")
808 (files '("lib/lv2")))))
809 (home-page "http://factorial.hu/plugins/lv2/ir")
810 (synopsis "LV2 convolution reverb")
811 (description
812 "IR is a low-latency, real-time, high performance signal convolver
813especially for creating reverb effects. It supports impulse responses with 1,
8142 or 4 channels, in any soundfile format supported by libsndfile.")
815 (license license:gpl2+)))
816
fb68469f
RW
817(define-public jack-1
818 (package
819 (name "jack")
820 (version "0.124.1")
821 (source (origin
822 (method url-fetch)
823 (uri (string-append
824 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
825 version
826 ".tar.gz"))
827 (sha256
828 (base32
829 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
830 (build-system gnu-build-system)
831 (inputs
2f9ae82f 832 `(("alsa-lib" ,alsa-lib)
5d95e30b
RW
833 ("readline" ,readline)))
834 ;; uuid.h is included in the JACK type headers
ca01b3ad 835 ;; db.h is included in the libjack metadata headers
5d95e30b 836 (propagated-inputs
ca01b3ad
RW
837 `(("libuuid" ,util-linux)
838 ("bdb" ,bdb)))
2f9ae82f
RW
839 (native-inputs
840 `(("pkg-config" ,pkg-config)))
fb68469f
RW
841 (home-page "http://jackaudio.org/")
842 (synopsis "JACK audio connection kit")
843 (description
844 "JACK is a low-latency audio server. It can connect a number of
845different applications to an audio device, as well as allowing them to share
846audio between themselves. JACK is different from other audio server efforts
847in that it has been designed from the ground up to be suitable for
848professional audio work. This means that it focuses on two key areas:
849synchronous execution of all clients, and low latency operation.")
850 ;; Most files are licensed under the GPL. However, the libjack/ tree is
851 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 852 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981 853
bcbc02fd
RW
854;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
855;; jack-2 implement the same API. JACK2 is provided primarily as a client
856;; program for users who might benefit from the D-BUS features.
c54a8981
RW
857(define-public jack-2
858 (package (inherit jack-1)
314275c7 859 (name "jack2")
c54a8981
RW
860 (version "1.9.10")
861 (source (origin
862 (method url-fetch)
863 (uri (string-append
864 "https://github.com/jackaudio/jack2/archive/v"
865 version
866 ".tar.gz"))
f586c877 867 (file-name (string-append name "-" version ".tar.gz"))
c54a8981
RW
868 (sha256
869 (base32
870 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
871 (build-system waf-build-system)
872 (arguments
bc8bf605
RW
873 `(#:python ,python-2
874 #:tests? #f ; no check target
c54a8981 875 #:configure-flags '("--dbus"
b416c647
SB
876 "--alsa")
877 #:phases
878 (modify-phases %standard-phases
879 (add-before
880 'configure 'set-linkflags
881 (lambda _
882 ;; Add $libdir to the RUNPATH of all the binaries.
883 (substitute* "wscript"
884 ((".*CFLAGS.*-Wall.*" m)
885 (string-append m
886 " conf.env.append_unique('LINKFLAGS',"
bc8bf605
RW
887 "'-Wl,-rpath=" %output "/lib')\n")))))
888 (add-after 'install 'wrap-python-scripts
889 (lambda* (#:key inputs outputs #:allow-other-keys)
890 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
891 (let* ((out (assoc-ref outputs "out"))
892 (path (getenv "PYTHONPATH")))
893 (wrap-program (string-append out "/bin/jack_control")
894 `("PYTHONPATH" ":" prefix (,path))))
895 #t)))))
c54a8981
RW
896 (inputs
897 `(("alsa-lib" ,alsa-lib)
898 ("dbus" ,dbus)
899 ("expat" ,expat)
900 ("libsamplerate" ,libsamplerate)
901 ("opus" ,opus)
bc8bf605 902 ("python2-dbus" ,python2-dbus)
c54a8981
RW
903 ("readline" ,readline)))
904 (native-inputs
905 `(("pkg-config" ,pkg-config)))
906 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
907 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 908
2f4646b6
RW
909(define-public jalv
910 (package
911 (name "jalv")
912 (version "1.4.6")
913 (source (origin
914 (method url-fetch)
915 (uri (string-append "http://download.drobilla.net/jalv-"
916 version ".tar.bz2"))
917 (sha256
918 (base32
919 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
920 (build-system waf-build-system)
d8c317df
SB
921 (arguments
922 `(#:tests? #f ; no check target
923 #:phases
924 (modify-phases %standard-phases
925 (add-before
926 'configure 'set-flags
927 (lambda _
928 ;; Compile with C++11, required by gtkmm.
929 (setenv "CXXFLAGS" "-std=c++11")
930 #t)))))
2f4646b6
RW
931 (inputs
932 `(("lv2" ,lv2)
933 ("lilv" ,lilv)
934 ("suil" ,suil)
935 ("gtk" ,gtk+-2)
936 ("gtkmm" ,gtkmm-2)
2f4646b6
RW
937 ("jack" ,jack-1)))
938 (native-inputs
939 `(("pkg-config" ,pkg-config)))
940 (home-page "http://drobilla.net/software/jalv/")
941 (synopsis "Simple LV2 host for JACK")
942 (description
943 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
944plugins and exposes their ports as JACK ports, essentially making any LV2
945plugin function as a JACK application.")
946 (license license:isc)))
947
2cc7ce31
RW
948(define-public ladspa
949 (package
950 (name "ladspa")
951 (version "1.13")
0c1910ed
AV
952 (source
953 (origin
954 (method url-fetch)
955 ;; Since the official link is dead,
956 ;; we download the tarball from Debian or Internet Archive.
957 (uri (list (string-append "http://http.debian.net"
958 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
959 version ".orig.tar.gz")
960 (string-append "https://web.archive.org/web/20140717172251/"
961 "http://www.ladspa.org/download/ladspa_sdk_"
962 version ".tgz")))
963 (sha256
964 (base32
965 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
2cc7ce31
RW
966 (build-system gnu-build-system)
967 (arguments
968 `(#:tests? #f ; the "test" target is a listening test only
969 #:phases
970 (alist-replace
971 'configure
972 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
973 (chdir "src")
974 (let ((out (assoc-ref outputs "out")))
975 (substitute* "makefile"
976 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
977 (("/usr/include/") (string-append out "/include/"))
978 (("/usr/bin/") (string-append out "/bin/"))
979 (("-mkdirhier") "mkdir -p")
980 (("^CC.*") "CC = gcc\n")
981 (("^CPP.*") "CPP = g++\n"))))
982 (alist-delete 'build %standard-phases))))
0c1910ed
AV
983 ;; Since the home page is gone, we provide a link to the archived version.
984 (home-page
985 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
2cc7ce31
RW
986 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
987 (description
988 "LADSPA is a standard that allows software audio processors and effects
989to be plugged into a wide range of audio synthesis and recording packages.")
990 (license license:lgpl2.1+)))
991
da49086a
RW
992(define-public lash
993 (package
994 (name "lash")
995 (version "0.6.0-rc2")
996 (source (origin
997 (method url-fetch)
998 ;; The tilde is not permitted in the builder name, but is used
999 ;; in the tarball.
1000 (uri (string-append
1001 "mirror://savannah/lash/lash-"
1002 (string-join (string-split version #\-) "~")
1003 ".tar.bz2"))
1004 (file-name (string-append name "-" version ".tar.bz2"))
1005 (sha256
1006 (base32
1007 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
1008 (build-system gnu-build-system)
1009 (inputs
1010 `(("bdb" ,bdb)
1011 ("gtk" ,gtk+-2)
1012 ("jack" ,jack-1)
da49086a
RW
1013 ("readline" ,readline)
1014 ("python" ,python-2)))
1015 ;; According to pkg-config, packages depending on lash also need to have
1016 ;; at least the following packages declared as inputs.
1017 (propagated-inputs
1018 `(("alsa-lib" ,alsa-lib)
1019 ("dbus" ,dbus)
1020 ("libxml2" ,libxml2)))
1021 (native-inputs
1022 `(("pkg-config" ,pkg-config)))
1023 (home-page "http://www.nongnu.org/lash/")
1024 (synopsis "Audio application session manager")
1025 (description
1026 "LASH is a session management system for audio applications. It allows
1027you to save and restore audio sessions consisting of multiple interconneced
1028applications, restoring program state (i.e. loaded patches) and the
1029connections between them.")
1030 (license license:gpl2+)))
1031
8c0b5a75
TUBK
1032(define-public libbs2b
1033 (package
1034 (name "libbs2b")
1035 (version "3.1.0")
1036 (source (origin
1037 (method url-fetch)
1038 (uri (string-append
1039 "mirror://sourceforge/bs2b/libbs2b-" version ".tar.lzma"))
1040 (sha256
1041 (base32
1042 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
1043 (build-system gnu-build-system)
1044 (native-inputs `(("pkg-config" ,pkg-config)))
1045 (inputs `(("libsndfile" ,libsndfile)))
1046 (home-page "http://sourceforge.net/projects/bs2b/")
1047 (synopsis "Bauer stereophonic-to-binaural DSP")
1048 (description
1049 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
1050designed to improve headphone listening of stereo audio records. Recommended
1051for headphone prolonged listening to disable superstereo fatigue without
1052essential distortions.")
1053 (license license:expat)))
1054
f47cba0e
RW
1055(define-public liblo
1056 (package
1057 (name "liblo")
1058 (version "0.28")
1059 (source (origin
1060 (method url-fetch)
1061 (uri (string-append
1062 "mirror://sourceforge/liblo/liblo-"
1063 version
1064 ".tar.gz"))
1065 (sha256
1066 (base32
1067 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
1068 (build-system gnu-build-system)
1069 (arguments
1070 `(;; liblo test FAILED
1071 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
1072 #:tests? #f))
1073 (home-page "http://liblo.sourceforge.net")
1074 (synopsis "Implementation of the Open Sound Control protocol")
1075 (description
1076 "liblo is a lightweight library that provides an easy to use
1077implementation of the Open Sound Control (OSC) protocol.")
1078 (license license:lgpl2.1+)))
e2420191 1079
a91d72e2
RW
1080(define-public python-pyliblo
1081 (package
1082 (name "python-pyliblo")
1083 (version "0.10.0")
1084 (source (origin
1085 (method url-fetch)
1086 (uri (string-append "http://das.nasophon.de/download/pyliblo-"
1087 version ".tar.gz"))
1088 (sha256
1089 (base32
1090 "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
1091 (build-system python-build-system)
1092 (arguments `(#:tests? #f)) ;no tests
1093 (inputs
1094 `(("python-cython" ,python-cython)
1095 ("liblo" ,liblo)))
1096 (home-page "http://das.nasophon.de/pyliblo/")
1097 (synopsis "Python bindings for liblo")
1098 (description
1099 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)
1100library. It supports almost the complete functionality of liblo, allowing you
1101to send and receive OSC messages using a nice and simple Python API. Also
1102included are the command line utilities @code{send_osc} and @code{dump_osc}.")
1103 (license license:lgpl2.1+)))
1104
1105(define-public python2-pyliblo
1106 (package-with-python2 python-pyliblo))
1107
332aad1b
RW
1108(define-public lilv
1109 (package
1110 (name "lilv")
1111 (version "0.20.0")
1112 (source (origin
1113 (method url-fetch)
1114 (uri (string-append "http://download.drobilla.net/lilv-"
1115 version
1116 ".tar.bz2"))
1117 (sha256
1118 (base32
1119 "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
1120 (build-system waf-build-system)
d80ee442
TUBK
1121 (arguments
1122 `(#:tests? #f ; no check target
1123 #:phases
1124 (modify-phases %standard-phases
1125 (add-before
1126 'configure 'set-ldflags
1127 (lambda* (#:key outputs #:allow-other-keys)
1128 (setenv "LDFLAGS"
1129 (string-append "-Wl,-rpath="
1130 (assoc-ref outputs "out") "/lib")))))))
ff7df27d
RW
1131 ;; required by lilv-0.pc
1132 (propagated-inputs
1133 `(("serd" ,serd)
332aad1b
RW
1134 ("sord" ,sord)
1135 ("sratom" ,sratom)))
ff7df27d
RW
1136 (inputs
1137 `(("lv2" ,lv2)))
332aad1b
RW
1138 (native-inputs
1139 `(("pkg-config" ,pkg-config)))
1140 (home-page "http://drobilla.net/software/lilv/")
1141 (synopsis "Library to simplify use of LV2 plugins in applications")
1142 (description
1143 "Lilv is a C library to make the use of LV2 plugins as simple as possible
1144for applications. Lilv is the successor to SLV2, rewritten to be
1145significantly faster and have minimal dependencies.")
1146 (license license:isc)))
1147
e2420191
RW
1148(define-public lv2
1149 (package
1150 (name "lv2")
2e189eb8 1151 (version "1.12.0")
e2420191
RW
1152 (source (origin
1153 (method url-fetch)
1154 (uri (string-append "http://lv2plug.in/spec/lv2-"
1155 version
1156 ".tar.bz2"))
1157 (sha256
1158 (base32
2e189eb8 1159 "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks"))))
e2420191
RW
1160 (build-system waf-build-system)
1161 (arguments
1162 `(#:tests? #f ; no check target
2e189eb8 1163 #:configure-flags '("--no-plugins")))
e2420191
RW
1164 (inputs
1165 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
1166 `(("libsndfile" ,libsndfile)))
1167 (native-inputs
1168 `(("pkg-config" ,pkg-config)))
1169 (home-page "http://lv2plug.in/")
1170 (synopsis "LV2 audio plugin specification")
1171 (description
1172 "LV2 is an open specification for audio plugins and host applications.
1173At its core, LV2 is a simple stable interface, accompanied by extensions which
1174add functionality to support the needs of increasingly powerful audio
1175software.")
1176 (license license:isc)))
5279eb6f 1177
98247127
RW
1178(define-public lv2-mda-piano
1179 (package
1180 (name "lv2-mda-piano")
1181 (version "0.0.2")
1182 (source (origin
1183 (method git-fetch)
1184 (uri (git-reference
f6f499b3 1185 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
98247127
RW
1186 (commit version)))
1187 (sha256
1188 (base32
1189 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
1190 (build-system gnu-build-system)
1191 (arguments
1192 `(#:make-flags (list
1193 "TYPE=mdaPiano"
1194 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1195 #:tests? #f ; no check target
1196 #:phases (alist-delete 'configure %standard-phases)))
1197 (inputs
1198 `(("lv2" ,lv2)
1199 ("lvtk" ,lvtk)))
1200 (native-inputs
1201 `(("pkg-config" ,pkg-config)))
1202 (native-search-paths
1203 (list (search-path-specification
1204 (variable "LV2_PATH")
1205 (files '("lib/lv2")))))
1206 (home-page "http://elephly.net/lv2/mdapiano.html")
1207 (synopsis "LV2 port of the mda Piano plugin")
1208 (description "An LV2 port of the mda Piano VSTi.")
1209 (license license:gpl3+)))
1210
8fb79e3d
RW
1211(define-public lv2-mda-epiano
1212 (package (inherit lv2-mda-piano)
1213 (name "lv2-mda-epiano")
1214 (arguments
1215 `(#:make-flags (list
1216 "TYPE=mdaEPiano"
1217 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1218 #:tests? #f ; no check target
1219 #:phases (alist-delete 'configure %standard-phases)))
1220 (home-page "http://elephly.net/lv2/mdaepiano.html")
1221 (synopsis "LV2 port of the mda EPiano plugin")
1222 (description "An LV2 port of the mda EPiano VSTi.")))
1223
c1718190
RW
1224(define-public lvtk
1225 (package
1226 (name "lvtk")
1227 (version "1.2.0")
1228 (source (origin
1229 (method url-fetch)
1230 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1231 version
1232 ".tar.gz"))
f586c877 1233 (file-name (string-append name "-" version ".tar.gz"))
c1718190
RW
1234 (sha256
1235 (base32
1236 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1237 (build-system waf-build-system)
1238 (arguments
1239 `(#:tests? #f ; no check target
1240 #:python ,python-2
1241 #:configure-flags
1242 (list (string-append "--boost-includes="
1243 (assoc-ref %build-inputs "boost")
c91d3fb7
EB
1244 "/include"))
1245 #:phases (modify-phases %standard-phases
1246 (add-before
1247 'configure 'set-flags
1248 (lambda* (#:key inputs #:allow-other-keys)
1249 ;; See e.g. https://github.com/lvtk/lvtk/issues/21
1250 (setenv "LDFLAGS"
1251 (string-append
1252 "-L" (assoc-ref inputs "boost") "/lib "
1253 "-lboost_system")))))))
c1718190
RW
1254 (inputs
1255 `(("boost" ,boost)
1256 ("lv2" ,lv2)))
1257 (native-inputs
1258 `(("pkg-config" ,pkg-config)))
1259 (home-page "https://github.com/lvtk/lvtk")
1260 (synopsis "C++ libraries for LV2 plugins")
1261 (description
1262 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1263extensions into easy to use C++ classes. It is the successor of
1264lv2-c++-tools.")
1265 (license license:gpl3+)))
1266
f2fac359
TUBK
1267(define-public openal
1268 (package
1269 (name "openal")
1270 (version "1.15.1")
1271 (source (origin
1272 (method url-fetch)
1273 (uri (string-append
1274 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1275 version ".tar.bz2"))
1276 (sha256
1277 (base32
1278 "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
1279 (build-system cmake-build-system)
1280 (arguments
7ee5db15
RW
1281 `(#:tests? #f ; no check target
1282 #:phases
1283 (modify-phases %standard-phases
1284 (add-after
1285 'unpack 'use-full-library-paths
1286 (lambda* (#:key inputs #:allow-other-keys)
1287 (substitute* "Alc/backends/pulseaudio.c"
1288 (("#define PALIB \"libpulse\\.so\\.0\"")
1289 (string-append "#define PALIB \""
1290 (assoc-ref inputs "pulseaudio")
1291 "/lib/libpulse.so.0"
1292 "\"")))
1293 (substitute* "Alc/backends/alsa.c"
1294 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1295 (string-append "LoadLib(\""
1296 (assoc-ref inputs "alsa-lib")
1297 "/lib/libasound.so.2"
1298 "\")")))
1299 #t)))))
f2fac359
TUBK
1300 (inputs
1301 `(("alsa-lib" ,alsa-lib)
1302 ("pulseaudio" ,pulseaudio)))
1303 (synopsis "3D audio API")
1304 (description
1305 "OpenAL provides capabilities for playing audio in a virtual 3D
1306environment. Distance attenuation, doppler shift, and directional sound
1307emitters are among the features handled by the API. More advanced effects,
1308including air absorption, occlusion, and environmental reverb, are available
1309through the EFX extension. It also facilitates streaming audio, multi-channel
1310buffers, and audio capture.")
1311 (home-page "http://kcat.strangesoft.net/openal.html")
1312 (license license:lgpl2.0+)))
1313
4443bb8d
RW
1314(define-public patchage
1315 (package
1316 (name "patchage")
1317 (version "1.0.0")
1318 (source (origin
1319 (method url-fetch)
1320 (uri (string-append "http://download.drobilla.net/patchage-"
1321 version
1322 ".tar.bz2"))
1323 (sha256
1324 (base32
1325 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1326 (build-system waf-build-system)
1327 (arguments `(#:tests? #f)) ; no check target
1328 (inputs
1329 `(("alsa-lib" ,alsa-lib)
1330 ("boost" ,boost)
1331 ("jack" ,jack-1)
4443bb8d 1332 ("ganv" ,ganv)
4443bb8d
RW
1333 ("glibmm" ,glibmm)
1334 ("gtkmm" ,gtkmm-2)
4443bb8d
RW
1335 ("dbus-glib" ,dbus-glib)))
1336 (native-inputs
1337 `(("pkg-config" ,pkg-config)))
1338 (home-page "http://drobilla.net/software/patchage/")
1339 (synopsis "Modular patch bay for audio and MIDI systems")
1340 (description
1341 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1342and ALSA.")
1343 (license license:gpl3+)))
1344
b22755be
RW
1345(define-public raul
1346 (package
1347 (name "raul")
1348 (version "0.8.0")
1349 (source (origin
1350 (method url-fetch)
1351 (uri (string-append "http://download.drobilla.net/raul-"
1352 version ".tar.bz2"))
1353 (sha256
1354 (base32
1355 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
1356 (build-system waf-build-system)
1357 (arguments
1358 `(#:python ,python-2
1359 #:tests? #f)) ; no check target
1360 (inputs
1361 `(("glib" ,glib)
1362 ("boost" ,boost)))
1363 (native-inputs
1364 `(("pkg-config" ,pkg-config)))
1365 (home-page "http://drobilla.net/software/raul/")
1366 (synopsis "Real-time audio utility library")
1367 (description
1368 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
1369aimed at audio/musical applications.")
1370 (license license:gpl2+)))
1371
57238ff2
RW
1372(define-public rubberband
1373 (package
1374 (name "rubberband")
1375 (version "1.8.1")
1376 (source (origin
1377 (method url-fetch)
1378 (uri
1379 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
1380 version
1381 ".tar.bz2"))
1382 (sha256
1383 (base32
1384 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
1385 (build-system gnu-build-system)
1386 (arguments `(#:tests? #f)) ; no check target
1387 (inputs
1388 `(("ladspa" ,ladspa)
1389 ("libsamplerate" ,libsamplerate)
1390 ("vamp" ,vamp)))
1391 (native-inputs
1392 `(("pkg-config" ,pkg-config)))
1393 (home-page "http://breakfastquay.com/rubberband/")
1394 (synopsis "Audio time-stretching and pitch-shifting library")
1395 (description
1396 "Rubber Band is a library and utility program that permits changing the
1397tempo and pitch of an audio recording independently of one another.")
1398 (license license:gpl2+)))
1399
cc45cff8
RW
1400(define-public rtmidi
1401 (package
1402 (name "rtmidi")
1403 (version "2.1.0")
1404 (source (origin
1405 (method url-fetch)
1406 (uri
1407 (string-append "https://github.com/powertab/rtmidi/archive/"
1408 version ".tar.gz"))
1409 (file-name (string-append name "-" version ".tar.gz"))
1410 (sha256
1411 (base32
1412 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
1413 (build-system gnu-build-system)
1414 (arguments
1415 `(#:tests? #f ;no "check" target
1416 #:phases (modify-phases %standard-phases
1417 (add-before
1418 'configure 'autoconf
1419 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
1420 (add-before
1421 'build 'fix-makefile
1422 (lambda _
1423 (substitute* "Makefile"
1424 (("/bin/ln") "ln")
1425 (("RtMidi.h RtError.h") "RtMidi.h"))
1426 #t))
1427 (add-before
1428 'install 'make-target-dirs
1429 (lambda _
1430 (let ((out (assoc-ref %outputs "out")))
1431 (mkdir-p (string-append out "/bin"))
1432 (mkdir (string-append out "/lib"))
1433 (mkdir (string-append out "/include")))
1434 #t)))))
1435 (inputs
1436 `(("jack" ,jack-1)
1437 ("alsa-lib" ,alsa-lib)))
1438 (native-inputs
1439 `(("autoconf" ,autoconf)
1440 ("automake" ,automake)
1441 ("libtool" ,libtool)
1442 ("pkg-config" ,pkg-config)))
1443 (home-page "https://github.com/powertab/rtmidi")
1444 (synopsis "Cross-platform MIDI library for C++")
1445 (description
1446 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
1447classes) that provide a common cross-platform API for realtime MIDI
1448input/output.")
1449 (license license:expat)))
1450
5279eb6f
RW
1451(define-public sratom
1452 (package
1453 (name "sratom")
1454 (version "0.4.6")
1455 (source (origin
1456 (method url-fetch)
1457 (uri (string-append "http://download.drobilla.net/sratom-"
1458 version
1459 ".tar.bz2"))
1460 (sha256
1461 (base32
1462 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
1463 (build-system waf-build-system)
1464 (arguments `(#:tests? #f)) ; no check target
1465 (inputs
1466 `(("lv2" ,lv2)
1467 ("serd" ,serd)
1468 ("sord" ,sord)))
1469 (native-inputs
1470 `(("pkg-config" ,pkg-config)))
1471 (home-page "http://drobilla.net/software/sratom/")
1472 (synopsis "Library for serialising LV2 atoms to/from RDF")
1473 (description
1474 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
1475the Turtle syntax.")
1476 (license license:isc)))
f3ab6ad3
RW
1477
1478(define-public suil
1479 (package
1480 (name "suil")
1481 (version "0.8.2")
1482 (source (origin
1483 (method url-fetch)
1484 (uri (string-append "http://download.drobilla.net/suil-"
1485 version
1486 ".tar.bz2"))
1487 (sha256
1488 (base32
1489 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
1490 (build-system waf-build-system)
1491 (arguments `(#:tests? #f)) ; no check target
1492 (inputs
1493 `(("lv2" ,lv2)
1494 ("gtk+-2" ,gtk+-2)
1495 ("qt-4" ,qt-4)))
1496 (native-inputs
1497 `(("pkg-config" ,pkg-config)))
1498 (home-page "http://drobilla.net/software/suil/")
1499 (synopsis "Library for loading and wrapping LV2 plugin UIs")
1500 (description
1501 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
1502
1503Suil makes it possible to load a UI of a toolkit in a host using another
1504toolkit. The API is designed such that hosts do not need to explicitly
1505support specific toolkits – if Suil supports a particular toolkit, then UIs in
1506that toolkit will work in all hosts that use Suil automatically.
1507
1508Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
1509 (license license:isc)))
db46f2fc 1510
9ffee457
RW
1511(define-public timidity++
1512 (package
1513 (name "timidity++")
1514 (version "2.14.0")
1515 (source (origin
1516 (method url-fetch)
1517 (uri (string-append
1518 "mirror://sourceforge/timidity/TiMidity++-"
1519 version ".tar.bz2"))
1520 (sha256
1521 (base32
1522 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
1523 (build-system gnu-build-system)
1524 (arguments
1525 '(#:configure-flags
1526 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
1527 "--enable-ncurses"
1528 "--enable-server"
1529 "--enable-alsaseq"
1530 (string-append "--with-default-path="
1531 (assoc-ref %outputs "out") "/etc/timidity"))
1532 #:phases
1533 (alist-cons-after
1534 'install 'install-config
1535 (lambda _
1536 (let ((out (string-append (assoc-ref %outputs "out")
1537 "/etc/timidity")))
1538 (mkdir-p out)
1539 (call-with-output-file
1540 (string-append out "/timidity.cfg")
1541 (lambda (port)
1542 (format port (string-append "source "
1543 (assoc-ref %build-inputs "freepats")
1544 "/share/freepats/freepats.cfg"))))))
1545 %standard-phases)))
1546 (inputs
1547 `(("alsa-lib" ,alsa-lib)
1548 ("ao" ,ao)
1549 ("flac" ,flac)
1550 ("jack" ,jack-1)
1551 ("libogg" ,libogg)
1552 ("speex" ,speex)
1553 ("ncurses" ,ncurses)
1554 ("freepats" ,freepats)))
1555 (native-inputs
1556 `(("pkg-config" ,pkg-config)))
1557 (home-page "http://timidity.sourceforge.net/")
1558 (synopsis "Software synthesizer for playing MIDI files")
1559 (description
1560 "TiMidity++ is a software synthesizer. It can play MIDI files by
1561converting them into PCM waveform data; give it a MIDI data along with digital
1562instrument data files, then it synthesizes them in real-time, and plays. It
1563can not only play sounds, but also can save the generated waveforms into hard
1564disks as various audio file formats.")
1565 (license license:gpl2+)))
1566
db46f2fc
RW
1567(define-public vamp
1568 (package
1569 (name "vamp")
b1fb59d3 1570 (version "2.6")
db46f2fc
RW
1571 (source (origin
1572 (method url-fetch)
1573 (uri (string-append
1574 "https://code.soundsoftware.ac.uk"
494e9b91 1575 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 1576 version ".tar.gz"))
9002e17c
TUBK
1577 (sha256
1578 (base32
494e9b91 1579 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 1580 (build-system gnu-build-system)
9002e17c
TUBK
1581 (arguments
1582 `(#:tests? #f ; no check target
1583 #:phases
1584 (alist-cons-after
1585 'install 'remove-libvamp-hostsdk.la
1586 (lambda* (#:key outputs #:allow-other-keys)
1587 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
1588 (for-each delete-file
1589 (let ((out (assoc-ref outputs "out")))
1590 (list (string-append out "/lib/libvamp-sdk.la")
1591 (string-append out "/lib/libvamp-hostsdk.la"))))
1592 #t)
1593 %standard-phases)))
db46f2fc
RW
1594 (inputs
1595 `(("libsndfile" ,libsndfile)))
1596 (native-inputs
1597 `(("pkg-config" ,pkg-config)))
1598 (home-page "http://vamp-plugins.org")
1599 (synopsis "Modular and extensible audio processing system")
1600 (description
1601 "Vamp is an audio processing plugin system for plugins that extract
1602descriptive information from audio data — typically referred to as audio
1603analysis plugins or audio feature extraction plugins.")
1604 (license
1605 (license:x11-style
1606 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
1607
1608(define-public libsbsms
1609 (package
1610 (name "libsbsms")
1611 (version "2.0.2")
1612 (source
1613 (origin
1614 (method url-fetch)
1615 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
1616 "/libsbsms-" version ".tar.gz"))
1617 (sha256
1618 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
1619 (build-system gnu-build-system)
1620 (native-inputs `(("automake" ,automake)))
1621 (arguments
476b2877
MW
1622 `(#:configure-flags
1623 ;; Disable the use of SSE unless on x86_64.
1624 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
1625 (%current-system))))
1626 ''("--disable-sse")
1627 ''())
1628 #:phases
09c414d8
MW
1629 (modify-phases %standard-phases
1630 (add-after
1631 'unpack 'fix-ar-lib-path
1632 (lambda* (#:key inputs #:allow-other-keys)
1633 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
1634 (delete-file "ar-lib")
1635 (symlink
1636 (string-append (assoc-ref inputs "automake") "/share/automake-"
1637 ,(package-version automake) "/ar-lib")
1638 "ar-lib"))))))
9f1cdd9d
TUBK
1639 (home-page "http://sbsms.sourceforge.net/")
1640 (synopsis "Library for time stretching and pitch scaling of audio")
1641 (description
1642 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
1643stretching and pitch scaling of audio. This package contains the library.")
1644 ;; There is no explicit declaration of a license, but a COPYING file
1645 ;; containing gpl2.
1646 (license license:gpl2)))
754a98ae 1647
01b90919
SB
1648(define-public wavpack
1649 (package
1650 (name "wavpack")
1651 (version "4.70.0")
1652 (source (origin
1653 (method url-fetch)
1654 (uri (string-append "http://www.wavpack.com/"
1655 name "-" version ".tar.bz2"))
1656 (sha256
1657 (base32
1658 "191h8hv8qk72hfh1crg429i9yq3cminwqb249sy9zadbn1wy7b9c"))))
1659 (build-system gnu-build-system)
60950faa
SB
1660 (arguments
1661 `(#:configure-flags
1662 ;; wavpack.pc.in lacks path substitution for 'exec_prefix'.
1663 (list (string-append "--libdir=" %output "/lib"))))
01b90919
SB
1664 (home-page "http://www.wavpack.com/")
1665 (synopsis "Hybrid lossless audio codec")
1666 (description
1667 "WavPack is an audio compression format with lossless, lossy and hybrid
1668compression modes. This package contains command-line programs and library to
1669encode and decode wavpack files.")
1670 (license license:bsd-3)))
1671
a176dd7e
SB
1672(define-public libmodplug
1673 (package
1674 (name "libmodplug")
1675 (version "0.8.8.5")
1676 (source (origin
1677 (method url-fetch)
1678 (uri (string-append
1679 "mirror://sourceforge/project/modplug-xmms/"
1680 name "/" version "/" name "-" version ".tar.gz"))
1681 (sha256
1682 (base32
1683 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
1684 (build-system gnu-build-system)
1685 (home-page "http://modplug-xmms.sourceforge.net/")
1686 (synopsis "Mod file playing library")
1687 (description
1688 "Libmodplug renders mod music files as raw audio data, for playing or
1689conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
1690supported. Optional features include high-quality resampling, bass expansion,
1691surround and reverb.")
1692 (license license:public-domain)))
1693
b97b5cda
SB
1694(define-public libxmp
1695 (package
1696 (name "libxmp")
1207a0c3 1697 (version "4.3.10")
b97b5cda
SB
1698 (source (origin
1699 (method url-fetch)
1700 (uri (string-append "mirror://sourceforge/xmp/libxmp/"
1701 name "-" version ".tar.gz"))
1702 (sha256
1703 (base32
1207a0c3 1704 "1gm5xa0ca7ypcbj3bkmj3k1vvzl7nkch8gjyrm8p1a9vgzr0n761"))))
b97b5cda
SB
1705 (build-system gnu-build-system)
1706 (home-page "http://xmp.sourceforge.net/")
1707 (synopsis "Module player library")
1708 (description
1709 "Libxmp is a library that renders module files to PCM data. It supports
1710over 90 mainstream and obscure module formats including Protracker (MOD),
1711Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
1712 (license license:lgpl2.1+)))
1713
3ec4bba4
SB
1714(define-public xmp
1715 (package
1716 (name "xmp")
1717 (version "4.0.10")
1718 (source (origin
1719 (method url-fetch)
1720 (uri (string-append "mirror://sourceforge/xmp/xmp/"
1721 name "-" version ".tar.gz"))
1722 (sha256
1723 (base32
1724 "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n"))))
1725 (build-system gnu-build-system)
1726 (native-inputs
1727 `(("pkg-config" ,pkg-config)))
1728 (inputs
1729 `(("libxmp" ,libxmp)
1730 ("pulseaudio" ,pulseaudio)))
1731 (home-page "http://xmp.sourceforge.net/")
1732 (synopsis "Extended module player")
1733 (description
1734 "Xmp is a portable module player that plays over 90 mainstream and
1735obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
1736Tracker 3 S3M and Impulse Tracker IT files.")
1737 (license license:gpl2+)))
1738
754a98ae
TUBK
1739(define-public soundtouch
1740 (package
1741 (name "soundtouch")
1742 (version "1.8.0")
1743 (source
1744 (origin
1745 (method url-fetch)
1746 (uri
1747 (string-append
1748 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
1749 (sha256
1750 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
1751 (build-system gnu-build-system)
1752 (native-inputs
1753 `(("autoconf" ,autoconf)
1754 ("automake" ,automake)
1755 ("libtool" ,libtool)
1756 ("file" ,file)))
1757 (arguments
1758 '(#:phases
722ec722
MW
1759 (alist-cons-after
1760 'unpack 'bootstrap
754a98ae 1761 (lambda _
722ec722 1762 (zero? (system* "sh" "bootstrap")))
754a98ae
TUBK
1763 %standard-phases)))
1764 (home-page "http://www.surina.net/soundtouch/")
1765 (synopsis
1766 "Audio processing library for changing tempo, pitch and playback rate")
1767 (description
1768 "SoundTouch is an audio processing library for changing the tempo, pitch
1769and playback rates of audio streams or audio files. It is intended for
1770application developers writing sound processing tools that require tempo/pitch
1771control functionality, or just for playing around with the sound effects.")
1772 (license license:lgpl2.1+)))
4bddd14c 1773
d739f481
AK
1774(define-public sox
1775 (package
1776 (name "sox")
1777 (version "14.4.2")
1778 (source (origin
1779 (method url-fetch)
1780 (uri (string-append "mirror://sourceforge/sox/sox-"
1781 version ".tar.bz2"))
1782 (sha256
1783 (base32
1784 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
1785 (build-system gnu-build-system)
1786 (arguments
1787 '(#:configure-flags
1788 ;; The upstream asks to identify the distribution to diagnose SoX
1789 ;; bug reports.
1790 '("--with-distro=Guix System Distribution")))
1791 (native-inputs
1792 `(("pkg-config" ,pkg-config)))
1793 (inputs
1794 `(("alsa-lib" ,alsa-lib)
1795 ("ao" ,ao)
1796 ("flac" ,flac)
1797 ("lame" ,lame)
1798 ("libid3tag" ,libid3tag)
1799 ("libltdl" ,libltdl)
1800 ("libmad" ,libmad)
1801 ("libpng" ,libpng)
1802 ("libvorbis" ,libvorbis)
1803 ("pulseaudio" ,pulseaudio)))
1804 (home-page "http://sox.sourceforge.net")
1805 (synopsis "Sound processing utility")
1806 (description
1807 "SoX (Sound eXchange) is a command line utility that can convert
1808various formats of computer audio files to other formats. It can also
1809apply various effects to these sound files, and, as an added bonus, SoX
1810can play and record audio files.")
1811 ;; sox.c is distributed under GPL, while the files that make up
1812 ;; libsox are licensed under LGPL.
1813 (license (list license:gpl2+ license:lgpl2.1+))))
1814
4bddd14c
TUBK
1815(define-public soxr
1816 (package
1817 (name "soxr")
1818 (version "0.1.1")
1819 (source
1820 (origin
1821 (method url-fetch)
1822 (uri
1823 (string-append "mirror://sourceforge/soxr/soxr-" version
1824 "-Source.tar.xz"))
1825 (sha256
1826 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
1827 (build-system cmake-build-system)
1828 (arguments '(#:tests? #f)) ;no 'check' target
1829 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
1830 (synopsis "One-dimensional sample-rate conversion library")
1831 (description
1832 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
1833conversion. It may be used, for example, to resample PCM-encoded audio.")
1834 (license license:lgpl2.1+)))
49f36708
TUBK
1835
1836(define-public twolame
1837 (package
1838 (name "twolame")
1839 (version "0.3.13")
1840 (source
1841 (origin
1842 (method url-fetch)
1843 (uri (string-append
1844 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
1845 (sha256
1846 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
1847 (build-system gnu-build-system)
1848 (inputs
1849 `(("libsndfile" ,libsndfile)))
1850 (native-inputs
1851 `(("perl" ,perl)
1852 ("which" ,which))) ;used in tests/test.pl
1853 (home-page "http://www.twolame.org/")
1854 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
1855 (description
1856 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
1857tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
1858portions of LAME.")
1859 (license license:lgpl2.1+)))
bd4464f2
TUBK
1860
1861(define-public portaudio
1862 (package
1863 (name "portaudio")
1864 (version "19.20140130")
1865 (source
1866 (origin
1867 (method url-fetch)
1868 (uri (string-append
1869 "http://www.portaudio.com/archives/pa_stable_v"
1870 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
1871 ".tgz"))
1872 (sha256
b47be021
TUBK
1873 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
1874 (patches (list (search-patch "portaudio-audacity-compat.patch")))))
bd4464f2
TUBK
1875 (build-system gnu-build-system)
1876 (inputs
1877 ;; TODO: Add ASIHPI.
1878 `(("alsa-lib" ,alsa-lib)
bcbc02fd 1879 ("jack" ,jack-1)))
bd4464f2 1880 (native-inputs
b47be021
TUBK
1881 `(("autoconf" ,autoconf)
1882 ("automake" ,automake)
1883 ("libtool" ,libtool)
1884 ("pkg-config" ,pkg-config)))
1885 (arguments
1886 '(#:phases
1887 ;; Autoreconf is necessary because the audacity-compat patch modifies
1888 ;; .in files.
1889 (alist-cons-after
1890 'unpack 'autoreconf
1891 (lambda _
1892 (zero? (system* "autoreconf" "-vif")))
1893 %standard-phases)
1894 #:tests? #f)) ;no 'check' target
bd4464f2
TUBK
1895 (home-page "http://www.portaudio.com/")
1896 (synopsis "Audio I/O library")
1897 (description
1898 "PortAudio is a portable C/C++ audio I/O library providing a simple API
1899to record and/or play sound using a callback function or a blocking read/write
1900interface.")
1901 (license license:expat)))
74bbf894 1902
fe73aef4
RW
1903(define-public qsynth
1904 (package
1905 (name "qsynth")
a228fce5 1906 (version "0.4.0")
fe73aef4
RW
1907 (source
1908 (origin
1909 (method url-fetch)
1910 (uri (string-append
1911 "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
1912 (sha256
a228fce5 1913 (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
fe73aef4
RW
1914 (build-system gnu-build-system)
1915 (arguments
1916 `(#:tests? #f)) ; no "check" phase
1917 (inputs
1918 `(("qt" ,qt)
1919 ("fluidsynth" ,fluidsynth)))
1920 (home-page "http://qsynth.sourceforge.net")
1921 (synopsis "Graphical user interface for FluidSynth")
1922 (description
1923 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
1924synthesizer written in C++.")
1925 (license license:gpl2+)))
1926
55b596c3
TUBK
1927(define-public rsound
1928 (package
1929 (name "rsound")
1930 (version "1.1")
1931 (source
1932 (origin
1933 (method url-fetch)
1934 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
1935 version ".tar.gz"))
01e327b5 1936 (file-name (string-append name "-" version))
55b596c3
TUBK
1937 (sha256
1938 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
1939 (build-system gnu-build-system)
1940 (inputs
1941 `(("alsa-lib" ,alsa-lib)
276f49df 1942 ("jack" ,jack-1)
55b596c3
TUBK
1943 ("ao" ,ao)
1944 ("libsamplerate" ,libsamplerate)
1945 ("openal" ,openal)
1946 ("portaudio" ,portaudio)
1947 ("pulseaudio" ,pulseaudio)))
1948 (arguments
1949 '(#:phases
1950 (alist-replace
1951 'configure
1952 (lambda* (#:key outputs #:allow-other-keys)
1953 (setenv "CC" "gcc")
1954 (zero?
1955 (system* "./configure"
1956 (string-append "--prefix=" (assoc-ref outputs "out")))))
1957 %standard-phases)
1958 ;; No 'check' target.
1959 #:tests? #f))
1960 (home-page "http://themaister.net/rsound.html")
1961 (synopsis "Networked audio system")
1962 (description
1963 "RSound allows you to send audio from an application and transfer it
1964directly to a different computer on your LAN network. It is an audio daemon
1965with a much different focus than most other audio daemons.")
1966 (license license:gpl3+)))
1967
caf9055c
RW
1968(define-public xjackfreak
1969 (package
1970 (name "xjackfreak")
1971 (version "1.0")
1972 (source (origin
1973 (method url-fetch)
1974 (uri (string-append
1975 "https://github.com/johnhldavis/xjackfreak/archive/v"
1976 version ".tar.gz"))
1977 (file-name (string-append name "-" version ".tar.gz"))
1978 (sha256
1979 (base32
1980 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
1981 (build-system gnu-build-system)
1982 (arguments
1983 `(#:make-flags
1984 (list (string-append "docdir=" (assoc-ref %outputs "out")
1985 "/share/doc/xjackfreak"))))
1986 (inputs
1987 `(("jack" ,jack-1)
1988 ("libx11" ,libx11)
1989 ("libxt" ,libxt)
1990 ("libxext" ,libxext)))
1991 (native-inputs
1992 `(("pkg-config" ,pkg-config)))
1993 (home-page "https://github.com/johnhldavis/xjackfreak")
1994 (synopsis "JACK audio frequency analyzer and display")
1995 (description
1996 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
1997Connection Kit. It can display the FFT of any input, modify it and output the
1998result.")
1999 (license license:gpl3+)))
2000
d73f7909
RW
2001(define-public zita-convolver
2002 (package
2003 (name "zita-convolver")
2004 (version "3.1.0")
2005 (source (origin
2006 (method url-fetch)
2007 (uri (string-append
2008 "http://kokkinizita.linuxaudio.org"
2009 "/linuxaudio/downloads/zita-convolver-"
2010 version ".tar.bz2"))
29e255ca
SB
2011 (snippet
2012 ;; Don't optimize for a specific processor architecture.
2013 '(substitute* "libs/Makefile"
2014 (("^CXXFLAGS \\+= -march=native") "")))
2015 (modules '((guix build utils)))
d73f7909
RW
2016 (sha256
2017 (base32
2018 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2019 (build-system gnu-build-system)
2020 (arguments
2021 `(#:tests? #f ; no "check" target
2022 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2023 #:phases
2024 (alist-cons-after
2025 'unpack 'patch-makefile-and-enter-directory
2026 (lambda _
2027 (substitute* "libs/Makefile"
2028 (("ldconfig") "true")
2029 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2030 (chdir "libs") #t)
2031 (alist-cons-after
2032 'install
2033 'install-symlink
2034 (lambda _
2035 (symlink "libzita-convolver.so"
2036 (string-append (assoc-ref %outputs "out")
2037 "/lib/libzita-convolver.so.3")))
2038 ;; no configure script
2039 (alist-delete 'configure %standard-phases)))))
2040 (inputs `(("fftwf" ,fftwf)))
2041 (home-page "http://kokkinizita.linuxaudio.org")
2042 (synopsis "Fast, partitioned convolution engine library")
2043 (description
2044 "Zita convolver is a C++ library providing a real-time convolution
2045engine.")
2046 (license license:gpl3+)))
2047
b7ed6784
RW
2048(define-public zita-resampler
2049 (package
2050 (name "zita-resampler")
2051 (version "1.3.0")
2052 (source (origin
2053 (method url-fetch)
2054 (uri (string-append
2055 "http://kokkinizita.linuxaudio.org"
2056 "/linuxaudio/downloads/zita-resampler-"
2057 version ".tar.bz2"))
6dff4955
SB
2058 (snippet
2059 ;; Don't optimize for a specific processor architecture.
2060 '(substitute* '("apps/Makefile" "libs/Makefile")
2061 (("^CXXFLAGS \\+= -march=native") "")))
2062 (modules '((guix build utils)))
b7ed6784
RW
2063 (sha256
2064 (base32
2065 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
2066 (build-system gnu-build-system)
2067 (arguments
2068 `(#:tests? #f ; no "check" target
2069 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2070 #:phases
2071 (modify-phases %standard-phases
2072 (add-after
2073 'unpack 'patch-makefile-and-enter-directory
2074 (lambda _
2075 (substitute* "libs/Makefile"
2076 (("ldconfig") "true")
2077 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2078 (chdir "libs")
2079 #t))
2080 (add-after
2081 'install 'install-symlink
2082 (lambda _
2083 (symlink "libzita-resampler.so"
2084 (string-append (assoc-ref %outputs "out")
2085 "/lib/libzita-resampler.so.1"))))
2086 ;; no configure script
2087 (delete 'configure))))
2088 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
2089 (synopsis "C++ library for resampling audio signals")
2090 (description
2091 "Libzita-resampler is a C++ library for resampling audio signals. It is
2092designed to be used within a real-time processing context, to be fast, and to
2093provide high-quality sample rate conversion.")
2094 (license license:gpl3+)))
2095
74bbf894
RW
2096(define-public zita-alsa-pcmi
2097 (package
2098 (name "zita-alsa-pcmi")
2099 (version "0.2.0")
2100 (source (origin
2101 (method url-fetch)
2102 (uri (string-append
2103 "http://kokkinizita.linuxaudio.org"
2104 "/linuxaudio/downloads/zita-alsa-pcmi-"
2105 version ".tar.bz2"))
2106 (sha256
2107 (base32
9569dfc8 2108 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
2109 (build-system gnu-build-system)
2110 (arguments
2111 `(#:tests? #f ; no "check" target
2112 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2113 #:phases
2114 (alist-cons-after
9569dfc8
RW
2115 'unpack 'patch-makefile-and-enter-directory
2116 (lambda _
2117 (substitute* "libs/Makefile"
2118 (("ldconfig") "true")
2119 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2120 (chdir "libs")
2121 #t)
74bbf894
RW
2122 (alist-cons-after
2123 'install
2124 'install-symlink
2125 (lambda _
2126 (symlink "libzita-alsa-pcmi.so"
2127 (string-append (assoc-ref %outputs "out")
2128 "/lib/libzita-alsa-pcmi.so.0")))
2129 ;; no configure script
2130 (alist-delete 'configure %standard-phases)))))
2131 (inputs
2132 `(("alsa-lib" ,alsa-lib)
2133 ("fftw" ,fftw)))
2134 (home-page "http://kokkinizita.linuxaudio.org")
2135 (synopsis "C++ wrapper around the ALSA API")
2136 (description
2137 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
2138access to ALSA PCM devices, taking care of the many functions required to
2139open, initialise and use a hw: device in mmap mode, and providing floating
2140point audio data.")
2141 (license license:gpl3+)))
6da16993
LF
2142
2143(define-public cuetools
2144 (package
2145 (name "cuetools")
2146 (version "1.4.1")
2147 (source (origin
2148 (method url-fetch)
2149 (uri (string-append "https://github.com/svend/cuetools/archive/"
2150 version ".tar.gz"))
2151 (file-name (string-append name "-" version ".tar.gz"))
2152 (sha256
2153 (base32
2154 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
2155 (build-system gnu-build-system)
2156 ;; The source tarball is not bootstrapped.
2157 (arguments
2158 `(#:phases
2159 (modify-phases %standard-phases
2160 (add-after 'unpack 'bootstrap
2161 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
2162 ;; Bootstrapping tools
2163 (native-inputs
2164 `(("autoconf" ,autoconf)
2165 ("automake" ,automake)
2166 ("flex" ,flex)
2167 ("bison" ,bison)))
2168 (synopsis "Cue and toc file parsers and utilities")
2169 (description "Cuetools is a set of programs that are useful for manipulating
2170and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
2171files are a way to represent the layout of a data or audio CD in a
2172machine-readable ASCII format.")
2173 (home-page "https://github.com/svend/cuetools")
2174 (license license:gpl2+)))
6819a8dd
LF
2175
2176(define-public shntool
2177 (package
2178 (name "shntool")
2179 (version "3.0.10")
2180 (source (origin
2181 (method url-fetch)
2182 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
2183 "shntool-" version ".tar.gz"))
2184 (sha256
2185 (base32
2186 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
2187 (build-system gnu-build-system)
2188 (synopsis "WAVE audio data processing tool")
2189 (description "shntool is a multi-purpose WAVE data processing and reporting
2190utility. File formats are abstracted from its core, so it can process any file
2191that contains WAVE data, compressed or not---provided there exists a format
2192module to handle that particular file type.")
2193 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
2194 ;; 'install-sh' bears the x11 license
2195 (license (list license:gpl2+ license:x11))))
680b54c5
DT
2196
2197(define-public dcadec
2198 (package
2199 (name "dcadec")
2200 (version "0.2.0")
2201 (source (origin
2202 (method url-fetch)
2203 (uri (string-append "https://github.com/foo86/dcadec/archive/v"
2204 version ".tar.gz"))
2205 (file-name (string-append name "-" version ".tar.gz"))
2206 (sha256
2207 (base32
2208 "0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
2209 (build-system gnu-build-system)
2210 (arguments
2211 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
2212 '(#:tests? #f
2213 #:make-flags
2214 (list "CC=gcc"
2215 ;; Build shared library.
2216 "CONFIG_SHARED=1"
2217 (string-append "PREFIX=" (assoc-ref %outputs "out"))
2218 ;; Set proper runpath.
2219 (string-append "LDFLAGS=-Wl,-rpath="
2220 (assoc-ref %outputs "out")
2221 "/lib"))
2222 #:phases
2223 (modify-phases %standard-phases
2224 ;; No configure script, just a hand-written Makefile.
2225 (delete 'configure))))
2226 (synopsis "DTS Coherent Acoustics decoder")
2227 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
2228with support for HD extensions.")
2229 (home-page "https://github.com/foo86/dcadec")
2230 (license license:lgpl2.1+)))