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