xenharmonic-devs / sonic-weave

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

Add more inflection flavors to FJS #111

Closed frostburn closed 8 months ago

frostburn commented 8 months ago

We're already deviating from NFJS by making the neutral flavors explicit so we might as well go further with other comma sets in common use. Index by primes for the Frankenstein experience.

https://en.xen.wiki/w/Helmholtz-Ellis_notation#Formal_commas https://en.xen.wiki/w/Ben_Johnston%27s_notation

frostburn commented 8 months ago

Square superparticular can be added under an S flavor: https://en.xen.wiki/w/Square_superparticular

frostburn commented 8 months ago

It's common to use multiple consecutive square superparticulars so a shorthand S5..8 for S5,S6,S7,S8 would be nice.

frostburn commented 8 months ago

Hmm... I forgot that I defined comma flavors to be postfix instead of prefix. Square superparticulars would then be 5..8S for 5S,6S,7S,8S if the range syntax fits in the grammar without issues.

Postfix is certainly the way to go: I like the look of n3^11n more than n3^n11 which gets confused with n3 ^ n11.

frostburn commented 8 months ago

@osmiumic I couldn't quite fit S-expressions inside the FJS grammar so I made them a dedicated logarithmic type instead: https://github.com/xenharmonic-devs/sonic-weave?tab=readme-ov-file#s-expressions

frostburn commented 8 months ago

BJ requires a 5-limit spine. Ignoring it for now.