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