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