gnu: zita-convolver: Drop the '-march=native' optimization.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
CommitLineData
fb68469f
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
9f1cdd9d 3;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
0390a520 4;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
d739f481 5;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
09c414d8 6;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
fb68469f
RW
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages audio)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
d49976ed 27 #:use-module (guix utils)
fb68469f
RW
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system gnu)
c54a8981 30 #:use-module (guix build-system waf)
7c92efff 31 #:use-module (guix build-system trivial)
4bddd14c 32 #:use-module (guix build-system cmake)
fb68469f 33 #:use-module (gnu packages)
d55f912a 34 #:use-module (gnu packages algebra)
9f1cdd9d 35 #:use-module (gnu packages autotools)
fcbeb00b 36 #:use-module (gnu packages avahi)
88efb2c3 37 #:use-module (gnu packages boost)
7c92efff 38 #:use-module (gnu packages base)
fda85ca6 39 #:use-module (gnu packages bison)
7c92efff 40 #:use-module (gnu packages compression)
88efb2c3 41 #:use-module (gnu packages curl)
fb68469f 42 #:use-module (gnu packages databases)
754a98ae 43 #:use-module (gnu packages file)
fda85ca6 44 #:use-module (gnu packages flex)
11d4800a
RW
45 #:use-module (gnu packages fltk)
46 #:use-module (gnu packages fontutils)
fda85ca6 47 #:use-module (gnu packages gettext)
88efb2c3 48 #:use-module (gnu packages glib)
f3ab6ad3 49 #:use-module (gnu packages gtk)
88efb2c3 50 #:use-module (gnu packages gnome)
fcbeb00b 51 #:use-module (gnu packages gperf)
d739f481 52 #:use-module (gnu packages image)
9ffee457 53 #:use-module (gnu packages ncurses)
f3ab6ad3 54 #:use-module (gnu packages qt)
c54a8981 55 #:use-module (gnu packages linux)
88efb2c3
RW
56 #:use-module (gnu packages mp3) ;taglib
57 #:use-module (gnu packages perl)
c54a8981
RW
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
d55f912a 60 #:use-module (gnu packages python)
5279eb6f 61 #:use-module (gnu packages rdf)
c54a8981 62 #:use-module (gnu packages readline)
02979664 63 #:use-module (gnu packages webkit)
c54a8981 64 #:use-module (gnu packages xiph)
da49086a 65 #:use-module (gnu packages xml)
caf9055c 66 #:use-module (gnu packages xorg)
70fc29d9 67 #:use-module (gnu packages zip)
da49086a 68 #:use-module (srfi srfi-1))
fb68469f 69
eb0fb087
RW
70(define-public alsa-modular-synth
71 (package
72 (name "alsa-modular-synth")
73 (version "2.1.1")
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "mirror://sourceforge/alsamodular/ams-"
77 version ".tar.bz2"))
78 (sha256
79 (base32
80 "1nb7qzzqlqa2x8h797jbwi18ihnfkxqg9lyi0c4nvf8ybwzxkzd2"))))
81 (build-system gnu-build-system)
82 (inputs
83 `(("alsa-lib" ,alsa-lib)
84 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
85 ;; license incompatibility.
86 ("clalsadrv" ,clalsadrv)
87 ("fftw" ,fftw)
88 ("jack" ,jack-1)
89 ("ladspa" ,ladspa)
90 ("liblo" ,liblo)
91 ("qt" ,qt-4)))
92 (native-inputs
93 `(("pkg-config" ,pkg-config)))
94 (home-page "http://alsamodular.sourceforge.net/")
95 (synopsis "Realtime modular synthesizer and effect processor")
96 (description
97 "AlsaModularSynth is a digital implementation of a classical analog
98modular synthesizer system. It uses virtual control voltages to control the
99parameters of the modules. The control voltages which control the frequency
100e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
101Filter) modules follow the convention of 1V / Octave.")
102 (license license:gpl2)))
103
d55f912a
RW
104(define-public aubio
105 (package
106 (name "aubio")
107 (version "0.4.1")
108 (source (origin
109 (method url-fetch)
110 (uri (string-append
111 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
112 (sha256
113 (base32
114 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
115 (build-system waf-build-system)
116 (arguments
117 `(#:tests? #f ; no check target
118 #:configure-flags
119 '("--enable-fftw3f"
120 "--enable-jack"
121 "--enable-sndfile"
122 "--enable-samplerate"
123 ;; enable compilation with avcodec once available
124 "--disable-avcodec")
125 #:python ,python-2))
126 (inputs
127 `(("jack" ,jack-1)
d55f912a
RW
128 ("libsndfile" ,libsndfile)
129 ("libsamplerate" ,libsamplerate)
130 ("fftwf" ,fftwf)))
131 (native-inputs
132 `(("pkg-config" ,pkg-config)))
133 (home-page "http://aubio.org/")
a124bbd2 134 (synopsis "Library for audio labelling")
d55f912a
RW
135 (description
136 "aubio is a tool designed for the extraction of annotations from audio
137signals. Its features include segmenting a sound file before each of its
138attacks, performing pitch detection, tapping the beat and producing MIDI
139streams from live audio.")
140 (license license:gpl3+)))
141
d49976ed
RW
142(define (ardour-rpath-phase major-version)
143 `(lambda* (#:key outputs #:allow-other-keys)
144 (let ((libdir (string-append (assoc-ref outputs "out")
145 "/lib/ardour" ,major-version)))
146 (substitute* "wscript"
147 (("linker_flags = \\[\\]")
148 (string-append "linker_flags = [\""
149 "-Wl,-rpath="
150 libdir ":"
151 libdir "/backends" ":"
152 libdir "/engines" ":"
153 libdir "/panners" ":"
154 libdir "/surfaces" ":"
155 libdir "/vamp" "\"]"))))
156 #t))
157
60725232 158(define-public ardour
88efb2c3
RW
159 (package
160 (name "ardour")
e5e20685 161 (version "4.4")
88efb2c3 162 (source (origin
88efb2c3
RW
163 (method git-fetch)
164 (uri (git-reference
165 (url "git://git.ardour.org/ardour/ardour.git")
166 (commit version)))
167 (snippet
002806c9
RW
168 ;; Ardour expects this file to exist at build time. It can be
169 ;; created from a git checkout with:
170 ;; ./waf create_stored_revision
88efb2c3
RW
171 '(call-with-output-file
172 "libs/ardour/revision.cc"
173 (lambda (port)
174 (format port "#include \"ardour/revision.h\"
e5e20685 175namespace ARDOUR { const char* revision = \"4.4-210-ga4daf93\" ; }"))))
88efb2c3
RW
176 (sha256
177 (base32
e5e20685 178 "1gnrcnq2ksnh7fsa301v1c4p5dqrbqpjylf02rg3za3ab58wxi7l"))
88efb2c3
RW
179 (file-name (string-append name "-" version))))
180 (build-system waf-build-system)
181 (arguments
92e4fbe2
SB
182 `(#:configure-flags '("--cxx11") ; required by gtkmm
183 #:phases
21481a28
RW
184 (modify-phases %standard-phases
185 (add-after
186 'unpack 'set-rpath-in-LDFLAGS
d49976ed 187 ,(ardour-rpath-phase (version-prefix version 1))))
21481a28 188 #:tests? #f ; no check target
88efb2c3
RW
189 #:python ,python-2))
190 (inputs
191 `(("alsa-lib" ,alsa-lib)
192 ("aubio" ,aubio)
193 ("lrdf" ,lrdf)
194 ("boost" ,boost)
195 ("atkmm" ,atkmm)
196 ("cairomm" ,cairomm)
197 ("gtkmm" ,gtkmm-2)
198 ("glibmm" ,glibmm)
199 ("libart-lgpl" ,libart-lgpl)
200 ("libgnomecanvasmm" ,libgnomecanvasmm)
201 ("pangomm" ,pangomm)
202 ("liblo" ,liblo)
203 ("libsndfile" ,libsndfile)
204 ("libsamplerate" ,libsamplerate)
205 ("libxml2" ,libxml2)
206 ("libogg" ,libogg)
207 ("libvorbis" ,libvorbis)
208 ("flac" ,flac)
209 ("lv2" ,lv2)
210 ("vamp" ,vamp)
211 ("curl" ,curl)
88efb2c3
RW
212 ("fftw" ,fftw)
213 ("fftwf" ,fftwf)
214 ("jack" ,jack-1)
215 ("serd" ,serd)
216 ("sord" ,sord)
217 ("sratom" ,sratom)
218 ("suil" ,suil)
219 ("lilv" ,lilv)
88efb2c3
RW
220 ("redland" ,redland)
221 ("rubberband" ,rubberband)
222 ("taglib" ,taglib)
223 ("python-rdflib" ,python-rdflib)))
224 (native-inputs
225 `(("perl" ,perl)
226 ("pkg-config" ,pkg-config)))
227 (home-page "http://ardour.org")
228 (synopsis "Digital audio workstation")
229 (description
230 "Ardour is a multi-channel digital audio workstation, allowing users to
231record, edit, mix and master audio and MIDI projects. It is targeted at audio
232engineers, musicians, soundtrack editors and composers.")
233 (license license:gpl2+)))
234
497e9a82
RW
235(define-public azr3
236 (package
237 (name "azr3")
238 (version "1.2.3")
239 (source (origin
240 (method url-fetch)
241 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
242 version
243 ".tar.bz2"))
244 (sha256
245 (base32
246 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
247 (build-system gnu-build-system)
248 (arguments
249 `(#:tests? #f ; no check target
250 #:make-flags
251 (list "LV2PEG=ttl2c"
252 (string-append "prefix=" %output)
253 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
254 (inputs
255 `(("gtkmm" ,gtkmm-2)
256 ("lvtk" ,lvtk)
257 ("jack" ,jack-1)
f753846b 258 ("lash" ,lash)))
497e9a82
RW
259 (native-inputs
260 `(("pkg-config" ,pkg-config)))
261 (home-page "http://ll-plugins.nongnu.org/azr3/")
262 (synopsis "Tonewheel organ synthesizer")
263 (description
264 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
265with drawbars, distortion and rotating speakers. The organ has three
266sections, two polyphonic sections with nine drawbars each and one monophonic
267bass section with five drawbars. A standalone JACK application and LV2
268plugins are provided.")
269 (license license:gpl2)))
270
f62a8417
RW
271(define-public calf
272 (package
273 (name "calf")
274 (version "0.0.60")
275 (source (origin
276 (method url-fetch)
73cea74d
RW
277 (uri (string-append "http://calf-studio-gear.org/files/calf-"
278 version ".tar.gz"))
f62a8417
RW
279 (sha256
280 (base32
281 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
282 (build-system gnu-build-system)
283 (inputs
284 `(("fluidsynth" ,fluidsynth)
285 ("expat" ,expat)
286 ("glib" ,glib)
287 ("gtk" ,gtk+-2)
288 ("cairo" ,cairo)
289 ("lash" ,lash)
290 ("jack" ,jack-1)
291 ("lv2" ,lv2)
292 ("ladspa" ,ladspa)
293 ("fftw" ,fftw)))
294 (native-inputs
295 `(("pkg-config" ,pkg-config)))
296 (native-search-paths
297 (list (search-path-specification
298 (variable "LV2_PATH")
299 (files '("lib/lv2")))))
300 (home-page "http://calf.sourceforge.net/")
301 (synopsis "Audio plug-in pack for LV2 and JACK environments")
302 (description
303 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
304The suite contains lots of effects (delay, modulation, signal processing,
305filters, equalizers, dynamics, distortion and mastering effects),
306instruments (SF2 player, organ simulator and a monophonic synthesizer) and
307tools (analyzer, mono/stereo tools, crossovers).")
308 ;; calfjackhost is released under GPLv2+
309 ;; The plugins are released under LGPLv2.1+
310 (license (list license:lgpl2.1+ license:gpl2+))))
311
fda85ca6
RW
312(define-public csound
313 (package
314 (name "csound")
efd37722 315 (version "6.05")
fda85ca6
RW
316 (source (origin
317 (method url-fetch)
318 (uri (string-append
319 "mirror://sourceforge/csound/csound6/Csound"
320 version "/Csound" version ".tar.gz"))
321 (sha256
322 (base32
efd37722 323 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))))
fda85ca6 324 (build-system cmake-build-system)
00c16d5b
LC
325 (arguments
326 ;; Work around this error on x86_64 with libc 2.22+:
327 ;; libmvec.so.1: error adding symbols: DSO missing from command line
328 (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
329 '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
330 '()))
fda85ca6
RW
331 (inputs
332 `(("alsa-lib" ,alsa-lib)
333 ("boost" ,boost)
334 ("pulseaudio" ,pulseaudio)
335 ("libsndfile" ,libsndfile)
336 ("liblo" ,liblo)
337 ("ladspa" ,ladspa)
338 ("jack" ,jack-1)
339 ("gettext" ,gnu-gettext)))
340 (native-inputs
341 `(("bison" ,bison)
342 ("flex" ,flex)
343 ("zlib" ,zlib)))
344 (home-page "http://csound.github.io/")
345 (synopsis "Sound and music computing system")
346 (description
347 "Csound is a user-programmable and user-extensible sound processing
348language and software synthesizer.")
349 (license license:lgpl2.1+)))
350
631ac903
RW
351(define-public clalsadrv
352 (package
353 (name "clalsadrv")
354 (version "2.0.0")
355 (source (origin
356 (method url-fetch)
357 (uri (string-append
358 "http://kokkinizita.linuxaudio.org"
359 "/linuxaudio/downloads/clalsadrv-"
360 version ".tar.bz2"))
361 (sha256
362 (base32
9de2e43c 363 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
631ac903
RW
364 (build-system gnu-build-system)
365 (arguments
366 `(#:tests? #f ; no "check" target
367 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
368 #:phases
369 (alist-cons-after
9de2e43c
RW
370 'unpack 'patch-makefile-and-enter-directory
371 (lambda _
372 (substitute* "libs/Makefile"
373 (("/sbin/ldconfig") "true")
374 (("^LIBDIR =.*") "LIBDIR = lib\n"))
375 (chdir "libs")
376 #t)
631ac903
RW
377 (alist-cons-after
378 'install
379 'install-symlink
380 (lambda _
381 (symlink "libclalsadrv.so"
382 (string-append (assoc-ref %outputs "out")
383 "/lib/libclalsadrv.so.2")))
384 ;; no configure script
385 (alist-delete 'configure %standard-phases)))))
386 (inputs
387 `(("alsa-lib" ,alsa-lib)
388 ("fftw" ,fftw)))
389 (home-page "http://kokkinizita.linuxaudio.org")
390 (synopsis "C++ wrapper around the ALSA API")
391 (description
392 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
393ALSA PCM devices.")
394 (license license:gpl2+)))
395
e4f43b56
RW
396(define-public fluidsynth
397 (package
398 (name "fluidsynth")
399 (version "1.1.6")
400 (source (origin
401 (method url-fetch)
402 (uri (string-append
403 "mirror://sourceforge/fluidsynth/fluidsynth-"
404 version "/fluidsynth-" version ".tar.gz"))
405 (sha256
406 (base32
407 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
408 (build-system gnu-build-system)
409 (arguments
410 `(#:phases
411 (alist-cons-after
412 'unpack
413 'remove-broken-symlinks
414 (lambda _ (delete-file-recursively "m4") #t)
415 %standard-phases)))
416 (inputs
417 `(("libsndfile" ,libsndfile)
418 ("alsa-lib" ,alsa-lib)
419 ("jack" ,jack-1)
420 ("ladspa" ,ladspa)
421 ("lash" ,lash)
422 ("readline" ,readline)
423 ("glib" ,glib)))
424 (native-inputs
425 `(("pkg-config" ,pkg-config)))
426 (home-page "http://www.fluidsynth.org/")
427 (synopsis "SoundFont synthesizer")
428 (description
429 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
430specifications. FluidSynth reads and handles MIDI events from the MIDI input
e881752c 431device. It is the software analogue of a MIDI synthesizer. FluidSynth can
e4f43b56
RW
432also play midifiles using a Soundfont.")
433 (license license:gpl2+)))
434
70fc29d9
TUBK
435(define-public faad2
436 (package
437 (name "faad2")
438 (version "2.7")
439 (source (origin
440 (method url-fetch)
441 (uri (string-append
442 "mirror://sourceforge/faac/faad2-" version ".zip"))
443 (sha256
444 (base32
445 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
446 (build-system gnu-build-system)
447 (native-inputs
448 `(("autoconf" ,autoconf)
449 ("automake" ,automake)
450 ("libtool" ,libtool)
451 ("unzip" ,unzip)))
452 (arguments
453 '(#:phases
454 (alist-cons-after
455 'unpack 'bootstrap
456 (lambda _
457 (substitute* "bootstrap" (("\r\n") "\n"))
458 (zero? (system* "sh" "bootstrap")))
459 %standard-phases)))
460 (home-page "http://www.audiocoding.com/faad2.html")
461 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
462 (description
463 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
464PS, and DAB+.")
465 (license license:gpl2)))
466
777291f0
RW
467(define-public faust
468 (package
469 (name "faust")
470 (version "0.9.67")
471 (source (origin
472 (method url-fetch)
473 (uri (string-append
474 "mirror://sourceforge/faudiostream/faust-" version ".zip"))
475 (sha256
476 (base32
0543c326
RW
477 "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
478 (snippet
479 ;; Remove prebuilt library
480 '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
777291f0
RW
481 (build-system gnu-build-system)
482 (arguments
483 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
484 #:tests? #f
485 #:phases
486 (modify-phases %standard-phases
0543c326 487 ;; no "configure" script
777291f0
RW
488 (delete 'configure))))
489 (native-inputs
490 `(("unzip" ,unzip)))
491 (home-page "http://faust.grame.fr/")
492 (synopsis "Signal processing language")
493 (description
494 "Faust is a programming language for realtime audio signal processing.")
495 (license license:gpl2+)))
496
7c92efff
RW
497(define-public freepats
498 (package
499 (name "freepats")
500 (version "20060219")
501 (source (origin
502 (method url-fetch)
503 (uri (string-append "http://freepats.zenvoid.org/freepats-"
504 version ".tar.bz2"))
505 (sha256
506 (base32
507 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
508 (build-system trivial-build-system)
509 (arguments
510 `(#:modules ((guix build utils))
511 #:builder (begin
512 (use-modules (guix build utils))
513 (let ((out (string-append %output "/share/freepats")))
514 (setenv "PATH" (string-append
515 (assoc-ref %build-inputs "bzip2") "/bin:"
516 (assoc-ref %build-inputs "tar") "/bin"))
517 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
518 (chdir "freepats")
519 ;; Use absolute pattern references
520 (substitute* "freepats.cfg"
521 (("Tone_000") (string-append out "/Tone_000"))
522 (("Drum_000") (string-append out "/Drum_000")))
523 (mkdir-p out)
524 (copy-recursively "." out)))))
525 (native-inputs
526 `(("tar" ,tar)
527 ("bzip2" ,bzip2)))
528 (home-page "http://freepats.zenvoid.org")
529 (synopsis "GUS compatible patches for MIDI players")
530 (description
531 "FreePats is a project to create a free and open set of GUS compatible
532patches that can be used with softsynths such as Timidity and WildMidi.")
533 ;; GPLv2+ with exception for compositions using these patches.
534 (license license:gpl2+)))
535
fcbeb00b
RW
536(define-public guitarix
537 (package
538 (name "guitarix")
02979664 539 (version "0.34.0")
fcbeb00b
RW
540 (source (origin
541 (method url-fetch)
542 (uri (string-append
543 "mirror://sourceforge/guitarix/guitarix2-"
544 version ".tar.bz2"))
545 (sha256
546 (base32
02979664 547 "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8"))))
fcbeb00b
RW
548 (build-system waf-build-system)
549 (arguments
550 `(#:tests? #f ; no "check" target
551 #:python ,python-2
552 #:configure-flags
553 (list
fcbeb00b 554 ;; Add the output lib directory to the RUNPATH.
3c3e6972
LC
555 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
556 "--cxxflags=-std=c++11")))
fcbeb00b
RW
557 (inputs
558 `(("libsndfile" ,libsndfile)
559 ("boost" ,boost)
560 ("avahi" ,avahi)
561 ("eigen" ,eigen)
562 ("lv2" ,lv2)
563 ("lilv" ,lilv)
564 ("ladspa" ,ladspa)
565 ("jack" ,jack-1)
566 ("gtkmm" ,gtkmm-2)
567 ("gtk+" ,gtk+-2)
02979664 568 ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2)
fcbeb00b
RW
569 ("fftwf" ,fftwf)
570 ("lrdf" ,lrdf)
571 ("zita-resampler" ,zita-resampler)
572 ("zita-convolver" ,zita-convolver)))
573 (native-inputs
574 `(("gperf" ,gperf)
49767428 575 ("faust" ,faust)
fcbeb00b
RW
576 ("intltool" ,intltool)
577 ("gettext" ,gnu-gettext)
578 ("pkg-config" ,pkg-config)))
579 (native-search-paths
580 (list (search-path-specification
581 (variable "LV2_PATH")
582 (files '("lib/lv2")))))
583 (home-page "http://guitarix.org/")
584 (synopsis "Virtual guitar amplifier")
585 (description "Guitarix is a virtual guitar amplifier running JACK.
586Guitarix takes the signal from your guitar as a mono-signal from your sound
587card. The input is processed by a main amp and a rack-section. Both can be
588routed separately and deliver a processed stereo-signal via JACK. You may
589fill the rack with effects from more than 25 built-in modules including stuff
590from a simple noise gate to modulation effects like flanger, phaser or
591auto-wah.")
592 (license license:gpl2+)))
593
11d4800a
RW
594(define-public rakarrack
595 (package
596 (name "rakarrack")
597 (version "0.6.1")
598 (source (origin
599 (method url-fetch)
600 (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
601 "rakarrack-" version "/rakarrack-"
602 version ".tar.bz2"))
603 (sha256
604 (base32
605 "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
606 (modules '((guix build utils)))
607 (snippet
608 '(begin
609 (substitute* '("src/process.C"
610 "src/global.h")
611 (("#include <Fl/") "#include <FL/"))
612 #t))))
613 (build-system gnu-build-system)
614 (inputs
615 `(("alsa-utils" ,alsa-utils)
616 ("fltk" ,fltk)
617 ("libx11" ,libx11)
618 ("libxext" ,libxext)
619 ("libxfixes" ,libxfixes)
620 ("libxft" ,libxft)
621 ("libxrender" ,libxrender)
622 ("libxpm" ,libxpm)
623 ("fontconfig" ,fontconfig)
624 ("freetype" ,freetype)
625 ("jack" ,jack-1)
626 ("alsa-lib" ,alsa-lib)
627 ("libsndfile" ,libsndfile)
628 ("libsamplerate" ,libsamplerate)
629 ("zlib" ,zlib)))
630 (home-page "http://rakarrack.sourceforge.net/")
631 (synopsis "Audio effects processor")
632 (description
633 "Rakarrack is a richly featured multi-effects processor emulating a
634guitar effects pedalboard. Effects include compressor, expander, noise gate,
635equalizers, exciter, flangers, chorus, various delay and reverb effects,
636distortion modules and many more. Most of the effects engine is built from
637modules found in the excellent software synthesizer ZynAddSubFX. Presets and
638user interface are optimized for guitar, but Rakarrack processes signals in
639stereo while it does not apply internal band-limiting filtering, and thus is
640well suited to all musical instruments and vocals.")
641 ;; The code is explicitly licensed under the GPL version 2 only.
642 (license license:gpl2)))
643
32cf42c1
RW
644(define-public ir
645 (package
646 (name "ir")
647 (version "1.3.2")
648 (source (origin
649 (method url-fetch)
650 (uri (string-append
651 "http://factorial.hu/system/files/ir.lv2-"
652 version ".tar.gz"))
653 (sha256
654 (base32
655 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
656 (build-system gnu-build-system)
657 (arguments
658 `(#:tests? #f ;no "check" target
659 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
660 #:phases
661 ;; no configure script
662 (alist-delete 'configure %standard-phases)))
663 (inputs
664 `(("libsndfile" ,libsndfile)
665 ("libsamplerate" ,libsamplerate)
666 ("lv2" ,lv2)
667 ("glib" ,glib)
668 ("gtk+" ,gtk+-2)
669 ("zita-convolver" ,zita-convolver)))
670 (native-inputs
671 `(("pkg-config" ,pkg-config)))
672 (native-search-paths
673 (list (search-path-specification
674 (variable "LV2_PATH")
675 (files '("lib/lv2")))))
676 (home-page "http://factorial.hu/plugins/lv2/ir")
677 (synopsis "LV2 convolution reverb")
678 (description
679 "IR is a low-latency, real-time, high performance signal convolver
680especially for creating reverb effects. It supports impulse responses with 1,
6812 or 4 channels, in any soundfile format supported by libsndfile.")
682 (license license:gpl2+)))
683
fb68469f
RW
684(define-public jack-1
685 (package
686 (name "jack")
687 (version "0.124.1")
688 (source (origin
689 (method url-fetch)
690 (uri (string-append
691 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
692 version
693 ".tar.gz"))
694 (sha256
695 (base32
696 "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
697 (build-system gnu-build-system)
698 (inputs
2f9ae82f 699 `(("alsa-lib" ,alsa-lib)
5d95e30b
RW
700 ("readline" ,readline)))
701 ;; uuid.h is included in the JACK type headers
ca01b3ad 702 ;; db.h is included in the libjack metadata headers
5d95e30b 703 (propagated-inputs
ca01b3ad
RW
704 `(("libuuid" ,util-linux)
705 ("bdb" ,bdb)))
2f9ae82f
RW
706 (native-inputs
707 `(("pkg-config" ,pkg-config)))
fb68469f
RW
708 (home-page "http://jackaudio.org/")
709 (synopsis "JACK audio connection kit")
710 (description
711 "JACK is a low-latency audio server. It can connect a number of
712different applications to an audio device, as well as allowing them to share
713audio between themselves. JACK is different from other audio server efforts
714in that it has been designed from the ground up to be suitable for
715professional audio work. This means that it focuses on two key areas:
716synchronous execution of all clients, and low latency operation.")
717 ;; Most files are licensed under the GPL. However, the libjack/ tree is
718 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 719 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981 720
bcbc02fd
RW
721;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
722;; jack-2 implement the same API. JACK2 is provided primarily as a client
723;; program for users who might benefit from the D-BUS features.
c54a8981
RW
724(define-public jack-2
725 (package (inherit jack-1)
314275c7 726 (name "jack2")
c54a8981
RW
727 (version "1.9.10")
728 (source (origin
729 (method url-fetch)
730 (uri (string-append
731 "https://github.com/jackaudio/jack2/archive/v"
732 version
733 ".tar.gz"))
f586c877 734 (file-name (string-append name "-" version ".tar.gz"))
c54a8981
RW
735 (sha256
736 (base32
737 "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
738 (build-system waf-build-system)
739 (arguments
bc8bf605
RW
740 `(#:python ,python-2
741 #:tests? #f ; no check target
c54a8981 742 #:configure-flags '("--dbus"
b416c647
SB
743 "--alsa")
744 #:phases
745 (modify-phases %standard-phases
746 (add-before
747 'configure 'set-linkflags
748 (lambda _
749 ;; Add $libdir to the RUNPATH of all the binaries.
750 (substitute* "wscript"
751 ((".*CFLAGS.*-Wall.*" m)
752 (string-append m
753 " conf.env.append_unique('LINKFLAGS',"
bc8bf605
RW
754 "'-Wl,-rpath=" %output "/lib')\n")))))
755 (add-after 'install 'wrap-python-scripts
756 (lambda* (#:key inputs outputs #:allow-other-keys)
757 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
758 (let* ((out (assoc-ref outputs "out"))
759 (path (getenv "PYTHONPATH")))
760 (wrap-program (string-append out "/bin/jack_control")
761 `("PYTHONPATH" ":" prefix (,path))))
762 #t)))))
c54a8981
RW
763 (inputs
764 `(("alsa-lib" ,alsa-lib)
765 ("dbus" ,dbus)
766 ("expat" ,expat)
767 ("libsamplerate" ,libsamplerate)
768 ("opus" ,opus)
bc8bf605 769 ("python2-dbus" ,python2-dbus)
c54a8981
RW
770 ("readline" ,readline)))
771 (native-inputs
772 `(("pkg-config" ,pkg-config)))
773 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
774 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 775
2f4646b6
RW
776(define-public jalv
777 (package
778 (name "jalv")
779 (version "1.4.6")
780 (source (origin
781 (method url-fetch)
782 (uri (string-append "http://download.drobilla.net/jalv-"
783 version ".tar.bz2"))
784 (sha256
785 (base32
786 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
787 (build-system waf-build-system)
d8c317df
SB
788 (arguments
789 `(#:tests? #f ; no check target
790 #:phases
791 (modify-phases %standard-phases
792 (add-before
793 'configure 'set-flags
794 (lambda _
795 ;; Compile with C++11, required by gtkmm.
796 (setenv "CXXFLAGS" "-std=c++11")
797 #t)))))
2f4646b6
RW
798 (inputs
799 `(("lv2" ,lv2)
800 ("lilv" ,lilv)
801 ("suil" ,suil)
802 ("gtk" ,gtk+-2)
803 ("gtkmm" ,gtkmm-2)
804 ("qt" ,qt-4)
805 ("jack" ,jack-1)))
806 (native-inputs
807 `(("pkg-config" ,pkg-config)))
808 (home-page "http://drobilla.net/software/jalv/")
809 (synopsis "Simple LV2 host for JACK")
810 (description
811 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
812plugins and exposes their ports as JACK ports, essentially making any LV2
813plugin function as a JACK application.")
814 (license license:isc)))
815
2cc7ce31
RW
816(define-public ladspa
817 (package
818 (name "ladspa")
819 (version "1.13")
0c1910ed
AV
820 (source
821 (origin
822 (method url-fetch)
823 ;; Since the official link is dead,
824 ;; we download the tarball from Debian or Internet Archive.
825 (uri (list (string-append "http://http.debian.net"
826 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
827 version ".orig.tar.gz")
828 (string-append "https://web.archive.org/web/20140717172251/"
829 "http://www.ladspa.org/download/ladspa_sdk_"
830 version ".tgz")))
831 (sha256
832 (base32
833 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
2cc7ce31
RW
834 (build-system gnu-build-system)
835 (arguments
836 `(#:tests? #f ; the "test" target is a listening test only
837 #:phases
838 (alist-replace
839 'configure
840 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
841 (chdir "src")
842 (let ((out (assoc-ref outputs "out")))
843 (substitute* "makefile"
844 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
845 (("/usr/include/") (string-append out "/include/"))
846 (("/usr/bin/") (string-append out "/bin/"))
847 (("-mkdirhier") "mkdir -p")
848 (("^CC.*") "CC = gcc\n")
849 (("^CPP.*") "CPP = g++\n"))))
850 (alist-delete 'build %standard-phases))))
0c1910ed
AV
851 ;; Since the home page is gone, we provide a link to the archived version.
852 (home-page
853 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
2cc7ce31
RW
854 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
855 (description
856 "LADSPA is a standard that allows software audio processors and effects
857to be plugged into a wide range of audio synthesis and recording packages.")
858 (license license:lgpl2.1+)))
859
da49086a
RW
860(define-public lash
861 (package
862 (name "lash")
863 (version "0.6.0-rc2")
864 (source (origin
865 (method url-fetch)
866 ;; The tilde is not permitted in the builder name, but is used
867 ;; in the tarball.
868 (uri (string-append
869 "mirror://savannah/lash/lash-"
870 (string-join (string-split version #\-) "~")
871 ".tar.bz2"))
872 (file-name (string-append name "-" version ".tar.bz2"))
873 (sha256
874 (base32
875 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
876 (build-system gnu-build-system)
877 (inputs
878 `(("bdb" ,bdb)
879 ("gtk" ,gtk+-2)
880 ("jack" ,jack-1)
da49086a
RW
881 ("readline" ,readline)
882 ("python" ,python-2)))
883 ;; According to pkg-config, packages depending on lash also need to have
884 ;; at least the following packages declared as inputs.
885 (propagated-inputs
886 `(("alsa-lib" ,alsa-lib)
887 ("dbus" ,dbus)
888 ("libxml2" ,libxml2)))
889 (native-inputs
890 `(("pkg-config" ,pkg-config)))
891 (home-page "http://www.nongnu.org/lash/")
892 (synopsis "Audio application session manager")
893 (description
894 "LASH is a session management system for audio applications. It allows
895you to save and restore audio sessions consisting of multiple interconneced
896applications, restoring program state (i.e. loaded patches) and the
897connections between them.")
898 (license license:gpl2+)))
899
8c0b5a75
TUBK
900(define-public libbs2b
901 (package
902 (name "libbs2b")
903 (version "3.1.0")
904 (source (origin
905 (method url-fetch)
906 (uri (string-append
907 "mirror://sourceforge/bs2b/libbs2b-" version ".tar.lzma"))
908 (sha256
909 (base32
910 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
911 (build-system gnu-build-system)
912 (native-inputs `(("pkg-config" ,pkg-config)))
913 (inputs `(("libsndfile" ,libsndfile)))
914 (home-page "http://sourceforge.net/projects/bs2b/")
915 (synopsis "Bauer stereophonic-to-binaural DSP")
916 (description
917 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
918designed to improve headphone listening of stereo audio records. Recommended
919for headphone prolonged listening to disable superstereo fatigue without
920essential distortions.")
921 (license license:expat)))
922
f47cba0e
RW
923(define-public liblo
924 (package
925 (name "liblo")
926 (version "0.28")
927 (source (origin
928 (method url-fetch)
929 (uri (string-append
930 "mirror://sourceforge/liblo/liblo-"
931 version
932 ".tar.gz"))
933 (sha256
934 (base32
935 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
936 (build-system gnu-build-system)
937 (arguments
938 `(;; liblo test FAILED
939 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
940 #:tests? #f))
941 (home-page "http://liblo.sourceforge.net")
942 (synopsis "Implementation of the Open Sound Control protocol")
943 (description
944 "liblo is a lightweight library that provides an easy to use
945implementation of the Open Sound Control (OSC) protocol.")
946 (license license:lgpl2.1+)))
e2420191 947
332aad1b
RW
948(define-public lilv
949 (package
950 (name "lilv")
951 (version "0.20.0")
952 (source (origin
953 (method url-fetch)
954 (uri (string-append "http://download.drobilla.net/lilv-"
955 version
956 ".tar.bz2"))
957 (sha256
958 (base32
959 "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
960 (build-system waf-build-system)
d80ee442
TUBK
961 (arguments
962 `(#:tests? #f ; no check target
963 #:phases
964 (modify-phases %standard-phases
965 (add-before
966 'configure 'set-ldflags
967 (lambda* (#:key outputs #:allow-other-keys)
968 (setenv "LDFLAGS"
969 (string-append "-Wl,-rpath="
970 (assoc-ref outputs "out") "/lib")))))))
ff7df27d
RW
971 ;; required by lilv-0.pc
972 (propagated-inputs
973 `(("serd" ,serd)
332aad1b
RW
974 ("sord" ,sord)
975 ("sratom" ,sratom)))
ff7df27d
RW
976 (inputs
977 `(("lv2" ,lv2)))
332aad1b
RW
978 (native-inputs
979 `(("pkg-config" ,pkg-config)))
980 (home-page "http://drobilla.net/software/lilv/")
981 (synopsis "Library to simplify use of LV2 plugins in applications")
982 (description
983 "Lilv is a C library to make the use of LV2 plugins as simple as possible
984for applications. Lilv is the successor to SLV2, rewritten to be
985significantly faster and have minimal dependencies.")
986 (license license:isc)))
987
e2420191
RW
988(define-public lv2
989 (package
990 (name "lv2")
2e189eb8 991 (version "1.12.0")
e2420191
RW
992 (source (origin
993 (method url-fetch)
994 (uri (string-append "http://lv2plug.in/spec/lv2-"
995 version
996 ".tar.bz2"))
997 (sha256
998 (base32
2e189eb8 999 "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks"))))
e2420191
RW
1000 (build-system waf-build-system)
1001 (arguments
1002 `(#:tests? #f ; no check target
2e189eb8 1003 #:configure-flags '("--no-plugins")))
e2420191
RW
1004 (inputs
1005 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
1006 `(("libsndfile" ,libsndfile)))
1007 (native-inputs
1008 `(("pkg-config" ,pkg-config)))
1009 (home-page "http://lv2plug.in/")
1010 (synopsis "LV2 audio plugin specification")
1011 (description
1012 "LV2 is an open specification for audio plugins and host applications.
1013At its core, LV2 is a simple stable interface, accompanied by extensions which
1014add functionality to support the needs of increasingly powerful audio
1015software.")
1016 (license license:isc)))
5279eb6f 1017
98247127
RW
1018(define-public lv2-mda-piano
1019 (package
1020 (name "lv2-mda-piano")
1021 (version "0.0.2")
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
f6f499b3 1025 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
98247127
RW
1026 (commit version)))
1027 (sha256
1028 (base32
1029 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
1030 (build-system gnu-build-system)
1031 (arguments
1032 `(#:make-flags (list
1033 "TYPE=mdaPiano"
1034 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1035 #:tests? #f ; no check target
1036 #:phases (alist-delete 'configure %standard-phases)))
1037 (inputs
1038 `(("lv2" ,lv2)
1039 ("lvtk" ,lvtk)))
1040 (native-inputs
1041 `(("pkg-config" ,pkg-config)))
1042 (native-search-paths
1043 (list (search-path-specification
1044 (variable "LV2_PATH")
1045 (files '("lib/lv2")))))
1046 (home-page "http://elephly.net/lv2/mdapiano.html")
1047 (synopsis "LV2 port of the mda Piano plugin")
1048 (description "An LV2 port of the mda Piano VSTi.")
1049 (license license:gpl3+)))
1050
8fb79e3d
RW
1051(define-public lv2-mda-epiano
1052 (package (inherit lv2-mda-piano)
1053 (name "lv2-mda-epiano")
1054 (arguments
1055 `(#:make-flags (list
1056 "TYPE=mdaEPiano"
1057 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1058 #:tests? #f ; no check target
1059 #:phases (alist-delete 'configure %standard-phases)))
1060 (home-page "http://elephly.net/lv2/mdaepiano.html")
1061 (synopsis "LV2 port of the mda EPiano plugin")
1062 (description "An LV2 port of the mda EPiano VSTi.")))
1063
c1718190
RW
1064(define-public lvtk
1065 (package
1066 (name "lvtk")
1067 (version "1.2.0")
1068 (source (origin
1069 (method url-fetch)
1070 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1071 version
1072 ".tar.gz"))
f586c877 1073 (file-name (string-append name "-" version ".tar.gz"))
c1718190
RW
1074 (sha256
1075 (base32
1076 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1077 (build-system waf-build-system)
1078 (arguments
1079 `(#:tests? #f ; no check target
1080 #:python ,python-2
1081 #:configure-flags
1082 (list (string-append "--boost-includes="
1083 (assoc-ref %build-inputs "boost")
1084 "/include"))))
1085 (inputs
1086 `(("boost" ,boost)
1087 ("lv2" ,lv2)))
1088 (native-inputs
1089 `(("pkg-config" ,pkg-config)))
1090 (home-page "https://github.com/lvtk/lvtk")
1091 (synopsis "C++ libraries for LV2 plugins")
1092 (description
1093 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1094extensions into easy to use C++ classes. It is the successor of
1095lv2-c++-tools.")
1096 (license license:gpl3+)))
1097
f2fac359
TUBK
1098(define-public openal
1099 (package
1100 (name "openal")
1101 (version "1.15.1")
1102 (source (origin
1103 (method url-fetch)
1104 (uri (string-append
1105 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1106 version ".tar.bz2"))
1107 (sha256
1108 (base32
1109 "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
1110 (build-system cmake-build-system)
1111 (arguments
7ee5db15
RW
1112 `(#:tests? #f ; no check target
1113 #:phases
1114 (modify-phases %standard-phases
1115 (add-after
1116 'unpack 'use-full-library-paths
1117 (lambda* (#:key inputs #:allow-other-keys)
1118 (substitute* "Alc/backends/pulseaudio.c"
1119 (("#define PALIB \"libpulse\\.so\\.0\"")
1120 (string-append "#define PALIB \""
1121 (assoc-ref inputs "pulseaudio")
1122 "/lib/libpulse.so.0"
1123 "\"")))
1124 (substitute* "Alc/backends/alsa.c"
1125 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1126 (string-append "LoadLib(\""
1127 (assoc-ref inputs "alsa-lib")
1128 "/lib/libasound.so.2"
1129 "\")")))
1130 #t)))))
f2fac359
TUBK
1131 (inputs
1132 `(("alsa-lib" ,alsa-lib)
1133 ("pulseaudio" ,pulseaudio)))
1134 (synopsis "3D audio API")
1135 (description
1136 "OpenAL provides capabilities for playing audio in a virtual 3D
1137environment. Distance attenuation, doppler shift, and directional sound
1138emitters are among the features handled by the API. More advanced effects,
1139including air absorption, occlusion, and environmental reverb, are available
1140through the EFX extension. It also facilitates streaming audio, multi-channel
1141buffers, and audio capture.")
1142 (home-page "http://kcat.strangesoft.net/openal.html")
1143 (license license:lgpl2.0+)))
1144
4443bb8d
RW
1145(define-public patchage
1146 (package
1147 (name "patchage")
1148 (version "1.0.0")
1149 (source (origin
1150 (method url-fetch)
1151 (uri (string-append "http://download.drobilla.net/patchage-"
1152 version
1153 ".tar.bz2"))
1154 (sha256
1155 (base32
1156 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1157 (build-system waf-build-system)
1158 (arguments `(#:tests? #f)) ; no check target
1159 (inputs
1160 `(("alsa-lib" ,alsa-lib)
1161 ("boost" ,boost)
1162 ("jack" ,jack-1)
4443bb8d 1163 ("ganv" ,ganv)
4443bb8d
RW
1164 ("glibmm" ,glibmm)
1165 ("gtkmm" ,gtkmm-2)
4443bb8d
RW
1166 ("dbus-glib" ,dbus-glib)))
1167 (native-inputs
1168 `(("pkg-config" ,pkg-config)))
1169 (home-page "http://drobilla.net/software/patchage/")
1170 (synopsis "Modular patch bay for audio and MIDI systems")
1171 (description
1172 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1173and ALSA.")
1174 (license license:gpl3+)))
1175
b22755be
RW
1176(define-public raul
1177 (package
1178 (name "raul")
1179 (version "0.8.0")
1180 (source (origin
1181 (method url-fetch)
1182 (uri (string-append "http://download.drobilla.net/raul-"
1183 version ".tar.bz2"))
1184 (sha256
1185 (base32
1186 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
1187 (build-system waf-build-system)
1188 (arguments
1189 `(#:python ,python-2
1190 #:tests? #f)) ; no check target
1191 (inputs
1192 `(("glib" ,glib)
1193 ("boost" ,boost)))
1194 (native-inputs
1195 `(("pkg-config" ,pkg-config)))
1196 (home-page "http://drobilla.net/software/raul/")
1197 (synopsis "Real-time audio utility library")
1198 (description
1199 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
1200aimed at audio/musical applications.")
1201 (license license:gpl2+)))
1202
57238ff2
RW
1203(define-public rubberband
1204 (package
1205 (name "rubberband")
1206 (version "1.8.1")
1207 (source (origin
1208 (method url-fetch)
1209 (uri
1210 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
1211 version
1212 ".tar.bz2"))
1213 (sha256
1214 (base32
1215 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
1216 (build-system gnu-build-system)
1217 (arguments `(#:tests? #f)) ; no check target
1218 (inputs
1219 `(("ladspa" ,ladspa)
1220 ("libsamplerate" ,libsamplerate)
1221 ("vamp" ,vamp)))
1222 (native-inputs
1223 `(("pkg-config" ,pkg-config)))
1224 (home-page "http://breakfastquay.com/rubberband/")
1225 (synopsis "Audio time-stretching and pitch-shifting library")
1226 (description
1227 "Rubber Band is a library and utility program that permits changing the
1228tempo and pitch of an audio recording independently of one another.")
1229 (license license:gpl2+)))
1230
cc45cff8
RW
1231(define-public rtmidi
1232 (package
1233 (name "rtmidi")
1234 (version "2.1.0")
1235 (source (origin
1236 (method url-fetch)
1237 (uri
1238 (string-append "https://github.com/powertab/rtmidi/archive/"
1239 version ".tar.gz"))
1240 (file-name (string-append name "-" version ".tar.gz"))
1241 (sha256
1242 (base32
1243 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
1244 (build-system gnu-build-system)
1245 (arguments
1246 `(#:tests? #f ;no "check" target
1247 #:phases (modify-phases %standard-phases
1248 (add-before
1249 'configure 'autoconf
1250 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
1251 (add-before
1252 'build 'fix-makefile
1253 (lambda _
1254 (substitute* "Makefile"
1255 (("/bin/ln") "ln")
1256 (("RtMidi.h RtError.h") "RtMidi.h"))
1257 #t))
1258 (add-before
1259 'install 'make-target-dirs
1260 (lambda _
1261 (let ((out (assoc-ref %outputs "out")))
1262 (mkdir-p (string-append out "/bin"))
1263 (mkdir (string-append out "/lib"))
1264 (mkdir (string-append out "/include")))
1265 #t)))))
1266 (inputs
1267 `(("jack" ,jack-1)
1268 ("alsa-lib" ,alsa-lib)))
1269 (native-inputs
1270 `(("autoconf" ,autoconf)
1271 ("automake" ,automake)
1272 ("libtool" ,libtool)
1273 ("pkg-config" ,pkg-config)))
1274 (home-page "https://github.com/powertab/rtmidi")
1275 (synopsis "Cross-platform MIDI library for C++")
1276 (description
1277 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
1278classes) that provide a common cross-platform API for realtime MIDI
1279input/output.")
1280 (license license:expat)))
1281
5279eb6f
RW
1282(define-public sratom
1283 (package
1284 (name "sratom")
1285 (version "0.4.6")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "http://download.drobilla.net/sratom-"
1289 version
1290 ".tar.bz2"))
1291 (sha256
1292 (base32
1293 "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
1294 (build-system waf-build-system)
1295 (arguments `(#:tests? #f)) ; no check target
1296 (inputs
1297 `(("lv2" ,lv2)
1298 ("serd" ,serd)
1299 ("sord" ,sord)))
1300 (native-inputs
1301 `(("pkg-config" ,pkg-config)))
1302 (home-page "http://drobilla.net/software/sratom/")
1303 (synopsis "Library for serialising LV2 atoms to/from RDF")
1304 (description
1305 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
1306the Turtle syntax.")
1307 (license license:isc)))
f3ab6ad3
RW
1308
1309(define-public suil
1310 (package
1311 (name "suil")
1312 (version "0.8.2")
1313 (source (origin
1314 (method url-fetch)
1315 (uri (string-append "http://download.drobilla.net/suil-"
1316 version
1317 ".tar.bz2"))
1318 (sha256
1319 (base32
1320 "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
1321 (build-system waf-build-system)
1322 (arguments `(#:tests? #f)) ; no check target
1323 (inputs
1324 `(("lv2" ,lv2)
1325 ("gtk+-2" ,gtk+-2)
1326 ("qt-4" ,qt-4)))
1327 (native-inputs
1328 `(("pkg-config" ,pkg-config)))
1329 (home-page "http://drobilla.net/software/suil/")
1330 (synopsis "Library for loading and wrapping LV2 plugin UIs")
1331 (description
1332 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
1333
1334Suil makes it possible to load a UI of a toolkit in a host using another
1335toolkit. The API is designed such that hosts do not need to explicitly
1336support specific toolkits – if Suil supports a particular toolkit, then UIs in
1337that toolkit will work in all hosts that use Suil automatically.
1338
1339Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
1340 (license license:isc)))
db46f2fc 1341
9ffee457
RW
1342(define-public timidity++
1343 (package
1344 (name "timidity++")
1345 (version "2.14.0")
1346 (source (origin
1347 (method url-fetch)
1348 (uri (string-append
1349 "mirror://sourceforge/timidity/TiMidity++-"
1350 version ".tar.bz2"))
1351 (sha256
1352 (base32
1353 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
1354 (build-system gnu-build-system)
1355 (arguments
1356 '(#:configure-flags
1357 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
1358 "--enable-ncurses"
1359 "--enable-server"
1360 "--enable-alsaseq"
1361 (string-append "--with-default-path="
1362 (assoc-ref %outputs "out") "/etc/timidity"))
1363 #:phases
1364 (alist-cons-after
1365 'install 'install-config
1366 (lambda _
1367 (let ((out (string-append (assoc-ref %outputs "out")
1368 "/etc/timidity")))
1369 (mkdir-p out)
1370 (call-with-output-file
1371 (string-append out "/timidity.cfg")
1372 (lambda (port)
1373 (format port (string-append "source "
1374 (assoc-ref %build-inputs "freepats")
1375 "/share/freepats/freepats.cfg"))))))
1376 %standard-phases)))
1377 (inputs
1378 `(("alsa-lib" ,alsa-lib)
1379 ("ao" ,ao)
1380 ("flac" ,flac)
1381 ("jack" ,jack-1)
1382 ("libogg" ,libogg)
1383 ("speex" ,speex)
1384 ("ncurses" ,ncurses)
1385 ("freepats" ,freepats)))
1386 (native-inputs
1387 `(("pkg-config" ,pkg-config)))
1388 (home-page "http://timidity.sourceforge.net/")
1389 (synopsis "Software synthesizer for playing MIDI files")
1390 (description
1391 "TiMidity++ is a software synthesizer. It can play MIDI files by
1392converting them into PCM waveform data; give it a MIDI data along with digital
1393instrument data files, then it synthesizes them in real-time, and plays. It
1394can not only play sounds, but also can save the generated waveforms into hard
1395disks as various audio file formats.")
1396 (license license:gpl2+)))
1397
db46f2fc
RW
1398(define-public vamp
1399 (package
1400 (name "vamp")
b1fb59d3 1401 (version "2.6")
db46f2fc
RW
1402 (source (origin
1403 (method url-fetch)
1404 (uri (string-append
1405 "https://code.soundsoftware.ac.uk"
494e9b91 1406 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 1407 version ".tar.gz"))
9002e17c
TUBK
1408 (sha256
1409 (base32
494e9b91 1410 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 1411 (build-system gnu-build-system)
9002e17c
TUBK
1412 (arguments
1413 `(#:tests? #f ; no check target
1414 #:phases
1415 (alist-cons-after
1416 'install 'remove-libvamp-hostsdk.la
1417 (lambda* (#:key outputs #:allow-other-keys)
1418 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
1419 (for-each delete-file
1420 (let ((out (assoc-ref outputs "out")))
1421 (list (string-append out "/lib/libvamp-sdk.la")
1422 (string-append out "/lib/libvamp-hostsdk.la"))))
1423 #t)
1424 %standard-phases)))
db46f2fc
RW
1425 (inputs
1426 `(("libsndfile" ,libsndfile)))
1427 (native-inputs
1428 `(("pkg-config" ,pkg-config)))
1429 (home-page "http://vamp-plugins.org")
1430 (synopsis "Modular and extensible audio processing system")
1431 (description
1432 "Vamp is an audio processing plugin system for plugins that extract
1433descriptive information from audio data — typically referred to as audio
1434analysis plugins or audio feature extraction plugins.")
1435 (license
1436 (license:x11-style
1437 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
1438
1439(define-public libsbsms
1440 (package
1441 (name "libsbsms")
1442 (version "2.0.2")
1443 (source
1444 (origin
1445 (method url-fetch)
1446 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
1447 "/libsbsms-" version ".tar.gz"))
1448 (sha256
1449 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
1450 (build-system gnu-build-system)
1451 (native-inputs `(("automake" ,automake)))
1452 (arguments
476b2877
MW
1453 `(#:configure-flags
1454 ;; Disable the use of SSE unless on x86_64.
1455 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
1456 (%current-system))))
1457 ''("--disable-sse")
1458 ''())
1459 #:phases
09c414d8
MW
1460 (modify-phases %standard-phases
1461 (add-after
1462 'unpack 'fix-ar-lib-path
1463 (lambda* (#:key inputs #:allow-other-keys)
1464 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
1465 (delete-file "ar-lib")
1466 (symlink
1467 (string-append (assoc-ref inputs "automake") "/share/automake-"
1468 ,(package-version automake) "/ar-lib")
1469 "ar-lib"))))))
9f1cdd9d
TUBK
1470 (home-page "http://sbsms.sourceforge.net/")
1471 (synopsis "Library for time stretching and pitch scaling of audio")
1472 (description
1473 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
1474stretching and pitch scaling of audio. This package contains the library.")
1475 ;; There is no explicit declaration of a license, but a COPYING file
1476 ;; containing gpl2.
1477 (license license:gpl2)))
754a98ae 1478
01b90919
SB
1479(define-public wavpack
1480 (package
1481 (name "wavpack")
1482 (version "4.70.0")
1483 (source (origin
1484 (method url-fetch)
1485 (uri (string-append "http://www.wavpack.com/"
1486 name "-" version ".tar.bz2"))
1487 (sha256
1488 (base32
1489 "191h8hv8qk72hfh1crg429i9yq3cminwqb249sy9zadbn1wy7b9c"))))
1490 (build-system gnu-build-system)
60950faa
SB
1491 (arguments
1492 `(#:configure-flags
1493 ;; wavpack.pc.in lacks path substitution for 'exec_prefix'.
1494 (list (string-append "--libdir=" %output "/lib"))))
01b90919
SB
1495 (home-page "http://www.wavpack.com/")
1496 (synopsis "Hybrid lossless audio codec")
1497 (description
1498 "WavPack is an audio compression format with lossless, lossy and hybrid
1499compression modes. This package contains command-line programs and library to
1500encode and decode wavpack files.")
1501 (license license:bsd-3)))
1502
a176dd7e
SB
1503(define-public libmodplug
1504 (package
1505 (name "libmodplug")
1506 (version "0.8.8.5")
1507 (source (origin
1508 (method url-fetch)
1509 (uri (string-append
1510 "mirror://sourceforge/project/modplug-xmms/"
1511 name "/" version "/" name "-" version ".tar.gz"))
1512 (sha256
1513 (base32
1514 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
1515 (build-system gnu-build-system)
1516 (home-page "http://modplug-xmms.sourceforge.net/")
1517 (synopsis "Mod file playing library")
1518 (description
1519 "Libmodplug renders mod music files as raw audio data, for playing or
1520conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
1521supported. Optional features include high-quality resampling, bass expansion,
1522surround and reverb.")
1523 (license license:public-domain)))
1524
b97b5cda
SB
1525(define-public libxmp
1526 (package
1527 (name "libxmp")
1528 (version "4.3.8")
1529 (source (origin
1530 (method url-fetch)
1531 (uri (string-append "mirror://sourceforge/xmp/libxmp/"
1532 name "-" version ".tar.gz"))
1533 (sha256
1534 (base32
1535 "0h06091hlpgc6ds4pjmfq8sx4snw7av3nhny180q4pwfyasjb6ny"))))
1536 (build-system gnu-build-system)
1537 (home-page "http://xmp.sourceforge.net/")
1538 (synopsis "Module player library")
1539 (description
1540 "Libxmp is a library that renders module files to PCM data. It supports
1541over 90 mainstream and obscure module formats including Protracker (MOD),
1542Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
1543 (license license:lgpl2.1+)))
1544
3ec4bba4
SB
1545(define-public xmp
1546 (package
1547 (name "xmp")
1548 (version "4.0.10")
1549 (source (origin
1550 (method url-fetch)
1551 (uri (string-append "mirror://sourceforge/xmp/xmp/"
1552 name "-" version ".tar.gz"))
1553 (sha256
1554 (base32
1555 "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n"))))
1556 (build-system gnu-build-system)
1557 (native-inputs
1558 `(("pkg-config" ,pkg-config)))
1559 (inputs
1560 `(("libxmp" ,libxmp)
1561 ("pulseaudio" ,pulseaudio)))
1562 (home-page "http://xmp.sourceforge.net/")
1563 (synopsis "Extended module player")
1564 (description
1565 "Xmp is a portable module player that plays over 90 mainstream and
1566obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
1567Tracker 3 S3M and Impulse Tracker IT files.")
1568 (license license:gpl2+)))
1569
754a98ae
TUBK
1570(define-public soundtouch
1571 (package
1572 (name "soundtouch")
1573 (version "1.8.0")
1574 (source
1575 (origin
1576 (method url-fetch)
1577 (uri
1578 (string-append
1579 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
1580 (sha256
1581 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
1582 (build-system gnu-build-system)
1583 (native-inputs
1584 `(("autoconf" ,autoconf)
1585 ("automake" ,automake)
1586 ("libtool" ,libtool)
1587 ("file" ,file)))
1588 (arguments
1589 '(#:phases
722ec722
MW
1590 (alist-cons-after
1591 'unpack 'bootstrap
754a98ae 1592 (lambda _
722ec722 1593 (zero? (system* "sh" "bootstrap")))
754a98ae
TUBK
1594 %standard-phases)))
1595 (home-page "http://www.surina.net/soundtouch/")
1596 (synopsis
1597 "Audio processing library for changing tempo, pitch and playback rate")
1598 (description
1599 "SoundTouch is an audio processing library for changing the tempo, pitch
1600and playback rates of audio streams or audio files. It is intended for
1601application developers writing sound processing tools that require tempo/pitch
1602control functionality, or just for playing around with the sound effects.")
1603 (license license:lgpl2.1+)))
4bddd14c 1604
d739f481
AK
1605(define-public sox
1606 (package
1607 (name "sox")
1608 (version "14.4.2")
1609 (source (origin
1610 (method url-fetch)
1611 (uri (string-append "mirror://sourceforge/sox/sox-"
1612 version ".tar.bz2"))
1613 (sha256
1614 (base32
1615 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
1616 (build-system gnu-build-system)
1617 (arguments
1618 '(#:configure-flags
1619 ;; The upstream asks to identify the distribution to diagnose SoX
1620 ;; bug reports.
1621 '("--with-distro=Guix System Distribution")))
1622 (native-inputs
1623 `(("pkg-config" ,pkg-config)))
1624 (inputs
1625 `(("alsa-lib" ,alsa-lib)
1626 ("ao" ,ao)
1627 ("flac" ,flac)
1628 ("lame" ,lame)
1629 ("libid3tag" ,libid3tag)
1630 ("libltdl" ,libltdl)
1631 ("libmad" ,libmad)
1632 ("libpng" ,libpng)
1633 ("libvorbis" ,libvorbis)
1634 ("pulseaudio" ,pulseaudio)))
1635 (home-page "http://sox.sourceforge.net")
1636 (synopsis "Sound processing utility")
1637 (description
1638 "SoX (Sound eXchange) is a command line utility that can convert
1639various formats of computer audio files to other formats. It can also
1640apply various effects to these sound files, and, as an added bonus, SoX
1641can play and record audio files.")
1642 ;; sox.c is distributed under GPL, while the files that make up
1643 ;; libsox are licensed under LGPL.
1644 (license (list license:gpl2+ license:lgpl2.1+))))
1645
4bddd14c
TUBK
1646(define-public soxr
1647 (package
1648 (name "soxr")
1649 (version "0.1.1")
1650 (source
1651 (origin
1652 (method url-fetch)
1653 (uri
1654 (string-append "mirror://sourceforge/soxr/soxr-" version
1655 "-Source.tar.xz"))
1656 (sha256
1657 (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw"))))
1658 (build-system cmake-build-system)
1659 (arguments '(#:tests? #f)) ;no 'check' target
1660 (home-page "http://sourceforge.net/p/soxr/wiki/Home/")
1661 (synopsis "One-dimensional sample-rate conversion library")
1662 (description
1663 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
1664conversion. It may be used, for example, to resample PCM-encoded audio.")
1665 (license license:lgpl2.1+)))
49f36708
TUBK
1666
1667(define-public twolame
1668 (package
1669 (name "twolame")
1670 (version "0.3.13")
1671 (source
1672 (origin
1673 (method url-fetch)
1674 (uri (string-append
1675 "mirror://sourceforge/twolame/twolame-" version ".tar.gz"))
1676 (sha256
1677 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))))
1678 (build-system gnu-build-system)
1679 (inputs
1680 `(("libsndfile" ,libsndfile)))
1681 (native-inputs
1682 `(("perl" ,perl)
1683 ("which" ,which))) ;used in tests/test.pl
1684 (home-page "http://www.twolame.org/")
1685 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
1686 (description
1687 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
1688tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
1689portions of LAME.")
1690 (license license:lgpl2.1+)))
bd4464f2
TUBK
1691
1692(define-public portaudio
1693 (package
1694 (name "portaudio")
1695 (version "19.20140130")
1696 (source
1697 (origin
1698 (method url-fetch)
1699 (uri (string-append
1700 "http://www.portaudio.com/archives/pa_stable_v"
1701 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
1702 ".tgz"))
1703 (sha256
b47be021
TUBK
1704 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
1705 (patches (list (search-patch "portaudio-audacity-compat.patch")))))
bd4464f2
TUBK
1706 (build-system gnu-build-system)
1707 (inputs
1708 ;; TODO: Add ASIHPI.
1709 `(("alsa-lib" ,alsa-lib)
bcbc02fd 1710 ("jack" ,jack-1)))
bd4464f2 1711 (native-inputs
b47be021
TUBK
1712 `(("autoconf" ,autoconf)
1713 ("automake" ,automake)
1714 ("libtool" ,libtool)
1715 ("pkg-config" ,pkg-config)))
1716 (arguments
1717 '(#:phases
1718 ;; Autoreconf is necessary because the audacity-compat patch modifies
1719 ;; .in files.
1720 (alist-cons-after
1721 'unpack 'autoreconf
1722 (lambda _
1723 (zero? (system* "autoreconf" "-vif")))
1724 %standard-phases)
1725 #:tests? #f)) ;no 'check' target
bd4464f2
TUBK
1726 (home-page "http://www.portaudio.com/")
1727 (synopsis "Audio I/O library")
1728 (description
1729 "PortAudio is a portable C/C++ audio I/O library providing a simple API
1730to record and/or play sound using a callback function or a blocking read/write
1731interface.")
1732 (license license:expat)))
74bbf894 1733
fe73aef4
RW
1734(define-public qsynth
1735 (package
1736 (name "qsynth")
a228fce5 1737 (version "0.4.0")
fe73aef4
RW
1738 (source
1739 (origin
1740 (method url-fetch)
1741 (uri (string-append
1742 "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
1743 (sha256
a228fce5 1744 (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
fe73aef4
RW
1745 (build-system gnu-build-system)
1746 (arguments
1747 `(#:tests? #f)) ; no "check" phase
1748 (inputs
1749 `(("qt" ,qt)
1750 ("fluidsynth" ,fluidsynth)))
1751 (home-page "http://qsynth.sourceforge.net")
1752 (synopsis "Graphical user interface for FluidSynth")
1753 (description
1754 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
1755synthesizer written in C++.")
1756 (license license:gpl2+)))
1757
55b596c3
TUBK
1758(define-public rsound
1759 (package
1760 (name "rsound")
1761 (version "1.1")
1762 (source
1763 (origin
1764 (method url-fetch)
1765 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
1766 version ".tar.gz"))
01e327b5 1767 (file-name (string-append name "-" version))
55b596c3
TUBK
1768 (sha256
1769 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
1770 (build-system gnu-build-system)
1771 (inputs
1772 `(("alsa-lib" ,alsa-lib)
276f49df 1773 ("jack" ,jack-1)
55b596c3
TUBK
1774 ("ao" ,ao)
1775 ("libsamplerate" ,libsamplerate)
1776 ("openal" ,openal)
1777 ("portaudio" ,portaudio)
1778 ("pulseaudio" ,pulseaudio)))
1779 (arguments
1780 '(#:phases
1781 (alist-replace
1782 'configure
1783 (lambda* (#:key outputs #:allow-other-keys)
1784 (setenv "CC" "gcc")
1785 (zero?
1786 (system* "./configure"
1787 (string-append "--prefix=" (assoc-ref outputs "out")))))
1788 %standard-phases)
1789 ;; No 'check' target.
1790 #:tests? #f))
1791 (home-page "http://themaister.net/rsound.html")
1792 (synopsis "Networked audio system")
1793 (description
1794 "RSound allows you to send audio from an application and transfer it
1795directly to a different computer on your LAN network. It is an audio daemon
1796with a much different focus than most other audio daemons.")
1797 (license license:gpl3+)))
1798
caf9055c
RW
1799(define-public xjackfreak
1800 (package
1801 (name "xjackfreak")
1802 (version "1.0")
1803 (source (origin
1804 (method url-fetch)
1805 (uri (string-append
1806 "https://github.com/johnhldavis/xjackfreak/archive/v"
1807 version ".tar.gz"))
1808 (file-name (string-append name "-" version ".tar.gz"))
1809 (sha256
1810 (base32
1811 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
1812 (build-system gnu-build-system)
1813 (arguments
1814 `(#:make-flags
1815 (list (string-append "docdir=" (assoc-ref %outputs "out")
1816 "/share/doc/xjackfreak"))))
1817 (inputs
1818 `(("jack" ,jack-1)
1819 ("libx11" ,libx11)
1820 ("libxt" ,libxt)
1821 ("libxext" ,libxext)))
1822 (native-inputs
1823 `(("pkg-config" ,pkg-config)))
1824 (home-page "https://github.com/johnhldavis/xjackfreak")
1825 (synopsis "JACK audio frequency analyzer and display")
1826 (description
1827 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
1828Connection Kit. It can display the FFT of any input, modify it and output the
1829result.")
1830 (license license:gpl3+)))
1831
d73f7909
RW
1832(define-public zita-convolver
1833 (package
1834 (name "zita-convolver")
1835 (version "3.1.0")
1836 (source (origin
1837 (method url-fetch)
1838 (uri (string-append
1839 "http://kokkinizita.linuxaudio.org"
1840 "/linuxaudio/downloads/zita-convolver-"
1841 version ".tar.bz2"))
29e255ca
SB
1842 (snippet
1843 ;; Don't optimize for a specific processor architecture.
1844 '(substitute* "libs/Makefile"
1845 (("^CXXFLAGS \\+= -march=native") "")))
1846 (modules '((guix build utils)))
d73f7909
RW
1847 (sha256
1848 (base32
1849 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
1850 (build-system gnu-build-system)
1851 (arguments
1852 `(#:tests? #f ; no "check" target
1853 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1854 #:phases
1855 (alist-cons-after
1856 'unpack 'patch-makefile-and-enter-directory
1857 (lambda _
1858 (substitute* "libs/Makefile"
1859 (("ldconfig") "true")
1860 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1861 (chdir "libs") #t)
1862 (alist-cons-after
1863 'install
1864 'install-symlink
1865 (lambda _
1866 (symlink "libzita-convolver.so"
1867 (string-append (assoc-ref %outputs "out")
1868 "/lib/libzita-convolver.so.3")))
1869 ;; no configure script
1870 (alist-delete 'configure %standard-phases)))))
1871 (inputs `(("fftwf" ,fftwf)))
1872 (home-page "http://kokkinizita.linuxaudio.org")
1873 (synopsis "Fast, partitioned convolution engine library")
1874 (description
1875 "Zita convolver is a C++ library providing a real-time convolution
1876engine.")
1877 (license license:gpl3+)))
1878
b7ed6784
RW
1879(define-public zita-resampler
1880 (package
1881 (name "zita-resampler")
1882 (version "1.3.0")
1883 (source (origin
1884 (method url-fetch)
1885 (uri (string-append
1886 "http://kokkinizita.linuxaudio.org"
1887 "/linuxaudio/downloads/zita-resampler-"
1888 version ".tar.bz2"))
6dff4955
SB
1889 (snippet
1890 ;; Don't optimize for a specific processor architecture.
1891 '(substitute* '("apps/Makefile" "libs/Makefile")
1892 (("^CXXFLAGS \\+= -march=native") "")))
1893 (modules '((guix build utils)))
b7ed6784
RW
1894 (sha256
1895 (base32
1896 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
1897 (build-system gnu-build-system)
1898 (arguments
1899 `(#:tests? #f ; no "check" target
1900 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1901 #:phases
1902 (modify-phases %standard-phases
1903 (add-after
1904 'unpack 'patch-makefile-and-enter-directory
1905 (lambda _
1906 (substitute* "libs/Makefile"
1907 (("ldconfig") "true")
1908 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1909 (chdir "libs")
1910 #t))
1911 (add-after
1912 'install 'install-symlink
1913 (lambda _
1914 (symlink "libzita-resampler.so"
1915 (string-append (assoc-ref %outputs "out")
1916 "/lib/libzita-resampler.so.1"))))
1917 ;; no configure script
1918 (delete 'configure))))
1919 (home-page "http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
1920 (synopsis "C++ library for resampling audio signals")
1921 (description
1922 "Libzita-resampler is a C++ library for resampling audio signals. It is
1923designed to be used within a real-time processing context, to be fast, and to
1924provide high-quality sample rate conversion.")
1925 (license license:gpl3+)))
1926
74bbf894
RW
1927(define-public zita-alsa-pcmi
1928 (package
1929 (name "zita-alsa-pcmi")
1930 (version "0.2.0")
1931 (source (origin
1932 (method url-fetch)
1933 (uri (string-append
1934 "http://kokkinizita.linuxaudio.org"
1935 "/linuxaudio/downloads/zita-alsa-pcmi-"
1936 version ".tar.bz2"))
1937 (sha256
1938 (base32
9569dfc8 1939 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
1940 (build-system gnu-build-system)
1941 (arguments
1942 `(#:tests? #f ; no "check" target
1943 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1944 #:phases
1945 (alist-cons-after
9569dfc8
RW
1946 'unpack 'patch-makefile-and-enter-directory
1947 (lambda _
1948 (substitute* "libs/Makefile"
1949 (("ldconfig") "true")
1950 (("^LIBDIR =.*") "LIBDIR = lib\n"))
1951 (chdir "libs")
1952 #t)
74bbf894
RW
1953 (alist-cons-after
1954 'install
1955 'install-symlink
1956 (lambda _
1957 (symlink "libzita-alsa-pcmi.so"
1958 (string-append (assoc-ref %outputs "out")
1959 "/lib/libzita-alsa-pcmi.so.0")))
1960 ;; no configure script
1961 (alist-delete 'configure %standard-phases)))))
1962 (inputs
1963 `(("alsa-lib" ,alsa-lib)
1964 ("fftw" ,fftw)))
1965 (home-page "http://kokkinizita.linuxaudio.org")
1966 (synopsis "C++ wrapper around the ALSA API")
1967 (description
1968 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
1969access to ALSA PCM devices, taking care of the many functions required to
1970open, initialise and use a hw: device in mmap mode, and providing floating
1971point audio data.")
1972 (license license:gpl3+)))
6da16993
LF
1973
1974(define-public cuetools
1975 (package
1976 (name "cuetools")
1977 (version "1.4.1")
1978 (source (origin
1979 (method url-fetch)
1980 (uri (string-append "https://github.com/svend/cuetools/archive/"
1981 version ".tar.gz"))
1982 (file-name (string-append name "-" version ".tar.gz"))
1983 (sha256
1984 (base32
1985 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
1986 (build-system gnu-build-system)
1987 ;; The source tarball is not bootstrapped.
1988 (arguments
1989 `(#:phases
1990 (modify-phases %standard-phases
1991 (add-after 'unpack 'bootstrap
1992 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
1993 ;; Bootstrapping tools
1994 (native-inputs
1995 `(("autoconf" ,autoconf)
1996 ("automake" ,automake)
1997 ("flex" ,flex)
1998 ("bison" ,bison)))
1999 (synopsis "Cue and toc file parsers and utilities")
2000 (description "Cuetools is a set of programs that are useful for manipulating
2001and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
2002files are a way to represent the layout of a data or audio CD in a
2003machine-readable ASCII format.")
2004 (home-page "https://github.com/svend/cuetools")
2005 (license license:gpl2+)))
6819a8dd
LF
2006
2007(define-public shntool
2008 (package
2009 (name "shntool")
2010 (version "3.0.10")
2011 (source (origin
2012 (method url-fetch)
2013 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
2014 "shntool-" version ".tar.gz"))
2015 (sha256
2016 (base32
2017 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
2018 (build-system gnu-build-system)
2019 (synopsis "WAVE audio data processing tool")
2020 (description "shntool is a multi-purpose WAVE data processing and reporting
2021utility. File formats are abstracted from its core, so it can process any file
2022that contains WAVE data, compressed or not---provided there exists a format
2023module to handle that particular file type.")
2024 (home-page "http://etree.org/shnutils/shntool/")
2025 (license license:gpl3+)))