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