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