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