This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-12-11
Channels
- # adventofcode (33)
- # babashka (1)
- # beginners (11)
- # biff (3)
- # calva (2)
- # cider (24)
- # clj-kondo (9)
- # cljfx (5)
- # clojure (39)
- # clojure-austin (2)
- # clojure-europe (11)
- # clojure-nl (1)
- # clojure-norway (22)
- # clojure-uk (10)
- # community-development (18)
- # data-science (24)
- # datahike (3)
- # events (3)
- # hyperfiddle (11)
- # lsp (22)
- # malli (3)
- # matrix (1)
- # off-topic (24)
- # other-languages (3)
- # overtone (7)
- # pathom (5)
- # reitit (2)
- # shadow-cljs (34)
- # sql (20)
- # squint (13)
Is anyone planning on performing? https://solstice.toplap.org/
Join the solstice stream! There’s a 36 hour live online stream happening on 21/22 December UTC, to celebrate the solstice and the dawning of a new cycle. Please get involved by contributing a 15 minute live performance! All live coders welcome, especially new people - this is a great opportunity for your first live gig! There are no constraints on what or how you perform, as long as live coding is involved (e.g. it doesn’t have to be from-scratch live coding, working with pre-prepared code is totally fine!). You can reserve a 15 minute slot here (times should appear in your own timezone): https://solstice.toplap.org/ You’ll then get instructions for testing and streaming in your email, which you can have a sneak peak at here: https://docs.google.com/document/d/1DQLdSvNal03mH21w0K6vBJoL96XPshUi-ZHyA2vCLhw/edit#heading=h.csu18y68777e You can watch the performances from last year’s solstice stream on youtube: https://www.youtube.com/playlist?list=PLMBIpibV-wQIdS6D1vdijRZPfLBrRP9A_) or http://archive.org: https://archive.org/details/toplap?sort=-date
Maybe next year 🙂 I hope to finally finish something musically sounding during the christmas/new year break
If anyone likes using Ndef
, here’s a very basic pseudo-implementation of the SuperCollider class.
I think covers around 70%-80% of use-cases of Ndef
, but there’s definitely many things missing.
I use it a lot for developing synths, and for that it works great.
(ns tieminos.sc-utils.ndef.v1
"A basic Ndef implementation"
(:require
[overtone.core :as o]))
(defonce ndefs (atom {}))
(defmacro ndef
[id synth & {:keys [out fade-time]
:or {out 0 fade-time 3}}]
`(let [synth# ((o/synth
[~(symbol "gate") 1]
(o/out ~out
(~(symbol "*") (o/env-gen
(o/asr ~fade-time 1 ~fade-time)
:gate ~(symbol "gate")
:action o/FREE)
~synth))))]
(when-let [prev-synth# (get @ndefs ~id)]
(try (o/ctl prev-synth# :gate 0)
(catch Exception ~(symbol "_e") nil)))
(swap! ndefs assoc ~id synth#)))
(defn stop [& ids]
(doseq [id ids]
(when-let [prev-synth (get @ndefs id)]
(try (o/ctl prev-synth :gate 0)
(catch Exception _e nil))
(swap! ndefs dissoc id))))
(comment
(do
(reset! ndefs {})
(macroexpand-1
'(ndef :my-id (* 0.2 (o/sin-osc 200)) {:out 0})))
(ndef :my-id (* 0.2 (o/sin-osc 100)))
(stop :my-id)
(o/stop))
basically it allows the user to cross-fade between synth definitions, that’s why it’s cool for developing synths. Better than o/demo
imho, as it can also be used for performance.
Interesting! There's so much in SC I'm still unfamiliar with. I perused the implementation of ndef/proxyspace and it looks like it works by allocating busses and changing/fading what goes into the bus (I think). Should be doable to do something similar on our side.
yeah, the audio routing is interesting in that implementation as it allows to more freely route the signals. That’s still uncovered in what I did, which is just about fading in and out synths