overtone

plexus 2024-05-19T10:29:48.815939Z

https://toot.cat/@plexus/112467284031282742

❤️ 5
diego.videco 2024-05-21T03:04:48.270809Z

@plexus 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.videco 2024-05-21T03:05:36.204909Z

For example this MOS produces the pentatonic and diatonic scales:

diego.videco 2024-05-21T03:06:56.857019Z

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

diego.videco 2024-05-21T03:07:48.798849Z

marwa permutations of the diatonic scale:

diego.videco 2024-05-21T03:13:04.670859Z

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.videco 2024-05-21T03:14:07.572129Z

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.videco 2024-05-21T03:18:43.923859Z

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

plexus 2024-05-21T06:38:10.276069Z

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?

Joakim Verona 2024-05-19T15:25:50.043159Z

W00t!

plexus 2024-05-19T16:04:43.408339Z

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.videco 2024-05-21T12:15:31.802129Z

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 Verona 2024-05-19T15:26:05.989099Z

I made a new song: https://soundcloud.com/joakimv/ensol-nevolen

👏 2
diego.videco 2024-05-21T04:38:34.589889Z

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.videco 2024-05-21T04:39:20.057589Z

You may need a line like this in your SC config: https://github.com/diegovdc/tiempaminos/blob/main/src/tieminos/habitat/sc-init.sc#L11

diego.videco 2024-05-21T04:40:35.871199Z

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.videco 2024-05-21T04:41:06.683649Z

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

Joakim Verona 2024-05-19T15:29:14.947119Z

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
plexus 2024-05-19T16:01:05.135389Z

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)

plexus 2024-05-19T16:01:56.803679Z

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 Verona 2024-05-19T16:59:47.689479Z

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 Verona 2024-05-19T17:00:10.662149Z

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

Joakim Verona 2024-05-19T17:00:48.774959Z

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

Joakim Verona 2024-05-19T17:01:15.912679Z

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

Joakim Verona 2024-05-19T17:03:39.809299Z

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

plexus 2024-05-19T18:15:43.777179Z

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 Verona 2024-05-19T18:17:33.109379Z

hmm must look into squid.jack...

Joakim Verona 2024-05-19T18:18:18.025119Z

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 Verona 2024-05-19T18:19:14.924819Z

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 Verona 2024-05-19T18:19:49.789409Z

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

Joakim Verona 2024-05-21T07:08:09.686019Z

ah, tnx!