overtone

2024-11-13T15:07:17.741829Z

Hello folks! What would be your advice for entry? I can't find any comprehensive docs and a bit afraid to write much code that was already created. Are there any articles or smthng?

plexus 2024-11-15T10:06:12.994029Z

This stuff is still fairly fresh, I coded the initial version last spring, and then made a bunch of improvements while preparing for my conj talk, mostly to make it actually usable for live performance stuff. Here's the demo I did at the conj https://github.com/plexus/mad-sounds/blob/master/src/mad_sounds/sessions/conj_demo_2024_10_20.clj With some cleanup that can probably go into the examples in the overtone repo. I wrote a bunch of docs in spring for these things (look for events.md and patterns.md I think). They could use a refresh with the latest work but they're fairly complete.

plexus 2024-11-15T10:08:17.472849Z

This was always one of the biggest pain points for me in overtone. The time-recursive functions are a really neat idea, but it's just too bulky and inexpressive. I must have coded some version of a sequencer a dozen times over the years. This latest iteration is inspired by supercollider's pattern library, while trying to keep it very clojure-y (just sequences and maps), and I'm quite happy with it.

Joakim Verona 2024-11-15T10:44:21.035599Z

is the pattern library implemented in clojure? or dependant of supercollider pattern library? i ask because i have a little recursive time based sequencer, and it would be cool to port it to patterns

plexus 2024-11-15T10:58:24.118289Z

it's all just clojure, it's only "inspired by", it doesn't actually depend on anything from SC

πŸ™Œ 1
frankleonrose 2024-11-14T15:49:03.571649Z

I recommend loading up the https://github.com/overtone/overtone/tree/master/src/overtone/examples - they’ll give a good sense of all the different directions that are possible as well as examples of idiom.

πŸ‘€ 1
plexus 2024-11-14T19:22:19.368669Z

Yeah I really need to add some examples of the pattern stuff. It's so much nicer than using metronome directly

πŸ‘ 1
2024-11-14T19:29:38.938759Z

Yesss that what I was asking about. Because I almost started to code something my own…

Joakim Verona 2024-11-13T15:18:40.201389Z

imho the readme is pretty good: https://github.com/overtone/overtone

2024-11-13T15:23:25.111749Z

Maybe wiki is a bit informative, but if you look how much functions are presented in CheatSheet...

Joakim Verona 2024-11-13T16:25:51.989709Z

well, the initial step is hardest, getting sound output

Joakim Verona 2024-11-13T16:26:00.043529Z

you should start there imho

2024-11-13T16:35:51.803299Z

No, I am ok with initial step. That's what I am talking about. Sound generation is clear, but what is idiomatic way to work with tempo, effects etc? For example I wrote a function for delay effect, but I am afraid I reinvent the wheel

Joakim Verona 2024-11-13T16:42:25.505139Z

ill let others chime in here, because im more of a "reinventing all the wheels" guy when using overtone πŸ™‚

Joakim Verona 2024-11-13T16:42:46.311939Z

i think theres new nice stuff for patterns, havent tried it yet

2024-11-13T16:42:55.438939Z

Okaaaay)

2024-11-13T16:43:25.772499Z

Thank you, I will try to check)

Joakim Verona 2024-11-13T16:44:08.452569Z

also i think its fun to use the standard synths, as defined in the cheatsheet, and then add effects, to them

2024-11-13T16:44:38.790499Z

Yesss, but need to read more about effects, but where? )

Joakim Verona 2024-11-13T16:44:47.554319Z

in fx.clj

2024-11-13T16:45:08.706249Z

Yess, that it the way

Joakim Verona 2024-11-13T16:45:32.453429Z

heres a snippet

πŸ‘€ 1
Joakim Verona 2024-11-13T16:45:33.280279Z

(inst-fx! bass fx-echo) (inst-fx! bass fx-chorus) (inst-fx! bass fx-g-verb) (inst-fx! sampled-piano fx-echo) (inst-fx! sampled-piano fx-chorus) (inst-fx! sampled-piano fx-g-verb) (clear-fx sampled-piano)

Joakim Verona 2024-11-13T16:46:00.767559Z

and you can make your own compatible effects

Joakim Verona 2024-11-13T16:46:36.360419Z

heres 2 trivial effects

Joakim Verona 2024-11-13T16:46:36.927899Z

(defsynth fx-g-verb "can i copy paste program my own reverb?" [bus 0 wet-dry 0.5 room-size 0.5 dampening 0.5] (let [source (in bus) verbed (g-verb source 200 8)] (replace-out bus (* 1.4 verbed)))) (defsynth fx-echo2 [bus 0 max-delay 1.0 delay-time 0.4 decay-time 2.0 echo-level 1.0] (let [source (in bus) echo (comb-n source max-delay delay-time decay-time)] (replace-out bus (pan2 (+ (* echo-level echo) source) 0))))

πŸ‘ 1
2024-11-13T16:47:08.001939Z

> and you can make your own compatible effects Sure, I just wants to find out what is already out of the box.

Joakim Verona 2024-11-13T16:47:45.746949Z

i think the fx:s are in the cheat-sheet

Joakim Verona 2024-11-13T16:48:48.800609Z

if you do some nice stuff that is compatible with the standard overtone library, i would enjoy to try out your future merge requests πŸ™‚

2024-11-13T16:49:08.778099Z

Yesss, of course)

plexus 2024-11-14T06:51:48.174649Z

Don't let the cheat sheet intimidate you. Think of it like clojure.core. there's a lot in there but you don't need it all and don't need to learn it all at once.

πŸ‘ 1
plexus 2024-11-14T06:53:17.638339Z

Welcome to overtone :) just ask away if you're trying to do a particular thing. There's a lot in there and not all of it particularly well documented unfortunately.

2024-11-14T07:23:00.362259Z

No, not something particular. Or too much particular things 🀣

🎢 1