Fork me on GitHub
#overtone
<
2024-05-24
>
Chris McCormick08:05:12

There should be a Clojure algorave at Heart of Clojure!

đź‘€ 2
❤️ 1
plexus13:05:02

I'd love to see it! Who would be able to perform? Any suggestions?

diego.videco18:05:59

I do live coding, although my style is experimental

Chris McCormick09:05:50

I think experimental comes with the territory. I submitted a suggestion via the CFP for an idea of curating Clojure-made tracks instead of a real-time algorave. More like a DJ set (or mixtape) from community submissions. I think this would be a low pressure way of doing it and letting lots of people participate. I reckon there would be a lot of people sitting on tracks that they are maybe too embarrassed to share but it would be really fun to have a showcase of these and it could be done in a way where even experimental and amateur tracks are welcome. I know some of the Clojure core contributors are secret musicians and it would be super cool to hear some of that music.

đź‘Ť 2
Chris McCormick09:05:16

Live algorave would be cool too though I'm conscious the A/V requirements may be onerous for the organizers.

plexus10:05:32

A/V should be fine. I was considering maybe inviting this person https://pulusound.fi/ . She does pretty cool stuff with supercollider.

đź‘Ť 1
plexus10:05:08

Or Sam Aaron, who would I suppose be doing Sonic pi. But maybe we can convince him to dust off some of his overtone code :)

Chris McCormick18:05:17

There are a lot of livecoding and algorave people on the TOPLAP Discord too.

pfeodrippe12:05:57

One thing I've noticed is that modifying the defaults of, for example, a defsynth, doesn't modify the defaults in the sc server, e.g. let's say I have this ccc synth

(defsynth ccc [freq 20000, mula 0, mulb 0]
  (out 0 [(* mula (lpf (pink-noise 0.4) freq))
          (* mulb (lpf (pink-noise 0.4) freq))]))
I evaluate this, run it with (ccc)and things work fine, I don't hear any sound as expected Let's say I modify this to be
(defsynth ccc [freq 20000, mula 0, mulb 0.5]
  (out 0 [(* mula (lpf (pink-noise 0.4) freq))
          (* mulb (lpf (pink-noise 0.4) freq))]))
, evaluate it and run (ccc), I still don't hear anything. If I rename the defsynth to any other name (e.g. ddd) and run it, then it works. Maybe there is a cache somewhere or the sc server is ignoring something, but wanted to know if others are having this issue. I'm on a Mac.

Joakim Verona13:05:54

usually suynths redefine fine for me. but, Im using cider, and I notice I must go to the end of the defsynth and eval it, c-m-x in the middle of the defsynth doesnt work for med

pfeodrippe13:05:59

I use cider as well, so the defaults redefine ok for you? The body redefinition works, but not when I modify some defaults only

Joakim Verona13:05:00

ok, i havent thought about it. Im not in a position to test atm, can test later

plexus13:05:19

There's some weird hidden feature there with atoms, I think it's kind of intentional but also often not helpful.

plexus13:05:32

I'll try to better write up how that works

pfeodrippe15:05:29

Thanks, Arne o/ Yeah, I saw something like that, hopefully it will be just to improve the cache invalidation 🙏 Will take a look during the weekend as well

plexus10:05:35

The main use case I think is hooking up external controllers, you can change the values in these atoms with a controller, any subsequent notes will use the values in the atoms, and these survive a redefining of the synth. So the value you set using the controller persists instead of resetting to default. That can be quite useful which is why I think it's intentional.

plexus10:05:17

But if you're not using any sort of gui or midi controller then that's not useful and you probably generally want to change the defaults even you redefine a synth.

plexus10:05:28

I'm thinking it could instead be either opt-in behavior, opt-out behavior, or something that only happens if the value has changed between two calls to defsynth.

pfeodrippe11:05:35

Thanks, Arne! Yeah, it seems that opt-in may be less surprising as it would follow the hot reload model of Clojure, but up to you if you think that people are relying on it somehow for some external HW o/

diego.videco15:05:30

Yeah, I also have that issue. Guess it hasn’t affected me that much, though, as I had forgotten about it, until now. But I can imagine live coding situations where one would want to manipulate the defaults instead of every instance of a synth, so someway to opt-in would be nice. Perhaps something like: (defsynth my-synth ^:reset [arg1 1] …)

pfeodrippe16:05:06

Nice, thanks for testing o/ Yeah, I would prefer it to be the default as it would be more in line with the Clojure model, but it’s ok if we want it opt-in as well

diego.videco17:05:43

Actually I agree with you, it’s a good point to have a default that is in line with the logic of the language itself.

plexus13:05:02

I'd love to see it! Who would be able to perform? Any suggestions?

pfeodrippe17:05:32

I was looking for a way to import synthdefs from SC, then I've seen defsynth-load... and now I remember that I added this myself some years ago lol. Attached is a small video where I use it to load one synthdef from sonic-pi into supercollider, I correct the path, run it in SC and load it using defsynth-load.The sonic-pi file used in the video is https://github.com/sonic-pi-net/sonic-pi/blob/dev/etc/synthdefs/designs/supercollider/sc808.scd

🙌 1
pfeodrippe17:05:54

You can also use “synth-load”, which seems better after all (I wouldn’t have created the macro nowadays)