Fork me on GitHub
#overtone
<
2024-05-19
>
plexus16:05:43

small example: (definst bass [freq 70 brightness 1.1 attack 0.01 decay 0.1 sustain 0.7 release 0.1 amp 0.5 gate 1 lag 0.1] (let [freq (lag:kr freq lag) env (env-gen (adsr attack decay sustain release) :gate gate)] (-> (var-saw freq :width 0) (rlpf (* brightness freq env)) (* amp env)))) (pplay ::bass (pbind {:degree [:i :i :iii :ii :i :iv :v] :dur [1/2 1 1/2 1/2 1/2 1/2 1/2] :root ^{:dur 8} [:c3 :d3 :b2 :c3]} ##Inf) {:proto {:instrument #'bass :attack 0.01 :octave 3}})

diego.videco03:05:48

@U07FP7QJ0 kudos on the release/upgrade. And glad to see attention to non-12-tone possibilities was given. I didn’t see anything related to just intonation, though, only equal temperaments. Am I right? I’ve got a lot of (clojure) work on microtonal scales, both related to equal temperaments and just intonation. This could vastly increase the harmonic and melodic possibilities of overtone. For example, moment of symmetry scales (a kind of generalization of the pentatonic and diatonic constructions for any division of the octave) and marwa permutations (a generalization of indian scale making patterns that interacts with MOS scales). There are also some scale analysis and visualization tools. My current repo is not “release” grade as I am the only one using it, but if there was interest in adding it as a dependency to overtone or some willingness to discuss how to include it, I’d be glad to contribute and prepare the repo for general consumption. Here’s a website that exposes part of the API on a web interface: https://wilson-tunings.echoic.space/

diego.videco03:05:36

For example this MOS produces the pentatonic and diatonic scales:

diego.videco03:05:56

And getting the secondary MOS scales from the 7 note row generates (among others) the full gamut of japanese pentatonic scales:

diego.videco03:05:48

marwa permutations of the diatonic scale:

diego.videco03:05:04

If someone wanted a more in tune diatonic scale, for example, they could use a MOS from the 31 tone scale: All 7, 12, and 19 tone (sub)scales are good for and familiar examples, and the 19 tone exhibits greater modulation possibilities (i.e. 19 keys).

diego.videco03:05:07

The 7 tone scale shows the 10 tone interval which is a very sweet almost perfectly in tune major third (more in tune than 12 ET).

diego.videco03:05:43

Or for a different flavor from 31 ET, the 8 tone scale is a nice one, the so-called “oneirotonic” temperament.

plexus06:05:10

Hey Diego, that's really cool. To be honest I just copied that logic from supercollider. You're right, it only does equal temperament at the moment. I'm not even sure it works properly... Didn't expect there to be immediate interest in that part, I shouldn't have underestimated this community. :) For just intonation I guess you'd pass in a list of fractions defining the intervals?

diego.videco12:05:31

There’s many ways to do just intonation scales: limit based scale design, combination product sets, harmonic series segments, recurrent series scales, near equal just intonation, diamonds, and other things; but yeah, in the end one ends up with ratios of some sort. I’ve been very interested in many of those algorithms. There’s also the Huygens-Fokker scale archive, online, with more than 5000 scales both traditional and not. Sort of like the freesound of scales. I’ve got some code that can integrate with it as well, that is read from the downloaded archive files and convert them to clojure data structures.

Joakim Verona15:05:14

Some notes: • I struggle with the mixing. At this point I would prefer exposing the instrument buses, and mixing them somewhere else. • I tried to make a vocoder. It sounds nothing like a vocoder lol, but it kinda sounds interesting anyway • There was a lot of things I considered bugs, like set-volume, suddenly not working, and the graphviz stuff for debugging suddenly stopped working Still, fun and all!

💯 1
plexus16:05:05

It's clear that when Sam and Jeff left to do other things overtone was still very much unfinished. Every time I play around with API I hadn't looked at before I discover obvious low hanging fruit stuff that needs fixing. Other folks are very welcome to try to do the same :) bug reports are also already helpful (on GitHub, not just here)

plexus16:05:56

Re the mixing, I think once I get into it more I'll probably do just that, route everything into ardour and do mixing and effects there

Joakim Verona16:05:47

The problem with providing bug reports is reproducability. Theres 2 vm:s involved with their own state, that needs to be in sync, and you deal with them imperatively (not always, but I guess you understand what I mean)

Joakim Verona17:05:10

so you can wind up in a weird state, and theres no way to get out of it other than restarting everything.

Joakim Verona17:05:48

If there were more debugging tools, like the graphviz tools but you could see the entire scsynth state, that might help

Joakim Verona17:05:15

If I ever find a bug that I can reproduce I will be sure to report it!

Joakim Verona17:05:39

If you ever figure out how to route everything into ardour or zrythm that would be nice to read about

plexus18:05:43

On Linux ardour should be pretty straightforward. Could be semi automated thanks to casa.squid.jack. maybe I'll make a short video at some point... Maybe once heart of Clojure is over :)

Joakim Verona18:05:33

hmm must look into squid.jack...

Joakim Verona18:05:18

sometimes i miss a kind of "sumo" dist of overtone, a dist with all the batteries, and even all the different batteries, are included at the outset

Joakim Verona18:05:14

then i would mess around in sumo-overtone, try to do something, get annoyed, and just do a grep and find a solutuon for my gripe

Joakim Verona18:05:49

i suppose thats kind of hard to do in a meaningful way, still one can dream

diego.videco04:05:34

Mixing in a code setting is really hard, there’s a lot of things to hold in one’s head. Routing out is fairly easy, just route to an output bus (e.g. a jack out) and use the corresponding jack input as your input in your daw.

diego.videco04:05:35

You can even use your stereo output though, just route it with jack to your daw instead of your hardware outs. Then you can monitor from your daw.

diego.videco04:05:06

It’s been a while since I used linux, so I am blurry in the details; but I remember it was actually easier to grasp than on something like a mac