diff mbox series

[bug#58809] gnu: Add samplebrain.

Message ID 20221027010749.3291-1-antero@mailbox.org
State New
Headers show
Series [bug#58809] gnu: Add samplebrain. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success
cbaines/issue success View issue

Commit Message

Antero Mejr Oct. 27, 2022, 1:07 a.m. UTC
* gnu/packages/music.scm (samplebrain): New variable.
---
 gnu/packages/music.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Comments

Maxim Cournoyer March 21, 2023, 12:32 p.m. UTC | #1
Hi Antero,

Antero Mejr <antero@mailbox.org> writes:

> * gnu/packages/music.scm (samplebrain): New variable.
> ---
>  gnu/packages/music.scm | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 72299f13f1..d1d56f149f 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -6899,6 +6899,37 @@ (define-public orca-music
>        (home-page "https://100r.co/site/orca.html")
>        (license license:expat))))
>
> +(define-public samplebrain
> +  (package
> +    (name "samplebrain")
> +    (version "0.18.4")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://gitlab.com/then-try-this/samplebrain")
> +                    (commit (string-append version "_release"))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "14ynmnyg0mmrl7z7241yc5wxxsrjyqmzs1ds1kh8shkach8j05rx"))))
> +    (build-system qt-build-system)
> +    (arguments
> +     (list #:tests? #f ;no tests
> +           #:phases #~(modify-phases %standard-phases
> +                        (replace 'configure
> +                          (lambda _
> +                            (substitute* "samplebrain.pro"
> +                              (("\\/usr") #$output))
> +                            (invoke "qmake"))))))
> +    (inputs (list fftw liblo libsndfile portaudio))
> +    (home-page "https://thentrythis.org/projects/samplebrain/")
> +    (synopsis "Sample mashing synthesizer designed by Aphex Twin")
> +    (description "Samplebrain chops samples up into a 'brain' of interconnected
> +small sections called blocks which are connected into a network by similarity.
> +It processes a target sample, chopping it up into blocks in the same way, and
> +tries to match each block with one in its brain to play in realtime.")
> +    (license license:gpl2)))

Thanks!  The license, which is gpl2+ (version 2 or later), according to
the LICENSE file (and source copyright headers).

I was about to push this, but running the binary yields:

--8<---------------cut here---------------start------------->8---
$ /gnu/store/qi31sc2z7nbi4c3wpj7w218fgbjmfsns-samplebrain-0.18.4/bin/samplebrain
liblo server error 9904
Segmentation fault
--8<---------------cut here---------------end--------------->8---

Could you please look into that?
Antero Mejr March 21, 2023, 2:55 p.m. UTC | #2
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> Thanks!  The license, which is gpl2+ (version 2 or later), according to
> the LICENSE file (and source copyright headers).

Fixed in v2.

> I was about to push this, but running the binary yields:
>
> $ /gnu/store/qi31sc2z7nbi4c3wpj7w218fgbjmfsns-samplebrain-0.18.4/bin/samplebrain
> liblo server error 9904
> Segmentation fault
>
> Could you please look into that?

It looks like that error is because liblo is unable to bind to a port to
create an OSC server. Samplebrain starts up that server on init to do
its audio routing. Were you running the binary in a container, or on a
system that does not have a soundcard or audio software (ALSA, Jack) set
up?
I can't reproduce that error on my ALSA-based system.

Semi-related, is there going to be a revert to fix QT_PLUGIN_PATH on
Wayland? I saw it was being discussed at:
https://issues.guix.gnu.org/57742

When I run QT applications under XWayland, there is a dialog box bug
that crashes my WM (Sway) and requires a reboot. I first noticed it when
running the dolphin emulator, but now I see it with Samplebrain too.
Maxim Cournoyer March 21, 2023, 5:47 p.m. UTC | #3
Hi Antero,

Antero Mejr <antero@mailbox.org> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> Thanks!  The license, which is gpl2+ (version 2 or later), according to
>> the LICENSE file (and source copyright headers).
>
> Fixed in v2.
>
>> I was about to push this, but running the binary yields:
>>
>> $ /gnu/store/qi31sc2z7nbi4c3wpj7w218fgbjmfsns-samplebrain-0.18.4/bin/samplebrain
>> liblo server error 9904
>> Segmentation fault
>>
>> Could you please look into that?
>
> It looks like that error is because liblo is unable to bind to a port to
> create an OSC server. Samplebrain starts up that server on init to do
> its audio routing. Were you running the binary in a container, or on a
> system that does not have a soundcard or audio software (ALSA, Jack) set
> up?
> I can't reproduce that error on my ALSA-based system.

I use pulseaudio/ALSA. I haven't tried with Jack running.  I've tried
with your v2 update, and it worked!  So I've now pushed it, adding your
copyright line at the top.

> Semi-related, is there going to be a revert to fix QT_PLUGIN_PATH on
> Wayland? I saw it was being discussed at:
> https://issues.guix.gnu.org/57742
>
> When I run QT applications under XWayland, there is a dialog box bug
> that crashes my WM (Sway) and requires a reboot. I first noticed it when
> running the dolphin emulator, but now I see it with Samplebrain too.

It would need to be attempted and see if everything runs well even when
mixing Qt 5 and 6 in QT_PLUGIN_PATH, but upstream says it should.
diff mbox series

Patch

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 72299f13f1..d1d56f149f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -6899,6 +6899,37 @@  (define-public orca-music
       (home-page "https://100r.co/site/orca.html")
       (license license:expat))))
 
+(define-public samplebrain
+  (package
+    (name "samplebrain")
+    (version "0.18.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/then-try-this/samplebrain")
+                    (commit (string-append version "_release"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "14ynmnyg0mmrl7z7241yc5wxxsrjyqmzs1ds1kh8shkach8j05rx"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f ;no tests
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'configure
+                          (lambda _
+                            (substitute* "samplebrain.pro"
+                              (("\\/usr") #$output))
+                            (invoke "qmake"))))))
+    (inputs (list fftw liblo libsndfile portaudio))
+    (home-page "https://thentrythis.org/projects/samplebrain/")
+    (synopsis "Sample mashing synthesizer designed by Aphex Twin")
+    (description "Samplebrain chops samples up into a 'brain' of interconnected
+small sections called blocks which are connected into a network by similarity.
+It processes a target sample, chopping it up into blocks in the same way, and
+tries to match each block with one in its brain to play in realtime.")
+    (license license:gpl2)))
+
 ;;;
 ;;; 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