Message ID | 0f84534047c834937c210429116d686bc159e8a3.camel@zrythm.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#39784] Add zlfo. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
On Tue, Feb 25, 2020 at 03:06:38PM +0000, Alexandros Theodotou wrote: > Hi, > > This is a new LV2 plugin. It uses Ztoolkit for its UI so I packaged > that separately. Hi, could you send your patches inline, instead of as an attachment? It makes reviews easier. The workflow on your side is easier too, since you only need to `git send-email` (available as git:send-email in guix). It's fine if you prefer not to do this, though. > * gnu/packages/audio.scm (ztoolkit): New variable. > --- > gnu/packages/audio.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) I'm not sure if audio.scm is the best place for a GUI toolkit. It might be fine since audio plugins are the primary usecase, but I'm not sure. > +(define-public ztoolkit > + (package > + (name "ztoolkit") > + (version "0.1.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://git.zrythm.org/git/ztoolkit") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1")))) Please run etc/indent-code.el on your packages. > + (build-system meson-build-system) > + (propagated-inputs > + `(("cairo" ,cairo) > + ("libx11" ,libx11))) Why are these propagated-inputs? I would've thought that these dependencies get linked into the binary, so they don't need to propagate to the user's profile. > + (native-inputs > + `(("pkg-config" ,pkg-config) > + ("git" ,git))) Why the dependency on git? The package seems to build fine without it. > + (synopsis "GUI toolkit for LV2 plugins") > + (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily > +inspired by GTK. It handles events and low level drawing on behalf of > +the user and provides a high-level API for managing the UI and custom > +widgets. ZToolkit is written in C and was created to be used for building > +audio plugin UIs, where the dependencies often need to be kept to a > +minimum.") > + (home-page "https://git.zrythm.org/cgit/ztoolkit/") > + (license license:agpl3+))) > +(define-public zlfo > + (package > + (name "zlfo") > + (version "0.1.3") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://git.zrythm.org/git/ZLFO") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0bm466ci5xyvxvq7l9p6xyh789lvk6i31b4zja1igqh13akbjnjz")))) > + (build-system meson-build-system) > + (inputs > + `(("ztoolkit-rsvg" ,ztoolkit-rsvg))) > + (native-inputs > + `(("git" ,git) Same question as above. > + ("lv2" ,lv2) > + ("pkg-config" ,pkg-config))) > + (synopsis "LFO plugin") That's quite blunt, and impenetrable for non-domain-experts. Is there really nothing more you could say about the package? Perhaps expand the acronym? > + (description "ZLFO is a fully featured LFO for CV-based automation > +that comes as a cross-platform LV2 plugin bundle with a custom UI.") Consider using Texinfo's @acronym. > + (home-page "https://git.zrythm.org/cgit/ZLFO/") > + (license license:agpl3+)))
One more thing: zlfo has a reference to lv2 (see guix size). This usually means that either it shouldn't be a native input, or the build process stores the path in the output unnecessarily, increasing the package closure size.
Jakub Kądziołka <kuba@kadziolka.net> writes: > On Tue, Feb 25, 2020 at 03:06:38PM +0000, Alexandros Theodotou wrote: >> Hi, >> >> This is a new LV2 plugin. It uses Ztoolkit for its UI so I packaged >> that separately. > > Hi, > > could you send your patches inline, instead of as an attachment? It > makes reviews easier. The workflow on your side is easier too, since you > only need to `git send-email` (available as git:send-email in guix). > It's fine if you prefer not to do this, though. > >> * gnu/packages/audio.scm (ztoolkit): New variable. >> --- >> gnu/packages/audio.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 43 insertions(+) > I'm not sure if audio.scm is the best place for a GUI toolkit. It might > be fine since audio plugins are the primary usecase, but I'm not sure. > >> +(define-public ztoolkit >> + (package >> + (name "ztoolkit") >> + (version "0.1.1") >> + (source >> + (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://git.zrythm.org/git/ztoolkit") >> + (commit (string-append "v" version)))) >> + (file-name (git-file-name name version)) >> + (sha256 >> + (base32 >> + "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1")))) > Please run etc/indent-code.el on your packages. > >> + (build-system meson-build-system) >> + (propagated-inputs >> + `(("cairo" ,cairo) >> + ("libx11" ,libx11))) > Why are these propagated-inputs? I would've thought that these > dependencies get linked into the binary, so they don't need to propagate > to the user's profile. > >> + (native-inputs >> + `(("pkg-config" ,pkg-config) >> + ("git" ,git))) > Why the dependency on git? The package seems to build fine without it. > >> + (synopsis "GUI toolkit for LV2 plugins") >> + (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily >> +inspired by GTK. It handles events and low level drawing on behalf of >> +the user and provides a high-level API for managing the UI and custom >> +widgets. ZToolkit is written in C and was created to be used for building >> +audio plugin UIs, where the dependencies often need to be kept to a >> +minimum.") >> + (home-page "https://git.zrythm.org/cgit/ztoolkit/") >> + (license license:agpl3+))) > >> +(define-public zlfo >> + (package >> + (name "zlfo") >> + (version "0.1.3") >> + (source >> + (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://git.zrythm.org/git/ZLFO") >> + (commit (string-append "v" version)))) >> + (file-name (git-file-name name version)) >> + (sha256 >> + (base32 >> + "0bm466ci5xyvxvq7l9p6xyh789lvk6i31b4zja1igqh13akbjnjz")))) >> + (build-system meson-build-system) >> + (inputs >> + `(("ztoolkit-rsvg" ,ztoolkit-rsvg))) >> + (native-inputs >> + `(("git" ,git) > Same question as above. > >> + ("lv2" ,lv2) >> + ("pkg-config" ,pkg-config))) >> + (synopsis "LFO plugin") > That's quite blunt, and impenetrable for non-domain-experts. Is there > really nothing more you could say about the package? Perhaps expand the > acronym? > >> + (description "ZLFO is a fully featured LFO for CV-based automation >> +that comes as a cross-platform LV2 plugin bundle with a custom UI.") CV is “control voltage” and LFO is “low frequency oscillator”. While CV is sometimes expanded, LFO rarely is, but it wouldn’t hurt to use “@dfn{low frequency oscillator} (LFO)” here. What it means is that the plugin outputs a slow waveform (much slower than audio waveform signals) that can be used to modulate other parameters in a synthesizer / LV2 plugin network automatically, much like control voltages are used in (hardware) modular synthesizers to control parameters of other modules. A common use case is to modulate the pitch of an audio oscillator with an LFO so as to produce vibrato (i.e. the pitch rises and falls periodically, a couple of times per second, centered around a certain pitch). I would remove the “cross-platform” because as far as Guix is concerned packages are available for all platforms that Guix supports. -- Ricardo
From c8b1c930846eb6cc0f8b2aed47e430e62466577a Mon Sep 17 00:00:00 2001 From: Alexandros Theodotou <alex@zrythm.org> Date: Tue, 25 Feb 2020 15:00:50 +0000 Subject: [PATCH 1/2] gnu: Add ztoolkit. * gnu/packages/audio.scm (ztoolkit): New variable. --- gnu/packages/audio.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 5b8c610882..dece9c03fe 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -4036,3 +4036,46 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus' @code{audio_decoder} code.") (home-page "https://git.zrythm.org/cgit/libaudec") (license license:agpl3+))) + +(define-public ztoolkit + (package + (name "ztoolkit") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.zrythm.org/git/ztoolkit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1")))) + (build-system meson-build-system) + (propagated-inputs + `(("cairo" ,cairo) + ("libx11" ,libx11))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("git" ,git))) + (synopsis "GUI toolkit for LV2 plugins") + (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily +inspired by GTK. It handles events and low level drawing on behalf of +the user and provides a high-level API for managing the UI and custom +widgets. ZToolkit is written in C and was created to be used for building +audio plugin UIs, where the dependencies often need to be kept to a +minimum.") + (home-page "https://git.zrythm.org/cgit/ztoolkit/") + (license license:agpl3+))) + +(define-public ztoolkit-rsvg + (package + (inherit ztoolkit) + (name "ztoolkit-rsvg") + (arguments + `(#:configure-flags `("-Denable_rsvg=true"))) + (propagated-inputs + `(("cairo" ,cairo) + ("librsvg" ,librsvg) + ("libx11" ,libx11))) + (synopsis "ZToolkit with SVG support"))) -- 2.25.1