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