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