gnu: cmake: Disable parallel tests.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
CommitLineData
fb68469f
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
9f1cdd9d 3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fb68469f
RW
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages audio)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix git-download)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix build-system gnu)
c54a8981 26 #:use-module (guix build-system waf)
7c92efff 27 #:use-module (guix build-system trivial)
4bddd14c 28 #:use-module (guix build-system cmake)
fb68469f 29 #:use-module (gnu packages)
d55f912a 30 #:use-module (gnu packages algebra)
9f1cdd9d 31 #:use-module (gnu packages autotools)
88efb2c3 32 #:use-module (gnu packages boost)
7c92efff 33 #:use-module (gnu packages base)
fda85ca6 34 #:use-module (gnu packages bison)
7c92efff 35 #:use-module (gnu packages compression)
88efb2c3 36 #:use-module (gnu packages curl)
fb68469f 37 #:use-module (gnu packages databases)
754a98ae 38 #:use-module (gnu packages file)
fda85ca6
RW
39 #:use-module (gnu packages flex)
40 #:use-module (gnu packages gettext)
88efb2c3 41 #:use-module (gnu packages glib)
f3ab6ad3 42 #:use-module (gnu packages gtk)
88efb2c3 43 #:use-module (gnu packages gnome)
9ffee457 44 #:use-module (gnu packages ncurses)
f3ab6ad3 45 #:use-module (gnu packages qt)
c54a8981 46 #:use-module (gnu packages linux)
88efb2c3
RW
47 #:use-module (gnu packages mp3) ;taglib
48 #:use-module (gnu packages perl)
c54a8981
RW
49 #:use-module (gnu packages pkg-config)
50 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
d55f912a 51 #:use-module (gnu packages python)
5279eb6f 52 #:use-module (gnu packages rdf)
c54a8981
RW
53 #:use-module (gnu packages readline)
54 #:use-module (gnu packages xiph)
da49086a 55 #:use-module (gnu packages xml)
70fc29d9 56 #:use-module (gnu packages zip)
da49086a 57 #:use-module (srfi srfi-1))
fb68469f 58
eb0fb087
RW
59(define-public alsa-modular-synth
60 (package
61 (name "alsa-modular-synth")
62 (version "2.1.1")
63 (source (origin
64 (method url-fetch)
65 (uri (string-append "mirror://sourceforge/alsamodular/ams-"
66 version ".tar.bz2"))
67 (sha256
68 (base32
69 "1nb7qzzqlqa2x8h797jbwi18ihnfkxqg9lyi0c4nvf8ybwzxkzd2"))))
70 (build-system gnu-build-system)
71 (inputs
72 `(("alsa-lib" ,alsa-lib)
73 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
74 ;; license incompatibility.
75 ("clalsadrv" ,clalsadrv)
76 ("fftw" ,fftw)
77 ("jack" ,jack-1)
78 ("ladspa" ,ladspa)
79 ("liblo" ,liblo)
80 ("qt" ,qt-4)))
81 (native-inputs
82 `(("pkg-config" ,pkg-config)))
83 (home-page "http://alsamodular.sourceforge.net/")
84 (synopsis "Realtime modular synthesizer and effect processor")
85 (description
86 "AlsaModularSynth is a digital implementation of a classical analog
87modular synthesizer system. It uses virtual control voltages to control the
88parameters of the modules. The control voltages which control the frequency
89e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
90Filter) modules follow the convention of 1V / Octave.")
91 (license license:gpl2)))
92
d55f912a
RW
93(define-public aubio
94 (package
95 (name "aubio")
96 (version "0.4.1")
97 (source (origin
98 (method url-fetch)
99 (uri (string-append
100 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
101 (sha256
102 (base32
103 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
104 (build-system waf-build-system)
105 (arguments
106 `(#:tests? #f ; no check target
107 #:configure-flags
108 '("--enable-fftw3f"
109 "--enable-jack"
110 "--enable-sndfile"
111 "--enable-samplerate"
112 ;; enable compilation with avcodec once available
113 "--disable-avcodec")
114 #:python ,python-2))
115 (inputs
116 `(("jack" ,jack-1)
d55f912a
RW
117 ("libsndfile" ,libsndfile)
118 ("libsamplerate" ,libsamplerate)
119 ("fftwf" ,fftwf)))
120 (native-inputs
121 `(("pkg-config" ,pkg-config)))
122 (home-page "http://aubio.org/")
123 (synopsis "A library for audio labelling")
124 (description
125 "aubio is a tool designed for the extraction of annotations from audio
126signals. Its features include segmenting a sound file before each of its
127attacks, performing pitch detection, tapping the beat and producing MIDI
128streams from live audio.")
129 (license license:gpl3+)))
130
88efb2c3
RW
131(define-public ardour
132 (package
133 (name "ardour")
134 (version "3.5.403")
135 (source (origin
136 ;; The project only provides tarballs upon individual request
137 ;; (or after payment) so we take the code from git.
138 (method git-fetch)
139 (uri (git-reference
140 (url "git://git.ardour.org/ardour/ardour.git")
141 (commit version)))
142 (snippet
143 '(call-with-output-file
144 "libs/ardour/revision.cc"
145 (lambda (port)
146 (format port "#include \"ardour/revision.h\"
147namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
148 (sha256
149 (base32
150 "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
151 (file-name (string-append name "-" version))))
152 (build-system waf-build-system)
153 (arguments
154 `(#:tests? #f ; no check target
155 #:python ,python-2))
156 (inputs
157 `(("alsa-lib" ,alsa-lib)
158 ("aubio" ,aubio)
159 ("lrdf" ,lrdf)
160 ("boost" ,boost)
161 ("atkmm" ,atkmm)
162 ("cairomm" ,cairomm)
163 ("gtkmm" ,gtkmm-2)
164 ("glibmm" ,glibmm)
165 ("libart-lgpl" ,libart-lgpl)
166 ("libgnomecanvasmm" ,libgnomecanvasmm)
167 ("pangomm" ,pangomm)
168 ("liblo" ,liblo)
169 ("libsndfile" ,libsndfile)
170 ("libsamplerate" ,libsamplerate)
171 ("libxml2" ,libxml2)
172 ("libogg" ,libogg)
173 ("libvorbis" ,libvorbis)
174 ("flac" ,flac)
175 ("lv2" ,lv2)
176 ("vamp" ,vamp)
177 ("curl" ,curl)
88efb2c3
RW
178 ("fftw" ,fftw)
179 ("fftwf" ,fftwf)
180 ("jack" ,jack-1)
181 ("serd" ,serd)
182 ("sord" ,sord)
183 ("sratom" ,sratom)
184 ("suil" ,suil)
185 ("lilv" ,lilv)
186 ("rasqal" ,rasqal)
187 ("raptor2" ,raptor2)
188 ("redland" ,redland)
189 ("rubberband" ,rubberband)
190 ("taglib" ,taglib)
191 ("python-rdflib" ,python-rdflib)))
192 (native-inputs
193 `(("perl" ,perl)
194 ("pkg-config" ,pkg-config)))
195 (home-page "http://ardour.org")
196 (synopsis "Digital audio workstation")
197 (description
198 "Ardour is a multi-channel digital audio workstation, allowing users to
199record, edit, mix and master audio and MIDI projects. It is targeted at audio
200engineers, musicians, soundtrack editors and composers.")
201 (license license:gpl2+)))
202
497e9a82
RW
203(define-public azr3
204 (package
205 (name "azr3")
206 (version "1.2.3")
207 (source (origin
208 (method url-fetch)
209 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
210 version
211 ".tar.bz2"))
212 (sha256
213 (base32
214 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
215 (build-system gnu-build-system)
216 (arguments
217 `(#:tests? #f ; no check target
218 #:make-flags
219 (list "LV2PEG=ttl2c"
220 (string-append "prefix=" %output)
221 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
222 (inputs
223 `(("gtkmm" ,gtkmm-2)
224 ("lvtk" ,lvtk)
225 ("jack" ,jack-1)
f753846b 226 ("lash" ,lash)))
497e9a82
RW
227 (native-inputs
228 `(("pkg-config" ,pkg-config)))
229 (home-page "http://ll-plugins.nongnu.org/azr3/")
230 (synopsis "Tonewheel organ synthesizer")
231 (description
232 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
233with drawbars, distortion and rotating speakers. The organ has three
234sections, two polyphonic sections with nine drawbars each and one monophonic
235bass section with five drawbars. A standalone JACK application and LV2
236plugins are provided.")
237 (license license:gpl2)))
238
f62a8417
RW
239(define-public calf
240 (package
241 (name "calf")
242 (version "0.0.60")
243 (source (origin
244 (method url-fetch)
245 (uri (string-append
246 "mirror://sourceforge/calf/calf/"
247 version "/calf-" version ".tar.gz"))
248 (sha256
249 (base32
250 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
251 (build-system gnu-build-system)
252 (inputs
253 `(("fluidsynth" ,fluidsynth)
254 ("expat" ,expat)
255 ("glib" ,glib)
256 ("gtk" ,gtk+-2)
257 ("cairo" ,cairo)
258 ("lash" ,lash)
259 ("jack" ,jack-1)
260 ("lv2" ,lv2)
261 ("ladspa" ,ladspa)
262 ("fftw" ,fftw)))
263 (native-inputs
264 `(("pkg-config" ,pkg-config)))
265 (native-search-paths
266 (list (search-path-specification
267 (variable "LV2_PATH")
268 (files '("lib/lv2")))))
269 (home-page "http://calf.sourceforge.net/")
270 (synopsis "Audio plug-in pack for LV2 and JACK environments")
271 (description
272 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
273The suite contains lots of effects (delay, modulation, signal processing,
274filters, equalizers, dynamics, distortion and mastering effects),
275instruments (SF2 player, organ simulator and a monophonic synthesizer) and
276tools (analyzer, mono/stereo tools, crossovers).")
277 ;; calfjackhost is released under GPLv2+
278 ;; The plugins are released under LGPLv2.1+
279 (license (list license:lgpl2.1+ license:gpl2+))))
280
fda85ca6
RW
281(define-public csound
282 (package
283 (name "csound")
284 (version "6.04")
285 (source (origin
286 (method url-fetch)
287 (uri (string-append
288 "mirror://sourceforge/csound/csound6/Csound"
289 version "/Csound" version ".tar.gz"))
290 (sha256
291 (base32
292 "1030w38lxdwjz1irr32m9cl0paqmgr02lab2m7f7j1yihwxj1w0g"))))
293 (build-system cmake-build-system)
294 (inputs
295 `(("alsa-lib" ,alsa-lib)
296 ("boost" ,boost)
297 ("pulseaudio" ,pulseaudio)
298 ("libsndfile" ,libsndfile)
299 ("liblo" ,liblo)
300 ("ladspa" ,ladspa)
301 ("jack" ,jack-1)
302 ("gettext" ,gnu-gettext)))
303 (native-inputs
304 `(("bison" ,bison)
305 ("flex" ,flex)
306 ("zlib" ,zlib)))
307 (home-page "http://csound.github.io/")
308 (synopsis "Sound and music computing system")
309 (description
310 "Csound is a user-programmable and user-extensible sound processing
311language and software synthesizer.")
312 (license license:lgpl2.1+)))
313
631ac903
RW
314(define-public clalsadrv
315 (package
316 (name "clalsadrv")
317 (version "2.0.0")
318 (source (origin
319 (method url-fetch)
320 (uri (string-append
321 "http://kokkinizita.linuxaudio.org"
322 "/linuxaudio/downloads/clalsadrv-"
323 version ".tar.bz2"))
324 (sha256
325 (base32
9de2e43c 326 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
631ac903
RW
327 (build-system gnu-build-system)
328 (arguments
329 `(#:tests? #f ; no "check" target
330 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
331 #:phases
332 (alist-cons-after
9de2e43c
RW
333 'unpack 'patch-makefile-and-enter-directory
334 (lambda _
335 (substitute* "libs/Makefile"
336 (("/sbin/ldconfig") "true")
337 (("^LIBDIR =.*") "LIBDIR = lib\n"))
338 (chdir "libs")
339 #t)
631ac903
RW
340 (alist-cons-after
341 'install
342 'install-symlink
343 (lambda _
344 (symlink "libclalsadrv.so"
345 (string-append (assoc-ref %outputs "out")
346 "/lib/libclalsadrv.so.2")))
347 ;; no configure script
348 (alist-delete 'configure %standard-phases)))))
349 (inputs
350 `(("alsa-lib" ,alsa-lib)
351 ("fftw" ,fftw)))
352 (home-page "http://kokkinizita.linuxaudio.org")
353 (synopsis "C++ wrapper around the ALSA API")
354 (description
355 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
356ALSA PCM devices.")
357 (license license:gpl2+)))
358
e4f43b56
RW
359(define-public fluidsynth
360 (package
361 (name "fluidsynth")
362 (version "1.1.6")
363 (source (origin
364 (method url-fetch)
365 (uri (string-append
366 "mirror://sourceforge/fluidsynth/fluidsynth-"
367 version "/fluidsynth-" version ".tar.gz"))
368 (sha256
369 (base32
370 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
371 (build-system gnu-build-system)
372 (arguments
373 `(#:phases
374 (alist-cons-after
375 'unpack
376 'remove-broken-symlinks
377 (lambda _ (delete-file-recursively "m4") #t)
378 %standard-phases)))
379 (inputs
380 `(("libsndfile" ,libsndfile)
381 ("alsa-lib" ,alsa-lib)
382 ("jack" ,jack-1)
383 ("ladspa" ,ladspa)
384 ("lash" ,lash)
385 ("readline" ,readline)
386 ("glib" ,glib)))
387 (native-inputs
388 `(("pkg-config" ,pkg-config)))
389 (home-page "http://www.fluidsynth.org/")
390 (synopsis "SoundFont synthesizer")
391 (description
392 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
393specifications. FluidSynth reads and handles MIDI events from the MIDI input
394device. It is the software analogue of a MIDI synthesizer. FluidSynth can
395also play midifiles using a Soundfont.")
396 (license license:gpl2+)))
397
70fc29d9
TUBK
398(define-public faad2
399 (package
400 (name "faad2")
401 (version "2.7")
402 (source (origin
403 (method url-fetch)
404 (uri (string-append
405 "mirror://sourceforge/faac/faad2-" version ".zip"))
406 (sha256
407 (base32
408 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
409 (build-system gnu-build-system)
410 (native-inputs
411 `(("autoconf" ,autoconf)
412 ("automake" ,automake)
413 ("libtool" ,libtool)
414 ("unzip" ,unzip)))
415 (arguments
416 '(#:phases
417 (alist-cons-after
418 'unpack 'bootstrap
419 (lambda _
420 (substitute* "bootstrap" (("\r\n") "\n"))
421 (zero? (system* "sh" "bootstrap")))
422 %standard-phases)))
423 (home-page "http://www.audiocoding.com/faad2.html")
424 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
425 (description
426 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
427PS, and DAB+.")
428 (license license:gpl2)))
429
7c92efff
RW
430(define-public freepats
431 (package
432 (name "freepats")
433 (version "20060219")
434 (source (origin
435 (method url-fetch)
436 (uri (string-append "http://freepats.zenvoid.org/freepats-"
437 version ".tar.bz2"))
438 (sha256
439 (base32
440 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
441 (build-system trivial-build-system)
442 (arguments
443 `(#:modules ((guix build utils))
444 #:builder (begin
445 (use-modules (guix build utils))
446 (let ((out (string-append %output "/share/freepats")))
447 (setenv "PATH" (string-append
448 (assoc-ref %build-inputs "bzip2") "/bin:"
449 (assoc-ref %build-inputs "tar") "/bin"))
450 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
451 (chdir "freepats")
452 ;; Use absolute pattern references
453 (substitute* "freepats.cfg"
454 (("Tone_000") (string-append out "/Tone_000"))
455 (("Drum_000") (string-append out "/Drum_000")))
456 (mkdir-p out)
457 (copy-recursively "." out)))))
458 (native-inputs
459 `(("tar" ,tar)
460 ("bzip2" ,bzip2)))
461 (home-page "http://freepats.zenvoid.org")
462 (synopsis "GUS compatible patches for MIDI players")
463 (description
464 "FreePats is a project to create a free and open set of GUS compatible
465patches that can be used with softsynths such as Timidity and WildMidi.")
466 ;; GPLv2+ with exception for compositions using these patches.
467 (license license:gpl2+)))
468
fb68469f
RW
469(define-public jack-1
470 (package
471 (name "jack")
472 (version "0.124.1")
473 (source (origin
474 (method url-fetch)
475 (uri (string-append
476 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
477 version
478 ".tar.gz"))
479 (sha256
480 (base32
481 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
482 (build-system gnu-build-system)
483 (inputs
2f9ae82f
RW
484 `(("alsa-lib" ,alsa-lib)
485 ("bdb" ,bdb)
5d95e30b
RW
486 ("readline" ,readline)))
487 ;; uuid.h is included in the JACK type headers
488 (propagated-inputs
489 `(("libuuid" ,util-linux)))
2f9ae82f
RW
490 (native-inputs
491 `(("pkg-config" ,pkg-config)))
fb68469f
RW
492 (home-page "http://jackaudio.org/")
493 (synopsis "JACK audio connection kit")
494 (description
495 "JACK is a low-latency audio server. It can connect a number of
496different applications to an audio device, as well as allowing them to share
497audio between themselves. JACK is different from other audio server efforts
498in that it has been designed from the ground up to be suitable for
499professional audio work. This means that it focuses on two key areas:
500synchronous execution of all clients, and low latency operation.")
501 ;; Most files are licensed under the GPL. However, the libjack/ tree is
502 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 503 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981
RW
504
505(define-public jack-2
506 (package (inherit jack-1)
314275c7 507 (name "jack2")
c54a8981
RW
508 (version "1.9.10")
509 (source (origin
510 (method url-fetch)
511 (uri (string-append
512 "https://github.com/jackaudio/jack2/archive/v"
513 version
514 ".tar.gz"))
f586c877 515 (file-name (string-append name "-" version ".tar.gz"))
c54a8981
RW
516 (sha256
517 (base32
518 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
519 (build-system waf-build-system)
520 (arguments
521 `(#:tests? #f ; no check target
522 #:configure-flags '("--dbus"
523 "--alsa")))
524 (inputs
525 `(("alsa-lib" ,alsa-lib)
526 ("dbus" ,dbus)
527 ("expat" ,expat)
528 ("libsamplerate" ,libsamplerate)
529 ("opus" ,opus)
530 ("readline" ,readline)))
531 (native-inputs
532 `(("pkg-config" ,pkg-config)))
533 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
534 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 535
2f4646b6
RW
536(define-public jalv
537 (package
538 (name "jalv")
539 (version "1.4.6")
540 (source (origin
541 (method url-fetch)
542 (uri (string-append "http://download.drobilla.net/jalv-"
543 version ".tar.bz2"))
544 (sha256
545 (base32
546 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
547 (build-system waf-build-system)
548 (arguments `(#:tests? #f)) ; no check target
549 (inputs
550 `(("lv2" ,lv2)
551 ("lilv" ,lilv)
552 ("suil" ,suil)
553 ("gtk" ,gtk+-2)
554 ("gtkmm" ,gtkmm-2)
555 ("qt" ,qt-4)
556 ("jack" ,jack-1)))
557 (native-inputs
558 `(("pkg-config" ,pkg-config)))
559 (home-page "http://drobilla.net/software/jalv/")
560 (synopsis "Simple LV2 host for JACK")
561 (description
562 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
563plugins and exposes their ports as JACK ports, essentially making any LV2
564plugin function as a JACK application.")
565 (license license:isc)))
566
2cc7ce31
RW
567(define-public ladspa
568 (package
569 (name "ladspa")
570 (version "1.13")
571 (source (origin
572 (method url-fetch)
573 (uri (string-append
574 "http://www.ladspa.org/download/ladspa_sdk_"
575 version
576 ".tgz"))
577 (sha256
578 (base32
579 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
580 (build-system gnu-build-system)
581 (arguments
582 `(#:tests? #f ; the "test" target is a listening test only
583 #:phases
584 (alist-replace
585 'configure
586 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
587 (chdir "src")
588 (let ((out (assoc-ref outputs "out")))
589 (substitute* "makefile"
590 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
591 (("/usr/include/") (string-append out "/include/"))
592 (("/usr/bin/") (string-append out "/bin/"))
593 (("-mkdirhier") "mkdir -p")
594 (("^CC.*") "CC = gcc\n")
595 (("^CPP.*") "CPP = g++\n"))))
596 (alist-delete 'build %standard-phases))))
597 (home-page "http://ladspa.org")
598 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
599 (description
600 "LADSPA is a standard that allows software audio processors and effects
601to be plugged into a wide range of audio synthesis and recording packages.")
602 (license license:lgpl2.1+)))
603
da49086a
RW
604(define-public lash
605 (package
606 (name "lash")
607 (version "0.6.0-rc2")
608 (source (origin
609 (method url-fetch)
610 ;; The tilde is not permitted in the builder name, but is used
611 ;; in the tarball.
612 (uri (string-append
613 "mirror://savannah/lash/lash-"
614 (string-join (string-split version #\-) "~")
615 ".tar.bz2"))
616 (file-name (string-append name "-" version ".tar.bz2"))
617 (sha256
618 (base32
619 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
620 (build-system gnu-build-system)
621 (inputs
622 `(("bdb" ,bdb)
623 ("gtk" ,gtk+-2)
624 ("jack" ,jack-1)
da49086a
RW
625 ("readline" ,readline)
626 ("python" ,python-2)))
627 ;; According to pkg-config, packages depending on lash also need to have
628 ;; at least the following packages declared as inputs.
629 (propagated-inputs
630 `(("alsa-lib" ,alsa-lib)
631 ("dbus" ,dbus)
632 ("libxml2" ,libxml2)))
633 (native-inputs
634 `(("pkg-config" ,pkg-config)))
635 (home-page "http://www.nongnu.org/lash/")
636 (synopsis "Audio application session manager")
637 (description
638 "LASH is a session management system for audio applications. It allows
639you to save and restore audio sessions consisting of multiple interconneced
640applications, restoring program state (i.e. loaded patches) and the
641connections between them.")
642 (license license:gpl2+)))
643
8c0b5a75
TUBK
644(define-public libbs2b
645 (package
646 (name "libbs2b")
647 (version "3.1.0")
648 (source (origin
649 (method url-fetch)
650 (uri (string-append
651 "mirror://sourceforge/bs2b/libbs2b-" version ".tar.lzma"))
652 (sha256
653 (base32
654 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
655 (build-system gnu-build-system)
656 (native-inputs `(("pkg-config" ,pkg-config)))
657 (inputs `(("libsndfile" ,libsndfile)))
658 (home-page "http://sourceforge.net/projects/bs2b/")
659 (synopsis "Bauer stereophonic-to-binaural DSP")
660 (description
661 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
662designed to improve headphone listening of stereo audio records. Recommended
663for headphone prolonged listening to disable superstereo fatigue without
664essential distortions.")
665 (license license:expat)))
666
f47cba0e
RW
667(define-public liblo
668 (package
669 (name "liblo")
670 (version "0.28")
671 (source (origin
672 (method url-fetch)
673 (uri (string-append
674 "mirror://sourceforge/liblo/liblo-"
675 version
676 ".tar.gz"))
677 (sha256
678 (base32
679 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
680 (build-system gnu-build-system)
681 (arguments
682 `(;; liblo test FAILED
683 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
684 #:tests? #f))
685 (home-page "http://liblo.sourceforge.net")
686 (synopsis "Implementation of the Open Sound Control protocol")
687 (description
688 "liblo is a lightweight library that provides an easy to use
689implementation of the Open Sound Control (OSC) protocol.")
690 (license license:lgpl2.1+)))
e2420191 691
332aad1b
RW
692(define-public lilv
693 (package
694 (name "lilv")
695 (version "0.20.0")
696 (source (origin
697 (method url-fetch)
698 (uri (string-append "http://download.drobilla.net/lilv-"
699 version
700 ".tar.bz2"))
701 (sha256
702 (base32
703 "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
704 (build-system waf-build-system)
705 (arguments `(#:tests? #f)) ; no check target
ff7df27d
RW
706 ;; required by lilv-0.pc
707 (propagated-inputs
708 `(("serd" ,serd)
332aad1b
RW
709 ("sord" ,sord)
710 ("sratom" ,sratom)))
ff7df27d
RW
711 (inputs
712 `(("lv2" ,lv2)))
332aad1b
RW
713 (native-inputs
714 `(("pkg-config" ,pkg-config)))
715 (home-page "http://drobilla.net/software/lilv/")
716 (synopsis "Library to simplify use of LV2 plugins in applications")
717 (description
718 "Lilv is a C library to make the use of LV2 plugins as simple as possible
719for applications. Lilv is the successor to SLV2, rewritten to be
720significantly faster and have minimal dependencies.")
721 (license license:isc)))
722
e2420191
RW
723(define-public lv2
724 (package
725 (name "lv2")
726 (version "1.10.0")
727 (source (origin
728 (method url-fetch)
729 (uri (string-append "http://lv2plug.in/spec/lv2-"
730 version
731 ".tar.bz2"))
732 (sha256
733 (base32
734 "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"))))
735 (build-system waf-build-system)
736 (arguments
737 `(#:tests? #f ; no check target
738 #:configure-flags '("--lv2-system")))
739 (inputs
740 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
741 `(("libsndfile" ,libsndfile)))
742 (native-inputs
743 `(("pkg-config" ,pkg-config)))
744 (home-page "http://lv2plug.in/")
745 (synopsis "LV2 audio plugin specification")
746 (description
747 "LV2 is an open specification for audio plugins and host applications.
748At its core, LV2 is a simple stable interface, accompanied by extensions which
749add functionality to support the needs of increasingly powerful audio
750software.")
751 (license license:isc)))
5279eb6f 752
98247127
RW
753(define-public lv2-mda-piano
754 (package
755 (name "lv2-mda-piano")
756 (version "0.0.2")
757 (source (origin
758 (method git-fetch)
759 (uri (git-reference
f6f499b3 760 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
98247127
RW
761 (commit version)))
762 (sha256
763 (base32
764 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
765 (build-system gnu-build-system)
766 (arguments
767 `(#:make-flags (list
768 "TYPE=mdaPiano"
769 (string-append "PREFIX=" (assoc-ref %outputs "out")))
770 #:tests? #f ; no check target
771 #:phases (alist-delete 'configure %standard-phases)))
772 (inputs
773 `(("lv2" ,lv2)
774 ("lvtk" ,lvtk)))
775 (native-inputs
776 `(("pkg-config" ,pkg-config)))
777 (native-search-paths
778 (list (search-path-specification
779 (variable "LV2_PATH")
780 (files '("lib/lv2")))))
781 (home-page "http://elephly.net/lv2/mdapiano.html")
782 (synopsis "LV2 port of the mda Piano plugin")
783 (description "An LV2 port of the mda Piano VSTi.")
784 (license license:gpl3+)))
785
8fb79e3d
RW
786(define-public lv2-mda-epiano
787 (package (inherit lv2-mda-piano)
788 (name "lv2-mda-epiano")
789 (arguments
790 `(#:make-flags (list
791 "TYPE=mdaEPiano"
792 (string-append "PREFIX=" (assoc-ref %outputs "out")))
793 #:tests? #f ; no check target
794 #:phases (alist-delete 'configure %standard-phases)))
795 (home-page "http://elephly.net/lv2/mdaepiano.html")
796 (synopsis "LV2 port of the mda EPiano plugin")
797 (description "An LV2 port of the mda EPiano VSTi.")))
798
c1718190
RW
799(define-public lvtk
800 (package
801 (name "lvtk")
802 (version "1.2.0")
803 (source (origin
804 (method url-fetch)
805 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
806 version
807 ".tar.gz"))
f586c877 808 (file-name (string-append name "-" version ".tar.gz"))
c1718190
RW
809 (sha256
810 (base32
811 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
812 (build-system waf-build-system)
813 (arguments
814 `(#:tests? #f ; no check target
815 #:python ,python-2
816 #:configure-flags
817 (list (string-append "--boost-includes="
818 (assoc-ref %build-inputs "boost")
819 "/include"))))
820 (inputs
821 `(("boost" ,boost)
822 ("lv2" ,lv2)))
823 (native-inputs
824 `(("pkg-config" ,pkg-config)))
825 (home-page "https://github.com/lvtk/lvtk")
826 (synopsis "C++ libraries for LV2 plugins")
827 (description
828 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
829extensions into easy to use C++ classes. It is the successor of
830lv2-c++-tools.")
831 (license license:gpl3+)))
832
f2fac359
TUBK
833(define-public openal
834 (package
835 (name "openal")
836 (version "1.15.1")
837 (source (origin
838 (method url-fetch)
839 (uri (string-append
840 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
841 version ".tar.bz2"))
842 (sha256
843 (base32
844 "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
845 (build-system cmake-build-system)
846 (arguments
847 `(#:tests? #f)) ; no check target
848 (inputs
849 `(("alsa-lib" ,alsa-lib)
850 ("pulseaudio" ,pulseaudio)))
851 (synopsis "3D audio API")
852 (description
853 "OpenAL provides capabilities for playing audio in a virtual 3D
854environment. Distance attenuation, doppler shift, and directional sound
855emitters are among the features handled by the API. More advanced effects,
856including air absorption, occlusion, and environmental reverb, are available
857through the EFX extension. It also facilitates streaming audio, multi-channel
858buffers, and audio capture.")
859 (home-page "http://kcat.strangesoft.net/openal.html")
860 (license license:lgpl2.0+)))
861
4443bb8d
RW
862(define-public patchage
863 (package
864 (name "patchage")
865 (version "1.0.0")
866 (source (origin
867 (method url-fetch)
868 (uri (string-append "http://download.drobilla.net/patchage-"
869 version
870 ".tar.bz2"))
871 (sha256
872 (base32
873 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
874 (build-system waf-build-system)
875 (arguments `(#:tests? #f)) ; no check target
876 (inputs
877 `(("alsa-lib" ,alsa-lib)
878 ("boost" ,boost)
879 ("jack" ,jack-1)
4443bb8d
RW
880 ("ganv" ,ganv)
881 ("glib" ,glib)
882 ("glibmm" ,glibmm)
883 ("gtkmm" ,gtkmm-2)
884 ("dbus" ,dbus)
885 ("dbus-glib" ,dbus-glib)))
886 (native-inputs
887 `(("pkg-config" ,pkg-config)))
888 (home-page "http://drobilla.net/software/patchage/")
889 (synopsis "Modular patch bay for audio and MIDI systems")
890 (description
891 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
892and ALSA.")
893 (license license:gpl3+)))
894
57238ff2
RW
895(define-public rubberband
896 (package
897 (name "rubberband")
898 (version "1.8.1")
899 (source (origin
900 (method url-fetch)
901 (uri
902 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
903 version
904 ".tar.bz2"))
905 (sha256
906 (base32
907 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
908 (build-system gnu-build-system)
909 (arguments `(#:tests? #f)) ; no check target
910 (inputs
911 `(("ladspa" ,ladspa)
912 ("libsamplerate" ,libsamplerate)
913 ("vamp" ,vamp)))
914 (native-inputs
915 `(("pkg-config" ,pkg-config)))
916 (home-page "http://breakfastquay.com/rubberband/")
917 (synopsis "Audio time-stretching and pitch-shifting library")
918 (description
919 "Rubber Band is a library and utility program that permits changing the
920tempo and pitch of an audio recording independently of one another.")
921 (license license:gpl2+)))
922
5279eb6f
RW
923(define-public sratom
924 (package
925 (name "sratom")
926 (version "0.4.6")
927 (source (origin
928 (method url-fetch)
929 (uri (string-append "http://download.drobilla.net/sratom-"
930 version
931 ".tar.bz2"))
932 (sha256
933 (base32
934 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
935 (build-system waf-build-system)
936 (arguments `(#:tests? #f)) ; no check target
937 (inputs
938 `(("lv2" ,lv2)
939 ("serd" ,serd)
940 ("sord" ,sord)))
941 (native-inputs
942 `(("pkg-config" ,pkg-config)))
943 (home-page "http://drobilla.net/software/sratom/")
944 (synopsis "Library for serialising LV2 atoms to/from RDF")
945 (description
946 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
947the Turtle syntax.")
948 (license license:isc)))
f3ab6ad3
RW
949
950(define-public suil
951 (package
952 (name "suil")
953 (version "0.8.2")
954 (source (origin
955 (method url-fetch)
956 (uri (string-append "http://download.drobilla.net/suil-"
957 version
958 ".tar.bz2"))
959 (sha256
960 (base32
961 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
962 (build-system waf-build-system)
963 (arguments `(#:tests? #f)) ; no check target
964 (inputs
965 `(("lv2" ,lv2)
966 ("gtk+-2" ,gtk+-2)
967 ("qt-4" ,qt-4)))
968 (native-inputs
969 `(("pkg-config" ,pkg-config)))
970 (home-page "http://drobilla.net/software/suil/")
971 (synopsis "Library for loading and wrapping LV2 plugin UIs")
972 (description
973 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
974
975Suil makes it possible to load a UI of a toolkit in a host using another
976toolkit. The API is designed such that hosts do not need to explicitly
977support specific toolkits – if Suil supports a particular toolkit, then UIs in
978that toolkit will work in all hosts that use Suil automatically.
979
980Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
981 (license license:isc)))
db46f2fc 982
9ffee457
RW
983(define-public timidity++
984 (package
985 (name "timidity++")
986 (version "2.14.0")
987 (source (origin
988 (method url-fetch)
989 (uri (string-append
990 "mirror://sourceforge/timidity/TiMidity++-"
991 version ".tar.bz2"))
992 (sha256
993 (base32
994 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
995 (build-system gnu-build-system)
996 (arguments
997 '(#:configure-flags
998 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
999 "--enable-ncurses"
1000 "--enable-server"
1001 "--enable-alsaseq"
1002 (string-append "--with-default-path="
1003 (assoc-ref %outputs "out") "/etc/timidity"))
1004 #:phases
1005 (alist-cons-after
1006 'install 'install-config
1007 (lambda _
1008 (let ((out (string-append (assoc-ref %outputs "out")
1009 "/etc/timidity")))
1010 (mkdir-p out)
1011 (call-with-output-file
1012 (string-append out "/timidity.cfg")
1013 (lambda (port)
1014 (format port (string-append "source "
1015 (assoc-ref %build-inputs "freepats")
1016 "/share/freepats/freepats.cfg"))))))
1017 %standard-phases)))
1018 (inputs
1019 `(("alsa-lib" ,alsa-lib)
1020 ("ao" ,ao)
1021 ("flac" ,flac)
1022 ("jack" ,jack-1)
1023 ("libogg" ,libogg)
1024 ("speex" ,speex)
1025 ("ncurses" ,ncurses)
1026 ("freepats" ,freepats)))
1027 (native-inputs
1028 `(("pkg-config" ,pkg-config)))
1029 (home-page "http://timidity.sourceforge.net/")
1030 (synopsis "Software synthesizer for playing MIDI files")
1031 (description
1032 "TiMidity++ is a software synthesizer. It can play MIDI files by
1033converting them into PCM waveform data; give it a MIDI data along with digital
1034instrument data files, then it synthesizes them in real-time, and plays. It
1035can not only play sounds, but also can save the generated waveforms into hard
1036disks as various audio file formats.")
1037 (license license:gpl2+)))
1038
db46f2fc
RW
1039(define-public vamp
1040 (package
1041 (name "vamp")
1042 (version "2.5")
1043 (source (origin
1044 (method url-fetch)
1045 (uri (string-append
1046 "https://code.soundsoftware.ac.uk"
1047 "/attachments/download/690/vamp-plugin-sdk-"
1048 version
1049 ".tar.gz"))
9002e17c
TUBK
1050 (sha256
1051 (base32
1052 "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
db46f2fc 1053 (build-system gnu-build-system)
9002e17c
TUBK
1054 (arguments
1055 `(#:tests? #f ; no check target
1056 #:phases
1057 (alist-cons-after
1058 'install 'remove-libvamp-hostsdk.la
1059 (lambda* (#:key outputs #:allow-other-keys)
1060 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
1061 (for-each delete-file
1062 (let ((out (assoc-ref outputs "out")))
1063 (list (string-append out "/lib/libvamp-sdk.la")
1064 (string-append out "/lib/libvamp-hostsdk.la"))))
1065 #t)
1066 %standard-phases)))
db46f2fc
RW
1067 (inputs
1068 `(("libsndfile" ,libsndfile)))
1069 (native-inputs
1070 `(("pkg-config" ,pkg-config)))
1071 (home-page "http://vamp-plugins.org")
1072 (synopsis "Modular and extensible audio processing system")
1073 (description
1074 "Vamp is an audio processing plugin system for plugins that extract
1075descriptive information from audio data — typically referred to as audio
1076analysis plugins or audio feature extraction plugins.")
1077 (license
1078 (license:x11-style
1079 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
1080
1081(define-public libsbsms
1082 (package
1083 (name "libsbsms")
1084 (version "2.0.2")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
1089 "/libsbsms-" version ".tar.gz"))
1090 (sha256
1091 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
1092 (build-system gnu-build-system)
1093 (native-inputs `(("automake" ,automake)))
1094 (arguments
1095 `(#:phases
1096 (alist-cons-after
1097 'unpack 'fix-ar-lib-path
1098 (lambda* (#:key inputs #:allow-other-keys)
1099 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
1100 (delete-file "ar-lib")
1101 (symlink
1102 (string-append (assoc-ref inputs "automake") "/share/automake-"
1103 ,(package-version automake) "/ar-lib")
1104 "ar-lib"))
1105 %standard-phases)))
1106 (home-page "http://sbsms.sourceforge.net/")
1107 (synopsis "Library for time stretching and pitch scaling of audio")
1108 (description
1109 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
1110stretching and pitch scaling of audio. This package contains the library.")
1111 ;; There is no explicit declaration of a license, but a COPYING file
1112 ;; containing gpl2.
1113 (license license:gpl2)))
754a98ae 1114
01b90919
SB
1115(define-public wavpack
1116 (package
1117 (name "wavpack")
1118 (version "4.70.0")
1119 (source (origin
1120 (method url-fetch)
1121 (uri (string-append "http://www.wavpack.com/"
1122 name "-" version ".tar.bz2"))
1123 (sha256
1124 (base32
1125 "191h8hv8qk72hfh1crg429i9yq3cminwqb249sy9zadbn1wy7b9c"))))
1126 (build-system gnu-build-system)
60950faa
SB
1127 (arguments
1128 `(#:configure-flags
1129 ;; wavpack.pc.in lacks path substitution for 'exec_prefix'.
1130 (list (string-append "--libdir=" %output "/lib"))))
01b90919
SB
1131 (home-page "http://www.wavpack.com/")
1132 (synopsis "Hybrid lossless audio codec")
1133 (description
1134 "WavPack is an audio compression format with lossless, lossy and hybrid
1135compression modes. This package contains command-line programs and library to
1136encode and decode wavpack files.")
1137 (license license:bsd-3)))
1138
754a98ae
TUBK
1139(define-public soundtouch
1140 (package
1141 (name "soundtouch")
1142 (version "1.8.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri
1147 (string-append
1148 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
1149 (sha256
1150 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
1151 (build-system gnu-build-system)
1152 (native-inputs
1153 `(("autoconf" ,autoconf)
1154 ("automake" ,automake)
1155 ("libtool" ,libtool)
1156 ("file" ,file)))
1157 (arguments
1158 '(#:phases
722ec722
MW
1159 (alist-cons-after
1160 'unpack 'bootstrap
754a98ae 1161 (lambda _
722ec722 1162 (zero? (system* "sh" "bootstrap")))
754a98ae
TUBK
1163 %standard-phases)))
1164 (home-page "http://www.surina.net/soundtouch/")
1165 (synopsis
1166 "Audio processing library for changing tempo, pitch and playback rate")
1167 (description
1168 "SoundTouch is an audio processing library for changing the tempo, pitch
1169and playback rates of audio streams or audio files. It is intended for
1170application developers writing sound processing tools that require tempo/pitch
1171control functionality, or just for playing around with the sound effects.")
1172 (license license:lgpl2.1+)))
4bddd14c
TUBK
1173
1174(define-public soxr
1175 (package
1176 (name "soxr")
1177 (version "0.1.1")
1178 (source
1179 (origin
1180 (method url-fetch)
1181 (uri
1182 (string-append "mirror://sourceforge/soxr/soxr-" version
1183 "-Source.tar.xz"))
1184 (sha256
1185 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
1186 (build-system cmake-build-system)
1187 (arguments '(#:tests? #f)) ;no 'check' target
1188 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
1189 (synopsis "One-dimensional sample-rate conversion library")
1190 (description
1191 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
1192conversion. It may be used, for example, to resample PCM-encoded audio.")
1193 (license license:lgpl2.1+)))
49f36708
TUBK
1194
1195(define-public twolame
1196 (package
1197 (name "twolame")
1198 (version "0.3.13")
1199 (source
1200 (origin
1201 (method url-fetch)
1202 (uri (string-append
1203 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
1204 (sha256
1205 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
1206 (build-system gnu-build-system)
1207 (inputs
1208 `(("libsndfile" ,libsndfile)))
1209 (native-inputs
1210 `(("perl" ,perl)
1211 ("which" ,which))) ;used in tests/test.pl
1212 (home-page "http://www.twolame.org/")
1213 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
1214 (description
1215 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
1216tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
1217portions of LAME.")
1218 (license license:lgpl2.1+)))
bd4464f2
TUBK
1219
1220(define-public portaudio
1221 (package
1222 (name "portaudio")
1223 (version "19.20140130")
1224 (source
1225 (origin
1226 (method url-fetch)
1227 (uri (string-append
1228 "http://www.portaudio.com/archives/pa_stable_v"
1229 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
1230 ".tgz"))
1231 (sha256
b47be021
TUBK
1232 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
1233 (patches (list (search-patch "portaudio-audacity-compat.patch")))))
bd4464f2
TUBK
1234 (build-system gnu-build-system)
1235 (inputs
1236 ;; TODO: Add ASIHPI.
1237 `(("alsa-lib" ,alsa-lib)
1238 ("jack" ,jack-2)))
1239 (native-inputs
b47be021
TUBK
1240 `(("autoconf" ,autoconf)
1241 ("automake" ,automake)
1242 ("libtool" ,libtool)
1243 ("pkg-config" ,pkg-config)))
1244 (arguments
1245 '(#:phases
1246 ;; Autoreconf is necessary because the audacity-compat patch modifies
1247 ;; .in files.
1248 (alist-cons-after
1249 'unpack 'autoreconf
1250 (lambda _
1251 (zero? (system* "autoreconf" "-vif")))
1252 %standard-phases)
1253 #:tests? #f)) ;no 'check' target
bd4464f2
TUBK
1254 (home-page "http://www.portaudio.com/")
1255 (synopsis "Audio I/O library")
1256 (description
1257 "PortAudio is a portable C/C++ audio I/O library providing a simple API
1258to record and/or play sound using a callback function or a blocking read/write
1259interface.")
1260 (license license:expat)))
74bbf894 1261
55b596c3
TUBK
1262(define-public rsound
1263 (package
1264 (name "rsound")
1265 (version "1.1")
1266 (source
1267 (origin
1268 (method url-fetch)
1269 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
1270 version ".tar.gz"))
1271 (sha256
1272 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
1273 (build-system gnu-build-system)
1274 (inputs
1275 `(("alsa-lib" ,alsa-lib)
1276 ("jack" ,jack-2)
1277 ("ao" ,ao)
1278 ("libsamplerate" ,libsamplerate)
1279 ("openal" ,openal)
1280 ("portaudio" ,portaudio)
1281 ("pulseaudio" ,pulseaudio)))
1282 (arguments
1283 '(#:phases
1284 (alist-replace
1285 'configure
1286 (lambda* (#:key outputs #:allow-other-keys)
1287 (setenv "CC" "gcc")
1288 (zero?
1289 (system* "./configure"
1290 (string-append "--prefix=" (assoc-ref outputs "out")))))
1291 %standard-phases)
1292 ;; No 'check' target.
1293 #:tests? #f))
1294 (home-page "http://themaister.net/rsound.html")
1295 (synopsis "Networked audio system")
1296 (description
1297 "RSound allows you to send audio from an application and transfer it
1298directly to a different computer on your LAN network. It is an audio daemon
1299with a much different focus than most other audio daemons.")
1300 (license license:gpl3+)))
1301
74bbf894
RW
1302(define-public zita-alsa-pcmi
1303 (package
1304 (name "zita-alsa-pcmi")
1305 (version "0.2.0")
1306 (source (origin
1307 (method url-fetch)
1308 (uri (string-append
1309 "http://kokkinizita.linuxaudio.org"
1310 "/linuxaudio/downloads/zita-alsa-pcmi-"
1311 version ".tar.bz2"))
1312 (sha256
1313 (base32
9569dfc8 1314 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
1315 (build-system gnu-build-system)
1316 (arguments
1317 `(#:tests? #f ; no "check" target
1318 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1319 #:phases
1320 (alist-cons-after
9569dfc8
RW
1321 'unpack 'patch-makefile-and-enter-directory
1322 (lambda _
1323 (substitute* "libs/Makefile"
1324 (("ldconfig") "true")
1325 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1326 (chdir "libs")
1327 #t)
74bbf894
RW
1328 (alist-cons-after
1329 'install
1330 'install-symlink
1331 (lambda _
1332 (symlink "libzita-alsa-pcmi.so"
1333 (string-append (assoc-ref %outputs "out")
1334 "/lib/libzita-alsa-pcmi.so.0")))
1335 ;; no configure script
1336 (alist-delete 'configure %standard-phases)))))
1337 (inputs
1338 `(("alsa-lib" ,alsa-lib)
1339 ("fftw" ,fftw)))
1340 (home-page "http://kokkinizita.linuxaudio.org")
1341 (synopsis "C++ wrapper around the ALSA API")
1342 (description
1343 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
1344access to ALSA PCM devices, taking care of the many functions required to
1345open, initialise and use a hw: device in mmap mode, and providing floating
1346point audio data.")
1347 (license license:gpl3+)))