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