From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:38271) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7EH5-0007xH-MO for guix-patches@gnu.org; Thu, 27 Feb 2020 03:12:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7EH4-0004GA-5A for guix-patches@gnu.org; Thu, 27 Feb 2020 03:12:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:52666) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j7EH3-0004Fx-Q4 for guix-patches@gnu.org; Thu, 27 Feb 2020 03:12:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1j7EH3-0007ku-Kn for guix-patches@gnu.org; Thu, 27 Feb 2020 03:12:01 -0500 Subject: [bug#39784] [PATCH] Add zlfo. Resent-Message-ID: References: <0f84534047c834937c210429116d686bc159e8a3.camel@zrythm.org> <20200226220320.qfog7rmaqsglx2dg@gravity> From: Ricardo Wurmus In-reply-to: <20200226220320.qfog7rmaqsglx2dg@gravity> Date: Thu, 27 Feb 2020 09:11:04 +0100 Message-ID: <87pne0ih5z.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Cc: Alexandros Theodotou , 39784@debbugs.gnu.org Jakub K=C4=85dzio=C5=82ka 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 build= ing >> +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 =E2=80=9Ccontrol voltage=E2=80=9D and LFO is =E2=80=9Clow frequency o= scillator=E2=80=9D. While CV is sometimes expanded, LFO rarely is, but it wouldn=E2=80=99t hurt to use =E2=80=9C@dfn{low frequency oscillator} (LFO)=E2=80=9D 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 =E2=80=9Ccross-platform=E2=80=9D because as far as Guix = is concerned packages are available for all platforms that Guix supports. -- Ricardo