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