dannym pushed a commit to branch master
in repository guix.

commit d15f90b70aba42169d09d69fbea14050984441fe
Author: apoorv569 <apoorvs...@gmail.com>
AuthorDate: Thu Mar 27 18:20:23 2025 +0100

    gnu: Add firefly-synth.
    
    * gnu/packages/music.scm (firefly-synth): New variable.
    Change-Id: I785cd7458f80d470f69e65084df30d897c424fe6
    Signed-off-by: Danny Milosavljevic <dan...@friendly-machines.com>
---
 gnu/packages/music.scm | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 24a8c61c84..e46a228599 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -8120,6 +8120,84 @@ tries to match each block with one in its brain to play 
in realtime.")
 visuals based on audio performances or existing tracks.")
     (license license:gpl2+)))
 
+(define-public firefly-synth
+  (package
+   (name "firefly-synth")
+   (version "1.9.9")
+   (source
+    (origin
+     (method git-fetch)
+     ;; TODO: unbundle Submodule 'lib/JUCE' 
(https://github.com/sjoerdvankreel/JUCE.git) registered for path 'lib/JUCE'
+     ;; TODO: unbundle Submodule 'lib/MTS-ESP' 
(https://github.com/sjoerdvankreel/MTS-ESP.git) registered for path 
'lib/MTS-ESP'
+     ;; TODO: unbundle Submodule 'lib/clap' 
(https://github.com/sjoerdvankreel/clap.git) registered for path 'lib/clap'
+     ;; TODO: unbundle Submodule 'lib/clap-helpers' 
(https://github.com/sjoerdvankreel/clap-helpers.git) registered for path 
'lib/clap-helpers'
+     ;; TODO: unbundle Submodule 'lib/readerwriterqueue' 
(https://github.com/sjoerdvankreel/readerwriterqueue.git) registered for path 
'lib/readerwriterqueue'
+     ;; TODO: unbundle Submodule 'lib/sse2neon' 
(https://github.com/sjoerdvankreel/sse2neon) registered for path 'lib/sse2neon'
+     ;; TODO: unbundle Submodule 'lib/vst3/base' 
(https://github.com/sjoerdvankreel/vst3_base.git) registered for path 
'lib/vst3/base'
+     ;; TODO: unbundle Submodule 'lib/vst3/cmake' 
(https://github.com/sjoerdvankreel/vst3_cmake.git) registered for path 
'lib/vst3/cmake'
+     ;; TODO: unbundle Submodule 'lib/vst3/pluginterfaces' 
(https://github.com/sjoerdvankreel/vst3_pluginterfaces.git) registered for path 
'lib/vst3/pluginterfaces'
+     ;; TODO: unbundle Submodule 'lib/vst3/public.sdk' 
(https://github.com/sjoerdvankreel/vst3_public_sdk.git) registered for path 
'lib/vst3/public.sdk'
+     (uri (git-reference
+           (url "https://github.com/sjoerdvankreel/firefly-synth";)
+           (recursive? #t)
+           (commit (string-append "v" version))))
+     (sha256
+      (base32 "1gkrmq942i3gsd7r3ilnz2rs3xxb4sv5kq36f9gdasrxxz65wyg8"))
+     (file-name (git-file-name name version))))
+   (build-system cmake-build-system)
+   (arguments
+    (list
+     #:tests? #f ;; No test target
+     #:build-type "Release"
+     #:phases
+     #~(modify-phases %standard-phases
+                      (add-after 'install 'plugin-base-ref-gen
+                                 (lambda* (#:key outputs #:allow-other-keys)
+                                          (let* ((out (assoc-ref outputs 
"out")))
+                                            (with-directory-excursion
+                                             "../source/dist/Release/linux"
+                                             (system*
+                                              "./plugin_base.ref_gen"
+                                              
"firefly_synth_1.vst3/Contents/x86_64-linux/firefly_synth_1.so"
+                                              
"../../../param_reference.html")))))
+                      (add-after 'plugin-base-ref-gen 'copy-plugin-artefacts
+                                 (lambda* (#:key inputs outputs 
#:allow-other-keys)
+                                          (let* ((out (assoc-ref outputs 
"out"))
+                                                 (src (assoc-ref inputs 
"source"))
+                                                 (clap (string-append out 
"/lib/clap"))
+                                                 (vst3 (string-append out 
"/lib/vst3")))
+                                            ;; Make clap and vst3 directories
+                                            (mkdir-p clap)
+                                            (mkdir-p vst3)
+                                            (with-directory-excursion
+                                             "../source/dist/Release/linux"
+                                             ;; Install clap.
+                                             (copy-recursively
+                                              "firefly_synth_1.clap"
+                                              (string-append clap 
"/firefly_synth_1.clap"))
+                                             (copy-recursively
+                                              "firefly_synth_fx_1.clap"
+                                              (string-append clap 
"/firefly_synth_fx_1.clap"))
+                                             ;; Install vst3.
+                                             (copy-recursively
+                                              "firefly_synth_1.vst3"
+                                              (string-append vst3 
"/firefly_synth_1.vst3"))
+                                             (copy-recursively
+                                              "firefly_synth_fx_1.vst3"
+                                              (string-append vst3 
"/firefly_synth_fx_1.vst3")))))))))
+   (inputs (list libxrandr
+                 libxinerama
+                 libxcursor
+                 freetype
+                 fontconfig
+                 mesa
+                 alsa-lib))
+   (native-inputs (list pkg-config))
+   (home-page "https://github.com/sjoerdvankreel/firefly-synth";)
+   (synopsis "Semi-modular synthesizer and FX plugin, VST3 and CLAP")
+   (description "A semi-modular software synthesizer and fx plugin")
+   (license license:gpl3)))
+
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar

Reply via email to