Hi Guix,

this patch series adds a couple of audio libraries to
gnu/packages/audio.scm.   Some of them depend on the waf-build-system
introduced in an earlier, separate patch set.

The following packages are added:

- JACK2 (with dbus support)
- aubio
- liblo
- LV2

The latter three packages are dependencies of Ardour.

~~ Ricardo

>From dbc3bd203e311c75ca7f81a7f115eb2f516dd493 Mon Sep 17 00:00:00 2001
From: rekado <rek...@elephly.net>
Date: Thu, 29 Jan 2015 10:00:56 +0100
Subject: [PATCH 1/4] gnu: Add JACK2.

* gnu/packages/audio.scm (jack-2): New variable.
---
 gnu/packages/audio.scm | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b011606..a861600 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -22,9 +22,16 @@
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system waf)
   #:use-module (gnu packages)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages glib) ;dbus
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml))
 
 (define-public jack-1
   (package
@@ -55,3 +62,33 @@ synchronous execution of all clients, and low latency operation.")
     ;; Most files are licensed under the GPL. However, the libjack/ tree is
     ;; licensed under the LGPL in order to allow for proprietary usage.
     (license '(license:gpl2+ license:lgpl2.1+))))
+
+(define-public jack-2
+  (package (inherit jack-1)
+    (name "jack")
+    (version "1.9.10")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://github.com/jackaudio/jack2/archive/v";
+                   version
+                   ".tar.gz"))
+             (sha256
+              (base32
+               "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:tests? #f  ; no check target
+       #:configure-flags '("--dbus"
+                           "--alsa")))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("dbus" ,dbus)
+       ("expat" ,expat)
+       ("libsamplerate" ,libsamplerate)
+       ("opus" ,opus)
+       ("readline" ,readline)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
+    (license '(license:gpl2+ license:lgpl2.1+))))
-- 
2.1.0

>From ac7e1b8aa764d33d0a87e6ebb86c4e7498110f86 Mon Sep 17 00:00:00 2001
From: rekado <rek...@elephly.net>
Date: Thu, 29 Jan 2015 10:08:53 +0100
Subject: [PATCH 2/4] gnu: Add aubio.

* gnu/packages/audio.scm (aubio): New variable.
---
 gnu/packages/audio.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index a861600..780ca6c 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -24,15 +24,56 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages glib) ;dbus
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
+  #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml))
 
+(define-public aubio
+  (package
+    (name "aubio")
+    (version "0.4.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://aubio.org/pub/aubio-"; version ".tar.bz2"))
+             (sha256
+              (base32
+               "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:tests? #f  ; no check target
+       #:configure-flags
+       '("--enable-fftw3f"
+         "--enable-jack"
+         "--enable-sndfile"
+         "--enable-samplerate"
+         ;; enable compilation with avcodec once available
+         "--disable-avcodec")
+       #:python ,python-2))
+    (inputs
+     `(("jack" ,jack-1)
+       ("libuuid" ,util-linux)
+       ("libsndfile" ,libsndfile)
+       ("libsamplerate" ,libsamplerate)
+       ("fftwf" ,fftwf)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://aubio.org/";)
+    (synopsis "A library for audio labelling")
+    (description
+     "aubio is a tool designed for the extraction of annotations from audio
+signals.  Its features include segmenting a sound file before each of its
+attacks, performing pitch detection, tapping the beat and producing midi
+streams from live audio.")
+    (license license:gpl3+)))
+
 (define-public jack-1
   (package
     (name "jack")
-- 
2.1.0

>From c9515e8491cfb3b60b054637ab097aa21a044e63 Mon Sep 17 00:00:00 2001
From: rekado <rek...@elephly.net>
Date: Thu, 29 Jan 2015 10:10:53 +0100
Subject: [PATCH 3/4] gnu: Add liblo.

* gnu/packages/audio.scm (liblo): New variable.
---
 gnu/packages/audio.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 780ca6c..54488e1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -133,3 +133,28 @@ synchronous execution of all clients, and low latency operation.")
      `(("pkg-config" ,pkg-config)))
     ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
     (license '(license:gpl2+ license:lgpl2.1+))))
+
+(define-public liblo
+  (package
+    (name "liblo")
+    (version "0.28")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://sourceforge/liblo/liblo-"
+                   version
+                   ".tar.gz"))
+             (sha256
+              (base32
+               "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; liblo test FAILED
+       ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
+       #:tests? #f))
+    (home-page "http://liblo.sourceforge.net";)
+    (synopsis "Implementation of the Open Sound Control protocol")
+    (description
+     "liblo is a lightweight library that provides an easy to use
+implementation of the Open Sound Control (OSC) protocol.")
+    (license license:lgpl2.1+)))
-- 
2.1.0

>From 3bb3b7346f44f8e4849efc7a5fc8b465a974d625 Mon Sep 17 00:00:00 2001
From: rekado <rek...@elephly.net>
Date: Thu, 29 Jan 2015 10:12:00 +0100
Subject: [PATCH 4/4] gnu: Add LV2.

* gnu/packages/audio.scm (lv2): New variable.
---
 gnu/packages/audio.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 54488e1..e513d12 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -158,3 +158,32 @@ 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 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 standard")
+    (description
+     "LV2 is an open standard 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)))
-- 
2.1.0

Reply via email to