Hi Guix, this patch set adds a graphical user interface for the metronome “klick”.
The patch to pygtk is needed to build the Python bindings for glade. ~~ Ricardo
>From 76cb9cb91b76f4bb723030d3d5a63238cdf98e20 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus <[email protected]> Date: Thu, 25 Feb 2016 09:45:05 +0100 Subject: [PATCH 1/3] gnu: Add pyliblo. * gnu/packages/audio.scm (python-pyliblo, python2-pyliblo): New variables. --- gnu/packages/audio.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 4c4322d..1bc3143 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -30,6 +30,7 @@ #:use-module (guix build-system waf) #:use-module (guix build-system trivial) #:use-module (guix build-system cmake) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -946,6 +947,34 @@ essential distortions.") implementation of the Open Sound Control (OSC) protocol.") (license license:lgpl2.1+))) +(define-public python-pyliblo + (package + (name "python-pyliblo") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append "http://das.nasophon.de/download/pyliblo-" + version ".tar.gz")) + (sha256 + (base32 + "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ;no tests + (inputs + `(("python-cython" ,python-cython) + ("liblo" ,liblo))) + (home-page "http://das.nasophon.de/pyliblo/") + (synopsis "Python bindings for the liblo OSC library") + (description + "Pyliblo is a Python wrapper for the liblo OSC library. It supports +almost the complete functionality of liblo, allowing you to send and receive +OSC messages using a nice and simple Python API. Also included are the +command line utilities @code{send_osc} and @code{dump_osc}.") + (license license:lgpl2.1+))) + +(define-public python2-pyliblo + (package-with-python2 python-pyliblo)) + (define-public lilv (package (name "lilv") -- 2.6.3
>From 1dc15ad2e3776904ff8b838add00d66d9671b48a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus <[email protected]> Date: Fri, 26 Feb 2016 08:05:40 +0100 Subject: [PATCH 2/3] gnu: python2-pygtk: Add libglade to inputs. * gnu/packages/gtk.scm (python2-pygtk)[inputs]: Add "libglade". --- gnu/packages/gtk.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a234b89..671922b 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1013,6 +1013,7 @@ extensive documentation, including API reference and a tutorial.") `(("pkg-config" ,pkg-config))) (inputs `(("python" ,python-2) + ("libglade" ,libglade) ("glib" ,glib))) (propagated-inputs `(("python-pycairo" ,python2-pycairo) ;loaded at runtime -- 2.6.3
>From cfda70fdd6448980df9ba4c22894198366a2846d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus <[email protected]> Date: Thu, 25 Feb 2016 09:46:01 +0100 Subject: [PATCH 3/3] gnu: Add gtklick. * gnu/packages/music.scm (gtklick): New variable. --- gnu/packages/music.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 29da01b..d789cc3 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -225,6 +225,54 @@ enable professional yet simple and intuitive pattern-based drum programming.") you to define complex tempo maps for entire songs or performances.") (license license:gpl2+))) +(define-public gtklick + (package + (name "gtklick") + (version "0.6.4") + (source (origin + (method url-fetch) + (uri (string-append "http://das.nasophon.de/download/gtklick-" + version ".tar.gz")) + (sha256 + (base32 + "0dq1km6njnzsqdqyf6wzir9g733z0mc9vmxfg2383k3c2a2di6bp")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no tests + #:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-before 'build 'add-sitedirs + ;; .pth files are not automatically interpreted unless the + ;; directories containing them are added as "sites". The directories + ;; are then added to those in the PYTHONPATH. This is required for + ;; the operation of pygtk. + (lambda _ + (substitute* "gtklick/gtklick.py" + (("import pygtk") + "import pygtk, site, sys +for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)")))) + (add-after 'unpack 'inject-store-path-to-klick + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gtklick/klick_backend.py" + (("KLICK_PATH = 'klick'") + (string-append "KLICK_PATH = '" + (assoc-ref inputs "klick") + "/bin/klick'"))) + #t))))) + (inputs + `(("klick" ,klick) + ("python2-pyliblo" ,python2-pyliblo) + ("python2-pygtk" ,python2-pygtk))) + (native-inputs + `(("gettext" ,gnu-gettext))) + (home-page "http://das.nasophon.de/gtklick/") + (synopsis "Simple metronome with an easy-to-use graphical interface") + (description + "Gtklick is a simple metronome with an easy-to-use graphical user +interface. It is implemented as a frontend to @code{klick}.") + (license license:gpl2+))) + (define-public lilypond (package (name "lilypond") -- 2.6.3
