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