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