gnu: r-scater: Update to 1.8.0.
[jackhill/guix/guix.git] / gnu / packages / audio.scm
CommitLineData
fb68469f 1;;; GNU Guix --- Functional package management for GNU
78357403 2;;; Copyright © 2015, 2016, 2017, 2018 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>
1207a0c3 6;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
3e0e9e16 7;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
eb5378f9 8;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
4a78fd46 9;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
9a4c032c 10;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
7a0ba651 11;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
c2c0d661 12;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
9073c875 13;;; Copyright © 2018 okapi <okapi@firemail.cc>
247384d0 14;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
77cc8778 15;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
fb68469f
RW
16;;;
17;;; This file is part of GNU Guix.
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages audio)
33 #:use-module (guix packages)
34 #:use-module (guix download)
35 #:use-module (guix git-download)
d49976ed 36 #:use-module (guix utils)
fb68469f
RW
37 #:use-module ((guix licenses) #:prefix license:)
38 #:use-module (guix build-system gnu)
c54a8981 39 #:use-module (guix build-system waf)
7c92efff 40 #:use-module (guix build-system trivial)
4bddd14c 41 #:use-module (guix build-system cmake)
a91d72e2 42 #:use-module (guix build-system python)
d0c8e524 43 #:use-module (guix build-system glib-or-gtk)
fb68469f 44 #:use-module (gnu packages)
d55f912a 45 #:use-module (gnu packages algebra)
9f1cdd9d 46 #:use-module (gnu packages autotools)
fcbeb00b 47 #:use-module (gnu packages avahi)
88efb2c3 48 #:use-module (gnu packages boost)
a76abae1 49 #:use-module (gnu packages backup)
7c92efff 50 #:use-module (gnu packages base)
fda85ca6 51 #:use-module (gnu packages bison)
971ebdc8 52 #:use-module (gnu packages check)
7c92efff 53 #:use-module (gnu packages compression)
88efb2c3 54 #:use-module (gnu packages curl)
fb68469f 55 #:use-module (gnu packages databases)
8ae60404 56 #:use-module (gnu packages emacs)
754a98ae 57 #:use-module (gnu packages file)
fda85ca6 58 #:use-module (gnu packages flex)
11d4800a
RW
59 #:use-module (gnu packages fltk)
60 #:use-module (gnu packages fontutils)
fda85ca6 61 #:use-module (gnu packages gettext)
88efb2c3 62 #:use-module (gnu packages glib)
f3ab6ad3 63 #:use-module (gnu packages gtk)
88efb2c3 64 #:use-module (gnu packages gnome)
8ae60404 65 #:use-module (gnu packages gnunet) ; libmicrohttpd
fcbeb00b 66 #:use-module (gnu packages gperf)
247384d0 67 #:use-module (gnu packages icu4c)
d739f481 68 #:use-module (gnu packages image)
9ffee457 69 #:use-module (gnu packages ncurses)
f3ab6ad3 70 #:use-module (gnu packages qt)
dba33ca3 71 #:use-module (gnu packages libbsd)
c54a8981 72 #:use-module (gnu packages linux)
8ae60404 73 #:use-module (gnu packages llvm)
88efb2c3
RW
74 #:use-module (gnu packages mp3) ;taglib
75 #:use-module (gnu packages perl)
c54a8981
RW
76 #:use-module (gnu packages pkg-config)
77 #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
d55f912a 78 #:use-module (gnu packages python)
5279eb6f 79 #:use-module (gnu packages rdf)
c54a8981 80 #:use-module (gnu packages readline)
247384d0 81 #:use-module (gnu packages serialization)
dba33ca3 82 #:use-module (gnu packages telephony)
8ae60404 83 #:use-module (gnu packages tls)
e87c7ec2 84 #:use-module (gnu packages video)
8ae60404 85 #:use-module (gnu packages vim) ;xxd
02979664 86 #:use-module (gnu packages webkit)
cd381c31 87 #:use-module (gnu packages wxwidgets)
c54a8981 88 #:use-module (gnu packages xiph)
da49086a 89 #:use-module (gnu packages xml)
caf9055c 90 #:use-module (gnu packages xorg)
d0c8e524
SB
91 #:use-module (gnu packages maths)
92 #:use-module (gnu packages multiprecision)
3182a1d2 93 #:use-module (gnu packages music)
118a8ecc
EF
94 #:use-module (srfi srfi-1)
95 #:use-module (srfi srfi-26))
fb68469f 96
eb0fb087
RW
97(define-public alsa-modular-synth
98 (package
99 (name "alsa-modular-synth")
61eecd71 100 (version "2.1.2")
eb0fb087
RW
101 (source (origin
102 (method url-fetch)
de67e922
LF
103 (uri (string-append "mirror://sourceforge/alsamodular/alsamodular"
104 "/" version "/ams-" version ".tar.bz2"))
eb0fb087
RW
105 (sha256
106 (base32
61eecd71 107 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
eb0fb087 108 (build-system gnu-build-system)
ee6a88b1 109 (arguments
6670c99c
DC
110 `(#:configure-flags
111 '("--enable-qt5"
112 "CXXFLAGS=-std=gnu++11")
afadb05e
RW
113 #:phases
114 (modify-phases %standard-phases
115 ;; Insert an extra space between linker flags.
116 (add-before 'configure 'add-missing-space
117 (lambda _
118 (substitute* "configure"
119 (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
120 (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
121 #t)))))
eb0fb087
RW
122 (inputs
123 `(("alsa-lib" ,alsa-lib)
124 ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
125 ;; license incompatibility.
126 ("clalsadrv" ,clalsadrv)
127 ("fftw" ,fftw)
128 ("jack" ,jack-1)
129 ("ladspa" ,ladspa)
130 ("liblo" ,liblo)
df9031e1
EF
131 ("qtbase" ,qtbase)
132 ("qttools" ,qttools)))
eb0fb087
RW
133 (native-inputs
134 `(("pkg-config" ,pkg-config)))
135 (home-page "http://alsamodular.sourceforge.net/")
136 (synopsis "Realtime modular synthesizer and effect processor")
137 (description
138 "AlsaModularSynth is a digital implementation of a classical analog
139modular synthesizer system. It uses virtual control voltages to control the
140parameters of the modules. The control voltages which control the frequency
141e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled
142Filter) modules follow the convention of 1V / Octave.")
143 (license license:gpl2)))
144
d55f912a
RW
145(define-public aubio
146 (package
147 (name "aubio")
148 (version "0.4.1")
149 (source (origin
150 (method url-fetch)
151 (uri (string-append
152 "http://aubio.org/pub/aubio-" version ".tar.bz2"))
153 (sha256
154 (base32
155 "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
156 (build-system waf-build-system)
157 (arguments
158 `(#:tests? #f ; no check target
159 #:configure-flags
160 '("--enable-fftw3f"
161 "--enable-jack"
162 "--enable-sndfile"
163 "--enable-samplerate"
164 ;; enable compilation with avcodec once available
165 "--disable-avcodec")
166 #:python ,python-2))
167 (inputs
168 `(("jack" ,jack-1)
d55f912a
RW
169 ("libsndfile" ,libsndfile)
170 ("libsamplerate" ,libsamplerate)
171 ("fftwf" ,fftwf)))
172 (native-inputs
173 `(("pkg-config" ,pkg-config)))
174 (home-page "http://aubio.org/")
a124bbd2 175 (synopsis "Library for audio labelling")
d55f912a
RW
176 (description
177 "aubio is a tool designed for the extraction of annotations from audio
178signals. Its features include segmenting a sound file before each of its
179attacks, performing pitch detection, tapping the beat and producing MIDI
180streams from live audio.")
181 (license license:gpl3+)))
182
d49976ed
RW
183(define (ardour-rpath-phase major-version)
184 `(lambda* (#:key outputs #:allow-other-keys)
185 (let ((libdir (string-append (assoc-ref outputs "out")
186 "/lib/ardour" ,major-version)))
187 (substitute* "wscript"
188 (("linker_flags = \\[\\]")
189 (string-append "linker_flags = [\""
190 "-Wl,-rpath="
191 libdir ":"
192 libdir "/backends" ":"
193 libdir "/engines" ":"
194 libdir "/panners" ":"
195 libdir "/surfaces" ":"
196 libdir "/vamp" "\"]"))))
197 #t))
198
60725232 199(define-public ardour
88efb2c3
RW
200 (package
201 (name "ardour")
d30f920c 202 (version "5.12")
88efb2c3 203 (source (origin
88efb2c3
RW
204 (method git-fetch)
205 (uri (git-reference
5f13bf09 206 (url "https://git.ardour.org/ardour/ardour.git")
88efb2c3
RW
207 (commit version)))
208 (snippet
b16043a3
RW
209 ;; Ardour expects this file to exist at build time. The revision
210 ;; is the output of
211 ;; git describe HEAD | sed 's/^[A-Za-z]*+//'
02ecdeaa 212 `(call-with-output-file
88efb2c3
RW
213 "libs/ardour/revision.cc"
214 (lambda (port)
02ecdeaa
DT
215 (format port ,(string-append "#include \"ardour/revision.h\"
216namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
88efb2c3
RW
217 (sha256
218 (base32
d30f920c 219 "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
88efb2c3
RW
220 (file-name (string-append name "-" version))))
221 (build-system waf-build-system)
222 (arguments
b5fc72ff 223 `(#:configure-flags '("--cxx11" ; required by gtkmm
ba5c8567 224 "--no-phone-home" ; don't contact ardour.org
5f0c6496
RW
225 "--freedesktop" ; install .desktop file
226 "--test") ; build unit tests
92e4fbe2 227 #:phases
21481a28
RW
228 (modify-phases %standard-phases
229 (add-after
230 'unpack 'set-rpath-in-LDFLAGS
9cf5f134 231 ,(ardour-rpath-phase (version-major version))))
5f0c6496 232 #:test-target "test"
88efb2c3
RW
233 #:python ,python-2))
234 (inputs
235 `(("alsa-lib" ,alsa-lib)
236 ("aubio" ,aubio)
237 ("lrdf" ,lrdf)
238 ("boost" ,boost)
239 ("atkmm" ,atkmm)
240 ("cairomm" ,cairomm)
c5edbb97 241 ("eudev" ,eudev)
88efb2c3
RW
242 ("gtkmm" ,gtkmm-2)
243 ("glibmm" ,glibmm)
244 ("libart-lgpl" ,libart-lgpl)
245 ("libgnomecanvasmm" ,libgnomecanvasmm)
246 ("pangomm" ,pangomm)
247 ("liblo" ,liblo)
248 ("libsndfile" ,libsndfile)
249 ("libsamplerate" ,libsamplerate)
250 ("libxml2" ,libxml2)
251 ("libogg" ,libogg)
252 ("libvorbis" ,libvorbis)
253 ("flac" ,flac)
254 ("lv2" ,lv2)
255 ("vamp" ,vamp)
256 ("curl" ,curl)
c96cb01a
DC
257 ("fftw" ,fftw)
258 ("fftwf" ,fftwf)
88efb2c3
RW
259 ("jack" ,jack-1)
260 ("serd" ,serd)
261 ("sord" ,sord)
262 ("sratom" ,sratom)
263 ("suil" ,suil)
264 ("lilv" ,lilv)
971ebdc8 265 ("readline" ,readline)
88efb2c3
RW
266 ("redland" ,redland)
267 ("rubberband" ,rubberband)
a76abae1 268 ("libarchive" ,libarchive)
88efb2c3
RW
269 ("taglib" ,taglib)
270 ("python-rdflib" ,python-rdflib)))
271 (native-inputs
272 `(("perl" ,perl)
971ebdc8 273 ("cppunit" ,cppunit)
ba5c8567
RW
274 ("itstool" ,itstool)
275 ("gettext" ,gettext-minimal)
88efb2c3
RW
276 ("pkg-config" ,pkg-config)))
277 (home-page "http://ardour.org")
278 (synopsis "Digital audio workstation")
279 (description
280 "Ardour is a multi-channel digital audio workstation, allowing users to
281record, edit, mix and master audio and MIDI projects. It is targeted at audio
282engineers, musicians, soundtrack editors and composers.")
283 (license license:gpl2+)))
284
cd381c31
KK
285(define-public audacity
286 (package
287 (name "audacity")
3ae45eb4 288 (version "2.2.2")
cd381c31
KK
289 (source
290 (origin
291 (method url-fetch)
292 (uri (string-append "https://github.com/audacity/audacity/archive"
293 "/Audacity-" version ".tar.gz"))
294 (sha256
3ae45eb4
LF
295 (base32
296 "18q7i77ynihx7xp45lz2lv0k0wrh6736pcrivlpwrxjgbvyqx7km"))
3182a1d2
RW
297 (patches (search-patches "audacity-build-with-system-portaudio.patch"))
298 (modules '((guix build utils)))
299 (snippet
300 ;; Remove bundled libraries.
301 '(begin
302 (for-each
303 (lambda (dir)
304 (delete-file-recursively (string-append "lib-src/" dir)))
305 '("expat" "ffmpeg" "libflac" "libid3tag" "libmad" "libogg"
306 "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
307 "portaudio-v19" "portmidi" "soundtouch" "twolame"
308 ;; FIXME: these libraries have not been packaged yet:
309 ;; "libnyquist"
310 ;; "libscorealign"
311 ;; "libwidgetextra"
312 ;; "portburn"
313 ;; "portsmf"
314 ;; "portmixer"
315
316 ;; FIXME: we have this library, but it differs in that the Slide
317 ;; class does not have a member "getInverseStretchedTime".
318 ;; "sbsms"
319 ))
320 #t))))
cd381c31
KK
321 (build-system gnu-build-system)
322 (inputs
3182a1d2
RW
323 `(("wxwidgets" ,wxwidgets)
324 ("gtk" ,gtk+)
cd381c31
KK
325 ("alsa-lib" ,alsa-lib)
326 ("jack" ,jack-1)
327 ("expat" ,expat)
328 ("ffmpeg" ,ffmpeg)
329 ("lame" ,lame)
330 ("flac" ,flac)
331 ("libid3tag" ,libid3tag)
332 ("libmad" ,libmad)
3182a1d2 333 ;;("libsbsms" ,libsbsms) ;bundled version is modified
cd381c31
KK
334 ("libsndfile" ,libsndfile)
335 ("soundtouch" ,soundtouch)
336 ("soxr" ,soxr) ;replaces libsamplerate
337 ("twolame" ,twolame)
338 ("vamp" ,vamp)
339 ("libvorbis" ,libvorbis)
340 ("lv2" ,lv2)
3182a1d2
RW
341 ("lilv" ,lilv) ;for lv2
342 ("suil" ,suil) ;for lv2
343 ("portaudio" ,portaudio)
344 ("portmidi" ,portmidi)))
cd381c31
KK
345 (native-inputs
346 `(("autoconf" ,autoconf)
347 ("automake" ,automake)
348 ("gettext" ,gettext-minimal) ;for msgfmt
349 ("libtool" ,libtool)
350 ("pkg-config" ,pkg-config)
351 ("python" ,python-2)
352 ("which" ,which)))
353 (arguments
118a8ecc 354 `(#:configure-flags
cd381c31 355 (let ((libid3tag (assoc-ref %build-inputs "libid3tag"))
3182a1d2
RW
356 (libmad (assoc-ref %build-inputs "libmad"))
357 (portmidi (assoc-ref %build-inputs "portmidi")))
cd381c31
KK
358 (list
359 ;; Loading FFmpeg dynamically is problematic.
360 "--disable-dynamic-loading"
118a8ecc
EF
361 ;; SSE instructions are available on Intel systems only.
362 ,@(if (any (cute string-prefix? <> (or (%current-target-system)
363 (%current-system)))
364 '("x64_64" "i686"))
365 '()
366 '("--enable-sse=no"))
3182a1d2
RW
367 ;; portmidi, libid3tag and libmad provide no .pc files, so
368 ;; pkg-config fails to find them. Force their inclusion.
cd381c31
KK
369 (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
370 (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")
371 (string-append "LIBMAD_CFLAGS=-I" libmad "/include")
3182a1d2
RW
372 (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")
373 (string-append "PORTMIDI_CFLAGS=-I" portmidi "/include")
374 (string-append "PORTMIDI_LIBS=-L" portmidi "/lib -lportmidi")
375 "EXPAT_USE_SYSTEM=yes"
376 "FFMPEG_USE_SYSTEM=yes"
377 "LAME_USE_SYSTEM=yes"
378 "LIBFLAC_USE_SYSTEM=yes"
379 "LIBID3TAG_USE_SYSTEM=yes"
380 "LIBMAD_USE_SYSTEM=yes"
381 "USE_LOCAL_LIBNYQUIST=" ;not packaged yet
382 ;;"LIBSBSMS_USE_SYSTEM=yes" ;bundled version is patched
383 "LIBSNDFILE_USE_SYSTEM=yes"
384 "LIBSOUNDTOUCH_USE_SYSTEM=yes"
385 "LIBSOXR_USE_SYSTEM=yes"
386 "LIBTWOLAME_USE_SYSTEM=yes"
387 "LIBVAMP_USE_SYSTEM=yes"
388 "LIBVORBIS_USE_SYSTEM=yes"
389 "LV2_USE_SYSTEM=yes"
390 "PORTAUDIO_USE_SYSTEM=yes"))
cd381c31
KK
391 #:phases
392 (modify-phases %standard-phases
3182a1d2 393 (add-after 'unpack 'fix-sbsms-check
cd381c31 394 (lambda _
3182a1d2
RW
395 ;; This check is wrong: there is no 2.2.0 release; not even the
396 ;; bundled sources match this release string.
397 (substitute* '("m4/audacity_checklib_libsbsms.m4"
398 "configure")
399 (("sbsms >= 2.2.0") "sbsms >= 2.0.0"))
400 #t))
401 (add-after 'unpack 'use-upstream-headers
402 (lambda* (#:key inputs #:allow-other-keys)
403 (substitute* '("src/NoteTrack.cpp"
404 "src/AudioIO.cpp"
405 "src/AudioIO.h")
406 (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
407 (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
408 (substitute* "src/prefs/MidiIOPrefs.cpp"
409 (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))
410 #t)))
cd381c31
KK
411 ;; The test suite is not "well exercised" according to the developers,
412 ;; and fails with various errors. See
413 ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
414 #:tests? #f))
415 (home-page "http://audacity.sourceforge.net/")
416 (synopsis "Software for recording and editing sounds")
417 (description
418 "Audacity is a multi-track audio editor designed for recording, playing
419and editing digital audio. It features digital effects and spectrum analysis
420tools.")
421 (license license:gpl2+)))
422
497e9a82
RW
423(define-public azr3
424 (package
425 (name "azr3")
426 (version "1.2.3")
427 (source (origin
428 (method url-fetch)
429 (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
430 version
431 ".tar.bz2"))
432 (sha256
433 (base32
204adc30
RW
434 "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))
435 (patches (search-patches "azr3.patch"))))
497e9a82
RW
436 (build-system gnu-build-system)
437 (arguments
438 `(#:tests? #f ; no check target
439 #:make-flags
440 (list "LV2PEG=ttl2c"
204adc30
RW
441 "CXXFLAGS=-std=gnu++11"
442 "CFLAGS=-std=gnu++11"
497e9a82
RW
443 (string-append "prefix=" %output)
444 (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
445 (inputs
446 `(("gtkmm" ,gtkmm-2)
447 ("lvtk" ,lvtk)
448 ("jack" ,jack-1)
f753846b 449 ("lash" ,lash)))
497e9a82
RW
450 (native-inputs
451 `(("pkg-config" ,pkg-config)))
452 (home-page "http://ll-plugins.nongnu.org/azr3/")
453 (synopsis "Tonewheel organ synthesizer")
454 (description
455 "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
456with drawbars, distortion and rotating speakers. The organ has three
457sections, two polyphonic sections with nine drawbars each and one monophonic
458bass section with five drawbars. A standalone JACK application and LV2
459plugins are provided.")
460 (license license:gpl2)))
461
f62a8417
RW
462(define-public calf
463 (package
464 (name "calf")
803a9d5c 465 (version "0.90.0")
f62a8417
RW
466 (source (origin
467 (method url-fetch)
73cea74d
RW
468 (uri (string-append "http://calf-studio-gear.org/files/calf-"
469 version ".tar.gz"))
f62a8417
RW
470 (sha256
471 (base32
803a9d5c 472 "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib"))))
f62a8417
RW
473 (build-system gnu-build-system)
474 (inputs
475 `(("fluidsynth" ,fluidsynth)
476 ("expat" ,expat)
477 ("glib" ,glib)
478 ("gtk" ,gtk+-2)
479 ("cairo" ,cairo)
480 ("lash" ,lash)
481 ("jack" ,jack-1)
482 ("lv2" ,lv2)
483 ("ladspa" ,ladspa)
484 ("fftw" ,fftw)))
485 (native-inputs
486 `(("pkg-config" ,pkg-config)))
487 (native-search-paths
488 (list (search-path-specification
489 (variable "LV2_PATH")
490 (files '("lib/lv2")))))
491 (home-page "http://calf.sourceforge.net/")
492 (synopsis "Audio plug-in pack for LV2 and JACK environments")
493 (description
494 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
495The suite contains lots of effects (delay, modulation, signal processing,
496filters, equalizers, dynamics, distortion and mastering effects),
497instruments (SF2 player, organ simulator and a monophonic synthesizer) and
498tools (analyzer, mono/stereo tools, crossovers).")
499 ;; calfjackhost is released under GPLv2+
500 ;; The plugins are released under LGPLv2.1+
501 (license (list license:lgpl2.1+ license:gpl2+))))
502
c3cc7d41
KK
503(define-public espeak
504 (package
505 (name "espeak")
506 (version "1.48.04")
507 (source (origin
508 (method url-fetch)
509 (uri (string-append "mirror://sourceforge/espeak/espeak/"
510 "espeak-" (version-major+minor version)
511 "/espeak-" version "-source.zip"))
512 (sha256
513 (base32
514 "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz"))
515 (modules '((guix build utils)))
516 (snippet
517 ;; remove prebuilt binaries
518 '(delete-file-recursively "linux_32bit"))))
519 (build-system gnu-build-system)
520 (arguments
521 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
522 (string-append "DATADIR="
523 (assoc-ref %outputs "out")
524 "/share/espeak-data")
525 (string-append "LDFLAGS=-Wl,-rpath="
526 (assoc-ref %outputs "out")
527 "/lib")
528 "AUDIO=pulseaudio")
529 #:tests? #f ; no check target
530 #:phases
531 (modify-phases %standard-phases
532 (replace 'configure
533 (lambda _
534 (chdir "src")
535 ;; We use version 19 of the PortAudio library, so we must copy the
536 ;; corresponding file to be sure that espeak compiles correctly.
537 (copy-file "portaudio19.h" "portaudio.h")
538 (substitute* "Makefile"
539 (("/bin/ln") "ln"))
540 #t)))))
541 (inputs
542 `(("portaudio" ,portaudio)
543 ("pulseaudio" ,pulseaudio)))
544 (native-inputs `(("unzip" ,unzip)))
545 (home-page "http://espeak.sourceforge.net/")
546 (synopsis "Software speech synthesizer")
547 (description "eSpeak is a software speech synthesizer for English and
548other languages. eSpeak uses a \"formant synthesis\" method. This allows many
549languages to be provided in a small size. The speech is clear, and can be used
550at high speeds, but is not as natural or smooth as larger synthesizers which are
551based on human speech recordings.")
552 (license license:gpl3+)))
553
8f941dd2
RW
554(define-public infamous-plugins
555 (package
556 (name "infamous-plugins")
d11edbdf 557 (version "0.2.04")
8f941dd2
RW
558 (source (origin
559 (method url-fetch)
560 (uri (string-append "https://github.com/ssj71/infamousPlugins/"
561 "archive/v" version ".tar.gz"))
562 (file-name (string-append name "-" version ".tar.gz"))
563 (sha256
564 (base32
d11edbdf 565 "1n6rhqsmvad7692w2h01niw5gqg5yk7a09wxl5ivs77zyp93vf7z"))))
8f941dd2 566 (build-system cmake-build-system)
d6618941 567 (arguments
d11edbdf 568 `(#:tests? #f ; there are no tests
d6618941
EF
569 #:phases
570 (modify-phases %standard-phases
571 (add-after 'unpack 'remove-compiler-flags
572 (lambda _
3e0e9e16 573 (substitute* (find-files "." "CMakeLists.txt")
d11edbdf 574 (("-msse2 -mfpmath=sse") ""))
d6618941 575 #t)))))
8f941dd2
RW
576 (inputs
577 `(("cairo" ,cairo)
578 ("fftwf" ,fftwf)
579 ("lv2" ,lv2)
580 ("ntk" ,ntk)
581 ("zita-resampler" ,zita-resampler)))
582 (native-inputs
583 `(("pkg-config" ,pkg-config)))
a9071e5c 584 (home-page "https://ssj71.github.io/infamousPlugins")
8f941dd2
RW
585 (synopsis "LV2 plugins for live use")
586 (description
587 "The infamous plugins are a collection of LV2 audio plugins for live
588performances. The plugins include a cellular automaton synthesizer, an
589envelope follower, distortion effects, tape effects and more.")
590 (license license:gpl2+)))
591
18f3d92b
FPS
592(define-public swh-plugins-lv2
593 (package
594 (name "swh-plugins-lv2")
595 (version "1.0.16")
596 (source (origin
597 (method url-fetch)
598 (uri (string-append "https://github.com/swh/"
599 "lv2/archive/v" version ".tar.gz"))
600 (file-name (string-append name "-" version ".tar.gz"))
601 (sha256
602 (base32
603 "0j1mih0lp4fds07knp5i32in515sh0df1qi6694pmyz2wqnm295w"))))
604 (build-system gnu-build-system)
605 (arguments
606 `(#:tests? #f ; no check target
607 #:make-flags (list "CC=gcc"
608 (string-append "PREFIX="
609 (assoc-ref %outputs "out")))
610 #:phases
611 (modify-phases %standard-phases
612 ;; no configure script
613 (delete 'configure)
614 (add-after 'unpack 'patch-makefile-and-enter-directory
615 ;; The default install target doesn't install, but the
616 ;; "install-system" target does.
617 (lambda _
618 (substitute* "Makefile"
619 (("install:") "install: install-system"))
620 #t)))))
621 (inputs
622 `(("lv2" ,lv2)
623 ("fftwf" ,fftwf)))
624 (native-inputs
625 `(("libxslt" ,libxslt)
626 ("pkg-config" ,pkg-config)))
627 (home-page "http://plugin.org.uk")
628 (synopsis "SWH plugins in LV2 format")
629 (description
630 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format. Plugin
631classes include: dynamics (compressor, limiter), time (delay, chorus,
632flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
633emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
634 (license license:gpl3+)))
635
fda85ca6
RW
636(define-public csound
637 (package
638 (name "csound")
f049e79d 639 (version "6.09.1")
fda85ca6
RW
640 (source (origin
641 (method url-fetch)
642 (uri (string-append
f049e79d
NG
643 "https://github.com/csound/csound/archive/"
644 version ".tar.gz"))
645 (file-name (string-append name "-" version ".tar.gz"))
fda85ca6
RW
646 (sha256
647 (base32
fd75eb6c 648 "0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4"))))
fda85ca6
RW
649 (build-system cmake-build-system)
650 (inputs
651 `(("alsa-lib" ,alsa-lib)
652 ("boost" ,boost)
653 ("pulseaudio" ,pulseaudio)
654 ("libsndfile" ,libsndfile)
655 ("liblo" ,liblo)
656 ("ladspa" ,ladspa)
657 ("jack" ,jack-1)
b94a6ca0 658 ("gettext" ,gettext-minimal)))
fda85ca6
RW
659 (native-inputs
660 `(("bison" ,bison)
661 ("flex" ,flex)
662 ("zlib" ,zlib)))
663 (home-page "http://csound.github.io/")
664 (synopsis "Sound and music computing system")
665 (description
666 "Csound is a user-programmable and user-extensible sound processing
667language and software synthesizer.")
668 (license license:lgpl2.1+)))
669
631ac903
RW
670(define-public clalsadrv
671 (package
672 (name "clalsadrv")
673 (version "2.0.0")
674 (source (origin
675 (method url-fetch)
676 (uri (string-append
677 "http://kokkinizita.linuxaudio.org"
678 "/linuxaudio/downloads/clalsadrv-"
679 version ".tar.bz2"))
680 (sha256
681 (base32
9de2e43c 682 "0bsacx3l9065gk8g4137qmz2ij7s9x06aldvacinzlcslw7bd1kq"))))
631ac903
RW
683 (build-system gnu-build-system)
684 (arguments
685 `(#:tests? #f ; no "check" target
686 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
687 #:phases
dc1d3cde
KK
688 (modify-phases %standard-phases
689 (add-after 'unpack 'patch-makefile-and-enter-directory
690 (lambda _
691 (substitute* "libs/Makefile"
692 (("/sbin/ldconfig") "true")
693 (("^LIBDIR =.*") "LIBDIR = lib\n"))
694 (chdir "libs")
695 #t))
696 (add-after 'install 'install-symlink
697 (lambda _
698 (symlink "libclalsadrv.so"
699 (string-append (assoc-ref %outputs "out")
4f27a333 700 "/lib/libclalsadrv.so.2"))))
631ac903 701 ;; no configure script
4f27a333 702 (delete 'configure))))
631ac903
RW
703 (inputs
704 `(("alsa-lib" ,alsa-lib)
705 ("fftw" ,fftw)))
4817bb92 706 (home-page "https://kokkinizita.linuxaudio.org")
631ac903
RW
707 (synopsis "C++ wrapper around the ALSA API")
708 (description
709 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to
710ALSA PCM devices.")
711 (license license:gpl2+)))
712
8ba62f92
RW
713(define-public amb-plugins
714 (package
715 (name "amb-plugins")
716 (version "0.8.1")
717 (source (origin
718 (method url-fetch)
719 (uri (string-append
720 "http://kokkinizita.linuxaudio.org"
721 "/linuxaudio/downloads/AMB-plugins-"
722 version ".tar.bz2"))
723 (sha256
724 (base32
725 "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl"))))
726 (build-system gnu-build-system)
727 (arguments
728 `(#:tests? #f ; no "check" target
729 #:phases
730 (modify-phases %standard-phases
731 ;; no configure script
732 (delete 'configure)
733 (add-before 'install 'prepare-target-directory
734 (lambda* (#:key outputs #:allow-other-keys)
735 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
736 #t))
737 (add-after 'unpack 'override-target-directory-and-tool-paths
738 (lambda* (#:key outputs #:allow-other-keys)
739 (substitute* "Makefile"
740 (("/usr/lib/ladspa")
741 (string-append (assoc-ref outputs "out") "/lib/ladspa"))
742 (("/usr/bin/install") (which "install"))
743 (("/bin/rm") "#"))
744 #t)))))
4817bb92 745 (home-page "https://kokkinizita.linuxaudio.org")
8ba62f92
RW
746 (synopsis "LADSPA ambisonics plugins")
747 (description
748 "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be
749used within Ardour. Features include: mono and stereo to B-format panning,
750horizontal rotator, square, hexagon and cube decoders.")
751 (license license:gpl2+)))
752
fb2e072c
RW
753(define-public mcp-plugins
754 (package
755 (name "mcp-plugins")
756 (version "0.4.0")
757 (source (origin
758 (method url-fetch)
759 (uri (string-append
760 "http://kokkinizita.linuxaudio.org"
761 "/linuxaudio/downloads/MCP-plugins-"
762 version ".tar.bz2"))
763 (sha256
764 (base32
765 "06a9r1l85jmg7l1cvc3788mk8ra0xagjfy1rmhw3b80y4n0vlnvc"))))
766 (build-system gnu-build-system)
767 (arguments
768 `(#:tests? #f ; no "check" target
769 #:phases
770 (modify-phases %standard-phases
771 ;; no configure script
772 (delete 'configure)
773 (add-before 'install 'prepare-target-directory
774 (lambda* (#:key outputs #:allow-other-keys)
775 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
776 #t))
777 (add-after 'unpack 'override-target-directory
778 (lambda* (#:key outputs #:allow-other-keys)
779 (substitute* "Makefile"
780 (("/usr") (assoc-ref outputs "out")))
781 #t)))))
4817bb92 782 (home-page "https://kokkinizita.linuxaudio.org")
fb2e072c
RW
783 (synopsis "Chorus, phaser, and vintage high-pass and low-pass filters")
784 (description
785 "This package provides various LADSPA plugins. @code{cs_chorus} and
786@code{cs_phaser} provide chorus and phaser effects, respectively;
787@code{mvclpf24} provides four implementations of the low-pass filter used in
788vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled
789high-pass filter by Robert Moog. The filters attempt to accurately emulate
790the non-linear circuit elements of their original analog counterparts.")
791 (license license:gpl2+)))
792
dffb6c3b
RW
793(define-public rev-plugins
794 (package
795 (name "rev-plugins")
796 (version "0.7.1")
797 (source (origin
798 (method url-fetch)
799 (uri (string-append
800 "http://kokkinizita.linuxaudio.org"
801 "/linuxaudio/downloads/REV-plugins-"
802 version ".tar.bz2"))
803 (sha256
804 (base32
805 "1ikpinxm00pkfi259bnkzhsy3miagrjgdihaaf5x4v7zac29j3g7"))))
806 (build-system gnu-build-system)
807 (arguments
808 `(#:tests? #f ; no "check" target
809 #:phases
810 (modify-phases %standard-phases
811 ;; no configure script
812 (delete 'configure)
813 (add-before 'install 'prepare-target-directory
814 (lambda* (#:key outputs #:allow-other-keys)
815 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
816 #t))
817 (add-after 'unpack 'override-target-directory
818 (lambda* (#:key outputs #:allow-other-keys)
819 (substitute* "Makefile"
820 (("/usr") (assoc-ref outputs "out")))
821 #t)))))
4817bb92 822 (home-page "https://kokkinizita.linuxaudio.org")
dffb6c3b
RW
823 (synopsis "LADSPA reverb plugin")
824 (description
825 "This package provides a stereo reverb LADSPA plugin based on the
826well-known greverb.")
827 (license license:gpl2+)))
828
75f45d16
RW
829(define-public fil-plugins
830 (package
831 (name "fil-plugins")
832 (version "0.3.0")
833 (source (origin
834 (method url-fetch)
835 (uri (string-append
836 "http://kokkinizita.linuxaudio.org"
837 "/linuxaudio/downloads/FIL-plugins-"
838 version ".tar.bz2"))
839 (sha256
840 (base32
841 "1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw"))))
842 (build-system gnu-build-system)
843 (arguments
844 `(#:tests? #f ; no "check" target
845 #:phases
846 (modify-phases %standard-phases
847 ;; no configure script
848 (delete 'configure)
849 (add-before 'install 'prepare-target-directory
850 (lambda* (#:key outputs #:allow-other-keys)
851 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
852 #t))
853 (add-after 'unpack 'override-target-directory
854 (lambda* (#:key outputs #:allow-other-keys)
855 (substitute* "Makefile"
856 (("/usr") (assoc-ref outputs "out")))
857 #t)))))
4817bb92 858 (home-page "https://kokkinizita.linuxaudio.org")
75f45d16
RW
859 (synopsis "LADSPA four-band parametric equalizer plugin")
860 (description
861 "This package provides a LADSPA plugin for a four-band parametric
862equalizer. Each section has an active/bypass switch, frequency, bandwidth and
863gain controls. There is also a global bypass switch and gain control.
864
865The 2nd order resonant filters are implemented using a Mitra-Regalia style
866lattice filter, which is stable even while parameters are being changed.
867
868All switches and controls are internally smoothed, so they can be used 'live'
869without any clicks or zipper noises. This makes this plugin suitable for use
870in systems that allow automation of plugin control ports, such as Ardour, or
871for stage use.")
872 (license license:gpl2+)))
873
c04b4e7a
RW
874(define-public ste-plugins
875 (package
876 (name "ste-plugins")
877 (version "0.0.2")
878 (source (origin
879 (method url-fetch)
880 (uri (string-append
881 "http://kokkinizita.linuxaudio.org"
882 "/linuxaudio/downloads/STE-plugins-"
883 version ".tar.bz2"))
884 (sha256
885 (base32
886 "0s3c9w5xihs87cnd1lh9xgj3maabjdyh6bl766qp5lhkg3ax8zy6"))))
887 (build-system gnu-build-system)
888 (arguments
889 `(#:tests? #f ; no "check" target
890 #:phases
891 (modify-phases %standard-phases
892 ;; no configure script
893 (delete 'configure)
894 (add-before 'install 'prepare-target-directory
895 (lambda* (#:key outputs #:allow-other-keys)
896 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
897 #t))
898 (add-after 'unpack 'override-target-directory
899 (lambda* (#:key outputs #:allow-other-keys)
900 (substitute* "Makefile"
901 (("/usr") (assoc-ref outputs "out")))
902 #t)))))
4817bb92 903 (home-page "https://kokkinizita.linuxaudio.org")
c04b4e7a
RW
904 (synopsis "LADSPA stereo width plugin")
905 (description
906 "This package provides a LADSPA plugin to manipulate the stereo width of
907audio signals.")
908 (license license:gpl2+)))
909
eb4fca7e
RW
910(define-public vco-plugins
911 (package
912 (name "vco-plugins")
913 (version "0.3.0")
914 (source (origin
915 (method url-fetch)
916 (uri (string-append
917 "http://kokkinizita.linuxaudio.org"
918 "/linuxaudio/downloads/VCO-plugins-"
919 version ".tar.bz2"))
920 (sha256
921 (base32
922 "1xzqdg3b07r7zww05y9bb737l9dxvfkv28m3fyak1aazaci3rsgl"))))
923 (build-system gnu-build-system)
924 (arguments
925 `(#:tests? #f ; no "check" target
926 #:phases
927 (modify-phases %standard-phases
928 ;; no configure script
929 (delete 'configure)
930 (add-before 'install 'prepare-target-directory
931 (lambda* (#:key outputs #:allow-other-keys)
932 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
933 #t))
934 (add-after 'unpack 'override-target-directory
935 (lambda* (#:key outputs #:allow-other-keys)
936 (substitute* "Makefile"
937 (("/usr") (assoc-ref outputs "out"))
938 (("/bin/cp") (which "cp")))
939 #t)))))
4817bb92 940 (home-page "https://kokkinizita.linuxaudio.org")
eb4fca7e
RW
941 (synopsis "LADSPA plugin for synthesizer oscillators")
942 (description
943 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:
944
945@enumerate
946@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
947@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
948@item Rec-VCO, a square / rectange oscillator
949@end enumerate\n
950
951All oscillators are low-pass filtered to provide waveforms similar to the
952output of analog synthesizers such as the Moog Voyager.")
953 (license license:gpl2+)))
954
5e3161d3
RW
955(define-public wah-plugins
956 (package
957 (name "wah-plugins")
958 (version "0.1.0")
959 (source (origin
960 (method url-fetch)
961 (uri (string-append
962 "http://kokkinizita.linuxaudio.org"
963 "/linuxaudio/downloads/WAH-plugins-"
964 version ".tar.bz2"))
965 (sha256
966 (base32
967 "1wkbjarxdhjixkh7d5abralj11dj2xxg644fz3ycd7qyfgfvjfgd"))))
968 (build-system gnu-build-system)
969 (arguments
970 `(#:tests? #f ; no "check" target
971 #:phases
972 (modify-phases %standard-phases
973 ;; no configure script
974 (delete 'configure)
975 (add-before 'install 'prepare-target-directory
976 (lambda* (#:key outputs #:allow-other-keys)
977 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
978 #t))
979 (add-after 'unpack 'override-target-directory
980 (lambda* (#:key outputs #:allow-other-keys)
981 (substitute* "Makefile"
982 (("/usr") (assoc-ref outputs "out")))
983 #t)))))
4817bb92 984 (home-page "https://kokkinizita.linuxaudio.org")
5e3161d3
RW
985 (synopsis "LADSPA Autowah effect plugin")
986 (description
987 "This package provides a LADSPA plugin for a Wah effect with envelope
988follower.")
989 (license license:gpl2+)))
990
ed17465d
RW
991(define-public g2reverb
992 (package
993 (name "g2reverb")
994 (version "0.7.1")
995 (source (origin
996 (method url-fetch)
997 (uri (string-append
998 "http://kokkinizita.linuxaudio.org"
999 "/linuxaudio/downloads/g2reverb-"
1000 version ".tar.bz2"))
1001 (sha256
1002 (base32
1003 "18wb8vj1kky5glr76s34awbi8qzplsmf3wjbd7a12hfv4j0bkwrj"))))
1004 (build-system gnu-build-system)
1005 (arguments
1006 `(#:tests? #f ; no "check" target
1007 #:phases
1008 (modify-phases %standard-phases
1009 ;; no configure script
1010 (delete 'configure)
1011 (add-before 'install 'prepare-target-directory
1012 (lambda* (#:key outputs #:allow-other-keys)
1013 (mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
1014 #t))
1015 (add-after 'unpack 'override-target-directory
1016 (lambda* (#:key outputs #:allow-other-keys)
1017 (substitute* "Makefile"
1018 (("/usr") (assoc-ref outputs "out")))
1019 #t)))))
4817bb92 1020 (home-page "https://kokkinizita.linuxaudio.org")
ed17465d
RW
1021 (synopsis "LADSPA stereo reverb plugin")
1022 (description
1023 "This package provides a LADSPA plugin for a stereo reverb effect.")
1024 (license license:gpl2+)))
1025
e4f43b56
RW
1026(define-public fluidsynth
1027 (package
1028 (name "fluidsynth")
1d40a822 1029 (version "1.1.11")
e4f43b56 1030 (source (origin
dd46c16b
RW
1031 (method git-fetch)
1032 (uri (git-reference
1033 (url "https://github.com/FluidSynth/fluidsynth.git")
1034 (commit (string-append "v" version))))
1035 (file-name (string-append name "-" version "-checkout"))
e4f43b56
RW
1036 (sha256
1037 (base32
1d40a822 1038 "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))
dd46c16b 1039 (build-system cmake-build-system)
e4f43b56 1040 (arguments
713b519e 1041 '(#:tests? #f ; no check target
dd46c16b 1042 #:phases
dc1d3cde 1043 (modify-phases %standard-phases
dd46c16b
RW
1044 (add-after 'unpack 'fix-libdir
1045 (lambda _
713b519e 1046 ;; Install libraries to /lib, not /lib64.
dd46c16b
RW
1047 (substitute* "CMakeLists.txt"
1048 (("LIB_SUFFIX \\$\\{_init_lib_suffix\\}")
1049 "LIB_SUFFIX \"\""))
1050 #t)))))
e4f43b56
RW
1051 (inputs
1052 `(("libsndfile" ,libsndfile)
1053 ("alsa-lib" ,alsa-lib)
1054 ("jack" ,jack-1)
1055 ("ladspa" ,ladspa)
1056 ("lash" ,lash)
1057 ("readline" ,readline)
1058 ("glib" ,glib)))
1059 (native-inputs
1060 `(("pkg-config" ,pkg-config)))
1061 (home-page "http://www.fluidsynth.org/")
1062 (synopsis "SoundFont synthesizer")
1063 (description
1064 "FluidSynth is a real-time software synthesizer based on the SoundFont 2
1065specifications. FluidSynth reads and handles MIDI events from the MIDI input
e881752c 1066device. It is the software analogue of a MIDI synthesizer. FluidSynth can
e4f43b56 1067also play midifiles using a Soundfont.")
dd46c16b 1068 (license license:lgpl2.1+)))
e4f43b56 1069
70fc29d9
TUBK
1070(define-public faad2
1071 (package
1072 (name "faad2")
1073 (version "2.7")
1074 (source (origin
1075 (method url-fetch)
de67e922
LF
1076 (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
1077 version "/faad2-" version ".zip"))
70fc29d9
TUBK
1078 (sha256
1079 (base32
1080 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z"))))
1081 (build-system gnu-build-system)
1082 (native-inputs
1083 `(("autoconf" ,autoconf)
1084 ("automake" ,automake)
1085 ("libtool" ,libtool)
1086 ("unzip" ,unzip)))
1087 (arguments
1088 '(#:phases
dc1d3cde
KK
1089 (modify-phases %standard-phases
1090 (add-after 'unpack 'bootstrap
1091 (lambda _
1092 (substitute* "bootstrap" (("\r\n") "\n"))
1093 (zero? (system* "sh" "bootstrap")))))))
70fc29d9
TUBK
1094 (home-page "http://www.audiocoding.com/faad2.html")
1095 (synopsis "MPEG-4 and MPEG-2 AAC decoder")
1096 (description
1097 "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
1098PS, and DAB+.")
1099 (license license:gpl2)))
1100
777291f0
RW
1101(define-public faust
1102 (package
1103 (name "faust")
a3604742 1104 (version "0.9.90")
777291f0 1105 (source (origin
a3604742
RW
1106 (method git-fetch)
1107 (uri (git-reference
1108 (url "https://github.com/grame-cncm/faust.git")
1109 (commit (string-append "v"
1110 (string-map (lambda (c)
1111 (if (char=? c #\.) #\- c))
1112 version)))))
1113 (file-name (string-append "faust-" version "-checkout"))
777291f0
RW
1114 (sha256
1115 (base32
a3604742 1116 "0qc6iwjd3i80jdyjc186c6ywipmjzl8wlsp4050pbr56q4rlkd4z"))))
777291f0
RW
1117 (build-system gnu-build-system)
1118 (arguments
1119 `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
1120 #:tests? #f
1121 #:phases
1122 (modify-phases %standard-phases
0543c326 1123 ;; no "configure" script
a3604742
RW
1124 (delete 'configure)
1125 ;; Files appear under $out/share/faust that are read-only. The
1126 ;; install phase tries to overwrite them and fails, so we change
1127 ;; the permissions first.
1128 (add-before 'install 'fix-permissions
1129 (lambda _
1130 (for-each (lambda (file)
1131 (chmod file #o644))
1132 (find-files "architecture/max-msp" ".*"))
1133 #t)))))
777291f0
RW
1134 (native-inputs
1135 `(("unzip" ,unzip)))
1136 (home-page "http://faust.grame.fr/")
1137 (synopsis "Signal processing language")
1138 (description
1139 "Faust is a programming language for realtime audio signal processing.")
1140 (license license:gpl2+)))
1141
8ae60404
RW
1142(define-public faust-2
1143 (package
1144 (inherit faust)
65fc5bf0 1145 (version "2.1.0")
8ae60404 1146 (source (origin
65fc5bf0
RW
1147 (method git-fetch)
1148 (uri (git-reference
1149 (url "https://github.com/grame-cncm/faust.git")
1150 (commit (string-append "v"
1151 (string-map (lambda (c)
1152 (if (char=? c #\.) #\- c))
1153 version)))))
a1eb506c 1154 (file-name (string-append "faust-" version "-checkout"))
8ae60404
RW
1155 (sha256
1156 (base32
65fc5bf0 1157 "06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068"))))
8ae60404
RW
1158 (build-system gnu-build-system)
1159 (arguments
1160 (substitute-keyword-arguments (package-arguments faust)
1161 ((#:make-flags flags)
1162 `(list (string-append "prefix=" (assoc-ref %outputs "out"))
75bbc3c2 1163 "world"))))
8ae60404
RW
1164 (native-inputs
1165 `(("llvm" ,llvm-with-rtti)
1166 ("which" ,which)
9fc513ad 1167 ("xxd" ,xxd)
8ae60404
RW
1168 ("ctags" ,emacs-minimal) ; for ctags
1169 ("pkg-config" ,pkg-config)))
1170 (inputs
1171 `(("libsndfile" ,libsndfile)
1172 ("libmicrohttpd" ,libmicrohttpd)
1173 ("ncurses" ,ncurses)
1174 ("openssl" ,openssl)
1175 ("zlib" ,zlib)))))
1176
7c92efff
RW
1177(define-public freepats
1178 (package
1179 (name "freepats")
1180 (version "20060219")
1181 (source (origin
1182 (method url-fetch)
1183 (uri (string-append "http://freepats.zenvoid.org/freepats-"
1184 version ".tar.bz2"))
1185 (sha256
1186 (base32
1187 "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
1188 (build-system trivial-build-system)
1189 (arguments
1190 `(#:modules ((guix build utils))
1191 #:builder (begin
1192 (use-modules (guix build utils))
1193 (let ((out (string-append %output "/share/freepats")))
1194 (setenv "PATH" (string-append
1195 (assoc-ref %build-inputs "bzip2") "/bin:"
1196 (assoc-ref %build-inputs "tar") "/bin"))
1197 (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
1198 (chdir "freepats")
1199 ;; Use absolute pattern references
1200 (substitute* "freepats.cfg"
1201 (("Tone_000") (string-append out "/Tone_000"))
1202 (("Drum_000") (string-append out "/Drum_000")))
1203 (mkdir-p out)
1204 (copy-recursively "." out)))))
1205 (native-inputs
1206 `(("tar" ,tar)
1207 ("bzip2" ,bzip2)))
1208 (home-page "http://freepats.zenvoid.org")
1209 (synopsis "GUS compatible patches for MIDI players")
1210 (description
1211 "FreePats is a project to create a free and open set of GUS compatible
1212patches that can be used with softsynths such as Timidity and WildMidi.")
1213 ;; GPLv2+ with exception for compositions using these patches.
1214 (license license:gpl2+)))
1215
fcbeb00b
RW
1216(define-public guitarix
1217 (package
1218 (name "guitarix")
952837c8 1219 (version "0.36.1")
fcbeb00b
RW
1220 (source (origin
1221 (method url-fetch)
1222 (uri (string-append
de67e922 1223 "mirror://sourceforge/guitarix/guitarix/guitarix2-"
d706d943 1224 version ".tar.xz"))
fcbeb00b
RW
1225 (sha256
1226 (base32
952837c8 1227 "1g5949jwh2n755xjs3kcbdb8a1wxr5mn0m115wdnk27dxcdn93b0"))))
fcbeb00b
RW
1228 (build-system waf-build-system)
1229 (arguments
1230 `(#:tests? #f ; no "check" target
1231 #:python ,python-2
1232 #:configure-flags
1233 (list
fcbeb00b 1234 ;; Add the output lib directory to the RUNPATH.
3c3e6972
LC
1235 (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
1236 "--cxxflags=-std=c++11")))
fcbeb00b
RW
1237 (inputs
1238 `(("libsndfile" ,libsndfile)
1239 ("boost" ,boost)
1240 ("avahi" ,avahi)
1241 ("eigen" ,eigen)
1242 ("lv2" ,lv2)
1243 ("lilv" ,lilv)
1244 ("ladspa" ,ladspa)
1245 ("jack" ,jack-1)
1246 ("gtkmm" ,gtkmm-2)
1247 ("gtk+" ,gtk+-2)
1248 ("fftwf" ,fftwf)
1249 ("lrdf" ,lrdf)
1250 ("zita-resampler" ,zita-resampler)
1251 ("zita-convolver" ,zita-convolver)))
1252 (native-inputs
1253 `(("gperf" ,gperf)
49767428 1254 ("faust" ,faust)
fcbeb00b 1255 ("intltool" ,intltool)
b94a6ca0 1256 ("gettext" ,gettext-minimal)
fcbeb00b
RW
1257 ("pkg-config" ,pkg-config)))
1258 (native-search-paths
1259 (list (search-path-specification
1260 (variable "LV2_PATH")
1261 (files '("lib/lv2")))))
1262 (home-page "http://guitarix.org/")
1263 (synopsis "Virtual guitar amplifier")
1264 (description "Guitarix is a virtual guitar amplifier running JACK.
1265Guitarix takes the signal from your guitar as a mono-signal from your sound
1266card. The input is processed by a main amp and a rack-section. Both can be
1267routed separately and deliver a processed stereo-signal via JACK. You may
1268fill the rack with effects from more than 25 built-in modules including stuff
1269from a simple noise gate to modulation effects like flanger, phaser or
1270auto-wah.")
1271 (license license:gpl2+)))
1272
5f5b5768
RW
1273(define-public guitarix-lv2
1274 (package (inherit guitarix)
1275 (name "guitarix-lv2")
1276 (arguments
1277 (substitute-keyword-arguments (package-arguments guitarix)
1278 ((#:configure-flags flags)
51a08853 1279 `(cons "--lv2-only" ,flags))))))
5f5b5768 1280
11d4800a
RW
1281(define-public rakarrack
1282 (package
1283 (name "rakarrack")
1284 (version "0.6.1")
1285 (source (origin
1286 (method url-fetch)
1287 (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/"
1288 "rakarrack-" version "/rakarrack-"
1289 version ".tar.bz2"))
1290 (sha256
1291 (base32
1292 "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn"))
1293 (modules '((guix build utils)))
1294 (snippet
1295 '(begin
1296 (substitute* '("src/process.C"
1297 "src/global.h")
1298 (("#include <Fl/") "#include <FL/"))
1299 #t))))
1300 (build-system gnu-build-system)
1301 (inputs
1302 `(("alsa-utils" ,alsa-utils)
1303 ("fltk" ,fltk)
1304 ("libx11" ,libx11)
1305 ("libxext" ,libxext)
1306 ("libxfixes" ,libxfixes)
1307 ("libxft" ,libxft)
1308 ("libxrender" ,libxrender)
1309 ("libxpm" ,libxpm)
1310 ("fontconfig" ,fontconfig)
1311 ("freetype" ,freetype)
1312 ("jack" ,jack-1)
1313 ("alsa-lib" ,alsa-lib)
1314 ("libsndfile" ,libsndfile)
1315 ("libsamplerate" ,libsamplerate)
1316 ("zlib" ,zlib)))
1317 (home-page "http://rakarrack.sourceforge.net/")
1318 (synopsis "Audio effects processor")
1319 (description
1320 "Rakarrack is a richly featured multi-effects processor emulating a
1321guitar effects pedalboard. Effects include compressor, expander, noise gate,
1322equalizers, exciter, flangers, chorus, various delay and reverb effects,
1323distortion modules and many more. Most of the effects engine is built from
1324modules found in the excellent software synthesizer ZynAddSubFX. Presets and
1325user interface are optimized for guitar, but Rakarrack processes signals in
1326stereo while it does not apply internal band-limiting filtering, and thus is
1327well suited to all musical instruments and vocals.")
1328 ;; The code is explicitly licensed under the GPL version 2 only.
1329 (license license:gpl2)))
1330
32cf42c1
RW
1331(define-public ir
1332 (package
1333 (name "ir")
1334 (version "1.3.2")
1335 (source (origin
1336 (method url-fetch)
c50f2af9
TGR
1337 ;; The original home-page is gone. Download the tarball from an
1338 ;; archive mirror instead.
1339 (uri (list (string-append
1340 "https://web.archive.org/web/20150803095032/"
1341 "http://factorial.hu/system/files/ir.lv2-"
1342 version ".tar.gz")
1343 (string-append
1344 "https://mirrors.kernel.org/gentoo/distfiles/ir.lv2-"
1345 version ".tar.gz")))
32cf42c1
RW
1346 (sha256
1347 (base32
1348 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
1349 (build-system gnu-build-system)
1350 (arguments
2df984f2 1351 `(#:tests? #f ; no tests
32cf42c1 1352 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2df984f2
TGR
1353 #:phases (modify-phases %standard-phases
1354 (delete 'configure)))) ; no configure script
32cf42c1
RW
1355 (inputs
1356 `(("libsndfile" ,libsndfile)
1357 ("libsamplerate" ,libsamplerate)
1358 ("lv2" ,lv2)
1359 ("glib" ,glib)
1360 ("gtk+" ,gtk+-2)
1361 ("zita-convolver" ,zita-convolver)))
1362 (native-inputs
1363 `(("pkg-config" ,pkg-config)))
1364 (native-search-paths
1365 (list (search-path-specification
1366 (variable "LV2_PATH")
1367 (files '("lib/lv2")))))
c50f2af9
TGR
1368 ;; Link to an archived copy of the home-page since the original is gone.
1369 (home-page (string-append "https://web.archive.org/web/20150803095032/"
1370 "http://factorial.hu/plugins/lv2/ir"))
32cf42c1
RW
1371 (synopsis "LV2 convolution reverb")
1372 (description
1373 "IR is a low-latency, real-time, high performance signal convolver
1374especially for creating reverb effects. It supports impulse responses with 1,
13752 or 4 channels, in any soundfile format supported by libsndfile.")
1376 (license license:gpl2+)))
1377
fb68469f
RW
1378(define-public jack-1
1379 (package
1380 (name "jack")
31b7af76 1381 (version "0.125.0")
fb68469f
RW
1382 (source (origin
1383 (method url-fetch)
1384 (uri (string-append
1385 "http://jackaudio.org/downloads/jack-audio-connection-kit-"
1386 version
1387 ".tar.gz"))
1388 (sha256
1389 (base32
31b7af76 1390 "0i6l25dmfk2ji2lrakqq9icnwjxklgcjzzk65dmsff91z2zva5rm"))))
fb68469f
RW
1391 (build-system gnu-build-system)
1392 (inputs
2f9ae82f 1393 `(("alsa-lib" ,alsa-lib)
5d95e30b
RW
1394 ("readline" ,readline)))
1395 ;; uuid.h is included in the JACK type headers
ca01b3ad 1396 ;; db.h is included in the libjack metadata headers
5d95e30b 1397 (propagated-inputs
ca01b3ad
RW
1398 `(("libuuid" ,util-linux)
1399 ("bdb" ,bdb)))
2f9ae82f
RW
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)))
fb68469f
RW
1402 (home-page "http://jackaudio.org/")
1403 (synopsis "JACK audio connection kit")
1404 (description
1405 "JACK is a low-latency audio server. It can connect a number of
1406different applications to an audio device, as well as allowing them to share
1407audio between themselves. JACK is different from other audio server efforts
1408in that it has been designed from the ground up to be suitable for
1409professional audio work. This means that it focuses on two key areas:
1410synchronous execution of all clients, and low latency operation.")
1411 ;; Most files are licensed under the GPL. However, the libjack/ tree is
1412 ;; licensed under the LGPL in order to allow for proprietary usage.
e89fa047 1413 (license (list license:gpl2+ license:lgpl2.1+))))
c54a8981 1414
bcbc02fd
RW
1415;; Packages depending on JACK should always prefer jack-1. Both jack-1 and
1416;; jack-2 implement the same API. JACK2 is provided primarily as a client
1417;; program for users who might benefit from the D-BUS features.
c54a8981
RW
1418(define-public jack-2
1419 (package (inherit jack-1)
314275c7 1420 (name "jack2")
8c03d1fa 1421 (version "1.9.12")
c54a8981
RW
1422 (source (origin
1423 (method url-fetch)
a4527622
RW
1424 (uri (string-append "https://github.com/jackaudio/jack2/releases/"
1425 "download/v" version "/jack2-"
1426 version ".tar.gz"))
f586c877 1427 (file-name (string-append name "-" version ".tar.gz"))
c54a8981
RW
1428 (sha256
1429 (base32
8c03d1fa 1430 "0crf4y9a5j9miw8r5ji4l3w5w0y2frrf7xyfsfdgacnw6vwy5vyy"))))
c54a8981
RW
1431 (build-system waf-build-system)
1432 (arguments
bc8bf605
RW
1433 `(#:python ,python-2
1434 #:tests? #f ; no check target
c54a8981 1435 #:configure-flags '("--dbus"
b416c647
SB
1436 "--alsa")
1437 #:phases
1438 (modify-phases %standard-phases
1439 (add-before
1440 'configure 'set-linkflags
1441 (lambda _
1442 ;; Add $libdir to the RUNPATH of all the binaries.
1443 (substitute* "wscript"
1444 ((".*CFLAGS.*-Wall.*" m)
1445 (string-append m
1446 " conf.env.append_unique('LINKFLAGS',"
bc8bf605
RW
1447 "'-Wl,-rpath=" %output "/lib')\n")))))
1448 (add-after 'install 'wrap-python-scripts
1449 (lambda* (#:key inputs outputs #:allow-other-keys)
1450 ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
1451 (let* ((out (assoc-ref outputs "out"))
1452 (path (getenv "PYTHONPATH")))
1453 (wrap-program (string-append out "/bin/jack_control")
1454 `("PYTHONPATH" ":" prefix (,path))))
1455 #t)))))
c54a8981
RW
1456 (inputs
1457 `(("alsa-lib" ,alsa-lib)
1458 ("dbus" ,dbus)
1459 ("expat" ,expat)
1460 ("libsamplerate" ,libsamplerate)
1461 ("opus" ,opus)
bc8bf605 1462 ("python2-dbus" ,python2-dbus)
c54a8981
RW
1463 ("readline" ,readline)))
1464 (native-inputs
1465 `(("pkg-config" ,pkg-config)))
1466 ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
1467 (license (list license:gpl2+ license:lgpl2.1+))))
f47cba0e 1468
2f4646b6
RW
1469(define-public jalv
1470 (package
1471 (name "jalv")
f1d81568 1472 (version "1.6.0")
2f4646b6
RW
1473 (source (origin
1474 (method url-fetch)
1475 (uri (string-append "http://download.drobilla.net/jalv-"
1476 version ".tar.bz2"))
1477 (sha256
1478 (base32
f1d81568 1479 "1x2wpzzx2cgvz3dgdcgsj8dr0w3zsasy62mvl199bsdj5fbjaili"))))
2f4646b6 1480 (build-system waf-build-system)
d8c317df
SB
1481 (arguments
1482 `(#:tests? #f ; no check target
1483 #:phases
1484 (modify-phases %standard-phases
1485 (add-before
1486 'configure 'set-flags
1487 (lambda _
1488 ;; Compile with C++11, required by gtkmm.
1489 (setenv "CXXFLAGS" "-std=c++11")
1490 #t)))))
2f4646b6
RW
1491 (inputs
1492 `(("lv2" ,lv2)
1493 ("lilv" ,lilv)
1494 ("suil" ,suil)
f1d81568
RW
1495 ("gtk" ,gtk+)
1496 ("gtkmm" ,gtkmm)
2f4646b6
RW
1497 ("jack" ,jack-1)))
1498 (native-inputs
1499 `(("pkg-config" ,pkg-config)))
1500 (home-page "http://drobilla.net/software/jalv/")
1501 (synopsis "Simple LV2 host for JACK")
1502 (description
1503 "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
1504plugins and exposes their ports as JACK ports, essentially making any LV2
1505plugin function as a JACK application.")
1506 (license license:isc)))
1507
2cc7ce31
RW
1508(define-public ladspa
1509 (package
1510 (name "ladspa")
1511 (version "1.13")
0c1910ed
AV
1512 (source
1513 (origin
1514 (method url-fetch)
1515 ;; Since the official link is dead,
1516 ;; we download the tarball from Debian or Internet Archive.
1517 (uri (list (string-append "http://http.debian.net"
1518 "/debian/pool/main/l/ladspa-sdk/ladspa-sdk_"
1519 version ".orig.tar.gz")
1520 (string-append "https://web.archive.org/web/20140717172251/"
1521 "http://www.ladspa.org/download/ladspa_sdk_"
1522 version ".tgz")))
1523 (sha256
1524 (base32
1525 "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
2cc7ce31
RW
1526 (build-system gnu-build-system)
1527 (arguments
1528 `(#:tests? #f ; the "test" target is a listening test only
1529 #:phases
1530 (alist-replace
1531 'configure
1532 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
1533 (chdir "src")
1534 (let ((out (assoc-ref outputs "out")))
1535 (substitute* "makefile"
1536 (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
1537 (("/usr/include/") (string-append out "/include/"))
1538 (("/usr/bin/") (string-append out "/bin/"))
1539 (("-mkdirhier") "mkdir -p")
1540 (("^CC.*") "CC = gcc\n")
1541 (("^CPP.*") "CPP = g++\n"))))
1542 (alist-delete 'build %standard-phases))))
0c1910ed
AV
1543 ;; Since the home page is gone, we provide a link to the archived version.
1544 (home-page
1545 "https://web.archive.org/web/20140729190945/http://www.ladspa.org/")
2cc7ce31
RW
1546 (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
1547 (description
1548 "LADSPA is a standard that allows software audio processors and effects
1549to be plugged into a wide range of audio synthesis and recording packages.")
1550 (license license:lgpl2.1+)))
1551
da49086a
RW
1552(define-public lash
1553 (package
1554 (name "lash")
1555 (version "0.6.0-rc2")
1556 (source (origin
1557 (method url-fetch)
1558 ;; The tilde is not permitted in the builder name, but is used
1559 ;; in the tarball.
1560 (uri (string-append
1561 "mirror://savannah/lash/lash-"
1562 (string-join (string-split version #\-) "~")
1563 ".tar.bz2"))
1564 (file-name (string-append name "-" version ".tar.bz2"))
1565 (sha256
1566 (base32
1567 "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
1568 (build-system gnu-build-system)
44df7807
EF
1569 (arguments
1570 '(#:phases
1571 (modify-phases %standard-phases
1572 ;; lashd embeds an ancient version of sigsegv so we just skip it
1573 (add-after 'unpack 'skip-lashd
1574 (lambda _
1575 (substitute* '("Makefile.am" "Makefile.in")
1576 (("lashd ") ""))
b07bfd06
EF
1577 #t)))
1578 #:configure-flags '("--disable-static")))
da49086a
RW
1579 (inputs
1580 `(("bdb" ,bdb)
1581 ("gtk" ,gtk+-2)
1582 ("jack" ,jack-1)
da49086a
RW
1583 ("readline" ,readline)
1584 ("python" ,python-2)))
1585 ;; According to pkg-config, packages depending on lash also need to have
1586 ;; at least the following packages declared as inputs.
1587 (propagated-inputs
1588 `(("alsa-lib" ,alsa-lib)
1589 ("dbus" ,dbus)
1590 ("libxml2" ,libxml2)))
1591 (native-inputs
1592 `(("pkg-config" ,pkg-config)))
340978d7 1593 (home-page "https://www.nongnu.org/lash/")
da49086a
RW
1594 (synopsis "Audio application session manager")
1595 (description
1596 "LASH is a session management system for audio applications. It allows
1597you to save and restore audio sessions consisting of multiple interconneced
1598applications, restoring program state (i.e. loaded patches) and the
1599connections between them.")
1600 (license license:gpl2+)))
1601
8c0b5a75
TUBK
1602(define-public libbs2b
1603 (package
1604 (name "libbs2b")
1605 (version "3.1.0")
1606 (source (origin
1607 (method url-fetch)
de67e922
LF
1608 (uri (string-append "mirror://sourceforge/bs2b/libbs2b/" version
1609 "/libbs2b-" version ".tar.lzma"))
8c0b5a75
TUBK
1610 (sha256
1611 (base32
1612 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
1613 (build-system gnu-build-system)
1614 (native-inputs `(("pkg-config" ,pkg-config)))
1615 (inputs `(("libsndfile" ,libsndfile)))
3b3b60d0 1616 (home-page "https://sourceforge.net/projects/bs2b/")
8c0b5a75
TUBK
1617 (synopsis "Bauer stereophonic-to-binaural DSP")
1618 (description
1619 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is
1620designed to improve headphone listening of stereo audio records. Recommended
1621for headphone prolonged listening to disable superstereo fatigue without
1622essential distortions.")
1623 (license license:expat)))
1624
f47cba0e
RW
1625(define-public liblo
1626 (package
1627 (name "liblo")
57c734a6 1628 (version "0.29")
f47cba0e
RW
1629 (source (origin
1630 (method url-fetch)
de67e922
LF
1631 (uri (string-append "mirror://sourceforge/liblo/liblo/" version
1632 "/liblo-" version ".tar.gz"))
f47cba0e
RW
1633 (sha256
1634 (base32
57c734a6 1635 "0sn0ckc1d0845mhsaa62wf7f9v0c0ykiq796a30ja5096kib9qdc"))))
f47cba0e
RW
1636 (build-system gnu-build-system)
1637 (arguments
1638 `(;; liblo test FAILED
1639 ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
1640 #:tests? #f))
1641 (home-page "http://liblo.sourceforge.net")
1642 (synopsis "Implementation of the Open Sound Control protocol")
1643 (description
1644 "liblo is a lightweight library that provides an easy to use
03b71957 1645implementation of the Open Sound Control (@dfn{OSC}) protocol.")
f47cba0e 1646 (license license:lgpl2.1+)))
e2420191 1647
fbcad884
OP
1648(define-public python-pyaudio
1649 (package
1650 (name "python-pyaudio")
1651 (version "0.2.11")
1652 (source
1653 (origin
1654 (method url-fetch)
1655 (uri
1656 (string-append
1657 "https://pypi.python.org/packages/ab/42/"
1658 "b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b"
1659 "/PyAudio-" version ".tar.gz"))
1660 (sha256
1661 (base32
1662 "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
1663 (build-system python-build-system)
1664 (inputs
1665 `(("portaudio" ,portaudio)))
1666 (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
1667 (synopsis "Bindings for PortAudio v19")
1668 (description "This package provides bindings for PortAudio v19, the
1669cross-platform audio input/output stream library.")
1670 (license license:expat)))
1671
1672(define-public python2-pyaudio
1673 (package-with-python2 python-pyaudio))
1674
a91d72e2
RW
1675(define-public python-pyliblo
1676 (package
1677 (name "python-pyliblo")
1678 (version "0.10.0")
1679 (source (origin
1680 (method url-fetch)
1681 (uri (string-append "http://das.nasophon.de/download/pyliblo-"
1682 version ".tar.gz"))
1683 (sha256
1684 (base32
1685 "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw"))))
1686 (build-system python-build-system)
1687 (arguments `(#:tests? #f)) ;no tests
f2516de2
HG
1688 (native-inputs
1689 `(("python-cython" ,python-cython)))
a91d72e2 1690 (inputs
f2516de2 1691 `(("liblo" ,liblo)))
a91d72e2
RW
1692 (home-page "http://das.nasophon.de/pyliblo/")
1693 (synopsis "Python bindings for liblo")
1694 (description
1695 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)
1696library. It supports almost the complete functionality of liblo, allowing you
1697to send and receive OSC messages using a nice and simple Python API. Also
1698included are the command line utilities @code{send_osc} and @code{dump_osc}.")
1699 (license license:lgpl2.1+)))
1700
1701(define-public python2-pyliblo
1702 (package-with-python2 python-pyliblo))
1703
332aad1b
RW
1704(define-public lilv
1705 (package
1706 (name "lilv")
d4d3df82 1707 (version "0.24.2")
332aad1b
RW
1708 (source (origin
1709 (method url-fetch)
1710 (uri (string-append "http://download.drobilla.net/lilv-"
d4d3df82 1711 version ".tar.bz2"))
332aad1b
RW
1712 (sha256
1713 (base32
d4d3df82 1714 "08m5a372pr1l7aii9s3pic5nm68gynx1n1bc7bnlswziq6qnbv7p"))))
332aad1b 1715 (build-system waf-build-system)
d80ee442
TUBK
1716 (arguments
1717 `(#:tests? #f ; no check target
1718 #:phases
1719 (modify-phases %standard-phases
1720 (add-before
1721 'configure 'set-ldflags
1722 (lambda* (#:key outputs #:allow-other-keys)
1723 (setenv "LDFLAGS"
1724 (string-append "-Wl,-rpath="
1725 (assoc-ref outputs "out") "/lib")))))))
ff7df27d
RW
1726 ;; required by lilv-0.pc
1727 (propagated-inputs
1728 `(("serd" ,serd)
332aad1b
RW
1729 ("sord" ,sord)
1730 ("sratom" ,sratom)))
ff7df27d
RW
1731 (inputs
1732 `(("lv2" ,lv2)))
332aad1b
RW
1733 (native-inputs
1734 `(("pkg-config" ,pkg-config)))
1735 (home-page "http://drobilla.net/software/lilv/")
1736 (synopsis "Library to simplify use of LV2 plugins in applications")
1737 (description
1738 "Lilv is a C library to make the use of LV2 plugins as simple as possible
1739for applications. Lilv is the successor to SLV2, rewritten to be
1740significantly faster and have minimal dependencies.")
1741 (license license:isc)))
1742
e2420191
RW
1743(define-public lv2
1744 (package
1745 (name "lv2")
eb21d248 1746 (version "1.14.0")
e2420191
RW
1747 (source (origin
1748 (method url-fetch)
1749 (uri (string-append "http://lv2plug.in/spec/lv2-"
eb21d248 1750 version ".tar.bz2"))
e2420191
RW
1751 (sha256
1752 (base32
eb21d248 1753 "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq"))))
e2420191
RW
1754 (build-system waf-build-system)
1755 (arguments
1756 `(#:tests? #f ; no check target
2e189eb8 1757 #:configure-flags '("--no-plugins")))
e2420191
RW
1758 (inputs
1759 ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
1760 `(("libsndfile" ,libsndfile)))
1761 (native-inputs
1762 `(("pkg-config" ,pkg-config)))
1763 (home-page "http://lv2plug.in/")
1764 (synopsis "LV2 audio plugin specification")
1765 (description
1766 "LV2 is an open specification for audio plugins and host applications.
1767At its core, LV2 is a simple stable interface, accompanied by extensions which
1768add functionality to support the needs of increasingly powerful audio
1769software.")
1770 (license license:isc)))
5279eb6f 1771
5e30032f
RW
1772(define-public lv2-devel
1773 (let ((commit "39c7c726cd52b2863fcea356cafe1bcab2ba7f37")
1774 (revision "1"))
1775 (package (inherit lv2)
1776 (name "lv2-devel")
1777 (version (string-append "1.15.3-" revision "." (string-take commit 7)))
1778 (source (origin
1779 (method git-fetch)
1780 (uri (git-reference
1781 (url "http://lv2plug.in/git/lv2.git")
1782 (commit commit)))
6677c99a 1783 (file-name (git-file-name name version))
5e30032f
RW
1784 (sha256
1785 (base32
1786 "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r")))))))
1787
98247127
RW
1788(define-public lv2-mda-piano
1789 (package
1790 (name "lv2-mda-piano")
1791 (version "0.0.2")
1792 (source (origin
1793 (method git-fetch)
1794 (uri (git-reference
f6f499b3 1795 (url "http://git.elephly.net/software/lv2-mdametapiano.git")
98247127 1796 (commit version)))
35a01e67 1797 (file-name (git-file-name name version))
98247127
RW
1798 (sha256
1799 (base32
1800 "07lywf6lpfpndg3i9w752mmlg2hgn1bwp23h8b0mdj6awh67abqd"))))
1801 (build-system gnu-build-system)
1802 (arguments
1803 `(#:make-flags (list
1804 "TYPE=mdaPiano"
1805 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1806 #:tests? #f ; no check target
dc1d3cde 1807 #:phases (modify-phases %standard-phases (delete 'configure))))
98247127
RW
1808 (inputs
1809 `(("lv2" ,lv2)
1810 ("lvtk" ,lvtk)))
1811 (native-inputs
1812 `(("pkg-config" ,pkg-config)))
1813 (native-search-paths
1814 (list (search-path-specification
1815 (variable "LV2_PATH")
1816 (files '("lib/lv2")))))
1817 (home-page "http://elephly.net/lv2/mdapiano.html")
1818 (synopsis "LV2 port of the mda Piano plugin")
1819 (description "An LV2 port of the mda Piano VSTi.")
1820 (license license:gpl3+)))
1821
8fb79e3d
RW
1822(define-public lv2-mda-epiano
1823 (package (inherit lv2-mda-piano)
1824 (name "lv2-mda-epiano")
1825 (arguments
1826 `(#:make-flags (list
1827 "TYPE=mdaEPiano"
1828 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1829 #:tests? #f ; no check target
dc1d3cde 1830 #:phases (modify-phases %standard-phases (delete 'configure))))
8fb79e3d
RW
1831 (home-page "http://elephly.net/lv2/mdaepiano.html")
1832 (synopsis "LV2 port of the mda EPiano plugin")
1833 (description "An LV2 port of the mda EPiano VSTi.")))
1834
c1718190
RW
1835(define-public lvtk
1836 (package
1837 (name "lvtk")
1838 (version "1.2.0")
1839 (source (origin
1840 (method url-fetch)
1841 (uri (string-append "https://github.com/lvtk/lvtk/archive/"
1842 version
1843 ".tar.gz"))
f586c877 1844 (file-name (string-append name "-" version ".tar.gz"))
c1718190
RW
1845 (sha256
1846 (base32
1847 "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
1848 (build-system waf-build-system)
1849 (arguments
1850 `(#:tests? #f ; no check target
1851 #:python ,python-2
1852 #:configure-flags
1853 (list (string-append "--boost-includes="
1854 (assoc-ref %build-inputs "boost")
c91d3fb7
EB
1855 "/include"))
1856 #:phases (modify-phases %standard-phases
1857 (add-before
1858 'configure 'set-flags
1859 (lambda* (#:key inputs #:allow-other-keys)
1860 ;; See e.g. https://github.com/lvtk/lvtk/issues/21
1861 (setenv "LDFLAGS"
1862 (string-append
1863 "-L" (assoc-ref inputs "boost") "/lib "
85f4863f
RW
1864 "-lboost_system"))
1865 ;; Needed for gtkmm
1866 (substitute* '("src/wscript_build"
1867 "examples/wscript_build")
1868 (("cxxflags.*= \\[" line)
1869 (string-append line "\"-std=c++11\", ")))
1870 #t)))))
c1718190
RW
1871 (inputs
1872 `(("boost" ,boost)
85f4863f 1873 ("gtkmm" ,gtkmm-2)
c1718190
RW
1874 ("lv2" ,lv2)))
1875 (native-inputs
1876 `(("pkg-config" ,pkg-config)))
1877 (home-page "https://github.com/lvtk/lvtk")
1878 (synopsis "C++ libraries for LV2 plugins")
1879 (description
1880 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
1881extensions into easy to use C++ classes. It is the successor of
1882lv2-c++-tools.")
1883 (license license:gpl3+)))
1884
f2fac359
TUBK
1885(define-public openal
1886 (package
1887 (name "openal")
a232d2c6 1888 (version "1.17.2")
f2fac359
TUBK
1889 (source (origin
1890 (method url-fetch)
1891 (uri (string-append
1892 "http://kcat.strangesoft.net/openal-releases/openal-soft-"
1893 version ".tar.bz2"))
1894 (sha256
1895 (base32
a232d2c6 1896 "051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3"))))
f2fac359
TUBK
1897 (build-system cmake-build-system)
1898 (arguments
7ee5db15
RW
1899 `(#:tests? #f ; no check target
1900 #:phases
1901 (modify-phases %standard-phases
1902 (add-after
1903 'unpack 'use-full-library-paths
1904 (lambda* (#:key inputs #:allow-other-keys)
1905 (substitute* "Alc/backends/pulseaudio.c"
1906 (("#define PALIB \"libpulse\\.so\\.0\"")
1907 (string-append "#define PALIB \""
1908 (assoc-ref inputs "pulseaudio")
1909 "/lib/libpulse.so.0"
1910 "\"")))
1911 (substitute* "Alc/backends/alsa.c"
1912 (("LoadLib\\(\"libasound\\.so\\.2\"\\)")
1913 (string-append "LoadLib(\""
1914 (assoc-ref inputs "alsa-lib")
1915 "/lib/libasound.so.2"
1916 "\")")))
1917 #t)))))
f2fac359
TUBK
1918 (inputs
1919 `(("alsa-lib" ,alsa-lib)
1920 ("pulseaudio" ,pulseaudio)))
1921 (synopsis "3D audio API")
1922 (description
1923 "OpenAL provides capabilities for playing audio in a virtual 3D
1924environment. Distance attenuation, doppler shift, and directional sound
1925emitters are among the features handled by the API. More advanced effects,
1926including air absorption, occlusion, and environmental reverb, are available
1927through the EFX extension. It also facilitates streaming audio, multi-channel
1928buffers, and audio capture.")
1929 (home-page "http://kcat.strangesoft.net/openal.html")
1930 (license license:lgpl2.0+)))
1931
c2b411c2 1932(define-public freealut
1933 (package
1934 (name "freealut")
1935 (version "1.1.0")
1936 (source (origin
1937 (method url-fetch)
1938 ;; Upstream url is unclear, many systems use Fedora, there is also
1939 ;; https://github.com/vancegroup/freealut though the status of it
1940 ;; (official? unofficial?) is not clear.
1941 (uri (string-append
1942 "https://pkgs.fedoraproject.org/repo/pkgs/" name "/" name "-"
1943 version ".tar.gz" "/e089b28a0267faabdb6c079ee173664a/" name
1944 "-" version ".tar.gz"))
1945 (sha256
1946 (base32
1947 "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0"))))
1948 (build-system cmake-build-system)
1949 (arguments
1950 `(#:tests? #f)) ; no check target
1951 (inputs
1952 `(("openal" ,openal)))
1953 (synopsis "Free implementation of OpenAL's ALUT standard")
1954 (description "freealut is the OpenAL Utility Toolkit.")
1955 (home-page "http://kcat.strangesoft.net/openal.html")
1956 (license license:lgpl2.0)))
1957
4443bb8d
RW
1958(define-public patchage
1959 (package
1960 (name "patchage")
1961 (version "1.0.0")
1962 (source (origin
1963 (method url-fetch)
1964 (uri (string-append "http://download.drobilla.net/patchage-"
1965 version
1966 ".tar.bz2"))
1967 (sha256
1968 (base32
1969 "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
1970 (build-system waf-build-system)
1971 (arguments `(#:tests? #f)) ; no check target
1972 (inputs
1973 `(("alsa-lib" ,alsa-lib)
1974 ("boost" ,boost)
1975 ("jack" ,jack-1)
4443bb8d 1976 ("ganv" ,ganv)
4443bb8d
RW
1977 ("glibmm" ,glibmm)
1978 ("gtkmm" ,gtkmm-2)
4443bb8d
RW
1979 ("dbus-glib" ,dbus-glib)))
1980 (native-inputs
1981 `(("pkg-config" ,pkg-config)))
1982 (home-page "http://drobilla.net/software/patchage/")
1983 (synopsis "Modular patch bay for audio and MIDI systems")
1984 (description
1985 "Patchage is a modular patch bay for audio and MIDI systems based on JACK
1986and ALSA.")
1987 (license license:gpl3+)))
1988
0d78e377
MM
1989(define-public qjackctl
1990 (package
1991 (name "qjackctl")
04e7cd8d 1992 (version "0.5.1")
0d78e377
MM
1993 (source (origin
1994 (method url-fetch)
1538bc33
RW
1995 (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
1996 version "/qjackctl-" version ".tar.gz"))
0d78e377
MM
1997 (sha256
1998 (base32
04e7cd8d 1999 "0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4"))))
0d78e377
MM
2000 (build-system gnu-build-system)
2001 (arguments
a3c57693 2002 '(#:tests? #f)) ; no check target
0d78e377 2003 (inputs
5ffa7cb1 2004 `(("jack" ,jack-1)
c0c5feda 2005 ("alsa-lib" ,alsa-lib)
a3c57693
EF
2006 ("qtbase" ,qtbase)
2007 ("qtx11extras" ,qtx11extras)))
0d78e377
MM
2008 (native-inputs
2009 `(("pkg-config" ,pkg-config)
2010 ("qttools" ,qttools)))
2011 (home-page "https://qjackctl.sourceforge.io/")
2012 (synopsis "Jack server control application")
2013 (description "Control a Jack server. Allows you to plug various sources
2014into various outputs and to start, stop and configure jackd")
2015 (license license:gpl2+)))
2016
40713793
RW
2017(define-public qjackrcd
2018 (package
2019 (name "qjackrcd")
78357403 2020 (version "1.2.2")
40713793 2021 (source (origin
78357403
RW
2022 (method git-fetch)
2023 (uri (git-reference
2024 (url "https://github.com/orouits/qjackrcd.git")
2025 (commit (string-append "v" version))))
70aa07d2 2026 (file-name (git-file-name name version))
40713793
RW
2027 (sha256
2028 (base32
78357403 2029 "1l5iq2mkqd4gn9yr8xbh9qlpp1clcflazychl4vhdbz0bzq4c6al"))))
40713793
RW
2030 (build-system gnu-build-system)
2031 (arguments
2032 `(#:phases
2033 (modify-phases %standard-phases
2034 (replace 'configure
2035 (lambda* (#:key outputs #:allow-other-keys)
14a852bd
TGR
2036 (invoke "qmake"
2037 (string-append "PREFIX="
2038 (assoc-ref outputs "out"))))))))
40713793
RW
2039 (native-inputs
2040 `(("qtbase" ,qtbase))) ; for qmake
2041 (inputs
2042 `(("jack" ,jack-1)
2043 ("libsndfile" ,libsndfile)
2044 ("qtbase" ,qtbase)))
2045 (home-page "https://sourceforge.net/projects/qjackrcd/")
2046 (synopsis "Stereo audio recorder for JACK")
2047 (description "QJackRcd is a simple graphical stereo recorder for JACK
2048supporting silence processing for automatic pause, file splitting, and
2049background file post-processing.")
2050 (license license:gpl2+)))
0d78e377 2051
247384d0
MC
2052(define-public supercollider
2053 (package
2054 (name "supercollider")
75657922 2055 (version "3.9.2")
247384d0
MC
2056 (source (origin
2057 (method url-fetch)
2058 (uri (string-append
2059 "https://github.com/supercollider/supercollider"
2060 "/releases/download/Version-" version
2061 "/SuperCollider-" version "-Source-linux.tar.bz2"))
2062 (sha256
2063 (base32
75657922 2064 "0d3cb6dw8jz7ijriqn3rlwin24gffczp69hl17pzxj1d5w57yj44"))))
247384d0
MC
2065 (build-system cmake-build-system)
2066 (arguments
2067 `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
77cc8778 2068 "-DSC_QT=off"
247384d0
MC
2069 "-DSC_EL=off") ;scel is packaged individually as
2070 ;emacs-scel.
2071 #:modules ((guix build utils)
2072 (guix build cmake-build-system)
2073 (ice-9 ftw))
2074 #:phases
2075 (modify-phases %standard-phases
2076 (add-after 'unpack 'rm-bundled-libs
2077 (lambda _
2078 ;; The build system doesn't allow us to unbundle the following
2079 ;; libraries. hidapi is also heavily patched and upstream not
2080 ;; actively maintained.
2081 (let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" "TLSF-2.4.6"
2082 "oscpack_1_1_0" "." "..")))
2083 (with-directory-excursion "./external_libraries"
2084 (for-each
2085 delete-file-recursively
2086 (scandir "."
2087 (lambda (x)
2088 (and (eq? (stat:type (stat x)) 'directory)
2089 (not (member (basename x) keep-dirs))))))))
2090 #t))
2091 ;; Some tests are broken (see:
2092 ;; https://github.com/supercollider/supercollider/issues/3555 and
2093 ;; https://github.com/supercollider/supercollider/issues/1736
2094 (add-after 'rm-bundled-libs 'disable-broken-tests
2095 (lambda _
2096 (substitute* "testsuite/supernova/CMakeLists.txt"
2097 (("server_test.cpp")
2098 "")
2099 (("perf_counter_test.cpp")
2100 ""))
2101 (delete-file "testsuite/supernova/server_test.cpp")
2102 (delete-file "testsuite/supernova/perf_counter_test.cpp")
2103 (substitute* "testsuite/CMakeLists.txt"
2104 (("add_subdirectory\\(sclang\\)")
2105 ""))
2106 (delete-file "testsuite/sclang/CMakeLists.txt")
2107 #t))
2108 ;; TODO: Remove after version 3.9.2 is released
2109 ;; (see: https://github.com/supercollider/supercollider/pull/3558).
2110 (add-after 'disable-broken-tests 'apply-system-yaml-cpp-fix
2111 (lambda _
2112 ;; cmake: correctly include yaml-cpp (commit f82cec5ae).
2113 (substitute* "editors/sc-ide/CMakeLists.txt"
2114 (("external_libraries/boost\\)$")
2115 "external_libraries/boost)
2116include_directories(${YAMLCPP_INCLUDE_DIR})")
2117 ((" yaml")
2118 " ${YAMLCPP_LIBRARY}"))
2119 ;; set YAMLCPP_LIBRARY and YAMLCPP_INCLUDE_DIR if not using
2120 ;; system (commit 031922987).
2121 (substitute* "external_libraries/CMakeLists.txt"
2122 (("set_property\\( TARGET yaml PROPERTY FOLDER 3rdparty \\)")
2123 "set_property( TARGET yaml PROPERTY FOLDER 3rdparty )
2124set(YAMLCPP_LIBRARY yaml)
2125set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\
2126external_libraries/yaml-cpp/include)"))
2127 #t)))))
2128 (native-inputs
77cc8778 2129 `(("pkg-config" ,pkg-config)))
247384d0
MC
2130 (inputs
2131 `(("jack" ,jack-1)
2132 ("libsndfile" ,libsndfile)
2133 ("fftw" ,fftw)
2134 ("libxt" ,libxt)
2135 ("readline" ,readline) ;readline support for sclang's CLI
2136 ("alsa" ,alsa-lib) ;for sclang's MIDI interface
2137 ("eudev" ,eudev) ;for user interactions with devices
2138 ("avahi" ,avahi) ;zeroconf service discovery support
2139 ("icu4c" ,icu4c)
2140 ("boost" ,boost)
2141 ("boost-sync" ,boost-sync)
77cc8778 2142 ("yaml-cpp" ,yaml-cpp)))
247384d0
MC
2143 (home-page "https://github.com/supercollider/supercollider")
2144 (synopsis "Synthesis engine and programming language")
2145 (description "SuperCollider is a synthesis engine (@code{scsynth} or
2146@code{supernova}) and programming language (@code{sclang}). It can be used
2147for experimenting with sound synthesis and algorithmic composition.
2148
2149SuperCollider requires jackd to be installed in your user profile and your
2150user must be allowed to access the realtime features of the kernel. Search
2151for \"realtime\" in the index of the Guix manual to learn how to achieve this
2152using GuixSD.")
2153 (license license:gpl2+)))
2154
b22755be
RW
2155(define-public raul
2156 (package
2157 (name "raul")
2158 (version "0.8.0")
2159 (source (origin
2160 (method url-fetch)
2161 (uri (string-append "http://download.drobilla.net/raul-"
2162 version ".tar.bz2"))
2163 (sha256
2164 (base32
2165 "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
2166 (build-system waf-build-system)
2167 (arguments
2168 `(#:python ,python-2
2169 #:tests? #f)) ; no check target
2170 (inputs
2171 `(("glib" ,glib)
2172 ("boost" ,boost)))
2173 (native-inputs
2174 `(("pkg-config" ,pkg-config)))
2175 (home-page "http://drobilla.net/software/raul/")
2176 (synopsis "Real-time audio utility library")
2177 (description
2178 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
2179aimed at audio/musical applications.")
2180 (license license:gpl2+)))
2181
f91d0d08 2182(define-public raul-devel
a8bf6b9b 2183 (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
f91d0d08
RW
2184 (revision "1"))
2185 (package (inherit raul)
2186 (name "raul")
a8bf6b9b 2187 (version (string-append "0.8.9-" revision "."
f91d0d08
RW
2188 (string-take commit 9)))
2189 (source (origin
2190 (method git-fetch)
2191 (uri (git-reference
2192 (url "http://git.drobilla.net/raul.git")
2193 (commit commit)))
2194 (file-name (string-append name "-" version "-checkout"))
2195 (sha256
2196 (base32
a8bf6b9b 2197 "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
f91d0d08 2198
57238ff2
RW
2199(define-public rubberband
2200 (package
2201 (name "rubberband")
2202 (version "1.8.1")
2203 (source (origin
2204 (method url-fetch)
2205 (uri
2206 (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
2207 version
2208 ".tar.bz2"))
fdf359f8 2209 (file-name (string-append name "-" version ".tar.bz2"))
57238ff2
RW
2210 (sha256
2211 (base32
2212 "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
2213 (build-system gnu-build-system)
2214 (arguments `(#:tests? #f)) ; no check target
2215 (inputs
2216 `(("ladspa" ,ladspa)
2217 ("libsamplerate" ,libsamplerate)
2218 ("vamp" ,vamp)))
2219 (native-inputs
2220 `(("pkg-config" ,pkg-config)))
2221 (home-page "http://breakfastquay.com/rubberband/")
2222 (synopsis "Audio time-stretching and pitch-shifting library")
2223 (description
2224 "Rubber Band is a library and utility program that permits changing the
2225tempo and pitch of an audio recording independently of one another.")
2226 (license license:gpl2+)))
2227
cc45cff8
RW
2228(define-public rtmidi
2229 (package
2230 (name "rtmidi")
2231 (version "2.1.0")
2232 (source (origin
2233 (method url-fetch)
2234 (uri
2235 (string-append "https://github.com/powertab/rtmidi/archive/"
2236 version ".tar.gz"))
2237 (file-name (string-append name "-" version ".tar.gz"))
2238 (sha256
2239 (base32
2240 "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj"))))
2241 (build-system gnu-build-system)
2242 (arguments
2243 `(#:tests? #f ;no "check" target
2244 #:phases (modify-phases %standard-phases
d10092b8
KK
2245 (add-after
2246 'unpack 'autoconf
cc45cff8
RW
2247 (lambda _ (zero? (system* "autoreconf" "-vfi"))))
2248 (add-before
2249 'build 'fix-makefile
2250 (lambda _
2251 (substitute* "Makefile"
2252 (("/bin/ln") "ln")
2253 (("RtMidi.h RtError.h") "RtMidi.h"))
2254 #t))
2255 (add-before
2256 'install 'make-target-dirs
2257 (lambda _
2258 (let ((out (assoc-ref %outputs "out")))
2259 (mkdir-p (string-append out "/bin"))
2260 (mkdir (string-append out "/lib"))
2261 (mkdir (string-append out "/include")))
2262 #t)))))
2263 (inputs
2264 `(("jack" ,jack-1)
2265 ("alsa-lib" ,alsa-lib)))
2266 (native-inputs
2267 `(("autoconf" ,autoconf)
2268 ("automake" ,automake)
2269 ("libtool" ,libtool)
2270 ("pkg-config" ,pkg-config)))
2271 (home-page "https://github.com/powertab/rtmidi")
2272 (synopsis "Cross-platform MIDI library for C++")
2273 (description
2274 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific
2275classes) that provide a common cross-platform API for realtime MIDI
2276input/output.")
2277 (license license:expat)))
2278
5279eb6f
RW
2279(define-public sratom
2280 (package
2281 (name "sratom")
7181981f 2282 (version "0.6.0")
5279eb6f
RW
2283 (source (origin
2284 (method url-fetch)
2285 (uri (string-append "http://download.drobilla.net/sratom-"
7181981f 2286 version ".tar.bz2"))
5279eb6f
RW
2287 (sha256
2288 (base32
7181981f 2289 "0hrxd9i66s06bpn6i3s9ka95134g3sm8yscmif7qgdzhyjqw42j4"))))
5279eb6f
RW
2290 (build-system waf-build-system)
2291 (arguments `(#:tests? #f)) ; no check target
2292 (inputs
2293 `(("lv2" ,lv2)
2294 ("serd" ,serd)
2295 ("sord" ,sord)))
2296 (native-inputs
2297 `(("pkg-config" ,pkg-config)))
2298 (home-page "http://drobilla.net/software/sratom/")
2299 (synopsis "Library for serialising LV2 atoms to/from RDF")
2300 (description
2301 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
2302the Turtle syntax.")
2303 (license license:isc)))
f3ab6ad3
RW
2304
2305(define-public suil
2306 (package
2307 (name "suil")
a00403c6 2308 (version "0.10.0")
f3ab6ad3
RW
2309 (source (origin
2310 (method url-fetch)
2311 (uri (string-append "http://download.drobilla.net/suil-"
b1d3bb76 2312 version ".tar.bz2"))
f3ab6ad3
RW
2313 (sha256
2314 (base32
a00403c6 2315 "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"))))
f3ab6ad3 2316 (build-system waf-build-system)
9f64f7e6
RW
2317 (arguments
2318 `(#:tests? #f ; no check target
2319 #:configure-flags
2320 '("CXXFLAGS=-std=gnu++11")))
f3ab6ad3
RW
2321 (inputs
2322 `(("lv2" ,lv2)
a00403c6
RW
2323 ("gtk+" ,gtk+-2)
2324 ("gtk+" ,gtk+)
9f64f7e6 2325 ("qt" ,qtbase)))
f3ab6ad3
RW
2326 (native-inputs
2327 `(("pkg-config" ,pkg-config)))
2328 (home-page "http://drobilla.net/software/suil/")
2329 (synopsis "Library for loading and wrapping LV2 plugin UIs")
2330 (description
2331 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
2332
2333Suil makes it possible to load a UI of a toolkit in a host using another
2334toolkit. The API is designed such that hosts do not need to explicitly
2335support specific toolkits – if Suil supports a particular toolkit, then UIs in
2336that toolkit will work in all hosts that use Suil automatically.
2337
a00403c6 2338Suil currently supports every combination of Gtk, Qt, and X11.")
f3ab6ad3 2339 (license license:isc)))
db46f2fc 2340
9ffee457
RW
2341(define-public timidity++
2342 (package
2343 (name "timidity++")
2344 (version "2.14.0")
2345 (source (origin
2346 (method url-fetch)
de67e922
LF
2347 (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
2348 "/TiMidity++-" version
2349 "/TiMidity++-" version ".tar.bz2"))
9ffee457
RW
2350 (sha256
2351 (base32
2352 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
2353 (build-system gnu-build-system)
2354 (arguments
2355 '(#:configure-flags
2356 (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
2357 "--enable-ncurses"
2358 "--enable-server"
2359 "--enable-alsaseq"
2360 (string-append "--with-default-path="
2361 (assoc-ref %outputs "out") "/etc/timidity"))
2362 #:phases
dc1d3cde
KK
2363 (modify-phases %standard-phases
2364 (add-after 'install 'install-config
2365 (lambda _
2366 (let ((out (string-append (assoc-ref %outputs "out")
2367 "/etc/timidity")))
2368 (mkdir-p out)
2369 (call-with-output-file
2370 (string-append out "/timidity.cfg")
2371 (lambda (port)
2372 (format port (string-append "source "
2373 (assoc-ref %build-inputs "freepats")
2374 "/share/freepats/freepats.cfg")))))
2375 #t)))))
9ffee457
RW
2376 (inputs
2377 `(("alsa-lib" ,alsa-lib)
2378 ("ao" ,ao)
2379 ("flac" ,flac)
2380 ("jack" ,jack-1)
2381 ("libogg" ,libogg)
2382 ("speex" ,speex)
2383 ("ncurses" ,ncurses)
2384 ("freepats" ,freepats)))
2385 (native-inputs
2386 `(("pkg-config" ,pkg-config)))
2387 (home-page "http://timidity.sourceforge.net/")
2388 (synopsis "Software synthesizer for playing MIDI files")
2389 (description
2390 "TiMidity++ is a software synthesizer. It can play MIDI files by
2391converting them into PCM waveform data; give it a MIDI data along with digital
2392instrument data files, then it synthesizes them in real-time, and plays. It
2393can not only play sounds, but also can save the generated waveforms into hard
2394disks as various audio file formats.")
2395 (license license:gpl2+)))
2396
db46f2fc
RW
2397(define-public vamp
2398 (package
2399 (name "vamp")
b1fb59d3 2400 (version "2.6")
db46f2fc
RW
2401 (source (origin
2402 (method url-fetch)
2403 (uri (string-append
2404 "https://code.soundsoftware.ac.uk"
494e9b91 2405 "/attachments/download/1520/vamp-plugin-sdk-"
b1fb59d3 2406 version ".tar.gz"))
9002e17c
TUBK
2407 (sha256
2408 (base32
494e9b91 2409 "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
db46f2fc 2410 (build-system gnu-build-system)
9002e17c
TUBK
2411 (arguments
2412 `(#:tests? #f ; no check target
2413 #:phases
dc1d3cde
KK
2414 (modify-phases %standard-phases
2415 (add-after 'install 'remove-libvamp-hostsdk.la
2416 (lambda* (#:key outputs #:allow-other-keys)
2417 ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
2418 (for-each delete-file
2419 (let ((out (assoc-ref outputs "out")))
2420 (list (string-append out "/lib/libvamp-sdk.la")
2421 (string-append out "/lib/libvamp-hostsdk.la"))))
4f27a333 2422 #t)))))
db46f2fc
RW
2423 (inputs
2424 `(("libsndfile" ,libsndfile)))
2425 (native-inputs
2426 `(("pkg-config" ,pkg-config)))
2427 (home-page "http://vamp-plugins.org")
2428 (synopsis "Modular and extensible audio processing system")
2429 (description
2430 "Vamp is an audio processing plugin system for plugins that extract
2431descriptive information from audio data — typically referred to as audio
2432analysis plugins or audio feature extraction plugins.")
2433 (license
2434 (license:x11-style
2435 "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
9f1cdd9d
TUBK
2436
2437(define-public libsbsms
2438 (package
2439 (name "libsbsms")
2440 (version "2.0.2")
2441 (source
2442 (origin
2443 (method url-fetch)
2444 (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version
2445 "/libsbsms-" version ".tar.gz"))
2446 (sha256
2447 (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
2448 (build-system gnu-build-system)
2449 (native-inputs `(("automake" ,automake)))
2450 (arguments
476b2877
MW
2451 `(#:configure-flags
2452 ;; Disable the use of SSE unless on x86_64.
2453 ,(if (not (string-prefix? "x86_64" (or (%current-target-system)
2454 (%current-system))))
2455 ''("--disable-sse")
2456 ''())
2457 #:phases
09c414d8
MW
2458 (modify-phases %standard-phases
2459 (add-after
2460 'unpack 'fix-ar-lib-path
2461 (lambda* (#:key inputs #:allow-other-keys)
2462 ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'.
2463 (delete-file "ar-lib")
2464 (symlink
2465 (string-append (assoc-ref inputs "automake") "/share/automake-"
2466 ,(package-version automake) "/ar-lib")
2467 "ar-lib"))))))
9f1cdd9d
TUBK
2468 (home-page "http://sbsms.sourceforge.net/")
2469 (synopsis "Library for time stretching and pitch scaling of audio")
2470 (description
2471 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time
2472stretching and pitch scaling of audio. This package contains the library.")
2473 ;; There is no explicit declaration of a license, but a COPYING file
2474 ;; containing gpl2.
2475 (license license:gpl2)))
754a98ae 2476
01b90919
SB
2477(define-public wavpack
2478 (package
2479 (name "wavpack")
5171ea38 2480 (version "5.1.0")
01b90919
SB
2481 (source (origin
2482 (method url-fetch)
2483 (uri (string-append "http://www.wavpack.com/"
2484 name "-" version ".tar.bz2"))
53453d7a
MB
2485 (patches (search-patches "wavpack-CVE-2018-6767.patch"
2486 "wavpack-CVE-2018-7253.patch"
65f704f3 2487 "wavpack-CVE-2018-7254.patch"))
01b90919
SB
2488 (sha256
2489 (base32
5171ea38 2490 "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
01b90919
SB
2491 (build-system gnu-build-system)
2492 (home-page "http://www.wavpack.com/")
2493 (synopsis "Hybrid lossless audio codec")
2494 (description
2495 "WavPack is an audio compression format with lossless, lossy and hybrid
2496compression modes. This package contains command-line programs and library to
2497encode and decode wavpack files.")
2498 (license license:bsd-3)))
2499
a176dd7e
SB
2500(define-public libmodplug
2501 (package
2502 (name "libmodplug")
2503 (version "0.8.8.5")
2504 (source (origin
2505 (method url-fetch)
2506 (uri (string-append
0f971a04 2507 "mirror://sourceforge/modplug-xmms/"
a176dd7e
SB
2508 name "/" version "/" name "-" version ".tar.gz"))
2509 (sha256
2510 (base32
2511 "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
2512 (build-system gnu-build-system)
2513 (home-page "http://modplug-xmms.sourceforge.net/")
2514 (synopsis "Mod file playing library")
2515 (description
2516 "Libmodplug renders mod music files as raw audio data, for playing or
2517conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are
2518supported. Optional features include high-quality resampling, bass expansion,
2519surround and reverb.")
2520 (license license:public-domain)))
2521
b97b5cda
SB
2522(define-public libxmp
2523 (package
2524 (name "libxmp")
2784fca0 2525 (version "4.4.1")
b97b5cda
SB
2526 (source (origin
2527 (method url-fetch)
de67e922 2528 (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/"
b97b5cda
SB
2529 name "-" version ".tar.gz"))
2530 (sha256
2531 (base32
2784fca0 2532 "1kycz4jsyvmf7ny9227b497wc7y5ligydi6fvvldmkf8hk63ad9m"))))
b97b5cda
SB
2533 (build-system gnu-build-system)
2534 (home-page "http://xmp.sourceforge.net/")
2535 (synopsis "Module player library")
2536 (description
2537 "Libxmp is a library that renders module files to PCM data. It supports
2538over 90 mainstream and obscure module formats including Protracker (MOD),
2539Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
2540 (license license:lgpl2.1+)))
2541
3ec4bba4
SB
2542(define-public xmp
2543 (package
2544 (name "xmp")
1a79d476 2545 (version "4.1.0")
3ec4bba4
SB
2546 (source (origin
2547 (method url-fetch)
de67e922 2548 (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/"
3ec4bba4
SB
2549 name "-" version ".tar.gz"))
2550 (sha256
2551 (base32
1a79d476 2552 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
3ec4bba4
SB
2553 (build-system gnu-build-system)
2554 (native-inputs
2555 `(("pkg-config" ,pkg-config)))
2556 (inputs
2557 `(("libxmp" ,libxmp)
2558 ("pulseaudio" ,pulseaudio)))
2559 (home-page "http://xmp.sourceforge.net/")
2560 (synopsis "Extended module player")
2561 (description
2562 "Xmp is a portable module player that plays over 90 mainstream and
2563obscure module formats, including Protracker MOD, Fasttracker II XM, Scream
2564Tracker 3 S3M and Impulse Tracker IT files.")
2565 (license license:gpl2+)))
2566
754a98ae
TUBK
2567(define-public soundtouch
2568 (package
2569 (name "soundtouch")
2570 (version "1.8.0")
2571 (source
2572 (origin
2573 (method url-fetch)
2574 (uri
2575 (string-append
2576 "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
2577 (sha256
2578 (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
2579 (build-system gnu-build-system)
2580 (native-inputs
2581 `(("autoconf" ,autoconf)
2582 ("automake" ,automake)
2583 ("libtool" ,libtool)
2584 ("file" ,file)))
2585 (arguments
2586 '(#:phases
dc1d3cde
KK
2587 (modify-phases %standard-phases
2588 (add-after 'unpack 'bootstrap
2589 (lambda _
2590 (zero? (system* "sh" "bootstrap")))))))
754a98ae
TUBK
2591 (home-page "http://www.surina.net/soundtouch/")
2592 (synopsis
2593 "Audio processing library for changing tempo, pitch and playback rate")
2594 (description
2595 "SoundTouch is an audio processing library for changing the tempo, pitch
2596and playback rates of audio streams or audio files. It is intended for
2597application developers writing sound processing tools that require tempo/pitch
2598control functionality, or just for playing around with the sound effects.")
2599 (license license:lgpl2.1+)))
4bddd14c 2600
d739f481
AK
2601(define-public sox
2602 (package
2603 (name "sox")
2604 (version "14.4.2")
2605 (source (origin
2606 (method url-fetch)
de67e922
LF
2607 (uri (string-append "mirror://sourceforge/sox/sox/" version "/"
2608 name "-" version ".tar.bz2"))
d739f481
AK
2609 (sha256
2610 (base32
2611 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1"))))
2612 (build-system gnu-build-system)
2613 (arguments
2614 '(#:configure-flags
2615 ;; The upstream asks to identify the distribution to diagnose SoX
2616 ;; bug reports.
2617 '("--with-distro=Guix System Distribution")))
2618 (native-inputs
2619 `(("pkg-config" ,pkg-config)))
2620 (inputs
2621 `(("alsa-lib" ,alsa-lib)
2622 ("ao" ,ao)
2623 ("flac" ,flac)
2624 ("lame" ,lame)
2625 ("libid3tag" ,libid3tag)
2626 ("libltdl" ,libltdl)
2627 ("libmad" ,libmad)
2628 ("libpng" ,libpng)
2629 ("libvorbis" ,libvorbis)
2630 ("pulseaudio" ,pulseaudio)))
2631 (home-page "http://sox.sourceforge.net")
2632 (synopsis "Sound processing utility")
2633 (description
2634 "SoX (Sound eXchange) is a command line utility that can convert
2635various formats of computer audio files to other formats. It can also
2636apply various effects to these sound files, and, as an added bonus, SoX
2637can play and record audio files.")
2638 ;; sox.c is distributed under GPL, while the files that make up
2639 ;; libsox are licensed under LGPL.
2640 (license (list license:gpl2+ license:lgpl2.1+))))
2641
4bddd14c
TUBK
2642(define-public soxr
2643 (package
2644 (name "soxr")
9e9a211f 2645 (version "0.1.3")
4bddd14c
TUBK
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri
2650 (string-append "mirror://sourceforge/soxr/soxr-" version
2651 "-Source.tar.xz"))
2652 (sha256
9e9a211f 2653 (base32 "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di"))))
4bddd14c
TUBK
2654 (build-system cmake-build-system)
2655 (arguments '(#:tests? #f)) ;no 'check' target
3b3b60d0 2656 (home-page "https://sourceforge.net/p/soxr/wiki/Home/")
4bddd14c
TUBK
2657 (synopsis "One-dimensional sample-rate conversion library")
2658 (description
2659 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate
2660conversion. It may be used, for example, to resample PCM-encoded audio.")
2661 (license license:lgpl2.1+)))
49f36708
TUBK
2662
2663(define-public twolame
2664 (package
2665 (name "twolame")
2666 (version "0.3.13")
2667 (source
2668 (origin
2669 (method url-fetch)
de67e922
LF
2670 (uri (string-append "mirror://sourceforge/twolame/twolame/" version
2671 "/twolame-" version ".tar.gz"))
49f36708 2672 (sha256
46914280
LF
2673 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq"))
2674 (modules '((guix build utils)))
2675 ;; The tests break with Perl 5.24:
2676 ;; https://github.com/njh/twolame/issues/21
2677 ;; TODO: Remove this snippet when upgrading twolame.
2678 (snippet
2679 '(begin
2680 (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])"))
2681 #t))))
49f36708
TUBK
2682 (build-system gnu-build-system)
2683 (inputs
2684 `(("libsndfile" ,libsndfile)))
2685 (native-inputs
2686 `(("perl" ,perl)
2687 ("which" ,which))) ;used in tests/test.pl
2688 (home-page "http://www.twolame.org/")
2689 (synopsis "MPEG Audio Layer 2 (MP2) encoder")
2690 (description
2691 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
2692tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and
2693portions of LAME.")
2694 (license license:lgpl2.1+)))
bd4464f2
TUBK
2695
2696(define-public portaudio
2697 (package
2698 (name "portaudio")
80420acb 2699 (version "190600.20161030")
bd4464f2
TUBK
2700 (source
2701 (origin
2702 (method url-fetch)
2703 (uri (string-append
2704 "http://www.portaudio.com/archives/pa_stable_v"
2705 (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
2706 ".tgz"))
2707 (sha256
80420acb 2708 (base32 "04qmin6nj144b8qb9kkd9a52xfvm0qdgm8bg8jbl7s3frmyiv8pm"))
fc1adab1 2709 (patches (search-patches "portaudio-audacity-compat.patch"))))
bd4464f2
TUBK
2710 (build-system gnu-build-system)
2711 (inputs
2712 ;; TODO: Add ASIHPI.
2713 `(("alsa-lib" ,alsa-lib)
bcbc02fd 2714 ("jack" ,jack-1)))
bd4464f2 2715 (native-inputs
b47be021
TUBK
2716 `(("autoconf" ,autoconf)
2717 ("automake" ,automake)
2718 ("libtool" ,libtool)
2719 ("pkg-config" ,pkg-config)))
2720 (arguments
2721 '(#:phases
2722 ;; Autoreconf is necessary because the audacity-compat patch modifies
2723 ;; .in files.
dc1d3cde
KK
2724 (modify-phases %standard-phases
2725 (add-after 'unpack 'autoreconf
2726 (lambda _
2727 (zero? (system* "autoreconf" "-vif")))))
b47be021 2728 #:tests? #f)) ;no 'check' target
bd4464f2
TUBK
2729 (home-page "http://www.portaudio.com/")
2730 (synopsis "Audio I/O library")
2731 (description
2732 "PortAudio is a portable C/C++ audio I/O library providing a simple API
2733to record and/or play sound using a callback function or a blocking read/write
2734interface.")
2735 (license license:expat)))
74bbf894 2736
fe73aef4
RW
2737(define-public qsynth
2738 (package
2739 (name "qsynth")
217af8ae 2740 (version "0.5.1")
fe73aef4
RW
2741 (source
2742 (origin
2743 (method url-fetch)
de67e922
LF
2744 (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
2745 "/qsynth-" version ".tar.gz"))
fe73aef4 2746 (sha256
e13fff2c 2747 (base32
217af8ae 2748 "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap"))))
fe73aef4
RW
2749 (build-system gnu-build-system)
2750 (arguments
f2358305
DC
2751 `(#:tests? #f ; no "check" phase
2752 #:configure-flags
2753 '("CXXFLAGS=-std=gnu++11")))
598f6394 2754 (native-inputs
4ed4bb11
RW
2755 `(("qttools" ,qttools)
2756 ("pkg-config" ,pkg-config)))
fe73aef4 2757 (inputs
598f6394
DC
2758 `(("fluidsynth" ,fluidsynth)
2759 ("qtbase" ,qtbase)
2760 ("qtx11extras" ,qtx11extras)))
fe73aef4
RW
2761 (home-page "http://qsynth.sourceforge.net")
2762 (synopsis "Graphical user interface for FluidSynth")
2763 (description
2764 "Qsynth is a GUI front-end application for the FluidSynth SoundFont
2765synthesizer written in C++.")
2766 (license license:gpl2+)))
2767
55b596c3
TUBK
2768(define-public rsound
2769 (package
2770 (name "rsound")
2771 (version "1.1")
2772 (source
2773 (origin
2774 (method url-fetch)
2775 (uri (string-append "https://github.com/Themaister/RSound/archive/v"
2776 version ".tar.gz"))
01e327b5 2777 (file-name (string-append name "-" version))
55b596c3
TUBK
2778 (sha256
2779 (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
2780 (build-system gnu-build-system)
2781 (inputs
2782 `(("alsa-lib" ,alsa-lib)
276f49df 2783 ("jack" ,jack-1)
55b596c3
TUBK
2784 ("ao" ,ao)
2785 ("libsamplerate" ,libsamplerate)
2786 ("openal" ,openal)
2787 ("portaudio" ,portaudio)
2788 ("pulseaudio" ,pulseaudio)))
2789 (arguments
2790 '(#:phases
dc1d3cde
KK
2791 (modify-phases %standard-phases
2792 (replace 'configure
2793 (lambda* (#:key outputs #:allow-other-keys)
2794 (setenv "CC" "gcc")
2795 (zero?
2796 (system* "./configure"
2797 (string-append "--prefix=" (assoc-ref outputs "out")))))))
55b596c3
TUBK
2798 ;; No 'check' target.
2799 #:tests? #f))
2800 (home-page "http://themaister.net/rsound.html")
2801 (synopsis "Networked audio system")
2802 (description
2803 "RSound allows you to send audio from an application and transfer it
2804directly to a different computer on your LAN network. It is an audio daemon
2805with a much different focus than most other audio daemons.")
2806 (license license:gpl3+)))
2807
caf9055c
RW
2808(define-public xjackfreak
2809 (package
2810 (name "xjackfreak")
2811 (version "1.0")
2812 (source (origin
2813 (method url-fetch)
2814 (uri (string-append
2815 "https://github.com/johnhldavis/xjackfreak/archive/v"
2816 version ".tar.gz"))
2817 (file-name (string-append name "-" version ".tar.gz"))
2818 (sha256
2819 (base32
2820 "0xj6gpxfnw9jbdgwgm0x23xgfvj2kwmwb1nk0drw8lxgcchkq7d9"))))
2821 (build-system gnu-build-system)
2822 (arguments
2823 `(#:make-flags
2824 (list (string-append "docdir=" (assoc-ref %outputs "out")
2825 "/share/doc/xjackfreak"))))
2826 (inputs
2827 `(("jack" ,jack-1)
2828 ("libx11" ,libx11)
2829 ("libxt" ,libxt)
2830 ("libxext" ,libxext)))
2831 (native-inputs
2832 `(("pkg-config" ,pkg-config)))
2833 (home-page "https://github.com/johnhldavis/xjackfreak")
2834 (synopsis "JACK audio frequency analyzer and display")
2835 (description
2836 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio
2837Connection Kit. It can display the FFT of any input, modify it and output the
2838result.")
2839 (license license:gpl3+)))
2840
d73f7909
RW
2841(define-public zita-convolver
2842 (package
2843 (name "zita-convolver")
2844 (version "3.1.0")
2845 (source (origin
2846 (method url-fetch)
2847 (uri (string-append
2848 "http://kokkinizita.linuxaudio.org"
2849 "/linuxaudio/downloads/zita-convolver-"
2850 version ".tar.bz2"))
29e255ca
SB
2851 (snippet
2852 ;; Don't optimize for a specific processor architecture.
2853 '(substitute* "libs/Makefile"
2854 (("^CXXFLAGS \\+= -march=native") "")))
2855 (modules '((guix build utils)))
d73f7909
RW
2856 (sha256
2857 (base32
2858 "14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
2859 (build-system gnu-build-system)
2860 (arguments
2861 `(#:tests? #f ; no "check" target
2862 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2863 #:phases
dc1d3cde
KK
2864 (modify-phases %standard-phases
2865 (add-after 'unpack 'patch-makefile-and-enter-directory
2866 (lambda _
2867 (substitute* "libs/Makefile"
2868 (("ldconfig") "true")
2869 (("^LIBDIR =.*") "LIBDIR = lib\n"))
4f27a333
MB
2870 (chdir "libs") #t))
2871 (add-after 'install 'install-symlink
2872 (lambda _
2873 (symlink "libzita-convolver.so"
2874 (string-append (assoc-ref %outputs "out")
2875 "/lib/libzita-convolver.so.3"))))
d73f7909 2876 ;; no configure script
4f27a333 2877 (delete 'configure))))
d73f7909 2878 (inputs `(("fftwf" ,fftwf)))
4817bb92 2879 (home-page "https://kokkinizita.linuxaudio.org")
d73f7909
RW
2880 (synopsis "Fast, partitioned convolution engine library")
2881 (description
2882 "Zita convolver is a C++ library providing a real-time convolution
2883engine.")
2884 (license license:gpl3+)))
2885
b7ed6784
RW
2886(define-public zita-resampler
2887 (package
2888 (name "zita-resampler")
2889 (version "1.3.0")
2890 (source (origin
2891 (method url-fetch)
2892 (uri (string-append
2893 "http://kokkinizita.linuxaudio.org"
2894 "/linuxaudio/downloads/zita-resampler-"
2895 version ".tar.bz2"))
6dff4955
SB
2896 (snippet
2897 ;; Don't optimize for a specific processor architecture.
2898 '(substitute* '("apps/Makefile" "libs/Makefile")
2899 (("^CXXFLAGS \\+= -march=native") "")))
2900 (modules '((guix build utils)))
b7ed6784
RW
2901 (sha256
2902 (base32
2903 "0r9ary5sc3y8vba5pad581ha7mgsrlyai83w7w4x2fmhfy64q0wq"))))
2904 (build-system gnu-build-system)
2905 (arguments
2906 `(#:tests? #f ; no "check" target
2907 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2908 #:phases
2909 (modify-phases %standard-phases
2910 (add-after
2911 'unpack 'patch-makefile-and-enter-directory
2912 (lambda _
2913 (substitute* "libs/Makefile"
2914 (("ldconfig") "true")
2915 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2916 (chdir "libs")
2917 #t))
2918 (add-after
2919 'install 'install-symlink
2920 (lambda _
2921 (symlink "libzita-resampler.so"
2922 (string-append (assoc-ref %outputs "out")
2923 "/lib/libzita-resampler.so.1"))))
2924 ;; no configure script
2925 (delete 'configure))))
4817bb92 2926 (home-page "https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html")
b7ed6784
RW
2927 (synopsis "C++ library for resampling audio signals")
2928 (description
2929 "Libzita-resampler is a C++ library for resampling audio signals. It is
2930designed to be used within a real-time processing context, to be fast, and to
2931provide high-quality sample rate conversion.")
2932 (license license:gpl3+)))
2933
74bbf894
RW
2934(define-public zita-alsa-pcmi
2935 (package
2936 (name "zita-alsa-pcmi")
2937 (version "0.2.0")
2938 (source (origin
2939 (method url-fetch)
2940 (uri (string-append
2941 "http://kokkinizita.linuxaudio.org"
2942 "/linuxaudio/downloads/zita-alsa-pcmi-"
2943 version ".tar.bz2"))
2944 (sha256
2945 (base32
9569dfc8 2946 "1rgv332g82rrrlm4vdam6p2pyrisxbi7b3izfaa0pcjglafsy7j9"))))
74bbf894
RW
2947 (build-system gnu-build-system)
2948 (arguments
2949 `(#:tests? #f ; no "check" target
2950 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2951 #:phases
dc1d3cde
KK
2952 (modify-phases %standard-phases
2953 (add-after 'unpack 'patch-makefile-and-enter-directory
2954 (lambda _
2955 (substitute* "libs/Makefile"
2956 (("ldconfig") "true")
2957 (("^LIBDIR =.*") "LIBDIR = lib\n"))
2958 (chdir "libs")
2959 #t))
2960 (add-after 'install 'install-symlink
2961 (lambda _
2962 (symlink "libzita-alsa-pcmi.so"
2963 (string-append (assoc-ref %outputs "out")
2964 "/lib/libzita-alsa-pcmi.so.0"))))
2965 ;; no configure script
2966 (delete 'configure))))
74bbf894
RW
2967 (inputs
2968 `(("alsa-lib" ,alsa-lib)
2969 ("fftw" ,fftw)))
4817bb92 2970 (home-page "https://kokkinizita.linuxaudio.org")
74bbf894
RW
2971 (synopsis "C++ wrapper around the ALSA API")
2972 (description
2973 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy
2974access to ALSA PCM devices, taking care of the many functions required to
2975open, initialise and use a hw: device in mmap mode, and providing floating
2976point audio data.")
2977 (license license:gpl3+)))
6da16993
LF
2978
2979(define-public cuetools
2980 (package
2981 (name "cuetools")
2982 (version "1.4.1")
2983 (source (origin
2984 (method url-fetch)
2985 (uri (string-append "https://github.com/svend/cuetools/archive/"
2986 version ".tar.gz"))
2987 (file-name (string-append name "-" version ".tar.gz"))
2988 (sha256
2989 (base32
2990 "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
2991 (build-system gnu-build-system)
2992 ;; The source tarball is not bootstrapped.
2993 (arguments
2994 `(#:phases
2995 (modify-phases %standard-phases
2996 (add-after 'unpack 'bootstrap
2997 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
2998 ;; Bootstrapping tools
2999 (native-inputs
3000 `(("autoconf" ,autoconf)
3001 ("automake" ,automake)
3002 ("flex" ,flex)
3003 ("bison" ,bison)))
3004 (synopsis "Cue and toc file parsers and utilities")
3005 (description "Cuetools is a set of programs that are useful for manipulating
3006and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC
3007files are a way to represent the layout of a data or audio CD in a
3008machine-readable ASCII format.")
3009 (home-page "https://github.com/svend/cuetools")
3010 (license license:gpl2+)))
6819a8dd
LF
3011
3012(define-public shntool
3013 (package
3014 (name "shntool")
3015 (version "3.0.10")
3016 (source (origin
3017 (method url-fetch)
3018 (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
3019 "shntool-" version ".tar.gz"))
3020 (sha256
3021 (base32
3022 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
3023 (build-system gnu-build-system)
3024 (synopsis "WAVE audio data processing tool")
3025 (description "shntool is a multi-purpose WAVE data processing and reporting
3026utility. File formats are abstracted from its core, so it can process any file
3027that contains WAVE data, compressed or not---provided there exists a format
d5b357ec
LF
3028module to handle that particular file type. It can also generate CUE files, and
3029use them split WAVE data into multiple files.")
6819a8dd 3030 (home-page "http://etree.org/shnutils/shntool/")
6ac2af78
LF
3031 ;; 'install-sh' bears the x11 license
3032 (license (list license:gpl2+ license:x11))))
680b54c5
DT
3033
3034(define-public dcadec
3035 (package
3036 (name "dcadec")
3037 (version "0.2.0")
3038 (source (origin
3039 (method url-fetch)
3040 (uri (string-append "https://github.com/foo86/dcadec/archive/v"
3041 version ".tar.gz"))
3042 (file-name (string-append name "-" version ".tar.gz"))
3043 (sha256
3044 (base32
3045 "0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
3046 (build-system gnu-build-system)
3047 (arguments
3048 ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
3049 '(#:tests? #f
3050 #:make-flags
3051 (list "CC=gcc"
3052 ;; Build shared library.
3053 "CONFIG_SHARED=1"
3054 (string-append "PREFIX=" (assoc-ref %outputs "out"))
3055 ;; Set proper runpath.
3056 (string-append "LDFLAGS=-Wl,-rpath="
3057 (assoc-ref %outputs "out")
3058 "/lib"))
3059 #:phases
3060 (modify-phases %standard-phases
3061 ;; No configure script, just a hand-written Makefile.
3062 (delete 'configure))))
3063 (synopsis "DTS Coherent Acoustics decoder")
3064 (description "Dcadec is a DTS Coherent Acoustics surround sound decoder
3065with support for HD extensions.")
3066 (home-page "https://github.com/foo86/dcadec")
3067 (license license:lgpl2.1+)))
e87c7ec2
AG
3068
3069(define-public bs1770gain
3070 (package
3071 (name "bs1770gain")
eb5378f9 3072 (version "0.4.12")
e87c7ec2
AG
3073 (source
3074 (origin
3075 (method url-fetch)
3076 (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/"
3077 version "/bs1770gain-" version ".tar.gz"))
3078 (sha256
3079 (base32
eb5378f9 3080 "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a"))))
e87c7ec2
AG
3081 (build-system gnu-build-system)
3082 (inputs `(("ffmpeg" ,ffmpeg)
3083 ("sox" ,sox)))
3084 (home-page "http://bs1770gain.sourceforge.net/")
3085 (synopsis "Tool to adjust loudness of media files")
3086 (description
3087 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
3088flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the
3089loudness of audio and video files to the same level.")
3090 (license license:gpl2+)))
eb64bde1
EE
3091
3092(define-public filteraudio
3093 (let ((revision "1")
3094 (commit "2fc669581e2a0ff87fba8de85861b49133306094"))
3095 (package
3096 (name "filteraudio")
3097 (version (string-append "0.0.0-" revision "."
3098 (string-take commit 7)))
3099 (source
3100 (origin
3101 (method git-fetch)
3102 (uri (git-reference
3103 (url "https://github.com/irungentoo/filter_audio.git")
3104 (commit commit)))
3105 (file-name (string-append name "-" version "-checkout"))
3106 (sha256
3107 (base32
3108 "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
3109 (build-system gnu-build-system)
3110 (arguments
3111 '(#:make-flags (list (string-append "PREFIX=" %output)
3112 "CC=gcc")
3113 #:tests? #f ; No tests
3114 #:phases
3115 (modify-phases %standard-phases
3116 ;; No configure script
3117 (delete 'configure))))
3118 (synopsis "Lightweight audio filtering library")
3119 (description "An easy to use audio filtering library made from webrtc
3120code, used in @code{libtoxcore}.")
3121 (home-page "https://github.com/irungentoo/filter_audio")
3122 (license license:bsd-3))))
9a4c032c
LG
3123
3124(define-public gsm
3125 (package
3126 (name "gsm")
aabe29af 3127 (version "1.0.18")
9a4c032c
LG
3128 (source
3129 (origin
3130 (method url-fetch)
3131 (uri
3132 (string-append "http://www.quut.com/" name "/" name
3133 "-" version ".tar.gz"))
3134 (sha256
3135 (base32
aabe29af 3136 "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"))))
9a4c032c
LG
3137 (build-system gnu-build-system)
3138 (arguments
3139 `(#:test-target "tst"
3140 #:phases
3141 (modify-phases %standard-phases
3142 (add-before 'install 'pre-install
3143 (lambda _
3144 (let ((out (assoc-ref %outputs "out")))
3145 (substitute* "Makefile"
3146 (("INSTALL_ROOT\t=")
3147 (string-append "INSTALL_ROOT\t=\t" out)))
3148 (mkdir-p (string-append out "/inc"))
3149 (mkdir-p (string-append out "/man"))
3150 (mkdir-p (string-append out "/man/man1"))
3151 (mkdir-p (string-append out "/man/man3"))
3152 (mkdir-p (string-append out "/bin"))
3153 (mkdir-p (string-append out "/lib")))))
3154 (add-after 'install 'post-install
3155 (lambda _
3156 (let ((out (assoc-ref %outputs "out")))
3157 (rename-file (string-append out "/inc")
3158 (string-append out "/include"))
3159 (mkdir-p (string-append out "/include/gsm"))
3160 (copy-recursively "inc"
3161 (string-append out "/include/gsm")))))
aabe29af 3162 (delete 'configure)))) ; no configure script
9a4c032c
LG
3163 (synopsis "GSM 06.10 lossy speech compression library")
3164 (description "This C library provides an encoder and a decoder for the GSM
316506.10 RPE-LTP lossy speech compression algorithm.")
3166 (home-page "http://quut.com/gsm/")
3167 (license (license:non-copyleft "file://COPYRIGHT"))))
84d9abe4
DM
3168
3169(define-public python-pyalsaaudio
3170 (package
3171 (name "python-pyalsaaudio")
3172 (version "0.8.4")
3173 (source (origin
3174 (method url-fetch)
3175 (uri (pypi-uri "pyalsaaudio" version))
3176 (sha256
3177 (base32
3178 "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44"))))
3179 (build-system python-build-system)
3180 (arguments
3181 `(#:tests? #f)) ; tests require access to ALSA devices.
3182 (inputs
3183 `(("alsa-lib" ,alsa-lib)))
3184 (home-page "http://larsimmisch.github.io/pyalsaaudio/")
3185 (synopsis "ALSA wrappers for Python")
3186 (description
3187 "This package contains wrappers for accessing the ALSA API from Python.
3188It is currently fairly complete for PCM devices, and has some support for
3189mixers.")
3190 (license license:psfl)))
3191
3192(define-public python2-pyalsaaudio
3193 (package-with-python2 python-pyalsaaudio))
d0c8e524 3194
dba33ca3
RW
3195(define-public bluez-alsa
3196 (package
3197 (name "bluez-alsa")
3198 (version "1.2.0")
3199 (source (origin
3200 ;; The tarballs are mere snapshots and don't contain a
3201 ;; bootstrapped build system.
3202 (method git-fetch)
3203 (uri (git-reference
3204 (url "https://github.com/Arkq/bluez-alsa.git")
3205 (commit (string-append "v" version))))
1fa37d1b 3206 (file-name (string-append name "-" version "-checkout"))
dba33ca3
RW
3207 (sha256
3208 (base32
3209 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
3210 (build-system gnu-build-system)
3211 (arguments
3212 `(#:phases
3213 (modify-phases %standard-phases
3214 (add-after 'unpack 'bootstrap
3215 (lambda _
3216 (zero? (system* "autoreconf" "-vif")))))))
3217 (native-inputs
3218 `(("autoconf" ,autoconf)
3219 ("automake" ,automake)
3220 ("libtool" ,libtool)
3221 ("pkg-config" ,pkg-config)))
3222 (inputs
3223 `(("alsa-lib" ,alsa-lib)
3224 ("bluez" ,bluez)
3225 ("glib" ,glib)
3226 ("libbsd" ,libbsd)
3227 ("ncurses" ,ncurses)
3228 ("ortp" ,ortp)
3229 ("sbc" ,sbc)))
3230 (home-page "https://github.com/Arkq/bluez-alsa")
3231 (synopsis "Bluetooth ALSA backend")
3232 (description "This project is a rebirth of a direct integration between
3233Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
3234in favor of 3rd party audio applications. From now on, Bluez acts as a
3235middleware between an audio application, which implements Bluetooth audio
3236profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
3237audio profiles in Bluez, so in theory every Bluetooth device (with audio
3238capabilities) can be connected. In order to access the audio stream, one has
3239to connect to the ALSA PCM device called @code{bluealsa}. The device is based
3240on the ALSA software PCM plugin.")
3241 (license license:expat)))
3242
d0c8e524
SB
3243(define-public snd
3244 (package
3245 (name "snd")
3246 (version "17.7")
3247 (source (origin
3248 (method url-fetch)
3249 (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
3250 "snd-" version ".tar.gz"))
3251 (sha256
3252 (base32
3253 "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
3254 (build-system glib-or-gtk-build-system)
3255 (arguments
3256 '(#:tests? #f ; no tests
3257 #:out-of-source? #f ; for the 'install-doc' phase
3258 #:configure-flags
3259 (let* ((out (assoc-ref %outputs "out"))
3260 (docdir (string-append out "/share/doc/snd")))
3261 (list "--with-alsa" "--with-jack" "--with-gmp"
3262 (string-append "--with-doc-dir=" docdir)))
3263 #:phases
3264 (modify-phases %standard-phases
3265 (add-after 'install 'install-doc
3266 (lambda* (#:key outputs #:allow-other-keys)
3267 (let* ((out (assoc-ref outputs "out"))
3268 (docdir (string-append out "/share/doc/snd")))
3269 (mkdir-p docdir)
3270 (for-each
3271 (lambda (f)
3272 (install-file f docdir))
3273 (find-files "." "\\.html$|COPYING"))
3274 (copy-recursively "pix" (string-append docdir "/pix"))
3275 #t))))))
3276 (native-inputs
3277 `(("pkg-config" ,pkg-config)))
3278 (inputs
3279 `(("alsa-lib" ,alsa-lib)
3280 ("fftw" ,fftw)
3281 ("flac" ,flac)
3282 ("gmp" ,gmp)
3283 ("gsl" ,gsl)
3284 ("gtk+" ,gtk+)
3285 ("jack" ,jack-1)
3286 ("libsamplerate" ,libsamplerate)
3287 ("mpc" ,mpc)
3288 ("mpfr" ,mpfr)
3289 ("mpg123" ,mpg123)
3290 ("speex" ,speex)
3291 ("timidity++" ,timidity++)
3292 ("vorbis-tools" ,vorbis-tools)
3293 ("wavpack" ,wavpack)))
3294 (synopsis "Sound editor")
3295 (home-page "https://ccrma.stanford.edu/software/snd/")
3296 (description
3297 "Snd is a sound editor modelled loosely after Emacs. It can be
3298customized and extended using either the s7 Scheme implementation (included in
3299the Snd sources), Ruby, or Forth.")
3300 (license (license:non-copyleft "file://COPYING"))))
adedbe95 3301
cf31d5e1
RW
3302(define-public noise-repellent
3303 (package
3304 (name "noise-repellent")
3305 (version "0.1.4")
3306 (source (origin
3307 (method git-fetch)
3308 (uri (git-reference
3309 (url "https://github.com/lucianodato/noise-repellent.git")
3310 (commit version)))
3311 (file-name (string-append name "-" version "-checkout"))
3312 (sha256
3313 (base32
3314 "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
3315 (build-system gnu-build-system)
3316 (arguments
3317 `(#:make-flags
3318 (list "CC=gcc"
3319 (string-append "PREFIX=" (assoc-ref %outputs "out")))
3320 #:tests? #f ; there are none
3321 #:phases
3322 (modify-phases %standard-phases
3323 (delete 'configure))))
3324 (inputs
3325 `(("lv2" ,lv2)
3326 ("fftwf" ,fftwf)))
3327 (native-inputs
3328 `(("pkg-config" ,pkg-config)))
3329 (home-page "https://github.com/lucianodato/noise-repellent")
3330 (synopsis "LV2 plugin for broadband noise reduction")
3331 (description "Noise Repellent is an LV2 plugin to reduce noise. It has
3332the following features:
3333
3334@enumerate
3335@item Spectral gating and spectral subtraction suppression rule
3336@item Adaptive and manual noise thresholds estimation
3337@item Adjustable noise floor
3338@item Adjustable offset of thresholds to perform over-subtraction
3339@item Time smoothing and a masking estimation to reduce artifacts
3340@item Basic onset detector to avoid transients suppression
3341@item Whitening of the noise floor to mask artifacts and to recover higher
3342 frequencies
3343@item Option to listen to the residual signal
3344@item Soft bypass
3345@item Noise profile saved with the session
3346@end enumerate
3347")
3348 (license license:lgpl3+)))
3349
adedbe95
OP
3350(define-public cli-visualizer
3351 (package
3352 (name "cli-visualizer")
3353 (version "1.6")
3354 (source
3355 (origin
3356 (method url-fetch)
3357 (uri (string-append "https://github.com/dpayne/cli-visualizer/archive/"
3358 version ".tar.gz"))
3359 (file-name (string-append name "-" version ".tar.gz"))
3360 (sha256
3361 (base32
3362 "07zkm87f2fr8kc6531zrkya7q81sdanm6813y2f54mg13g41y6hi"))))
3363 (build-system gnu-build-system)
3364 (native-inputs
3365 `(("which" ,which)))
3366 (inputs
3367 `(("fftw" ,fftw)
3368 ("googletest" ,googletest)
3369 ("ncurses" ,ncurses)
3370 ("pulseaudio" ,pulseaudio)))
3371 (arguments
3372 '(#:test-target "test"
3373 #:make-flags
3374 (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
3375 #:phases
3376 (modify-phases %standard-phases
3377 (add-after 'unpack 'remove-sudo
3378 (lambda _
3379 (substitute* "install.sh" (("sudo") ""))
3380 #t))
3381 (add-before 'check 'set-check-environment
3382 (lambda _
3383 (setenv "CXX" "g++")
3384 (setenv "CC" "gcc")
3385 #t))
3386 (add-before 'install 'make-prefix
3387 (lambda _
3388 (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
3389 #t))
3390 (add-after 'install 'data
3391 (lambda _
3392 (for-each (lambda (file)
3393 (install-file file
3394 (string-append (assoc-ref %outputs "out")
3395 "/share/doc")))
3396 (find-files "examples"))
3397 #t)))))
3398 (home-page "https://github.com/dpayne/cli-visualizer/")
3399 (synopsis "Command-line audio visualizer")
3400 (description "@code{cli-visualizer} displays fast-Fourier
3401transforms (FFTs) of the sound being played, as well as other graphical
3402representations.")
3403 (license license:expat)))
c2c0d661
OP
3404
3405(define-public cava
3406 (package
3407 (name "cava")
042fa638 3408 (version "0.6.1")
c2c0d661
OP
3409 (source (origin
3410 (method url-fetch)
3411 (uri (string-append
3412 "https://github.com/karlstav/cava/archive/"
3413 version ".tar.gz"))
3414 (file-name (string-append name "-" version ".tar.gz"))
3415 (sha256
3416 (base32
042fa638 3417 "13d72swnjs894llf0paandmhf1lf90dz6ygkcdw4bv84wzkq1f4q"))))
c2c0d661
OP
3418 (build-system gnu-build-system)
3419 (native-inputs
3420 `(("autoconf" ,autoconf)
3421 ("automake" ,automake)
3422 ("libtool" ,libtool)))
3423 (inputs
3424 `(("fftw" ,fftw)
3425 ("ncurses" ,ncurses)
3426 ("pulseaudio" ,pulseaudio)))
3427 (arguments
3428 `(#:configure-flags
3429 (list (string-append "PREFIX=" %output)
3430 (string-append "FONT_DIR=" %output "/usr/share/consolefonts"))
3431 #:make-flags
3432 (let ((lib (string-append %output "/lib")))
3433 (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
3434 #:phases
3435 (modify-phases %standard-phases
3436 (add-after 'unpack 'bootstrap
3437 (lambda* (#:key outputs #:allow-other-keys)
3438 (setenv "HOME" (getcwd))
3439 (invoke "sh" "autogen.sh")))
3440 (add-before 'build 'make-cava-ldflags
3441 (lambda* (#:key outputs #:allow-other-keys)
3442 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))))
3443 (add-after 'install 'data
3444 (lambda* (#:key outputs #:allow-other-keys)
3445 (for-each (lambda (file)
3446 (install-file file
3447 (string-append (assoc-ref outputs "out")
3448 "/share/doc/examples")))
3449 (find-files "example_files")))))))
3450 (home-page "https://karlstav.github.io/cava/")
3451 (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
3452 (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
3453using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
3454 (license license:expat)))
9073c875 3455
3456(define-public fluid-3
3457 (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
3458 (package
3459 (name "fluid-3")
3460 (version "2.1")
3461 (source
3462 (origin
3463 (method url-fetch)
3464 ;; Only one file is required, but the release bundles the whole
3465 ;; software which is 50MiB as tar and 200MiB unpacked. The website
3466 ;; directly links the soundfont release to the github file download.
3467 (uri (string-append "https://github.com/musescore/MuseScore/raw/"
3468 commit "/share/sound/FluidR3Mono_GM.sf3"))
3469 (file-name (string-append name "-" version ".sf3"))
3470 (sha256
3471 (base32
3472 "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg"))))
3473 (build-system trivial-build-system)
3474 (arguments
3475 `(#:modules ((guix build utils))
3476 #:builder
3477 (begin
3478 (use-modules (guix build utils))
3479 (let ((file (assoc-ref %build-inputs "source"))
3480 (out (string-append %output "/share/soundfonts")))
3481 (mkdir-p out)
3482 (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))))))
3483 (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
3484 (synopsis "Pro-quality GM soundfont")
3485 (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")
3486 (license license:expat))))