[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#39784] [PATCH] Add zlfo.
From: |
Ricardo Wurmus |
Subject: |
[bug#39784] [PATCH] Add zlfo. |
Date: |
Thu, 27 Feb 2020 09:11:04 +0100 |
User-agent: |
mu4e 1.2.0; emacs 26.3 |
Jakub Kądziołka <address@hidden> 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