gnu: Add LV2 mda Piano plugin.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
... / ...
CommitLineData
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
4;;;
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)
26 #:use-module (guix build-system waf)
27 #:use-module (guix build-system trivial)
28 #:use-module (guix build-system cmake)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages algebra)
31 #:use-module (gnu packages autotools)
32 #:use-module (gnu packages boost)
33 #:use-module (gnu packages base)
34 #:use-module (gnu packages compression)
35 #:use-module (gnu packages curl)
36 #:use-module (gnu packages databases)
37 #:use-module (gnu packages file)
38 #:use-module (gnu packages glib)
39 #:use-module (gnu packages gtk)
40 #:use-module (gnu packages gnome)
41 #:use-module (gnu packages ncurses)
42 #:use-module (gnu packages qt)
43 #:use-module (gnu packages linux)
44 #:use-module (gnu packages mp3) ;taglib
45 #:use-module (gnu packages perl)
46 #:use-module (gnu packages pkg-config)
47 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
48 #:use-module (gnu packages python)
49 #:use-module (gnu packages rdf)
50 #:use-module (gnu packages readline)
51 #:use-module (gnu packages which)
52 #:use-module (gnu packages xiph)
53 #:use-module (gnu packages xml)
54 #:use-module (srfi srfi-1))
55
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)
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
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)
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
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)
189 ("lash" ,lash)))
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
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
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
256 `(("alsa-lib" ,alsa-lib)
257 ("bdb" ,bdb)
258 ("readline" ,readline)))
259 ;; uuid.h is included in the JACK type headers
260 (propagated-inputs
261 `(("libuuid" ,util-linux)))
262 (native-inputs
263 `(("pkg-config" ,pkg-config)))
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.
275 (license (list license:gpl2+ license:lgpl2.1+))))
276
277(define-public jack-2
278 (package (inherit jack-1)
279 (name "jack2")
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+))))
306
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
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
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)
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
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+)))
439
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
454 ;; required by lilv-0.pc
455 (propagated-inputs
456 `(("serd" ,serd)
457 ("sord" ,sord)
458 ("sratom" ,sratom)))
459 (inputs
460 `(("lv2" ,lv2)))
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
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)))
500
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
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
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)
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
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
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)))
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)))
687
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
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"))
755 (sha256
756 (base32
757 "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
758 (build-system gnu-build-system)
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)))
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"))))
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)))
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+)))
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+)))
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+)))
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)))