diff options
Diffstat (limited to 'gnu/packages/audio.scm')
-rw-r--r-- | gnu/packages/audio.scm | 750 |
1 files changed, 744 insertions, 6 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 9227367dcd..52feea3701 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,17 +24,34 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system waf) + #:use-module (guix build-system trivial) + #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages boost) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages glib) ;dbus + #:use-module (gnu packages file) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages qt) #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) ;taglib + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate #:use-module (gnu packages python) + #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages which) #:use-module (gnu packages xiph) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1)) (define-public aubio (package @@ -59,7 +77,6 @@ #:python ,python-2)) (inputs `(("jack" ,jack-1) - ("libuuid" ,util-linux) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) ("fftwf" ,fftwf))) @@ -74,6 +91,153 @@ attacks, performing pitch detection, tapping the beat and producing MIDI streams from live audio.") (license license:gpl3+))) +(define-public ardour + (package + (name "ardour") + (version "3.5.403") + (source (origin + ;; The project only provides tarballs upon individual request + ;; (or after payment) so we take the code from git. + (method git-fetch) + (uri (git-reference + (url "git://git.ardour.org/ardour/ardour.git") + (commit version))) + (snippet + '(call-with-output-file + "libs/ardour/revision.cc" + (lambda (port) + (format port "#include \"ardour/revision.h\" +namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) + (sha256 + (base32 + "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp")) + (file-name (string-append name "-" version)))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:python ,python-2)) + (inputs + `(("alsa-lib" ,alsa-lib) + ("aubio" ,aubio) + ("lrdf" ,lrdf) + ("boost" ,boost) + ("atkmm" ,atkmm) + ("cairomm" ,cairomm) + ("gtkmm" ,gtkmm-2) + ("glibmm" ,glibmm) + ("libart-lgpl" ,libart-lgpl) + ("libgnomecanvasmm" ,libgnomecanvasmm) + ("pangomm" ,pangomm) + ("liblo" ,liblo) + ("libsndfile" ,libsndfile) + ("libsamplerate" ,libsamplerate) + ("libxml2" ,libxml2) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("flac" ,flac) + ("lv2" ,lv2) + ("vamp" ,vamp) + ("curl" ,curl) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("jack" ,jack-1) + ("serd" ,serd) + ("sord" ,sord) + ("sratom" ,sratom) + ("suil" ,suil) + ("lilv" ,lilv) + ("rasqal" ,rasqal) + ("raptor2" ,raptor2) + ("redland" ,redland) + ("rubberband" ,rubberband) + ("taglib" ,taglib) + ("python-rdflib" ,python-rdflib))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (home-page "http://ardour.org") + (synopsis "Digital audio workstation") + (description + "Ardour is a multi-channel digital audio workstation, allowing users to +record, edit, mix and master audio and MIDI projects. It is targeted at audio +engineers, musicians, soundtrack editors and composers.") + (license license:gpl2+))) + +(define-public azr3 + (package + (name "azr3") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-" + version + ".tar.bz2")) + (sha256 + (base32 + "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags + (list "LV2PEG=ttl2c" + (string-append "prefix=" %output) + (string-append "pkgdatadir=" %output "/share/azr3-jack")))) + (inputs + `(("gtkmm" ,gtkmm-2) + ("lvtk" ,lvtk) + ("jack" ,jack-1) + ("lash" ,lash))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://ll-plugins.nongnu.org/azr3/") + (synopsis "Tonewheel organ synthesizer") + (description + "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ +with drawbars, distortion and rotating speakers. The organ has three +sections, two polyphonic sections with nine drawbars each and one monophonic +bass section with five drawbars. A standalone JACK application and LV2 +plugins are provided.") + (license license:gpl2))) + +(define-public freepats + (package + (name "freepats") + (version "20060219") + (source (origin + (method url-fetch) + (uri (string-append "http://freepats.zenvoid.org/freepats-" + version ".tar.bz2")) + (sha256 + (base32 + "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((out (string-append %output "/share/freepats"))) + (setenv "PATH" (string-append + (assoc-ref %build-inputs "bzip2") "/bin:" + (assoc-ref %build-inputs "tar") "/bin")) + (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (chdir "freepats") + ;; Use absolute pattern references + (substitute* "freepats.cfg" + (("Tone_000") (string-append out "/Tone_000")) + (("Drum_000") (string-append out "/Drum_000"))) + (mkdir-p out) + (copy-recursively "." out))))) + (native-inputs + `(("tar" ,tar) + ("bzip2" ,bzip2))) + (home-page "http://freepats.zenvoid.org") + (synopsis "GUS compatible patches for MIDI players") + (description + "FreePats is a project to create a free and open set of GUS compatible +patches that can be used with softsynths such as Timidity and WildMidi.") + ;; GPLv2+ with exception for compositions using these patches. + (license license:gpl2+))) + (define-public jack-1 (package (name "jack") @@ -89,8 +253,14 @@ streams from live audio.") "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb")))) (build-system gnu-build-system) (inputs - `(("bdb" ,bdb) - ("libuuid" ,util-linux))) + `(("alsa-lib" ,alsa-lib) + ("bdb" ,bdb) + ("readline" ,readline))) + ;; uuid.h is included in the JACK type headers + (propagated-inputs + `(("libuuid" ,util-linux))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "http://jackaudio.org/") (synopsis "JACK audio connection kit") (description @@ -106,7 +276,7 @@ synchronous execution of all clients, and low latency operation.") (define-public jack-2 (package (inherit jack-1) - (name "jack") + (name "jack2") (version "1.9.10") (source (origin (method url-fetch) @@ -134,6 +304,114 @@ synchronous execution of all clients, and low latency operation.") ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+ (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public jalv + (package + (name "jalv") + (version "1.4.6") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/jalv-" + version ".tar.bz2")) + (sha256 + (base32 + "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("lilv" ,lilv) + ("suil" ,suil) + ("gtk" ,gtk+-2) + ("gtkmm" ,gtkmm-2) + ("qt" ,qt-4) + ("jack" ,jack-1))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/jalv/") + (synopsis "Simple LV2 host for JACK") + (description + "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2 +plugins and exposes their ports as JACK ports, essentially making any LV2 +plugin function as a JACK application.") + (license license:isc))) + +(define-public ladspa + (package + (name "ladspa") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.ladspa.org/download/ladspa_sdk_" + version + ".tgz")) + (sha256 + (base32 + "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; the "test" target is a listening test only + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) + (chdir "src") + (let ((out (assoc-ref outputs "out"))) + (substitute* "makefile" + (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/")) + (("/usr/include/") (string-append out "/include/")) + (("/usr/bin/") (string-append out "/bin/")) + (("-mkdirhier") "mkdir -p") + (("^CC.*") "CC = gcc\n") + (("^CPP.*") "CPP = g++\n")))) + (alist-delete 'build %standard-phases)))) + (home-page "http://ladspa.org") + (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)") + (description + "LADSPA is a standard that allows software audio processors and effects +to be plugged into a wide range of audio synthesis and recording packages.") + (license license:lgpl2.1+))) + +(define-public lash + (package + (name "lash") + (version "0.6.0-rc2") + (source (origin + (method url-fetch) + ;; The tilde is not permitted in the builder name, but is used + ;; in the tarball. + (uri (string-append + "mirror://savannah/lash/lash-" + (string-join (string-split version #\-) "~") + ".tar.bz2")) + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw")))) + (build-system gnu-build-system) + (inputs + `(("bdb" ,bdb) + ("gtk" ,gtk+-2) + ("jack" ,jack-1) + ("readline" ,readline) + ("python" ,python-2))) + ;; According to pkg-config, packages depending on lash also need to have + ;; at least the following packages declared as inputs. + (propagated-inputs + `(("alsa-lib" ,alsa-lib) + ("dbus" ,dbus) + ("libxml2" ,libxml2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.nongnu.org/lash/") + (synopsis "Audio application session manager") + (description + "LASH is a session management system for audio applications. It allows +you to save and restore audio sessions consisting of multiple interconneced +applications, restoring program state (i.e. loaded patches) and the +connections between them.") + (license license:gpl2+))) + (define-public liblo (package (name "liblo") @@ -158,3 +436,463 @@ synchronous execution of all clients, and low latency operation.") "liblo is a lightweight library that provides an easy to use implementation of the Open Sound Control (OSC) protocol.") (license license:lgpl2.1+))) + +(define-public lilv + (package + (name "lilv") + (version "0.20.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/lilv-" + version + ".tar.bz2")) + (sha256 + (base32 + "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + ;; required by lilv-0.pc + (propagated-inputs + `(("serd" ,serd) + ("sord" ,sord) + ("sratom" ,sratom))) + (inputs + `(("lv2" ,lv2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/lilv/") + (synopsis "Library to simplify use of LV2 plugins in applications") + (description + "Lilv is a C library to make the use of LV2 plugins as simple as possible +for applications. Lilv is the successor to SLV2, rewritten to be +significantly faster and have minimal dependencies.") + (license license:isc))) + +(define-public lv2 + (package + (name "lv2") + (version "1.10.0") + (source (origin + (method url-fetch) + (uri (string-append "http://lv2plug.in/spec/lv2-" + version + ".tar.bz2")) + (sha256 + (base32 + "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378")))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:configure-flags '("--lv2-system"))) + (inputs + ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://lv2plug.in/") + (synopsis "LV2 audio plugin specification") + (description + "LV2 is an open specification for audio plugins and host applications. +At its core, LV2 is a simple stable interface, accompanied by extensions which +add functionality to support the needs of increasingly powerful audio +software.") + (license license:isc))) + +(define-public lvtk + (package + (name "lvtk") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lvtk/lvtk/archive/" + version + ".tar.gz")) + (sha256 + (base32 + "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd")))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:python ,python-2 + #:configure-flags + (list (string-append "--boost-includes=" + (assoc-ref %build-inputs "boost") + "/include")))) + (inputs + `(("boost" ,boost) + ("lv2" ,lv2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/lvtk/lvtk") + (synopsis "C++ libraries for LV2 plugins") + (description + "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and +extensions into easy to use C++ classes. It is the successor of +lv2-c++-tools.") + (license license:gpl3+))) + +(define-public patchage + (package + (name "patchage") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/patchage-" + version + ".tar.bz2")) + (sha256 + (base32 + "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("jack" ,jack-1) + ("ganv" ,ganv) + ("glib" ,glib) + ("glibmm" ,glibmm) + ("gtkmm" ,gtkmm-2) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/patchage/") + (synopsis "Modular patch bay for audio and MIDI systems") + (description + "Patchage is a modular patch bay for audio and MIDI systems based on JACK +and ALSA.") + (license license:gpl3+))) + +(define-public rubberband + (package + (name "rubberband") + (version "1.8.1") + (source (origin + (method url-fetch) + (uri + (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v" + version + ".tar.bz2")) + (sha256 + (base32 + "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386")))) + (build-system gnu-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("ladspa" ,ladspa) + ("libsamplerate" ,libsamplerate) + ("vamp" ,vamp))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://breakfastquay.com/rubberband/") + (synopsis "Audio time-stretching and pitch-shifting library") + (description + "Rubber Band is a library and utility program that permits changing the +tempo and pitch of an audio recording independently of one another.") + (license license:gpl2+))) + +(define-public sratom + (package + (name "sratom") + (version "0.4.6") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/sratom-" + version + ".tar.bz2")) + (sha256 + (base32 + "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("serd" ,serd) + ("sord" ,sord))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/sratom/") + (synopsis "Library for serialising LV2 atoms to/from RDF") + (description + "Sratom is a library for serialising LV2 atoms to/from RDF, particularly +the Turtle syntax.") + (license license:isc))) + +(define-public suil + (package + (name "suil") + (version "0.8.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/suil-" + version + ".tar.bz2")) + (sha256 + (base32 + "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("gtk+-2" ,gtk+-2) + ("qt-4" ,qt-4))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/suil/") + (synopsis "Library for loading and wrapping LV2 plugin UIs") + (description + "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs. + +Suil makes it possible to load a UI of a toolkit in a host using another +toolkit. The API is designed such that hosts do not need to explicitly +support specific toolkits – if Suil supports a particular toolkit, then UIs in +that toolkit will work in all hosts that use Suil automatically. + +Suil currently supports every combination of Gtk 2, Qt 4, and X11.") + (license license:isc))) + +(define-public timidity++ + (package + (name "timidity++") + (version "2.14.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/timidity/TiMidity++-" + version ".tar.bz2")) + (sha256 + (base32 + "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex" + "--enable-ncurses" + "--enable-server" + "--enable-alsaseq" + (string-append "--with-default-path=" + (assoc-ref %outputs "out") "/etc/timidity")) + #:phases + (alist-cons-after + 'install 'install-config + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/etc/timidity"))) + (mkdir-p out) + (call-with-output-file + (string-append out "/timidity.cfg") + (lambda (port) + (format port (string-append "source " + (assoc-ref %build-inputs "freepats") + "/share/freepats/freepats.cfg")))))) + %standard-phases))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("flac" ,flac) + ("jack" ,jack-1) + ("libogg" ,libogg) + ("speex" ,speex) + ("ncurses" ,ncurses) + ("freepats" ,freepats))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://timidity.sourceforge.net/") + (synopsis "Software synthesizer for playing MIDI files") + (description + "TiMidity++ is a software synthesizer. It can play MIDI files by +converting them into PCM waveform data; give it a MIDI data along with digital +instrument data files, then it synthesizes them in real-time, and plays. It +can not only play sounds, but also can save the generated waveforms into hard +disks as various audio file formats.") + (license license:gpl2+))) + +(define-public vamp + (package + (name "vamp") + (version "2.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://code.soundsoftware.ac.uk" + "/attachments/download/690/vamp-plugin-sdk-" + version + ".tar.gz")) + (sha256 + (base32 + "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:phases + (alist-cons-after + 'install 'remove-libvamp-hostsdk.la + (lambda* (#:key outputs #:allow-other-keys) + ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656 + (for-each delete-file + (let ((out (assoc-ref outputs "out"))) + (list (string-append out "/lib/libvamp-sdk.la") + (string-append out "/lib/libvamp-hostsdk.la")))) + #t) + %standard-phases))) + (inputs + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://vamp-plugins.org") + (synopsis "Modular and extensible audio processing system") + (description + "Vamp is an audio processing plugin system for plugins that extract +descriptive information from audio data — typically referred to as audio +analysis plugins or audio feature extraction plugins.") + (license + (license:x11-style + "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING")))) + +(define-public libsbsms + (package + (name "libsbsms") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version + "/libsbsms-" version ".tar.gz")) + (sha256 + (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf")))) + (build-system gnu-build-system) + (native-inputs `(("automake" ,automake))) + (arguments + `(#:phases + (alist-cons-after + 'unpack 'fix-ar-lib-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'. + (delete-file "ar-lib") + (symlink + (string-append (assoc-ref inputs "automake") "/share/automake-" + ,(package-version automake) "/ar-lib") + "ar-lib")) + %standard-phases))) + (home-page "http://sbsms.sourceforge.net/") + (synopsis "Library for time stretching and pitch scaling of audio") + (description + "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time +stretching and pitch scaling of audio. This package contains the library.") + ;; There is no explicit declaration of a license, but a COPYING file + ;; containing gpl2. + (license license:gpl2))) + +(define-public soundtouch + (package + (name "soundtouch") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz")) + (sha256 + (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("file" ,file))) + (arguments + '(#:phases + (alist-cons-before + 'configure 'bootstrap + (lambda _ + (unless (zero? (system* "sh" "bootstrap")) + (error "bootstrap failed")) + (substitute* '("configure") + (("/usr/bin/file") "file"))) + %standard-phases))) + (home-page "http://www.surina.net/soundtouch/") + (synopsis + "Audio processing library for changing tempo, pitch and playback rate") + (description + "SoundTouch is an audio processing library for changing the tempo, pitch +and playback rates of audio streams or audio files. It is intended for +application developers writing sound processing tools that require tempo/pitch +control functionality, or just for playing around with the sound effects.") + (license license:lgpl2.1+))) + +(define-public soxr + (package + (name "soxr") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/soxr/soxr-" version + "-Source.tar.xz")) + (sha256 + (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ;no 'check' target + (home-page "http://sourceforge.net/p/soxr/wiki/Home/") + (synopsis "One-dimensional sample-rate conversion library") + (description + "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate +conversion. It may be used, for example, to resample PCM-encoded audio.") + (license license:lgpl2.1+))) + +(define-public twolame + (package + (name "twolame") + (version "0.3.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/twolame/twolame-" version ".tar.gz")) + (sha256 + (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq")))) + (build-system gnu-build-system) + (inputs + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("perl" ,perl) + ("which" ,which))) ;used in tests/test.pl + (home-page "http://www.twolame.org/") + (synopsis "MPEG Audio Layer 2 (MP2) encoder") + (description + "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on +tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and +portions of LAME.") + (license license:lgpl2.1+))) + +(define-public portaudio + (package + (name "portaudio") + (version "19.20140130") + (source + (origin + (method url-fetch) + (uri (string-append + "http://www.portaudio.com/archives/pa_stable_v" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version) + ".tgz")) + (sha256 + (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g")))) + (build-system gnu-build-system) + (inputs + ;; TODO: Add ASIHPI. + `(("alsa-lib" ,alsa-lib) + ("jack" ,jack-2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments '(#:tests? #f)) ;no 'check' target + (home-page "http://www.portaudio.com/") + (synopsis "Audio I/O library") + (description + "PortAudio is a portable C/C++ audio I/O library providing a simple API +to record and/or play sound using a callback function or a blocking read/write +interface.") + (license license:expat))) |