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