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