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