gnu: Add LV2 mda Piano plugin.
[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
98247127
RW
501(define-public lv2-mda-piano
502 (package
503 (name "lv2-mda-piano")
504 (version "0.0.2")
505 (source (origin
506 (method git-fetch)
507 (uri (git-reference
508 (url "https://gitorious.org/lv2-synths/lv2-mdametapiano.git")
509 (commit version)))
510 (sha256
511 (base32
512 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
513 (build-system gnu-build-system)
514 (arguments
515 `(#:make-flags (list
516 "TYPE=mdaPiano"
517 (string-append "PREFIX=" (assoc-ref %outputs "out")))
518 #:tests? #f ; no check target
519 #:phases (alist-delete 'configure %standard-phases)))
520 (inputs
521 `(("lv2" ,lv2)
522 ("lvtk" ,lvtk)))
523 (native-inputs
524 `(("pkg-config" ,pkg-config)))
525 (native-search-paths
526 (list (search-path-specification
527 (variable "LV2_PATH")
528 (files '("lib/lv2")))))
529 (home-page "http://elephly.net/lv2/mdapiano.html")
530 (synopsis "LV2 port of the mda Piano plugin")
531 (description "An LV2 port of the mda Piano VSTi.")
532 (license license:gpl3+)))
533
c1718190
RW
534(define-public lvtk
535 (package
536 (name "lvtk")
537 (version "1.2.0")
538 (source (origin
539 (method url-fetch)
540 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
541 version
542 ".tar.gz"))
543 (sha256
544 (base32
545 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
546 (build-system waf-build-system)
547 (arguments
548 `(#:tests? #f ; no check target
549 #:python ,python-2
550 #:configure-flags
551 (list (string-append "--boost-includes="
552 (assoc-ref %build-inputs "boost")
553 "/include"))))
554 (inputs
555 `(("boost" ,boost)
556 ("lv2" ,lv2)))
557 (native-inputs
558 `(("pkg-config" ,pkg-config)))
559 (home-page "https://github.com/lvtk/lvtk")
560 (synopsis "C++ libraries for LV2 plugins")
561 (description
562 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
563extensions into easy to use C++ classes. It is the successor of
564lv2-c++-tools.")
565 (license license:gpl3+)))
566
4443bb8d
RW
567(define-public patchage
568 (package
569 (name "patchage")
570 (version "1.0.0")
571 (source (origin
572 (method url-fetch)
573 (uri (string-append "http://download.drobilla.net/patchage-"
574 version
575 ".tar.bz2"))
576 (sha256
577 (base32
578 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
579 (build-system waf-build-system)
580 (arguments `(#:tests? #f)) ; no check target
581 (inputs
582 `(("alsa-lib" ,alsa-lib)
583 ("boost" ,boost)
584 ("jack" ,jack-1)
4443bb8d
RW
585 ("ganv" ,ganv)
586 ("glib" ,glib)
587 ("glibmm" ,glibmm)
588 ("gtkmm" ,gtkmm-2)
589 ("dbus" ,dbus)
590 ("dbus-glib" ,dbus-glib)))
591 (native-inputs
592 `(("pkg-config" ,pkg-config)))
593 (home-page "http://drobilla.net/software/patchage/")
594 (synopsis "Modular patch bay for audio and MIDI systems")
595 (description
596 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
597and ALSA.")
598 (license license:gpl3+)))
599
57238ff2
RW
600(define-public rubberband
601 (package
602 (name "rubberband")
603 (version "1.8.1")
604 (source (origin
605 (method url-fetch)
606 (uri
607 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
608 version
609 ".tar.bz2"))
610 (sha256
611 (base32
612 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
613 (build-system gnu-build-system)
614 (arguments `(#:tests? #f)) ; no check target
615 (inputs
616 `(("ladspa" ,ladspa)
617 ("libsamplerate" ,libsamplerate)
618 ("vamp" ,vamp)))
619 (native-inputs
620 `(("pkg-config" ,pkg-config)))
621 (home-page "http://breakfastquay.com/rubberband/")
622 (synopsis "Audio time-stretching and pitch-shifting library")
623 (description
624 "Rubber Band is a library and utility program that permits changing the
625tempo and pitch of an audio recording independently of one another.")
626 (license license:gpl2+)))
627
5279eb6f
RW
628(define-public sratom
629 (package
630 (name "sratom")
631 (version "0.4.6")
632 (source (origin
633 (method url-fetch)
634 (uri (string-append "http://download.drobilla.net/sratom-"
635 version
636 ".tar.bz2"))
637 (sha256
638 (base32
639 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
640 (build-system waf-build-system)
641 (arguments `(#:tests? #f)) ; no check target
642 (inputs
643 `(("lv2" ,lv2)
644 ("serd" ,serd)
645 ("sord" ,sord)))
646 (native-inputs
647 `(("pkg-config" ,pkg-config)))
648 (home-page "http://drobilla.net/software/sratom/")
649 (synopsis "Library for serialising LV2 atoms to/from RDF")
650 (description
651 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
652the Turtle syntax.")
653 (license license:isc)))
f3ab6ad3
RW
654
655(define-public suil
656 (package
657 (name "suil")
658 (version "0.8.2")
659 (source (origin
660 (method url-fetch)
661 (uri (string-append "http://download.drobilla.net/suil-"
662 version
663 ".tar.bz2"))
664 (sha256
665 (base32
666 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
667 (build-system waf-build-system)
668 (arguments `(#:tests? #f)) ; no check target
669 (inputs
670 `(("lv2" ,lv2)
671 ("gtk+-2" ,gtk+-2)
672 ("qt-4" ,qt-4)))
673 (native-inputs
674 `(("pkg-config" ,pkg-config)))
675 (home-page "http://drobilla.net/software/suil/")
676 (synopsis "Library for loading and wrapping LV2 plugin UIs")
677 (description
678 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
679
680Suil makes it possible to load a UI of a toolkit in a host using another
681toolkit. The API is designed such that hosts do not need to explicitly
682support specific toolkits – if Suil supports a particular toolkit, then UIs in
683that toolkit will work in all hosts that use Suil automatically.
684
685Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
686 (license license:isc)))
db46f2fc 687
9ffee457
RW
688(define-public timidity++
689 (package
690 (name "timidity++")
691 (version "2.14.0")
692 (source (origin
693 (method url-fetch)
694 (uri (string-append
695 "mirror://sourceforge/timidity/TiMidity++-"
696 version ".tar.bz2"))
697 (sha256
698 (base32
699 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
700 (build-system gnu-build-system)
701 (arguments
702 '(#:configure-flags
703 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
704 "--enable-ncurses"
705 "--enable-server"
706 "--enable-alsaseq"
707 (string-append "--with-default-path="
708 (assoc-ref %outputs "out") "/etc/timidity"))
709 #:phases
710 (alist-cons-after
711 'install 'install-config
712 (lambda _
713 (let ((out (string-append (assoc-ref %outputs "out")
714 "/etc/timidity")))
715 (mkdir-p out)
716 (call-with-output-file
717 (string-append out "/timidity.cfg")
718 (lambda (port)
719 (format port (string-append "source "
720 (assoc-ref %build-inputs "freepats")
721 "/share/freepats/freepats.cfg"))))))
722 %standard-phases)))
723 (inputs
724 `(("alsa-lib" ,alsa-lib)
725 ("ao" ,ao)
726 ("flac" ,flac)
727 ("jack" ,jack-1)
728 ("libogg" ,libogg)
729 ("speex" ,speex)
730 ("ncurses" ,ncurses)
731 ("freepats" ,freepats)))
732 (native-inputs
733 `(("pkg-config" ,pkg-config)))
734 (home-page "http://timidity.sourceforge.net/")
735 (synopsis "Software synthesizer for playing MIDI files")
736 (description
737 "TiMidity++ is a software synthesizer. It can play MIDI files by
738converting them into PCM waveform data; give it a MIDI data along with digital
739instrument data files, then it synthesizes them in real-time, and plays. It
740can not only play sounds, but also can save the generated waveforms into hard
741disks as various audio file formats.")
742 (license license:gpl2+)))
743
db46f2fc
RW
744(define-public vamp
745 (package
746 (name "vamp")
747 (version "2.5")
748 (source (origin
749 (method url-fetch)
750 (uri (string-append
751 "https://code.soundsoftware.ac.uk"
752 "/attachments/download/690/vamp-plugin-sdk-"
753 version
754 ".tar.gz"))
9002e17c
TUBK
755 (sha256
756 (base32
757 "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
db46f2fc 758 (build-system gnu-build-system)
9002e17c
TUBK
759 (arguments
760 `(#:tests? #f ; no check target
761 #:phases
762 (alist-cons-after
763 'install 'remove-libvamp-hostsdk.la
764 (lambda* (#:key outputs #:allow-other-keys)
765 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
766 (for-each delete-file
767 (let ((out (assoc-ref outputs "out")))
768 (list (string-append out "/lib/libvamp-sdk.la")
769 (string-append out "/lib/libvamp-hostsdk.la"))))
770 #t)
771 %standard-phases)))
db46f2fc
RW
772 (inputs
773 `(("libsndfile" ,libsndfile)))
774 (native-inputs
775 `(("pkg-config" ,pkg-config)))
776 (home-page "http://vamp-plugins.org")
777 (synopsis "Modular and extensible audio processing system")
778 (description
779 "Vamp is an audio processing plugin system for plugins that extract
780descriptive information from audio data — typically referred to as audio
781analysis plugins or audio feature extraction plugins.")
782 (license
783 (license:x11-style
784 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
785
786(define-public libsbsms
787 (package
788 (name "libsbsms")
789 (version "2.0.2")
790 (source
791 (origin
792 (method url-fetch)
793 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
794 "/libsbsms-" version ".tar.gz"))
795 (sha256
796 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
797 (build-system gnu-build-system)
798 (native-inputs `(("automake" ,automake)))
799 (arguments
800 `(#:phases
801 (alist-cons-after
802 'unpack 'fix-ar-lib-path
803 (lambda* (#:key inputs #:allow-other-keys)
804 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
805 (delete-file "ar-lib")
806 (symlink
807 (string-append (assoc-ref inputs "automake") "/share/automake-"
808 ,(package-version automake) "/ar-lib")
809 "ar-lib"))
810 %standard-phases)))
811 (home-page "http://sbsms.sourceforge.net/")
812 (synopsis "Library for time stretching and pitch scaling of audio")
813 (description
814 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
815stretching and pitch scaling of audio. This package contains the library.")
816 ;; There is no explicit declaration of a license, but a COPYING file
817 ;; containing gpl2.
818 (license license:gpl2)))
754a98ae
TUBK
819
820(define-public soundtouch
821 (package
822 (name "soundtouch")
823 (version "1.8.0")
824 (source
825 (origin
826 (method url-fetch)
827 (uri
828 (string-append
829 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
830 (sha256
831 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
832 (build-system gnu-build-system)
833 (native-inputs
834 `(("autoconf" ,autoconf)
835 ("automake" ,automake)
836 ("libtool" ,libtool)
837 ("file" ,file)))
838 (arguments
839 '(#:phases
840 (alist-cons-before
841 'configure 'bootstrap
842 (lambda _
843 (unless (zero? (system* "sh" "bootstrap"))
844 (error "bootstrap failed"))
845 (substitute* '("configure")
846 (("/usr/bin/file") "file")))
847 %standard-phases)))
848 (home-page "http://www.surina.net/soundtouch/")
849 (synopsis
850 "Audio processing library for changing tempo, pitch and playback rate")
851 (description
852 "SoundTouch is an audio processing library for changing the tempo, pitch
853and playback rates of audio streams or audio files. It is intended for
854application developers writing sound processing tools that require tempo/pitch
855control functionality, or just for playing around with the sound effects.")
856 (license license:lgpl2.1+)))
4bddd14c
TUBK
857
858(define-public soxr
859 (package
860 (name "soxr")
861 (version "0.1.1")
862 (source
863 (origin
864 (method url-fetch)
865 (uri
866 (string-append "mirror://sourceforge/soxr/soxr-" version
867 "-Source.tar.xz"))
868 (sha256
869 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
870 (build-system cmake-build-system)
871 (arguments '(#:tests? #f)) ;no 'check' target
872 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
873 (synopsis "One-dimensional sample-rate conversion library")
874 (description
875 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
876conversion. It may be used, for example, to resample PCM-encoded audio.")
877 (license license:lgpl2.1+)))
49f36708
TUBK
878
879(define-public twolame
880 (package
881 (name "twolame")
882 (version "0.3.13")
883 (source
884 (origin
885 (method url-fetch)
886 (uri (string-append
887 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
888 (sha256
889 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
890 (build-system gnu-build-system)
891 (inputs
892 `(("libsndfile" ,libsndfile)))
893 (native-inputs
894 `(("perl" ,perl)
895 ("which" ,which))) ;used in tests/test.pl
896 (home-page "http://www.twolame.org/")
897 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
898 (description
899 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
900tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
901portions of LAME.")
902 (license license:lgpl2.1+)))
bd4464f2
TUBK
903
904(define-public portaudio
905 (package
906 (name "portaudio")
907 (version "19.20140130")
908 (source
909 (origin
910 (method url-fetch)
911 (uri (string-append
912 "http://www.portaudio.com/archives/pa_stable_v"
913 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
914 ".tgz"))
915 (sha256
916 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))))
917 (build-system gnu-build-system)
918 (inputs
919 ;; TODO: Add ASIHPI.
920 `(("alsa-lib" ,alsa-lib)
921 ("jack" ,jack-2)))
922 (native-inputs
923 `(("pkg-config" ,pkg-config)))
924 (arguments '(#:tests? #f)) ;no 'check' target
925 (home-page "http://www.portaudio.com/")
926 (synopsis "Audio I/O library")
927 (description
928 "PortAudio is a portable C/C++ audio I/O library providing a simple API
929to record and/or play sound using a callback function or a blocking read/write
930interface.")
931 (license license:expat)))