utils: Treat 'configure' and Makefiles with an 8-bit encoding.
[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
RW
33 #:use-module (gnu packages base)
34 #:use-module (gnu packages compression)
88efb2c3 35 #:use-module (gnu packages curl)
fb68469f 36 #:use-module (gnu packages databases)
754a98ae 37 #:use-module (gnu packages file)
88efb2c3 38 #:use-module (gnu packages glib)
f3ab6ad3 39 #:use-module (gnu packages gtk)
88efb2c3 40 #:use-module (gnu packages gnome)
9ffee457 41 #:use-module (gnu packages ncurses)
f3ab6ad3 42 #:use-module (gnu packages qt)
c54a8981 43 #:use-module (gnu packages linux)
88efb2c3
RW
44 #:use-module (gnu packages mp3) ;taglib
45 #:use-module (gnu packages perl)
c54a8981
RW
46 #:use-module (gnu packages pkg-config)
47 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
d55f912a 48 #:use-module (gnu packages python)
5279eb6f 49 #:use-module (gnu packages rdf)
c54a8981 50 #:use-module (gnu packages readline)
49f36708 51 #:use-module (gnu packages which)
c54a8981 52 #:use-module (gnu packages xiph)
da49086a
RW
53 #:use-module (gnu packages xml)
54 #:use-module (srfi srfi-1))
fb68469f 55
d55f912a
RW
56(define-public aubio
57 (package
58 (name "aubio")
59 (version "0.4.1")
60 (source (origin
61 (method url-fetch)
62 (uri (string-append
63 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
64 (sha256
65 (base32
66 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
67 (build-system waf-build-system)
68 (arguments
69 `(#:tests? #f ; no check target
70 #:configure-flags
71 '("--enable-fftw3f"
72 "--enable-jack"
73 "--enable-sndfile"
74 "--enable-samplerate"
75 ;; enable compilation with avcodec once available
76 "--disable-avcodec")
77 #:python ,python-2))
78 (inputs
79 `(("jack" ,jack-1)
d55f912a
RW
80 ("libsndfile" ,libsndfile)
81 ("libsamplerate" ,libsamplerate)
82 ("fftwf" ,fftwf)))
83 (native-inputs
84 `(("pkg-config" ,pkg-config)))
85 (home-page "http://aubio.org/")
86 (synopsis "A library for audio labelling")
87 (description
88 "aubio is a tool designed for the extraction of annotations from audio
89signals. Its features include segmenting a sound file before each of its
90attacks, performing pitch detection, tapping the beat and producing MIDI
91streams from live audio.")
92 (license license:gpl3+)))
93
88efb2c3
RW
94(define-public ardour
95 (package
96 (name "ardour")
97 (version "3.5.403")
98 (source (origin
99 ;; The project only provides tarballs upon individual request
100 ;; (or after payment) so we take the code from git.
101 (method git-fetch)
102 (uri (git-reference
103 (url "git://git.ardour.org/ardour/ardour.git")
104 (commit version)))
105 (snippet
106 '(call-with-output-file
107 "libs/ardour/revision.cc"
108 (lambda (port)
109 (format port "#include \"ardour/revision.h\"
110namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
111 (sha256
112 (base32
113 "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
114 (file-name (string-append name "-" version))))
115 (build-system waf-build-system)
116 (arguments
117 `(#:tests? #f ; no check target
118 #:python ,python-2))
119 (inputs
120 `(("alsa-lib" ,alsa-lib)
121 ("aubio" ,aubio)
122 ("lrdf" ,lrdf)
123 ("boost" ,boost)
124 ("atkmm" ,atkmm)
125 ("cairomm" ,cairomm)
126 ("gtkmm" ,gtkmm-2)
127 ("glibmm" ,glibmm)
128 ("libart-lgpl" ,libart-lgpl)
129 ("libgnomecanvasmm" ,libgnomecanvasmm)
130 ("pangomm" ,pangomm)
131 ("liblo" ,liblo)
132 ("libsndfile" ,libsndfile)
133 ("libsamplerate" ,libsamplerate)
134 ("libxml2" ,libxml2)
135 ("libogg" ,libogg)
136 ("libvorbis" ,libvorbis)
137 ("flac" ,flac)
138 ("lv2" ,lv2)
139 ("vamp" ,vamp)
140 ("curl" ,curl)
88efb2c3
RW
141 ("fftw" ,fftw)
142 ("fftwf" ,fftwf)
143 ("jack" ,jack-1)
144 ("serd" ,serd)
145 ("sord" ,sord)
146 ("sratom" ,sratom)
147 ("suil" ,suil)
148 ("lilv" ,lilv)
149 ("rasqal" ,rasqal)
150 ("raptor2" ,raptor2)
151 ("redland" ,redland)
152 ("rubberband" ,rubberband)
153 ("taglib" ,taglib)
154 ("python-rdflib" ,python-rdflib)))
155 (native-inputs
156 `(("perl" ,perl)
157 ("pkg-config" ,pkg-config)))
158 (home-page "http://ardour.org")
159 (synopsis "Digital audio workstation")
160 (description
161 "Ardour is a multi-channel digital audio workstation, allowing users to
162record, edit, mix and master audio and MIDI projects. It is targeted at audio
163engineers, musicians, soundtrack editors and composers.")
164 (license license:gpl2+)))
165
497e9a82
RW
166(define-public azr3
167 (package
168 (name "azr3")
169 (version "1.2.3")
170 (source (origin
171 (method url-fetch)
172 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
173 version
174 ".tar.bz2"))
175 (sha256
176 (base32
177 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
178 (build-system gnu-build-system)
179 (arguments
180 `(#:tests? #f ; no check target
181 #:make-flags
182 (list "LV2PEG=ttl2c"
183 (string-append "prefix=" %output)
184 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
185 (inputs
186 `(("gtkmm" ,gtkmm-2)
187 ("lvtk" ,lvtk)
188 ("jack" ,jack-1)
f753846b 189 ("lash" ,lash)))
497e9a82
RW
190 (native-inputs
191 `(("pkg-config" ,pkg-config)))
192 (home-page "http://ll-plugins.nongnu.org/azr3/")
193 (synopsis "Tonewheel organ synthesizer")
194 (description
195 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
196with drawbars, distortion and rotating speakers. The organ has three
197sections, two polyphonic sections with nine drawbars each and one monophonic
198bass section with five drawbars. A standalone JACK application and LV2
199plugins are provided.")
200 (license license:gpl2)))
201
7c92efff
RW
202(define-public freepats
203 (package
204 (name "freepats")
205 (version "20060219")
206 (source (origin
207 (method url-fetch)
208 (uri (string-append "http://freepats.zenvoid.org/freepats-"
209 version ".tar.bz2"))
210 (sha256
211 (base32
212 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
213 (build-system trivial-build-system)
214 (arguments
215 `(#:modules ((guix build utils))
216 #:builder (begin
217 (use-modules (guix build utils))
218 (let ((out (string-append %output "/share/freepats")))
219 (setenv "PATH" (string-append
220 (assoc-ref %build-inputs "bzip2") "/bin:"
221 (assoc-ref %build-inputs "tar") "/bin"))
222 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
223 (chdir "freepats")
224 ;; Use absolute pattern references
225 (substitute* "freepats.cfg"
226 (("Tone_000") (string-append out "/Tone_000"))
227 (("Drum_000") (string-append out "/Drum_000")))
228 (mkdir-p out)
229 (copy-recursively "." out)))))
230 (native-inputs
231 `(("tar" ,tar)
232 ("bzip2" ,bzip2)))
233 (home-page "http://freepats.zenvoid.org")
234 (synopsis "GUS compatible patches for MIDI players")
235 (description
236 "FreePats is a project to create a free and open set of GUS compatible
237patches that can be used with softsynths such as Timidity and WildMidi.")
238 ;; GPLv2+ with exception for compositions using these patches.
239 (license license:gpl2+)))
240
fb68469f
RW
241(define-public jack-1
242 (package
243 (name "jack")
244 (version "0.124.1")
245 (source (origin
246 (method url-fetch)
247 (uri (string-append
248 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
249 version
250 ".tar.gz"))
251 (sha256
252 (base32
253 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
254 (build-system gnu-build-system)
255 (inputs
2f9ae82f
RW
256 `(("alsa-lib" ,alsa-lib)
257 ("bdb" ,bdb)
5d95e30b
RW
258 ("readline" ,readline)))
259 ;; uuid.h is included in the JACK type headers
260 (propagated-inputs
261 `(("libuuid" ,util-linux)))
2f9ae82f
RW
262 (native-inputs
263 `(("pkg-config" ,pkg-config)))
fb68469f
RW
264 (home-page "http://jackaudio.org/")
265 (synopsis "JACK audio connection kit")
266 (description
267 "JACK is a low-latency audio server. It can connect a number of
268different applications to an audio device, as well as allowing them to share
269audio between themselves. JACK is different from other audio server efforts
270in that it has been designed from the ground up to be suitable for
271professional audio work. This means that it focuses on two key areas:
272synchronous execution of all clients, and low latency operation.")
273 ;; Most files are licensed under the GPL. However, the libjack/ tree is
274 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 275 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981
RW
276
277(define-public jack-2
278 (package (inherit jack-1)
314275c7 279 (name "jack2")
c54a8981
RW
280 (version "1.9.10")
281 (source (origin
282 (method url-fetch)
283 (uri (string-append
284 "https://github.com/jackaudio/jack2/archive/v"
285 version
286 ".tar.gz"))
287 (sha256
288 (base32
289 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
290 (build-system waf-build-system)
291 (arguments
292 `(#:tests? #f ; no check target
293 #:configure-flags '("--dbus"
294 "--alsa")))
295 (inputs
296 `(("alsa-lib" ,alsa-lib)
297 ("dbus" ,dbus)
298 ("expat" ,expat)
299 ("libsamplerate" ,libsamplerate)
300 ("opus" ,opus)
301 ("readline" ,readline)))
302 (native-inputs
303 `(("pkg-config" ,pkg-config)))
304 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
305 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 306
2f4646b6
RW
307(define-public jalv
308 (package
309 (name "jalv")
310 (version "1.4.6")
311 (source (origin
312 (method url-fetch)
313 (uri (string-append "http://download.drobilla.net/jalv-"
314 version ".tar.bz2"))
315 (sha256
316 (base32
317 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
318 (build-system waf-build-system)
319 (arguments `(#:tests? #f)) ; no check target
320 (inputs
321 `(("lv2" ,lv2)
322 ("lilv" ,lilv)
323 ("suil" ,suil)
324 ("gtk" ,gtk+-2)
325 ("gtkmm" ,gtkmm-2)
326 ("qt" ,qt-4)
327 ("jack" ,jack-1)))
328 (native-inputs
329 `(("pkg-config" ,pkg-config)))
330 (home-page "http://drobilla.net/software/jalv/")
331 (synopsis "Simple LV2 host for JACK")
332 (description
333 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
334plugins and exposes their ports as JACK ports, essentially making any LV2
335plugin function as a JACK application.")
336 (license license:isc)))
337
2cc7ce31
RW
338(define-public ladspa
339 (package
340 (name "ladspa")
341 (version "1.13")
342 (source (origin
343 (method url-fetch)
344 (uri (string-append
345 "http://www.ladspa.org/download/ladspa_sdk_"
346 version
347 ".tgz"))
348 (sha256
349 (base32
350 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
351 (build-system gnu-build-system)
352 (arguments
353 `(#:tests? #f ; the "test" target is a listening test only
354 #:phases
355 (alist-replace
356 'configure
357 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
358 (chdir "src")
359 (let ((out (assoc-ref outputs "out")))
360 (substitute* "makefile"
361 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
362 (("/usr/include/") (string-append out "/include/"))
363 (("/usr/bin/") (string-append out "/bin/"))
364 (("-mkdirhier") "mkdir -p")
365 (("^CC.*") "CC = gcc\n")
366 (("^CPP.*") "CPP = g++\n"))))
367 (alist-delete 'build %standard-phases))))
368 (home-page "http://ladspa.org")
369 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
370 (description
371 "LADSPA is a standard that allows software audio processors and effects
372to be plugged into a wide range of audio synthesis and recording packages.")
373 (license license:lgpl2.1+)))
374
da49086a
RW
375(define-public lash
376 (package
377 (name "lash")
378 (version "0.6.0-rc2")
379 (source (origin
380 (method url-fetch)
381 ;; The tilde is not permitted in the builder name, but is used
382 ;; in the tarball.
383 (uri (string-append
384 "mirror://savannah/lash/lash-"
385 (string-join (string-split version #\-) "~")
386 ".tar.bz2"))
387 (file-name (string-append name "-" version ".tar.bz2"))
388 (sha256
389 (base32
390 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
391 (build-system gnu-build-system)
392 (inputs
393 `(("bdb" ,bdb)
394 ("gtk" ,gtk+-2)
395 ("jack" ,jack-1)
da49086a
RW
396 ("readline" ,readline)
397 ("python" ,python-2)))
398 ;; According to pkg-config, packages depending on lash also need to have
399 ;; at least the following packages declared as inputs.
400 (propagated-inputs
401 `(("alsa-lib" ,alsa-lib)
402 ("dbus" ,dbus)
403 ("libxml2" ,libxml2)))
404 (native-inputs
405 `(("pkg-config" ,pkg-config)))
406 (home-page "http://www.nongnu.org/lash/")
407 (synopsis "Audio application session manager")
408 (description
409 "LASH is a session management system for audio applications. It allows
410you to save and restore audio sessions consisting of multiple interconneced
411applications, restoring program state (i.e. loaded patches) and the
412connections between them.")
413 (license license:gpl2+)))
414
f47cba0e
RW
415(define-public liblo
416 (package
417 (name "liblo")
418 (version "0.28")
419 (source (origin
420 (method url-fetch)
421 (uri (string-append
422 "mirror://sourceforge/liblo/liblo-"
423 version
424 ".tar.gz"))
425 (sha256
426 (base32
427 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
428 (build-system gnu-build-system)
429 (arguments
430 `(;; liblo test FAILED
431 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
432 #:tests? #f))
433 (home-page "http://liblo.sourceforge.net")
434 (synopsis "Implementation of the Open Sound Control protocol")
435 (description
436 "liblo is a lightweight library that provides an easy to use
437implementation of the Open Sound Control (OSC) protocol.")
438 (license license:lgpl2.1+)))
e2420191 439
332aad1b
RW
440(define-public lilv
441 (package
442 (name "lilv")
443 (version "0.20.0")
444 (source (origin
445 (method url-fetch)
446 (uri (string-append "http://download.drobilla.net/lilv-"
447 version
448 ".tar.bz2"))
449 (sha256
450 (base32
451 "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
452 (build-system waf-build-system)
453 (arguments `(#:tests? #f)) ; no check target
ff7df27d
RW
454 ;; required by lilv-0.pc
455 (propagated-inputs
456 `(("serd" ,serd)
332aad1b
RW
457 ("sord" ,sord)
458 ("sratom" ,sratom)))
ff7df27d
RW
459 (inputs
460 `(("lv2" ,lv2)))
332aad1b
RW
461 (native-inputs
462 `(("pkg-config" ,pkg-config)))
463 (home-page "http://drobilla.net/software/lilv/")
464 (synopsis "Library to simplify use of LV2 plugins in applications")
465 (description
466 "Lilv is a C library to make the use of LV2 plugins as simple as possible
467for applications. Lilv is the successor to SLV2, rewritten to be
468significantly faster and have minimal dependencies.")
469 (license license:isc)))
470
e2420191
RW
471(define-public lv2
472 (package
473 (name "lv2")
474 (version "1.10.0")
475 (source (origin
476 (method url-fetch)
477 (uri (string-append "http://lv2plug.in/spec/lv2-"
478 version
479 ".tar.bz2"))
480 (sha256
481 (base32
482 "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"))))
483 (build-system waf-build-system)
484 (arguments
485 `(#:tests? #f ; no check target
486 #:configure-flags '("--lv2-system")))
487 (inputs
488 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
489 `(("libsndfile" ,libsndfile)))
490 (native-inputs
491 `(("pkg-config" ,pkg-config)))
492 (home-page "http://lv2plug.in/")
493 (synopsis "LV2 audio plugin specification")
494 (description
495 "LV2 is an open specification for audio plugins and host applications.
496At its core, LV2 is a simple stable interface, accompanied by extensions which
497add functionality to support the needs of increasingly powerful audio
498software.")
499 (license license:isc)))
5279eb6f 500
c1718190
RW
501(define-public lvtk
502 (package
503 (name "lvtk")
504 (version "1.2.0")
505 (source (origin
506 (method url-fetch)
507 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
508 version
509 ".tar.gz"))
510 (sha256
511 (base32
512 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
513 (build-system waf-build-system)
514 (arguments
515 `(#:tests? #f ; no check target
516 #:python ,python-2
517 #:configure-flags
518 (list (string-append "--boost-includes="
519 (assoc-ref %build-inputs "boost")
520 "/include"))))
521 (inputs
522 `(("boost" ,boost)
523 ("lv2" ,lv2)))
524 (native-inputs
525 `(("pkg-config" ,pkg-config)))
526 (home-page "https://github.com/lvtk/lvtk")
527 (synopsis "C++ libraries for LV2 plugins")
528 (description
529 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
530extensions into easy to use C++ classes. It is the successor of
531lv2-c++-tools.")
532 (license license:gpl3+)))
533
4443bb8d
RW
534(define-public patchage
535 (package
536 (name "patchage")
537 (version "1.0.0")
538 (source (origin
539 (method url-fetch)
540 (uri (string-append "http://download.drobilla.net/patchage-"
541 version
542 ".tar.bz2"))
543 (sha256
544 (base32
545 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
546 (build-system waf-build-system)
547 (arguments `(#:tests? #f)) ; no check target
548 (inputs
549 `(("alsa-lib" ,alsa-lib)
550 ("boost" ,boost)
551 ("jack" ,jack-1)
4443bb8d
RW
552 ("ganv" ,ganv)
553 ("glib" ,glib)
554 ("glibmm" ,glibmm)
555 ("gtkmm" ,gtkmm-2)
556 ("dbus" ,dbus)
557 ("dbus-glib" ,dbus-glib)))
558 (native-inputs
559 `(("pkg-config" ,pkg-config)))
560 (home-page "http://drobilla.net/software/patchage/")
561 (synopsis "Modular patch bay for audio and MIDI systems")
562 (description
563 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
564and ALSA.")
565 (license license:gpl3+)))
566
57238ff2
RW
567(define-public rubberband
568 (package
569 (name "rubberband")
570 (version "1.8.1")
571 (source (origin
572 (method url-fetch)
573 (uri
574 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
575 version
576 ".tar.bz2"))
577 (sha256
578 (base32
579 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
580 (build-system gnu-build-system)
581 (arguments `(#:tests? #f)) ; no check target
582 (inputs
583 `(("ladspa" ,ladspa)
584 ("libsamplerate" ,libsamplerate)
585 ("vamp" ,vamp)))
586 (native-inputs
587 `(("pkg-config" ,pkg-config)))
588 (home-page "http://breakfastquay.com/rubberband/")
589 (synopsis "Audio time-stretching and pitch-shifting library")
590 (description
591 "Rubber Band is a library and utility program that permits changing the
592tempo and pitch of an audio recording independently of one another.")
593 (license license:gpl2+)))
594
5279eb6f
RW
595(define-public sratom
596 (package
597 (name "sratom")
598 (version "0.4.6")
599 (source (origin
600 (method url-fetch)
601 (uri (string-append "http://download.drobilla.net/sratom-"
602 version
603 ".tar.bz2"))
604 (sha256
605 (base32
606 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
607 (build-system waf-build-system)
608 (arguments `(#:tests? #f)) ; no check target
609 (inputs
610 `(("lv2" ,lv2)
611 ("serd" ,serd)
612 ("sord" ,sord)))
613 (native-inputs
614 `(("pkg-config" ,pkg-config)))
615 (home-page "http://drobilla.net/software/sratom/")
616 (synopsis "Library for serialising LV2 atoms to/from RDF")
617 (description
618 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
619the Turtle syntax.")
620 (license license:isc)))
f3ab6ad3
RW
621
622(define-public suil
623 (package
624 (name "suil")
625 (version "0.8.2")
626 (source (origin
627 (method url-fetch)
628 (uri (string-append "http://download.drobilla.net/suil-"
629 version
630 ".tar.bz2"))
631 (sha256
632 (base32
633 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
634 (build-system waf-build-system)
635 (arguments `(#:tests? #f)) ; no check target
636 (inputs
637 `(("lv2" ,lv2)
638 ("gtk+-2" ,gtk+-2)
639 ("qt-4" ,qt-4)))
640 (native-inputs
641 `(("pkg-config" ,pkg-config)))
642 (home-page "http://drobilla.net/software/suil/")
643 (synopsis "Library for loading and wrapping LV2 plugin UIs")
644 (description
645 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
646
647Suil makes it possible to load a UI of a toolkit in a host using another
648toolkit. The API is designed such that hosts do not need to explicitly
649support specific toolkits – if Suil supports a particular toolkit, then UIs in
650that toolkit will work in all hosts that use Suil automatically.
651
652Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
653 (license license:isc)))
db46f2fc 654
9ffee457
RW
655(define-public timidity++
656 (package
657 (name "timidity++")
658 (version "2.14.0")
659 (source (origin
660 (method url-fetch)
661 (uri (string-append
662 "mirror://sourceforge/timidity/TiMidity++-"
663 version ".tar.bz2"))
664 (sha256
665 (base32
666 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
667 (build-system gnu-build-system)
668 (arguments
669 '(#:configure-flags
670 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
671 "--enable-ncurses"
672 "--enable-server"
673 "--enable-alsaseq"
674 (string-append "--with-default-path="
675 (assoc-ref %outputs "out") "/etc/timidity"))
676 #:phases
677 (alist-cons-after
678 'install 'install-config
679 (lambda _
680 (let ((out (string-append (assoc-ref %outputs "out")
681 "/etc/timidity")))
682 (mkdir-p out)
683 (call-with-output-file
684 (string-append out "/timidity.cfg")
685 (lambda (port)
686 (format port (string-append "source "
687 (assoc-ref %build-inputs "freepats")
688 "/share/freepats/freepats.cfg"))))))
689 %standard-phases)))
690 (inputs
691 `(("alsa-lib" ,alsa-lib)
692 ("ao" ,ao)
693 ("flac" ,flac)
694 ("jack" ,jack-1)
695 ("libogg" ,libogg)
696 ("speex" ,speex)
697 ("ncurses" ,ncurses)
698 ("freepats" ,freepats)))
699 (native-inputs
700 `(("pkg-config" ,pkg-config)))
701 (home-page "http://timidity.sourceforge.net/")
702 (synopsis "Software synthesizer for playing MIDI files")
703 (description
704 "TiMidity++ is a software synthesizer. It can play MIDI files by
705converting them into PCM waveform data; give it a MIDI data along with digital
706instrument data files, then it synthesizes them in real-time, and plays. It
707can not only play sounds, but also can save the generated waveforms into hard
708disks as various audio file formats.")
709 (license license:gpl2+)))
710
db46f2fc
RW
711(define-public vamp
712 (package
713 (name "vamp")
714 (version "2.5")
715 (source (origin
716 (method url-fetch)
717 (uri (string-append
718 "https://code.soundsoftware.ac.uk"
719 "/attachments/download/690/vamp-plugin-sdk-"
720 version
721 ".tar.gz"))
9002e17c
TUBK
722 (sha256
723 (base32
724 "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
db46f2fc 725 (build-system gnu-build-system)
9002e17c
TUBK
726 (arguments
727 `(#:tests? #f ; no check target
728 #:phases
729 (alist-cons-after
730 'install 'remove-libvamp-hostsdk.la
731 (lambda* (#:key outputs #:allow-other-keys)
732 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
733 (for-each delete-file
734 (let ((out (assoc-ref outputs "out")))
735 (list (string-append out "/lib/libvamp-sdk.la")
736 (string-append out "/lib/libvamp-hostsdk.la"))))
737 #t)
738 %standard-phases)))
db46f2fc
RW
739 (inputs
740 `(("libsndfile" ,libsndfile)))
741 (native-inputs
742 `(("pkg-config" ,pkg-config)))
743 (home-page "http://vamp-plugins.org")
744 (synopsis "Modular and extensible audio processing system")
745 (description
746 "Vamp is an audio processing plugin system for plugins that extract
747descriptive information from audio data — typically referred to as audio
748analysis plugins or audio feature extraction plugins.")
749 (license
750 (license:x11-style
751 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
752
753(define-public libsbsms
754 (package
755 (name "libsbsms")
756 (version "2.0.2")
757 (source
758 (origin
759 (method url-fetch)
760 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
761 "/libsbsms-" version ".tar.gz"))
762 (sha256
763 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
764 (build-system gnu-build-system)
765 (native-inputs `(("automake" ,automake)))
766 (arguments
767 `(#:phases
768 (alist-cons-after
769 'unpack 'fix-ar-lib-path
770 (lambda* (#:key inputs #:allow-other-keys)
771 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
772 (delete-file "ar-lib")
773 (symlink
774 (string-append (assoc-ref inputs "automake") "/share/automake-"
775 ,(package-version automake) "/ar-lib")
776 "ar-lib"))
777 %standard-phases)))
778 (home-page "http://sbsms.sourceforge.net/")
779 (synopsis "Library for time stretching and pitch scaling of audio")
780 (description
781 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
782stretching and pitch scaling of audio. This package contains the library.")
783 ;; There is no explicit declaration of a license, but a COPYING file
784 ;; containing gpl2.
785 (license license:gpl2)))
754a98ae
TUBK
786
787(define-public soundtouch
788 (package
789 (name "soundtouch")
790 (version "1.8.0")
791 (source
792 (origin
793 (method url-fetch)
794 (uri
795 (string-append
796 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
797 (sha256
798 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
799 (build-system gnu-build-system)
800 (native-inputs
801 `(("autoconf" ,autoconf)
802 ("automake" ,automake)
803 ("libtool" ,libtool)
804 ("file" ,file)))
805 (arguments
806 '(#:phases
807 (alist-cons-before
808 'configure 'bootstrap
809 (lambda _
810 (unless (zero? (system* "sh" "bootstrap"))
811 (error "bootstrap failed"))
812 (substitute* '("configure")
813 (("/usr/bin/file") "file")))
814 %standard-phases)))
815 (home-page "http://www.surina.net/soundtouch/")
816 (synopsis
817 "Audio processing library for changing tempo, pitch and playback rate")
818 (description
819 "SoundTouch is an audio processing library for changing the tempo, pitch
820and playback rates of audio streams or audio files. It is intended for
821application developers writing sound processing tools that require tempo/pitch
822control functionality, or just for playing around with the sound effects.")
823 (license license:lgpl2.1+)))
4bddd14c
TUBK
824
825(define-public soxr
826 (package
827 (name "soxr")
828 (version "0.1.1")
829 (source
830 (origin
831 (method url-fetch)
832 (uri
833 (string-append "mirror://sourceforge/soxr/soxr-" version
834 "-Source.tar.xz"))
835 (sha256
836 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
837 (build-system cmake-build-system)
838 (arguments '(#:tests? #f)) ;no 'check' target
839 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
840 (synopsis "One-dimensional sample-rate conversion library")
841 (description
842 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
843conversion. It may be used, for example, to resample PCM-encoded audio.")
844 (license license:lgpl2.1+)))
49f36708
TUBK
845
846(define-public twolame
847 (package
848 (name "twolame")
849 (version "0.3.13")
850 (source
851 (origin
852 (method url-fetch)
853 (uri (string-append
854 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
855 (sha256
856 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
857 (build-system gnu-build-system)
858 (inputs
859 `(("libsndfile" ,libsndfile)))
860 (native-inputs
861 `(("perl" ,perl)
862 ("which" ,which))) ;used in tests/test.pl
863 (home-page "http://www.twolame.org/")
864 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
865 (description
866 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
867tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
868portions of LAME.")
869 (license license:lgpl2.1+)))
bd4464f2
TUBK
870
871(define-public portaudio
872 (package
873 (name "portaudio")
874 (version "19.20140130")
875 (source
876 (origin
877 (method url-fetch)
878 (uri (string-append
879 "http://www.portaudio.com/archives/pa_stable_v"
880 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
881 ".tgz"))
882 (sha256
883 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))))
884 (build-system gnu-build-system)
885 (inputs
886 ;; TODO: Add ASIHPI.
887 `(("alsa-lib" ,alsa-lib)
888 ("jack" ,jack-2)))
889 (native-inputs
890 `(("pkg-config" ,pkg-config)))
891 (arguments '(#:tests? #f)) ;no 'check' target
892 (home-page "http://www.portaudio.com/")
893 (synopsis "Audio I/O library")
894 (description
895 "PortAudio is a portable C/C++ audio I/O library providing a simple API
896to record and/or play sound using a callback function or a blocking read/write
897interface.")
898 (license license:expat)))