This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-01-10
Channels
- # announcements (14)
- # beginners (55)
- # calva (4)
- # cider (9)
- # clojure (56)
- # clojure-austin (25)
- # clojure-brasil (1)
- # clojure-dev (29)
- # clojure-europe (44)
- # clojure-mexico (1)
- # clojure-nl (2)
- # clojure-norway (1)
- # clojure-uk (5)
- # clojurescript (15)
- # cursive (9)
- # datomic (5)
- # emacs (30)
- # events (1)
- # graalvm (30)
- # honeysql (17)
- # hyperfiddle (54)
- # introduce-yourself (1)
- # jobs-discuss (6)
- # kaocha (2)
- # leiningen (5)
- # lsp (6)
- # malli (3)
- # missionary (16)
- # off-topic (42)
- # overtone (40)
- # pedestal (2)
- # re-frame (21)
- # shadow-cljs (16)
- # squint (2)
- # tools-deps (14)
@danieleneal it seems that's part of a third party extension? I think that basically everything from the core distribution and a good chunk of the official "extras" (sc3-plugins) is available. The README in this directory contains an overview (could be out of date) https://github.com/overtone/overtone/tree/master/src/overtone/sc/machinery/ugen/metadata/extras To add additional UGens you need to write a spec, like this: https://github.com/overtone/overtone/blob/master/src/overtone/sc/machinery/ugen/metadata/extras/glitch.clj
I plan to add some info about that to the wiki, including how to debug these things, as I had to do that recently to figure out what was wrong with loop-buf
, which involved generating synths that use it with both sclang and overtone, decompiling the binary synth format, and comparing what's different.
Overtone can also load compiled supercollider synth definitions, so as a workaround you could create the synth in sclang that uses additional ugens, and then use it from overtone.
There's probably room for a more direct and condensed way to define UGens, in case you want to use some third party ugen directly.
ah ok cool, so the regular pitch-shift is a built in one
thanks for the answer
tried getting things going on guix and it is the most trouble I've had with jvm/clojure/sound in ages (sound works fine in things like the browser). I think it is down to things like jack and pipewire, but I've not had a chance to dig in much yet. It has been aaaages since I've trouble with any of that on linux (at least 10 years or so)
I'll make a gist next time, but it was even things like clj complaining about not having an S3 transport. So much seemed broken. It is an experimental machine so I might wipe it and start over. I'll get the messages that are there first in case it is something easy
tried it in nix (my daily driver where clojure does work) and couldn't connect to supercollider https://gist.github.com/otfrom/f594a8b979e25bb5608cb7d84ee73154
sound is (usually) fine on that machine, though it was generally a bit flaky connecting bluetooth/google meet today. A reboot fixed that though
[nix-shell:~/src/happy-vibes]$ pw-jack
The program 'pw-jack' is not in your PATH. You can make it available in an
ephemeral shell by typing:
nix-shell -p pipewire
[scynth] jack server is not running or cannot be started
you have pipewire, which can act as a jack server, but it may require prepending the pipewire-jack libraries to your LD_PATH (or whatever it's called), which pw-jack does. Overtone will run scsynth through pw-jack if it can find pw-jack.this is essentially what it does
LD_LIBRARY_PATH='/usr/${LIB}/pipewire-0.3/jack'"${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}"
export LD_LIBRARY_PATH
ok. Sounds basically like my sound config which is fine for youtube and video conferencing isn't set up properly yet (not too surprising)
It's complicated (as linux sound usually is). Pipewire can mimic both pulseaudio and jack, most desktop stuff will use it as a pulseaudio client. Jack is mostly just used for pro-audio stuff.
for me without pw-jack I would have to do something like this
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/pipewire-0.3/jack"
I'm going to have a read of this: https://nixos.wiki/wiki/JACK
yeah they're basically saying the same thing > Connecting nix JACK clients to Pipewire installed via other package managers
> Pipewire offers a JACK API, but applications installed via nix are not able to connect to it out of the box. > > Use the following command to make them work (using qsynth as an example):
LD_LIBRARY_PATH="$(nix build nixpkgs#pipewire.jack --print-out-paths)/lib" nix run nixpkgs#qsynth
but I'll have a dig later. Other work calls today, but I thought I'd poke it as I was wondering if it was going to be quick
it should inherit the environment, so prefixing clj with that LD_LIBRARY_PATH should be fine, but you can try starting scsynth manually and connecting to it from overtone.
I'm also busy with some other stuff, but I'll get you some more pointers. You can configure the scsynth executable in ~/.overtone/config.clj, so you can also use that to point at your own wrapper script
actually, I think this is the bit I need to dig through here: https://nixos.wiki/wiki/PipeWire
I'm going to wait a bit before I do it as I don't want to wreck my sound set up on my work machine when I have a lot of meetings 😄
those are some great wiki pages! Might link to them from the overtone wiki. I knew Arch wiki was a good place to check but didn't think of looking at nix.
so in ~/.overtone/config.clj
you can configure a :sc-path
, so you can make a script like this, e.g. ~/bin/pw-scsynth.sh
#!/bin/sh
export LD_LIBRARY_PATH="$(nix build nixpkgs#pipewire.jack --print-out-paths)/lib"
exec scsynth "$@"
And then configure it
;; ~/.overtone/config.clj
{,,,
:sc-path "/home/otfrom/bin/pw-scsynth.sh"
}