Fork me on GitHub
#quil
<
2023-11-19
>
plexus10:11:12

I spent the weekend reviving an old Quil project under the Overtone umbrella. https://github.com/overtone/mini-beast

🆒 4
💯 1
plexus10:11:56

To try it out, you can try this:

clojure -Sdeps '{:deps {overtone/mini-beast {:git/url "" :git/sha "d1a01933a7dee43ee6f40fe8aef13010eb058ff0"}}}' -M -m minibeast.core
But check the instructions in the README, cause there are several scenarios where there are additional steps needed before you get sound.

plexus10:11:32

Please report back if you do try it out, I'd like to share this outside of Clojure circles, like r/linuxaudio, but it'd be great if at least one person who isn't me could try it out first.

plexus10:11:32

I found a bug in (tint r g b a), and made a PR for that. A lot of the original code also used (tint (color r g b a)), but it seems that no longer works.

p-himik10:11:43

It's more of an Overtone concern, I suppose, but getting this to start is... tricky. Tried just running that command - failed with sigsegv in what I assume to be the built-in SC library. Installed SC from the Ubuntu's repo - same error. Noticed that it says "jack server is not running or cannot be started". Installed the Jack server, tried again - same error. Checked the Overtone repo - tons of issues related to not being able to start it due to one thing or another. SC, Jack, other libraries, incompatible parameter values. At this point, I'm giving up. With all that in the way, maybe it would be worth it to create and publish an OCI image?

plexus10:11:34

Did you read the README?

p-himik10:11:52

I did. And the readme of Overtone. And its Wiki. And its issues. Maybe I have missed something.

plexus10:11:07

You are likely already running pipewire, in which case you don't need jack, you just need pw-jack.

p-himik10:11:24

I'm running PulseAudio.

plexus10:11:57

Oof, okay in that case you'll have to manually make sure you can start jackd and scsynth. I would start with qjackctl, make sure it reports that jack is running. Then run scsynth -u <port number>. If you get that far you can do java -jar minibeast.jar -u <port number>

plexus10:11:13

This is unfortunately the most annoying part about Overtone. It was already complex on linux, and with pipewire it's become more so. We'll likely drop the internal supercollider in the future. All we can really do is help people debug this layer by layer.

p-himik10:11:44

As I said - I'm giving up. :) I was curious, but it's not worth it for me. That's why I asked about an image. If it's possible, it would make it so much easier for "would-like-to-try-but-not-debug-it" people to start with it. Here's the full error (almost - removed the cruft) if it's helpful:

--> Booting internal SuperCollider server...
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
could not initialize audio.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f613235fba7, pid=651128, tid=651199
#
# JRE version: OpenJDK Runtime Environment (18.0.2+9) (build 18.0.2-ea+9-Ubuntu-222.04)
# Java VM: OpenJDK 64-Bit Server VM (18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# C  [libscsynth.so.1+0x63ba7]  World_WaitForQuit+0x7

plexus10:11:17

Yeah that's the kind of stuff you get from the internal SuperCollider, which we don't recommend using, and which we'll drop in the future. Thanks for trying it anyway.

plexus10:11:42

It does tell you exactly what the problem is, jack server is not running or cannot be started.

p-himik10:11:21

That's the thing - I did install SC from the repo. Maybe the library discovery process somehow didn't work, maybe the SC that got installed is somehow busted, maybe something else, I dunno. Alright, I tried again - I was able to start Jack but only with disabled realtime.

❤️ 1
plexus11:11:24

Thank you, that's valuable input! If you can now run scsynth then you're off to the races. The troubleshooting instructions in the minibeast readme are a draft for what should become a troubleshooting page on the overtone wiki. I think it should even be possible to run scsynth directly on alsa, that might be the easiest way for people to get started.

jackrusher14:11:55

Linux audio: the nightmare that never ends

p-himik14:11:05

To be fair, it's not all that different on Windows if you really need that real time.

jackrusher14:11:37

I’ve no experience of Windows, so I only know to be bitter about Linux 😆