guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add Faust and Guitarix.


From: Ricardo Wurmus
Subject: Re: [PATCH] Add Faust and Guitarix.
Date: Thu, 18 Jun 2015 15:37:43 +0200

Ludovic Courtès <address@hidden> writes:

>> Subject: [PATCH 1/3] gnu: Add Faust.
>>
>> * gnu/packages/audio.scm (faust): New variable.
>
> [...]
>
>> +          'unpack 'remove-prebuilt-library
>> +          (lambda _
>> +            (delete-file 
>> "architecture/android/libs/armeabi-v7a/libfaust_dsp.so")
>
> This should go in a snippet IMO.

Okay.

>> Subject: [PATCH 3/3] gnu: Add Guitarix.
>>
>> * gnu/packages/audio.scm (guitarix): New variable.
>
> [...]
>
>> +        ;; dsp2cc fails for src/faust/tonestack_engl.dsp, so we use the
>> +        ;; generated C++ files rather than compiling them from Faust 
>> sources.
>> +        "--no-faust"
>
> I think it deserves a FIXME.  (It’s OK for now, but the eventual goal
> should be to build those from source as well.)

Guitarix sources mention two specific versions of Faust with which the
DSP sources should be buildable.  I think the DSP sources should be
fixed in Guitarix rather than package the specific minor version of
Faust to generate the C++ code.  I added a “FIXME” note.

>> +    (native-search-paths
>> +     (list (search-path-specification
>> +            (variable "LV2_PATH")
>> +            (files '("lib/lv2")))))
>
> Shouldn’t it be in LV2 itself instead?

I don’t know.  LV2_PATH is used by LV2 hosts for the discovery of
plugins.  The “lv2” package itself does not provide any plugins; a host
like Ardour has “lv2” as one of its inputs but does not provide any LV2
plugins.  Currently, we only use (native-search-paths ...) suggesting
“LV2_PATH” to be set for LV2 plugin packages.  I would not mind moving
this expression to the “lv2” package instead.

Should I prepare another patch where this is removed from all package
definitions and added to the “lv2” package instead?

>> +    (home-page "http://guitarix.org/";)
>> +    (synopsis "Virtual guitar amplifier")
>> +    (description "Guitarix is a virtual guitar amplifier running JACK.")
>
> Could you expound a bit, for instance using the second paragraph on the
> web page?

Done.  Attached is a new patch.

Thanks!

~~ Ricardo

>From 444196dc501dad2ee793d5b1a20116fee799fb2f Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Sun, 14 Jun 2015 17:15:08 +0200
Subject: [PATCH] gnu: Add Guitarix.

* gnu/packages/audio.scm (guitarix): New variable.
---
 gnu/packages/audio.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 66 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 50d96a2..25c0c4e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -43,6 +44,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages linux)
@@ -490,18 +492,17 @@ PS, and DAB+.")
                     "mirror://sourceforge/faudiostream/faust-" version ".zip"))
               (sha256
                (base32
-                "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))))
+                "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1"))
+              (snippet
+               ;; Remove prebuilt library
+               '(delete-file 
"architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-after
-          'unpack 'remove-prebuilt-library
-          (lambda _
-            (delete-file 
"architecture/android/libs/armeabi-v7a/libfaust_dsp.so")
-            #t))
+         ;; no "configure" script
          (delete 'configure))))
     (native-inputs
      `(("unzip" ,unzip)))
@@ -550,6 +551,65 @@ 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 guitarix
+  (package
+    (name "guitarix")
+    (version "0.32.3")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://sourceforge/guitarix/guitarix2-"
+                   version ".tar.bz2"))
+             (sha256
+              (base32
+               "1ybc5jk7fj6n8qh9ajzl1f6fzdmzab4nwjrh4fsylm94dn1jv0if"))))
+    (build-system waf-build-system)
+    (arguments
+     `(#:tests? #f ; no "check" target
+       #:python ,python-2
+       #:configure-flags
+       (list
+        ;; FIXME: dsp2cc fails for src/faust/tonestack_engl.dsp, so we use the
+        ;; generated C++ files rather than compiling them from Faust sources.
+        "--no-faust"
+        ;; Add the output lib directory to the RUNPATH.
+        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
+    (inputs
+     `(("libsndfile" ,libsndfile)
+       ("boost" ,boost)
+       ("avahi" ,avahi)
+       ("eigen" ,eigen)
+       ("lv2" ,lv2)
+       ("lilv" ,lilv)
+       ("ladspa" ,ladspa)
+       ("jack" ,jack-1)
+       ("gtkmm" ,gtkmm-2)
+       ("gtk+" ,gtk+-2)
+       ("fftwf" ,fftwf)
+       ("lrdf" ,lrdf)
+       ("zita-resampler" ,zita-resampler)
+       ("zita-convolver" ,zita-convolver)))
+    (native-inputs
+     `(("gperf" ,gperf)
+       ;;("faust" ,faust) ; dsp2cc fails for src/faust/tonestack_engl.dsp
+       ("intltool" ,intltool)
+       ("gettext" ,gnu-gettext)
+       ("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LV2_PATH")
+            (files '("lib/lv2")))))
+    (home-page "http://guitarix.org/";)
+    (synopsis "Virtual guitar amplifier")
+    (description "Guitarix is a virtual guitar amplifier running JACK.
+Guitarix takes the signal from your guitar as a mono-signal from your sound
+card.  The input is processed by a main amp and a rack-section.  Both can be
+routed separately and deliver a processed stereo-signal via JACK.  You may
+fill the rack with effects from more than 25 built-in modules including stuff
+from a simple noise gate to modulation effects like flanger, phaser or
+auto-wah.")
+    (license license:gpl2+)))
+
 (define-public ir
   (package
     (name "ir")
-- 
2.2.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]