gnu: Add g2reverb.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
... / ...
CommitLineData
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
5;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
6;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
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)
27 #:use-module (guix utils)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system gnu)
30 #:use-module (guix build-system waf)
31 #:use-module (guix build-system trivial)
32 #:use-module (guix build-system cmake)
33 #:use-module (guix build-system python)
34 #:use-module (gnu packages)
35 #:use-module (gnu packages algebra)
36 #:use-module (gnu packages autotools)
37 #:use-module (gnu packages avahi)
38 #:use-module (gnu packages boost)
39 #:use-module (gnu packages base)
40 #:use-module (gnu packages bison)
41 #:use-module (gnu packages compression)
42 #:use-module (gnu packages curl)
43 #:use-module (gnu packages databases)
44 #:use-module (gnu packages file)
45 #:use-module (gnu packages flex)
46 #:use-module (gnu packages fltk)
47 #:use-module (gnu packages fontutils)
48 #:use-module (gnu packages gettext)
49 #:use-module (gnu packages glib)
50 #:use-module (gnu packages gtk)
51 #:use-module (gnu packages gnome)
52 #:use-module (gnu packages gperf)
53 #:use-module (gnu packages image)
54 #:use-module (gnu packages ncurses)
55 #:use-module (gnu packages qt)
56 #:use-module (gnu packages linux)
57 #:use-module (gnu packages mp3) ;taglib
58 #:use-module (gnu packages perl)
59 #:use-module (gnu packages pkg-config)
60 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
61 #:use-module (gnu packages python)
62 #:use-module (gnu packages rdf)
63 #:use-module (gnu packages readline)
64 #:use-module (gnu packages webkit)
65 #:use-module (gnu packages xiph)
66 #:use-module (gnu packages xml)
67 #:use-module (gnu packages xorg)
68 #:use-module (gnu packages zip)
69 #:use-module (srfi srfi-1))
70
71(define-public alsa-modular-synth
72 (package
73 (name "alsa-modular-synth")
74 (version "2.1.2")
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "mirror://sourceforge/alsamodular/ams-"
78 version ".tar.bz2"))
79 (sha256
80 (base32
81 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
82 (build-system gnu-build-system)
83 (arguments
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)))))
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)
103 ("qt" ,qt)))
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
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)
140 ("libsndfile" ,libsndfile)
141 ("libsamplerate" ,libsamplerate)
142 ("fftwf" ,fftwf)))
143 (native-inputs
144 `(("pkg-config" ,pkg-config)))
145 (home-page "http://aubio.org/")
146 (synopsis "Library for audio labelling")
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
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
170(define-public ardour
171 (package
172 (name "ardour")
173 (version "4.7")
174 (source (origin
175 (method git-fetch)
176 (uri (git-reference
177 (url "git://git.ardour.org/ardour/ardour.git")
178 (commit version)))
179 (snippet
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]*+//'
183 '(call-with-output-file
184 "libs/ardour/revision.cc"
185 (lambda (port)
186 (format port "#include \"ardour/revision.h\"
187namespace ARDOUR { const char* revision = \"4.7-219-g0e36f8e\" ; }"))))
188 (sha256
189 (base32
190 "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l"))
191 (file-name (string-append name "-" version))))
192 (build-system waf-build-system)
193 (arguments
194 `(#:configure-flags '("--cxx11") ; required by gtkmm
195 #:phases
196 (modify-phases %standard-phases
197 (add-after
198 'unpack 'set-rpath-in-LDFLAGS
199 ,(ardour-rpath-phase (version-prefix version 1))))
200 #:tests? #f ; no check target
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)
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)
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
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)
270 ("lash" ,lash)))
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
283(define-public calf
284 (package
285 (name "calf")
286 (version "0.0.60")
287 (source (origin
288 (method url-fetch)
289 (uri (string-append "http://calf-studio-gear.org/files/calf-"
290 version ".tar.gz"))
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
324(define-public csound
325 (package
326 (name "csound")
327 (version "6.05")
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
335 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
336 (patches (list (search-patch "csound-header-ordering.patch")))))
337 (build-system cmake-build-system)
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 '()))
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
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
376 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
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
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)
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
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
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
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
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
564device. It is the software analogue of a MIDI synthesizer. FluidSynth can
565also play midifiles using a Soundfont.")
566 (license license:gpl2+)))
567
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
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
610 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
611 (snippet
612 ;; Remove prebuilt library
613 '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
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
620 ;; no "configure" script
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
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
669(define-public guitarix
670 (package
671 (name "guitarix")
672 (version "0.34.0")
673 (source (origin
674 (method url-fetch)
675 (uri (string-append
676 "mirror://sourceforge/guitarix/guitarix2-"
677 version ".tar.bz2"))
678 (sha256
679 (base32
680 "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8"))))
681 (build-system waf-build-system)
682 (arguments
683 `(#:tests? #f ; no "check" target
684 #:python ,python-2
685 #:configure-flags
686 (list
687 ;; Add the output lib directory to the RUNPATH.
688 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
689 "--cxxflags=-std=c++11")))
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)
701 ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2)
702 ("fftwf" ,fftwf)
703 ("lrdf" ,lrdf)
704 ("zita-resampler" ,zita-resampler)
705 ("zita-convolver" ,zita-convolver)))
706 (native-inputs
707 `(("gperf" ,gperf)
708 ("faust" ,faust)
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
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
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
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
832 `(("alsa-lib" ,alsa-lib)
833 ("readline" ,readline)))
834 ;; uuid.h is included in the JACK type headers
835 ;; db.h is included in the libjack metadata headers
836 (propagated-inputs
837 `(("libuuid" ,util-linux)
838 ("bdb" ,bdb)))
839 (native-inputs
840 `(("pkg-config" ,pkg-config)))
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.
852 (license (list license:gpl2+ license:lgpl2.1+))))
853
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.
857(define-public jack-2
858 (package (inherit jack-1)
859 (name "jack2")
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"))
867 (file-name (string-append name "-" version ".tar.gz"))
868 (sha256
869 (base32
870 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
871 (build-system waf-build-system)
872 (arguments
873 `(#:python ,python-2
874 #:tests? #f ; no check target
875 #:configure-flags '("--dbus"
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',"
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)))))
896 (inputs
897 `(("alsa-lib" ,alsa-lib)
898 ("dbus" ,dbus)
899 ("expat" ,expat)
900 ("libsamplerate" ,libsamplerate)
901 ("opus" ,opus)
902 ("python2-dbus" ,python2-dbus)
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+))))
908
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)
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)))))
931 (inputs
932 `(("lv2" ,lv2)
933 ("lilv" ,lilv)
934 ("suil" ,suil)
935 ("gtk" ,gtk+-2)
936 ("gtkmm" ,gtkmm-2)
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
948(define-public ladspa
949 (package
950 (name "ladspa")
951 (version "1.13")
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"))))
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))))
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/")
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
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)
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
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
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+)))
1079
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
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)
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")))))))
1131 ;; required by lilv-0.pc
1132 (propagated-inputs
1133 `(("serd" ,serd)
1134 ("sord" ,sord)
1135 ("sratom" ,sratom)))
1136 (inputs
1137 `(("lv2" ,lv2)))
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
1148(define-public lv2
1149 (package
1150 (name "lv2")
1151 (version "1.12.0")
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
1159 "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks"))))
1160 (build-system waf-build-system)
1161 (arguments
1162 `(#:tests? #f ; no check target
1163 #:configure-flags '("--no-plugins")))
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)))
1177
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
1185 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
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
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
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"))
1233 (file-name (string-append name "-" version ".tar.gz"))
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")
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")))))))
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
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
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)))))
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
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)
1332 ("ganv" ,ganv)
1333 ("glibmm" ,glibmm)
1334 ("gtkmm" ,gtkmm-2)
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
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
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
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
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)))
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)))
1510
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
1567(define-public vamp
1568 (package
1569 (name "vamp")
1570 (version "2.6")
1571 (source (origin
1572 (method url-fetch)
1573 (uri (string-append
1574 "https://code.soundsoftware.ac.uk"
1575 "/attachments/download/1520/vamp-plugin-sdk-"
1576 version ".tar.gz"))
1577 (sha256
1578 (base32
1579 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
1580 (build-system gnu-build-system)
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)))
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"))))
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
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
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"))))))
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)))
1647
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)
1660 (arguments
1661 `(#:configure-flags
1662 ;; wavpack.pc.in lacks path substitution for 'exec_prefix'.
1663 (list (string-append "--libdir=" %output "/lib"))))
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
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
1694(define-public libxmp
1695 (package
1696 (name "libxmp")
1697 (version "4.3.10")
1698 (source (origin
1699 (method url-fetch)
1700 (uri (string-append "mirror://sourceforge/xmp/libxmp/"
1701 name "-" version ".tar.gz"))
1702 (sha256
1703 (base32
1704 "1gm5xa0ca7ypcbj3bkmj3k1vvzl7nkch8gjyrm8p1a9vgzr0n761"))))
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
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
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
1759 (alist-cons-after
1760 'unpack 'bootstrap
1761 (lambda _
1762 (zero? (system* "sh" "bootstrap")))
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+)))
1773
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
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+)))
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+)))
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
1873 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
1874 (patches (list (search-patch "portaudio-audacity-compat.patch")))))
1875 (build-system gnu-build-system)
1876 (inputs
1877 ;; TODO: Add ASIHPI.
1878 `(("alsa-lib" ,alsa-lib)
1879 ("jack" ,jack-1)))
1880 (native-inputs
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
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)))
1902
1903(define-public qsynth
1904 (package
1905 (name "qsynth")
1906 (version "0.4.0")
1907 (source
1908 (origin
1909 (method url-fetch)
1910 (uri (string-append
1911 "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
1912 (sha256
1913 (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
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
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"))
1936 (file-name (string-append name "-" version))
1937 (sha256
1938 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
1939 (build-system gnu-build-system)
1940 (inputs
1941 `(("alsa-lib" ,alsa-lib)
1942 ("jack" ,jack-1)
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
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
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"))
2011 (snippet
2012 ;; Don't optimize for a specific processor architecture.
2013 '(substitute* "libs/Makefile"
2014 (("^CXXFLAGS \\+= -march=native") "")))
2015 (modules '((guix build utils)))
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
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"))
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)))
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
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
2108 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
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
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)
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+)))
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+)))
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/")
2194 ;; 'install-sh' bears the x11 license
2195 (license (list license:gpl2+ license:x11))))
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+)))