diff mbox

gnu: Add gxtuner.

Message ID 20161009181004.19856-1-rekado@elephly.net
State New
Headers show

Commit Message

Ricardo Wurmus Oct. 9, 2016, 6:10 p.m. UTC
* gnu/packages/music.scm (gxtuner): New variable.
---
 gnu/packages/music.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Comments

Kei Yamashita Oct. 9, 2016, 8:55 p.m. UTC | #1
Ricardo Wurmus <rekado@elephly.net> writes:

> * gnu/packages/music.scm (gxtuner): New variable.
> ---
>  gnu/packages/music.scm | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index f7b1b17..4539339 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -1585,6 +1585,42 @@ JACK for audio and ALSA sequencer for MIDI as multimedia infrastructures and
>  follows a traditional multi-track tape recorder control paradigm.")
>      (license license:gpl2+)))
>  
> +(define-public gxtuner
> +  (package
> +    (name "gxtuner")
> +    (version "2.3")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://github.com/brummer10/gxtuner/"
> +                                  "archive/v" version ".tar.gz"))
> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1abpxiydn4c9wssz6895hnad9ipkcy3rkgzbnanvwb46nm44x6if"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:make-flags
> +       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
> +             (string-append "INCLUDE_L_DIR="
> +                            (assoc-ref %build-inputs "zita-resampler")
> +                            "/include/"))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure))))
> +    (inputs
> +     `(("gtk+" ,gtk+-2)
> +       ("jack" ,jack-1)
> +       ("fftwf" ,fftwf)
> +       ("cairo" ,cairo)
> +       ("zita-resampler" ,zita-resampler)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (home-page "https://github.com/brummer10/gxtuner")
> +    (synopsis "Guitar tuner")
> +    (description "GXtuner is a simple guitar tuner for JACK with an
> +analogue-like user interface.")
> +    (license license:gpl2+)))
> +
>  (define-public pianobar
>    (package
>      (name "pianobar")

Sweet! I was wondering if there was a free software tuner like this.

This package is reproducible and clears the linting process on my
end. Sadly I'm not skilled enough with JACK to check the functionality
of the package. :-/
Ludovic Courtès Oct. 9, 2016, 9:49 p.m. UTC | #2
Ricardo Wurmus <rekado@elephly.net> skribis:

> * gnu/packages/music.scm (gxtuner): New variable.

Looks all good, thanks!

Ludo’.
Ricardo Wurmus Oct. 10, 2016, 5:30 a.m. UTC | #3
Kei Kebreau <kei@openmailbox.org> writes:

> This package is reproducible and clears the linting process on my
> end. Sadly I'm not skilled enough with JACK to check the functionality
> of the package. :-/

Using JACK on GuixSD effectively requires a little additional effort.  I
have this in my system configuration to be able to use JACK’s realtime
mode:

  (users (list (user-account
                (name "rekado")
                (comment "rekado")
                (group "rekado")
                (supplementary-groups '(… "realtime"))
                (home-directory "/home/rekado"))))
  (groups (cons* (user-group (name "rekado") (id 1000))
                 (user-group (name "realtime"))
                 %base-groups))
  …
  (services (cons* (pam-limits-service
                    (list
                     (pam-limits-entry "@realtime" 'both 'rtprio 99)
                     (pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
                   …))

This means: add my user account to a new group “realtime” and then
raise the realtime priority for this group.  Also drop memory
restrictions for members of this group.

Then you close all applications that might currently be using the audio
interface directly.  Make sure pulseaudio is not running.  Then run the
JACK daemon with the ALSA backend:

    jackd -d alsa

At this point you can start any application that needs JACK.  To connect
wires between JACK applications and the audio interface ports I
recommend using “patchage”, a graphical patcher that shows you all audio
ports on all JACK appplications and lets you draw connections between
them.

Hope this helps!

~~ Ricardo
Kei Yamashita Oct. 10, 2016, 12:18 p.m. UTC | #4
Ricardo Wurmus <rekado@elephly.net> writes:

> Kei Kebreau <kei@openmailbox.org> writes:
>
>> This package is reproducible and clears the linting process on my
>> end. Sadly I'm not skilled enough with JACK to check the functionality
>> of the package. :-/
>
> Using JACK on GuixSD effectively requires a little additional effort.  I
> have this in my system configuration to be able to use JACK’s realtime
> mode:
>
>   (users (list (user-account
>                 (name "rekado")
>                 (comment "rekado")
>                 (group "rekado")
>                 (supplementary-groups '(… "realtime"))
>                 (home-directory "/home/rekado"))))
>   (groups (cons* (user-group (name "rekado") (id 1000))
>                  (user-group (name "realtime"))
>                  %base-groups))
>   …
>   (services (cons* (pam-limits-service
>                     (list
>                      (pam-limits-entry "@realtime" 'both 'rtprio 99)
>                      (pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
>                    …))
>
> This means: add my user account to a new group “realtime” and then
> raise the realtime priority for this group.  Also drop memory
> restrictions for members of this group.
>
> Then you close all applications that might currently be using the audio
> interface directly.  Make sure pulseaudio is not running.  Then run the
> JACK daemon with the ALSA backend:
>
>     jackd -d alsa
>
> At this point you can start any application that needs JACK.  To connect
> wires between JACK applications and the audio interface ports I
> recommend using “patchage”, a graphical patcher that shows you all audio
> ports on all JACK appplications and lets you draw connections between
> them.
>
> Hope this helps!
>
> ~~ Ricardo

This definitely helps; thanks!
diff mbox

Patch

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index f7b1b17..4539339 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1585,6 +1585,42 @@  JACK for audio and ALSA sequencer for MIDI as multimedia infrastructures and
 follows a traditional multi-track tape recorder control paradigm.")
     (license license:gpl2+)))
 
+(define-public gxtuner
+  (package
+    (name "gxtuner")
+    (version "2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/brummer10/gxtuner/"
+                                  "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1abpxiydn4c9wssz6895hnad9ipkcy3rkgzbnanvwb46nm44x6if"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "INCLUDE_L_DIR="
+                            (assoc-ref %build-inputs "zita-resampler")
+                            "/include/"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("jack" ,jack-1)
+       ("fftwf" ,fftwf)
+       ("cairo" ,cairo)
+       ("zita-resampler" ,zita-resampler)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/brummer10/gxtuner")
+    (synopsis "Guitar tuner")
+    (description "GXtuner is a simple guitar tuner for JACK with an
+analogue-like user interface.")
+    (license license:gpl2+)))
+
 (define-public pianobar
   (package
     (name "pianobar")