xenharmonic-devs / sonic-weave

The SonicWeave DSL for manipulating musical frequencies, ratios and equal temperaments
MIT License
4 stars 4 forks source link

Computed S-expressions #373

Closed frostburn closed 3 hours ago

frostburn commented 1 week ago

Builtin

Stdlib

frostburn commented 1 week ago

frostburnYesterday at 6:24 PM

I'd like to hear your thoughts on this suggested notation for computed S-expressions though.

osmiumYesterday at 10:09 PM

hmm, i think So(k) makes sense for supporting odd-particulars, and from there because you have S(5,8) for S5..8 it would make sense to also have So(5,9) for So5..9. however i recommend that no other shorthands be defined, because the goal is that the notation should be as self-explanatory as possible, so that if someone knows about S(k) and S(a,b) and knows the equivalences then arithmetic should follow people already criticise the notation for not being very clear if youre not familiar with how the main equivalences work, so i think that any shorthands other than those four (Sk, Sa..b, Sok, Soa..b) would only serve to confuse 😅 keep in mind that readability is much more important than keystrokes specifically the only reason i even considered this new notation Sa..b is because it seemed useful generally to have a shorthand for expressing the ratio between two arbitrary superparticular intervals without having to write Sa * S(a+1) * ... * Sb every time but also because all such commas are 1/n-square-particulars (or for So, 1/n-square-oddparticulars) so it's a way of writing the primitives of that infinite family of infinite families of S-commas (as it's a 2-dimensional family compared to most families which are 1 dimensional) as well as because many of the simple cases are often superparticular (or nearly) commas of interest

here's a fun fact: S(2*k-1, 2*k+1) * S(2*k) = S(k)

frostburn commented 3 hours ago

I don't understand what So(k) is supposed to be. Asked about it on the wiki. Closing rest of the issue as unnecessary noise.