guix-patches
[Top][All Lists]
Advanced

[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





reply via email to

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